MathQA 是一个大规模数据集,由亚马逊和加州大学圣巴巴拉分校的研究人员于 2019 年提出。它包含 37,000 个英语选择题形式的数学应用题,涵盖普通数学、物理和金融等主题。每个问题都标注了一个线性规划,该规划指定了得出正确答案所需的一系列运算。该数据集的创建是为了解决早期数据集(如 MathQA 的前身)的局限性,这些早期数据集侧重于更简单的算术,并旨在支持数学推理方面的人工智能和机器学习研究。
MathQA 中的问题源自 AQuA 数据集,但重新标注了更详细且一致的运算程序。标注内容包括文本解释、正式的线性规划以及最终答案。线性规划以领域特定语言表达,该语言包含加法、减法、乘法、除法和比较等运算。这种结构使模型不仅能够学习最终答案,还能学习中间推理步骤。
数据集结构
MathQA 中的每个条目由问题陈述、选择题选项、正确答案和一个线性规划组成。线性规划是一系列步骤,每个步骤涉及一个运算符及其参数。例如,一个关于计算简单利息的问题可能包含将本金乘以利率再乘以时间的步骤。该数据集被划分为训练集(29,837 个问题)、验证集(4,469 个问题)和测试集(2,985 个问题)。问题被归类为 33 种不同类型,例如“利率”或“物理”问题,这有助于分析模型在不同推理领域中的表现。
线性规划被设计为可执行的,这意味着程序解释器可以根据给定数字计算出答案。这一特性使得在模型训练和评估中可以使用程序合成和执行技术。该数据集还包含一组 50,000 个未标注的问题,用于半监督学习,不过主要基准测试使用的是标注划分。
评估与基准
MathQA 通常用作评估 AI 模型数学推理能力的基准。标准评估指标是测试集上的准确率,即模型必须输出正确的答案选项。早期的基线模型使用序列到序列模型和记忆增强神经网络,准确率约为 30-40%。最近的方法,包括基于Transformer架构和大型语言模型的方法,显著提升了性能。例如,对 GPT-3 等模型进行微调后,在测试集上的准确率已超过 80%。
该数据集还用于评估模型生成可解释推理步骤的能力。由于提供了线性规划,研究人员不仅可以衡量最终答案是否正确,还可以检查预测的程序是否与真实程序匹配。这促进了将程序生成与执行相结合的模型的发展,从而同时提高了准确性和可解释性。
相关数据集与任务
MathQA 是更广泛的数学应用题数据集家族的一部分,包括 MAWPS、ASDiv 和 GSM8K。与这些数据集相比,MathQA 提供了更多的问题和更复杂的推理要求,因为许多问题涉及多个步骤和更广泛的数学运算。该数据集通常与其他资源结合使用,以训练和评估用于自然语言处理和深度学习的模型。
解决数学应用题的任务被认为是机器理解和推理的一项挑战性测试。它要求理解文本描述、提取相关数量,并应用适当的算术或代数运算。MathQA 的标注方案包含显式的运算程序,为处理该任务提供了一种结构化方法,并影响了后续数据集的设计。
局限性与争议
MathQA 的一个显著局限性是,部分标注的程序包含错误或不一致之处,这可能会在训练过程中误导模型。研究人员已识别出诸如运算符使用不正确或步骤缺失等问题。此外,该数据集的选择题格式可能使模型能够利用答案模式而非真正进行推理。一些研究表明,模型可以通过使用表面线索(如选项长度或某些数字的存在)达到高于随机水平的准确率。
另一个批评是,这些问题在范围上相对狭窄,侧重于算术和简单代数,可能无法完全涵盖数学推理的多样性。尽管存在这些问题,MathQA 仍然是评估和开发具有数学问题解决能力的 AI 系统的广泛使用的基准。
另见
- 数学推理
- 问答系统
- 自然语言理解
- 程序合成
- 基准测试(计算)
参考文献
- Amini, A., Gabriel, S., Lin, S., Koncel-Kedziorski, R., Choi, Y., & Hajishirzi, H. (2019). MathQA:迈向基于运算形式化的可解释数学应用题求解。发表于 NAACL-HLT 会议论文集。
- MathQA 数据集可在 https://math-qa.github.io/ 获取(访问日期:2025 年)。