摘要

数学单词问题(MWP)求解需要发现自然语言描述中的数值关系。最近的工作表明,现有模型通过从上下文中记住答题过程,并依靠浅启发式方法来求解MWP。在本文中,我们研究了这个问题,并认为其原因是模型对MWP模式缺乏整体理解。我们首先研究了神经网络如何从语义中理解模式,并观察到,如果具有相同的像n1+n2n_1+n_2n1​+n2​这样的原型方程,那么大多数问题都会具有非常接近的表示,并且远离这些表示或靠近其他原型的表示往往会产生错误的解决方案。受到它的启发,我们提出了一种对比学习方法,通过神经网络来感知模式的差异。我们通过将原型方程转换为树并寻求相似的树结构来收集对比样例。在收集的示例上对求解模型使用辅助目标进行训练,从而使具有相近原型的问题表示靠得更近。我们在中文数据集Math23k和英语数据集MathQA上进行实验。我们的方法大大提高了单语和多语设置的性能。

1.介绍


  数学单词问题(MWP)被描述为具有数学问题的自然语言叙述。需要MWP求解器来生成求解方程,该方程可以通过理解上下文的问题描述来计算以获取数值答案。
  在教学中,学生被鼓励去学习数学的模式,而不仅仅是数字。在数学上优秀的学生倾向于探索模式,而不仅仅是记住过程。最近,Patel et al. (2021) 提到现有的MWP模型依靠浅启发式方法来生成方程。这些模型即使只有叙述二没有问题,也可以很好地预测解决方案,这表明神经网络是通过记住(死记硬背)学习到的词汇输入来解决MWP。因此,现有模型被困在记忆过程中。我们研究了这个问题,并假设这是因为它们专注于一个问题的文本理解或方程生成。相同的数值关系可以对应到许多具有不同主题和场景的问题,但是以前的方法忽略对MWP模式的概述和区分。
  在这项工作中,我们首先研究了神经网络如何仅从语义上来理解MWP模式。我们采用广泛使用的编码器-解码器模型结构。BERT被用作语义编码器,同时采用树解码器来生成方程。我们在BERT中探索问题表示。图1中由T-SNE的可视化表明,通过语义编码器,即使它们的叙述在语义上不同,大多数具有相同原型方程的问题,其表示都会更加接近。我们还分析了不同BERT层中的表示形式,结果表明,词汇语义主要影响底层的问题解决。此外,对于每个原型方程,当问题表示远离其中心表示往往会产生不正确的解决方案
  受其启发,我们提出了一种对比学习方法,该方法使用相似的原型方程来建模模型,以更好地理解模式并感知模式的差异。在收集对比样例时,我们采用 Xie和Sun(2019)的方法,即将原型方程式转换为树。给定一颗方程树,如果检索到具有相同树或子树的机构,则该检索到的树为正例,并且根据运算符类型和树的大小从其余的样例中收集负例。首先,通过方程生成损失和对比学习损失来联合优化了求解模型,然后在原始数据集中进一步训练。尽管生成损失使模型能够记住语义中的过程,但对比学习损失使相似的模式更加接近,并分散了不同的模式。
  我们在单语和多语言设置中对中文数据集Math23k和英语数据集MathQA进行实验。为了支持构建多语言对比样例,我们采用 Tan et al. (2021) 的方法,将MathQA作为Math23k的对应物进行调整。实验结果表明,我们的方法在单语和多语言设置中实现了一致的增长。特别是,我们的方法允许模型使用另一种语言的数据来改善当前语言的性能,这表明MWP模式与语言无关。 此外,我们验证,通过我们的对比学习,以前产生错误解决方案的表示越来越接近其中心,并且有一些问题得到了很好的解决。
  总而言之,本文的贡献包括:i)对MWP模型的分析,表明语义编码器仅在下层学习词汇的语义,并在较高层中收集原型方程。ii)一种对比学习方法,帮助模型更好地理解MWP模式并感知模式的差异。iii)在多语言设置中的应用表明,我们可以使用不同语言的数据进一步提高模型性能。

2.相关工作

2.1 Math Word Problem Solving

给定具有数学问题的自然语言描述,其任务是生成解决方案以回答问题。这些方法可以分为四类:基于规则的方法,统计机器学习方法,语义解析方法和深度学习方法。
  深度学习方法已在MWP求解方面取得了重大进步。Wang et al. (2017) 首次尝试使用循环神经网络来构建seq2seq求解模型。Xie and Sun (2019) 提出了一个树结构解码器来生成方程树。并且可以通过遍历方程树来生成句法正确的方程式。Zhang et al. (2020) 应用图卷积网络以提取数学问题中数值关系。最近,对语言模型的无监督预训练为文本理解提供了丰富的上下文表示,微调技术带来了进一步的性能提升。基于预训练的语言模型的几项工作增强了问题理解的能力。

2.2 Contrastive Learning

对比学习是表示学习的一种方法,它首先由Hadsell et al. (2006) 设计。通过将语义上相似的嵌入聚合在一起并将语义不同的嵌入拉开,对比学习可以提供更有效的表示。在NLP中,在许多领域都探讨了类似的方法。Bose et al. (2018) 开发一个采样器来找到更难的负例,这迫使模型学习更好的单词和图嵌入。Yang et al. (2019b) 使用对比学习来减少神经机器翻译中的单词遗漏错误。Clark et al. (2020) 在对比样例上训练一个判别模型,以获得信息丰富的语言表示。Gao et al. (2021) 通过在有监督和无监督的设置中使用对比学习来提高句子嵌入的性能。Yu et al. (2021) 开发一种对比比自训练,以帮助语言模型在弱监督下微调和标签去噪。
  据我们所知,这是第一项采用对比学习进行MWP求解的工作。在对比学习的监督下,我们期望将类似的MWP模式来拉近,并将有差异的模式拆开。

3. Semantic Encoder Gathers Prototypes

在本节中,我们探讨了神经网络如何理解语义的模式。我们采用编码器-解码器模型结构来解决问题,并对问题表示进行分析。观察结果是,语义编码器下层学习词汇的语义,并在高层处收集原型方程。

3.1 Experimental Setup

3.1.1 Datasets

我们对两个广泛使用的数据集Math23k和MathQA进行分析。Math23k数据集由基础教育的23k个MWP组成,MathQA具有37K个MWP,具有多选和方程。

3.1.2 Model Architecture

Semantic Encoder。预训练语言模型BERT被用作语义编码器。在大型语料库上进行的无监督预训练使该模型学习了语言知识,从而提供了丰富的文本表示。
  Equation Decoder。采用树解码器来生成解决方案。我们使用[ClS]字符的BERT编码表示,在解码时初始化根节点。递归地,解码器生成每个节点的嵌入,并预测数字和运算符候选的概率。
  简而言之,我们将模型表示为BERT-TD。该模型将文本问题描述视为输入,并通过最小化结点概率的负对数似然进行优化,以预测真实方程树。

3.2 Shifts of Problem Representation


  为了探索神经模型在训练过程中如何学习MWP模式,我们首先提取在不同epoch和不同层中[CLS][CLS][CLS]字符的表示。然后,我们执行图2所示的T-SNE可视化。不同epoch的表示形式是从BERT的顶层挑选的,并且从最优训练的模型中挑选出不同层的表示。可以看出,随着训练的进行,具有相同原型方程的表示正在聚集。此外,随着编码层深度的增加,聚集趋势变得越来越明显。
  直观上,原型方程表现出MWP中数值之间的基本关系。这些结果还验证了神经模型学到的模式与原型方程直接相关。

3.3 Semantics and Prototype Equation


  从可视化中,我们看不到语义是如何影响问题求解的。为此,我们收集了20个具有相似词汇语义但原型完全不同的问题对,以及20个原型相同单主题和场景不同的问题对。不像在第3.2节中使用[CLS][CLS][CLS]表示,我们对问题中所有单词的表示进行平均。在不同的BERT层中计算了这些问题对的平均表示的余弦相似性。
  平均相似性如图3所示。语义上相似的问题在较低层中获得较高的值,但随着模型的加深,相似性逐渐降低。同时,随着模型深度的增加,尽管在不同的语义中,相同原型方程的问题获得了更高的相似性。这表明词汇语义会影响底层的问题解决,并且该模型进一步从较高层的语义中提取原型。

3.4 Clustering and Solving Ability


  通过上述观察,我们试图发现原型类簇和模型性能之间的关系。对于每个原型方程,我们首先是平均相应问题的表示,以获取其中心点,然后计算问题表示及其对应中心之间的余弦距离。较高的余弦距离意味着该表示更靠近其中心。我们将余弦距离分为几个间隔,并计算每个间隔内正确预测的比例。结果如图4所示,其表明当表示离中心越远,约倾向于生成错误答案。

4.Contrastive Learning

在本节中,我们提出了一种对比学习的方法,以帮助模型学习MWP模式的差异。现有深度学习方法的一个缺点是,它们缺乏对MWP模式的概述和区分。相比之下,我们从各种问题中寻求类似的原型方程来支持模型学习模式,并收集容易混淆的模式让模型进行区分。

4.1 Data Collection


  我们构建一组包含基本问题ppp及其正负例{p+,p−}\{p^+,p^-\}{p+,p−}的对比MWP三元组(p,p+,p−)(p,p^+,p^-)(p,p+,p−)。
  (1)Positive Example
  一种直接的方法是收集其原型方程与给定问题ppp完全相同的问题。但是,在其他问题中同样会存在相同的数值关系。如表1所示,对于第二个问题,在回答“他可以购买多少游戏?”之前,另一个隐藏的问题是“他有多少钱?” ,其求解方程与第一个问题就有相同的原型。因此,我们采用与 Xie and Sun (2019) 相同的方法将原型方程解析到树结构,并考虑其子方程和子树。如果一个问题的树或子树具有与ppp相同的结构则将该问题作为正例p+p^+p+,例如图5中的treetreetree和tree+tree^+tree+。
  (2)Negative Example
   Bose et al. (2018) and Kalantidis et al. (2020) 强调了对比学习中难负例的重要性。如果我们选择原型与ppp完全不同的的问题作为p−p^-p−,则原始MWP模型可以轻松区分它们。因此,在这项工作中,如果原型与ppp具有相同数量的节点但不同的操作节点类型,则将该原型对应问题作为难负例p−p^-p−,例如图5中的treetreetree和tree−tree^-tree−。在难负例上进心训练,我们的模型可以区分更细微的差异,并进一步掌握MWP的内部模式。

4.2 Training Procedure


  我们在收集的问题三元组上训练该模型。如图5所示,问题首先由BERT编码,然后树解码器预测方程树的节点。
  在对比学习过程中,三元组z=(p,p+,p−)z=(p,p^+,p^-)z=(p,p+,p−)被一起输入模型以预测方程树。归功于 Xie and Sun (2019) 的解码方式,每个节点嵌入代表从根节点到它的整个子树信息。问题ppp和其负例问题p−p^-p−的根节点嵌入被选择,以进行区分。对于其正例问题p+p^+p+,我们选择包含与ppp相同结构的树或子树的根节点,并将其嵌入与ppp的嵌入靠的更近。简而言之,我们将这些节点嵌入表示为(e,e+,e−)(e,e^+,e^-)(e,e+,e−),对比学习损失如下:
Lcl=∑zmax(0,μ+sim(e,e−)−sim(e,e+)),(1)\mathcal L_{cl}=\sum_{z}max(0,\mu+sim(e,e^-)-sim(e,e^+)),\tag{1}Lcl​=z∑​max(0,μ+sim(e,e−)−sim(e,e+)),(1)
其中sim(⋅)sim(·)sim(⋅)是余弦相似性,而ηηη是边缘超参数。
  MWP求解模型的根本是生成一个解决方案以回答数学问题。我们将目标方程yyy转换为波兰符号,为[y1,y2,...,ym][y_1,y_2,...,y_m][y1​,y2​,...,ym​],其中mmm是方程长度。树解码器会递归生成第kkk个结点字符yky_kyk​,并将生成方程的损失计算为:
P(y∣p)=∏k=1mP(yk∣p)(2)\mathcal P(y|p)=\prod^m_{k=1}\mathcal P(y_k|p)\tag{2}P(y∣p)=k=1∏m​P(yk​∣p)(2)
Leq=∑p−logP(y∣p)(3)\mathcal L_{eq}=\sum_p-log~\mathcal P(y|p)\tag{3}Leq​=p∑​−log P(y∣p)(3)
  最终的训练目标是最小化方程损失和对比损失,如下所示:
L=Leq+α⋅Lcl(4)\mathcal L=\mathcal L_{eq}+\alpha\cdot \mathcal L_{cl}\tag{4}L=Leq​+α⋅Lcl​(4)
其中ααα是表示对比学习重要性的超参数。
  但是,并非所有问题都有积极的例子,例如那些没有任何操作符的问题其答案是一个值。考虑到这一点,我们制定了两阶段的训练策略。在第一阶段,MWP求解器首先在对比三元组中进行了训练,然后在第二阶段的原始数据集中进一步训练。

Seeking Patterns, Not just Memorizing Procedures:Contrastive Learning for Solving MWP翻译相关推荐

  1. 对比学习系列论文SDCLR(二)-Self-Damaging Contrastive Learning

    目录 0.Abstract 0.1逐句翻译 0.2总结 1. Introduction 1.1. Background and Research Gaps 1.1.1逐句翻译 第一段(引出对比学习是否 ...

  2. 从对比学习(Contrastive Learning)到对比聚类(Contrastive Clustering)

    从对比学习(Contrastive Learning)到对比聚类(Contrastive Clustering) 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailug ...

  3. 对比学习(Contrastive Learning)综述

    A.引入   https://zhuanlan.zhihu.com/p/346686467 A.引入 深度学习的成功往往依赖于海量数据的支持,其中对于数据的标记与否,可以分为监督学习和无监督学习. 1 ...

  4. 【NLP】Contrastive Learning NLP Papers

    来自 | 知乎 作者 | 光某人 地址 | https://zhuanlan.zhihu.com/p/363900943 编辑 | 机器学习算法与自然语言处理公众号 本文仅作学术分享,若侵权,请联系后 ...

  5. 对比学习(Contrastive Learning)相关进展梳理

    ©PaperWeekly 原创 · 作者|李磊 学校|西安电子科技大学本科生 研究方向|自然语言处理 最近深度学习两巨头 Bengio 和  LeCun 在 ICLR 2020 上点名 Self-Su ...

  6. [2021-CVPR] Fine-grained Angular Contrastive Learning with Coarse Labels 论文简析

    [2021-CVPR] Fine-grained Angular Contrastive Learning with Coarse Labels 论文简析 论文地址:https://arxiv.org ...

  7. Micro-expression recognition with supervised contrastive learning基于对比监督学习的微表情识别

    Micro-expression recognition with supervised contrastive learning基于对比监督学习的微表情识别--2022 PRL 文章链接:https ...

  8. 2022_WWW_Improving Graph Collaborative Filtering with Neighborhood-enriched Contrastive Learning

    [论文阅读笔记]2022_WWW_Improving Graph Collaborative Filtering with Neighborhood-enriched Contrastive Lear ...

  9. Improving Graph Collaborative Filtering with Neighborhood-enriched Contrastive Learning(个人笔记)

    论文:利用邻域丰富的对比学习改进图协同过滤 (NCL) WWW22 文章链接:https://arxiv.org/abs/2202.06200v1https://arxiv.org/abs/2202. ...

最新文章

  1. Sun副总裁:绿色数据中心需分四步走
  2. linux java services_在 Linux 上创建第一个 Service Fabric Java 应用程序
  3. HDU-3507Print Article 斜率优化DP
  4. PPT 下载|神策数据业务咨询师成林松:社交裂变的场景化分析
  5. WebService基于SoapHeader实现安全认证[webservice][.net][安全][soapheader]
  6. 【洛谷P4445 【AHOI2018初中组】报名签到】
  7. CentOS6.x下配置sendmail发邮件
  8. 阮一峰react demo代码研究的学习笔记 - how is h1 got parsed - not answer
  9. 微信小程序错误 Cloud API isn‘t enabled, please call wx.cloud.init first 解决
  10. Spring和SpringMVC父子容器关系初窥
  11. MySQL相关文档索引
  12. Ubuntu系统下安装Gaussian09和GaussianView5(GS16和GV6安装同理)
  13. 菜鸟教程html5常用标签,HTML5 Canvas | w3cschool菜鸟教程
  14. [转]众多OCR软件
  15. SREng日志全分析(一)
  16. 使用QtCharts报错
  17. windows下的虚拟化
  18. openstack搭建问题
  19. 09-kafka分区数的设置
  20. js 根据链接生成二维码

热门文章

  1. pycharm只显示左侧project,不显示项目目录
  2. 用VM+PE+GHOST安装winxp系统
  3. html是什么课程,【HTMLCSS 课程01 】HTML到底是个啥?
  4. 小电容通高频大电容通低频的理解
  5. 无线抄表与服务器,无线抄表是什么--老兵聊电之
  6. linux下python怎么换行,python如何输出换行
  7. 风控模型大数据挖掘竞赛
  8. Windows系统必备的30个免费开源软件
  9. PNG图像文件存储结构
  10. 微信小程序培训笔记1