The Gap of Semantic Parsing: A Survey on Automatic Math Word Problem Solvers论文阅读

Abstract

这是一篇综述论文,主要是介绍Math word problem solver的一些研究现状和主要方法。
Math Word Problem一下简称MWP。首先什么数学单词问题,这类问题输入由一些文本描述组成,文本里包含了一些数字 q 1 , q 2 , . . . , q n q_1, q_2,...,q_n q1,q2,...,qn和一个需要被求解的变量 x x x。我们的目的是提取相关的数字并把这些数字映射成一些表达式,求解表达式得到解。
MWP
有些数据集是提供了等式,有些数据集没有提供。

而最终的结果是要输出x的值。

**这个问题的难点在于,机器没办法把人类理解的单词转换成机器所能理解的逻辑,进而促进推理。**因此,MWP solver是一个能够测试agent自然语言理解能力级别的很好的工具。
MWP问题提出也有一定的时间了,主要分为3个阶段:

第一个阶段是起步阶段,这个时候机器学习还没有这么火热,大部分的工作都是人为制定规则和模式做模式匹配。由于严重依赖人为的解释以及定义,所以他能解决的问题规模和场景都非常有限,那些场景也需要人为事先就定义。
第二个阶段开始借助语义分析工具,这些工具能够把问题中的句子映射成一些结构逻辑表达,这样可以有效促进推理。 而由于机器学习的发展,一些统计学习的方法也应用到了MWP上,许多作者都声称他们的方法在公开数据集或者人工采集的数据集中都有很好的效果。这些方法是通过设计MWP问题的子问题,然后通过解决子问题解决MWP问题。
第三个阶段的MWP solver则是借助更前沿的技术,DL&RL技术。 但是这些技术没有论文所说的能带来这么好的效果。事实上后来提出的方法中有许多方法的准确率并不太好,还有很大的提升空间。改进方向有两:其一是对语义分析技术微调,另一个方向是尝试结合DL,结合大规模的数据。

Contribution:

  1. 提供大量的MWP问题,包括算术问题,等式问题,几何问题。因为在很大MWP问题中,许多文章所用的数据集都是自己提供的,和其他论文基本没有什么可对比。
  2. 在以往的MWP solver中有一类问题arithmetic word problem是需要求解等式的,现有工作中,只能求解一个变量的求解器和求解多个变量的求解器在以往工作中没有什么区别。但是实际上能够求解多个变量的求解器更加通用。这篇综述会阐述他们的区别。
  3. 特征工程在语义分析扮演这至关重要的角色。几乎所有的solver都阐述了他们制作有效特征的策略,但他们对特征之间并没有清晰的组织。综述会对这些特征做总结。
  4. 在效果评估的时候,由于没有大家统一接受的数据集,许多方法都是在自己的实验数据集上对比优越性,而很少和竞争对手相对比。

Arithmetic word problem solver

arithmetic word problem其实就是小学应用题,输入问题的描述,里面会隐含 n n n个变量。目标是要提取出相应的数字组合成等式,并求解出变量。并且只有 { + , − , / , ∗ } \{ +,-,/,* \} {+,,/,}四种算术符。对于这个问题,会阐述四个主要的方法:rule-based, statistic-based, tree-based and deep learning (DL)-based methods.

Rule-based Method

基于规则的方法算是比较早的一种方法了,基于人工特征。WORDPRO 能够解决一步的算术问题(只需要一步就能算出)。

WORDPRO预定义了四种模式: c h a n g e − i n , c h a n g e − o u t , c o m b i n e 和 c o m p a r e change-in,change-out,combine和compare changein,changeout,combinecompare而问题文本会转换成一些命题语句,答案会通过简单的推导得到。 按照这里的描述有点像是一阶逻辑的推理。

另一种方法是ROBUST ,ROBUST系统能够理解 无限制格式的多步算术问题 。同时把在WORDPRO中的 c h a n g e change change模式扩展成六个不同的类别。问题文本会按照句子划分,每一个句子对应一个命题表达。

还有其他提出的一些方法,但是这些方法都过时了,这里并没有太详细的介绍。这些简单的由规则驱动的模型只能理解非常简单的数学问题。这些问题解决方式有点像是一阶逻辑的推导,没有仔细看不太敢确定。但是他们的处理方式很像,人为预先定义一些规则,先提取出一些命题表达,然后导入规则库执行规则的一阶逻辑程序得到结果。

Statistic-based Methods

接下来的这这几个方法是第二阶段的方法。基于统计学习的方法利用统计学习的方法识别实体,数值和运算符,然后通过简单的推理得到结果。需要推理的话应该也是需要北背景知识。这有点像neural-symbolic machine,比如deepprolog,对于一些识别任务用过机器学习去完成,而对于逻辑的任务则通过推理完成。其中一种实现:Reasoning about quantities in natural language ,他们使用三种不同的分类器对问题的不同部分做选择。数值分类器决定使用哪一对数值会被使用了;操作分类器会在四种不同的操作中选择一个合适的操作;顺序分类器只会应用在减法或者除法的情况上,因为这两类操作对顺序很重要。然后使用一个infered expression就可以推导答案了,就是通过一个等式计算等式结果。这种实现只能解决带有一种操作符的算术问题。

上面提到的只是写单步的问题,为了能够解决多步的算术问题,statistic-based需要更先进的逻辑规则模板,这通常会需要对问题文本注释并把他们关联到逻辑模板里面。比如 ARIS 就定义了一个由实体,拥有者,属性,关系组成的逻辑模板。比如I have 4 red apples,那么apple就是实体,I就是container,red就是attribute。细节上,文本里面的动词会被分成几个类别:observation, positive, negative, positive transfer, negative transfer, construct and destroy。将问题拆分成几个部分,通过动词的类别更新问题状态。为了训练这些动词分类器,我们需要对训练集里面的内容做标注。ARIS先通过统计学习的方法把实体,关系等等抽取出来,然后通过分类器分类动词类别,通过logic template推断,当然他这里的推断和知识表示和推理的推断没有什么关系。

Natural language processing for solving simple word problems follow 了 ARIS的推理部分,他们预定义了一个schema的语料库,然后通过和语料库匹配句子直到文本的句子匹配了语料库,从而触发更新操作。

往后的研究工作又有定义了新的逻辑模板,定义了三种逻辑模板,part whole, change 和 comparison,可以解决带有加法和减法的操作。第一步将断言与公式连接起来。第二步,利用带学习参数的对数线性模型辨识最有可能公式,并将其转化为代数方程。

接下来的几种方法都是,将一些句子转换成一些他们自己的定义的命题语句,但这些命题语句并不是知识表示与推理的逻辑表达,推理也是他们自己定义的一些推理,比如前面提到的一些推理模板 { w h o l e : x , p a r t s : 42 , 47 } , v e r b { v 1 , p i c k } & n s u b j ( v 1 , F r e d ) & d o b j ( v 1 , n 1 ) & h e a d ( n 1 , l i m e ) & n u m m o d ( n 1 , 36 ) \{ whole: x, parts: {42, 47} \},verb\{v1, pick\} \& nsubj(v1,Fred) \& dobj(v1,n1) \& head(n1, lime) \& nummod(n1,36) {whole:x,parts:42,47},verb{v1,pick}&nsubj(v1,Fred)&dobj(v1,n1)&head(n1,lime)&nummod(n1,36)。这些表达明显不是知识表示与推理的。

总的来说,基于统计学习的方法有两个缺点:1. 需要人工额外的注释,并且没办法处理大规模的数据。比如ARIS就需要对动词做标注帮助训练。2.这些方法需要定义预定义的模板,模型相对脆弱。除法和乘法则需要花费大量的精力去定义模板了。 基于统计的方法基本上都是先预定义模板,然后通过选了机器学习分类器从文本中提取特征填入模板中,然后做推理。

Tree-Based Methods

算术的等式可以表达成一颗语法树,收到启发于是提出了这种方法。

基于树的算法大多数都是有两部分组成,第一部分是从文本中提取出数字,然后列举所有可能的语法书,结构和内点都不一样。第二个阶段会使用一个评分函数取得分数最大的一棵树,最后计算结果。

很明显,这种方法会在搜索上浪费很大时间,如果数字多起来是可以构建很多种树的,所以后面的一些研究方法尝试在减少搜索空间上入手。比如会设定一个分类器,对一个数值做分类,判断是否是相关的,如果是相关的,那就参与构建一颗树。或者是使用beam search减小搜索空间。

基于树的方法有一个很明显的缺陷,就是他需要构建许多树然后选择,这样搜索空间会非常大。而且不经过语义理解直接就提取数值,很容易会提取到一些很文本无关的数值。

DL-based Methods

第三阶段的方法,则是基于DL的方法了。DL的优点当数据量够多的时候,不需要人类干涉就能学习提取特征。
其中比较经典的有T-RNN。T-RNN是seq2seqET的改进,而seq2seqET又是following了DNS的,T-RNN可以看作是Seq2SeqET在数量编码、模板表示和树构造方面的改进。首先,Bi-LSTM网络和自注意力机制把数值矢量化,其次,封装运算符,进一步减少搜索空间,比如 A ∗ B , A + B , A / B A * B, A + B, A / B AB,A+B,A/B都可以看成是 A < o p > B A <op> B A<op>B,最后用RNN推导未知的变量。

RL的方法,Mathdqn: Solving arithmetic word problems via deep reinforcement learning。使用DQN的动机是因为DQN在解决搜索范围较广的问题时有很好的成效。但是RL的强化学习任务的场景不适用于这里,于是他们做了写改进,在语法树的基础上,他们把语法树构建成了一个马尔科夫决策过程,并提出了MathDQN求解问题。 然后相继定义了action,state,使用两层的神经网络来近似Q-value function。它的深层Q网络作为运算符分类器,引导模型选择最有可能的操作符进行树构造。

DataSet


这些数据量都非常小,拿来训练统计学习的算法估计都不太够了,更不用说深度学习。

EQUATION SET SOLVER

这类其他其实解方程组
相比较算术,这些问题更难了。

Parsing-Based Methods

这种方法可以看成是tree-base 方法的扩展,用于解决方程组的问题。将文本转换成一棵DOL树,计算每一个DOL节点的评分,取分数最高的树推理作为答案。其实就是tree-based的扩展,方式基本一致,但是解决的任务不一样。但是这种算法是基于上下文无关文法,所以还是需要人为的构建语法规则。

后面的方法都大同小异,只介绍DL的方法了。

DL-Based Methods

前面的方法都需要人工提取特征,Deep Neural Solver(DNS)则不需要。这是第一篇不需要人工提取特征的论文。在DNS中,深度学习的模型是sequence-to-sequence。在编码层,使用GRU来提取一些相关的词,这个seq2seq模型将MWP问题转换成等式模板,然后通过一个数字映射步骤,用从文本中提取的数量填充等式中的空格。同时为了确认输出的等式是正确的,同时还会预定义一些规则。

DataSet


ALG514数据量这么少DL也能跑这么好。

GEOMETRIC WORD PROBLEM (GWP) SOLVER


几何问题更难了,这不仅仅有自然语言处理的理解,还包含了对图形的理解。

GWP Solvers

GEOS是第一个解决几何问题的solver。
主要是通过两个步骤:1.通过生成一段逻辑表达式来分别解析文本和图表的关键信息以及置信度得分。2.通过调整导出逻辑表达式的可满足性来解决优化问题,该方法需要手动为每个谓词定义指标函数。

Conclusion

MWP问题还有很大的提升空间,而且随着Dolphin18K and Math23K这种大规模数据集的加入,估计很多DL RL方法随后也会进入到此领域。

MWP问题还有几个未来的研究方向:

  1. 通过构建端到端的模型避免人工特征提取以提高准确率。DNS,TNN都这类模型。论文中还有提到RL的方法,但没有展开讲。
  2. 结合视觉理解和文本理解。几何问题就是这一类问题。
  3. 可解释性。可解释性可能需要逻辑推理的参与了,不过这又回到了rule-base模型的一些问题。

我个人比较关注的还是DL和RL这方面的工作。

Deep neural solver for math word problems

Deep neural solver for math word problems 这篇文章是第一篇在MWP问题上做DL的工作。结合seq2seq和similarity-based retrieval model解决MWp问题。

首先将文本中的数字用token代替,然后将替换后的文本做embedding输入到seq2seq模型,使用GRU而不是LSTM的原因还是因为数据量的原因,数据量太少,使用GRU容易overfitting。然后生成表达式,最后用数字替换即可。为什么不直接输入文本,可能是有两个原因,如果是直接输入文本,那么文本数字是有很多可能的,1到1w都有可能,所以sea2seq的vocabulary里面要包含很多数字,单词表就太大了。其次,文本中的数字也有很多无关的数字,在number mapping过程中也可以做筛选,无关的数字去掉。论文是使用LSTM做的分类器,能做到99.1%,说明还是很可靠的。
这篇文章并没有直接用seq2seq模型作为预测,而是结合了similarity model,设定了一个阈值,如果超出了这个阈值就用similarity model,否则就是seq2seq model。这个模型称为Hybrid model。

Semantically-Aligned Equation Generation for Solving and Reasoning Math Word Problems

Semantically-Aligned Equation Generation for Solving and Reasoning Math Word Problems 这篇文章也是seq2seq model做的,感觉他就是在不断的堆叠模型,但是他用了一个人类思考方式作为他的motivation。这篇文章主要复杂的地方在于decoder。encoder是从文本中提取语义信息,而decoder是根据语义信息构造等式,其实就是把推理过程embedding进了神经网络里面。

Translating a math word problem to a expression tree

Translating a math word problem to a expression tree 这篇文章是是将seq2seq model做了个aggregation。

MathDQN: Solving arithmetic word problems via deep reinforcement learning

这篇文章是结合强化学习做MWP。

这篇文章另一篇博文讲到过。首先通过分类器提取出相关的词,然后对这些词做排序,接着将词按顺序两两提取特征,结合上下文形成state,输入神经网络选择action,然后判断action选择正确与否,正确reward为1,否则回去训练神经网络。表面上看是用了RL,实际上还是监督学习,reward看成是loss function,state看成是一种状态提取,就是有监督的学习。
事实上,RL其实并不太适合做这样的任务,首先他提供了明确的标签,不需要agent探索,其次reward根本体现不出action的适合与否,也没有和环境交互的过程。DQN存在收敛难的问题,冷启动往往会导致DQN需要很多个epoch才能收敛,之前在训练openai atari游戏pong的时候,训练了400w个回合才开始收敛,700w个回合收敛完成,而且那个游戏的状态是stackframe,能够表达游戏的信息,action也少。而在这里定义的state还不能够完全代表语义的信息,信息量也不足训练。

Neural Math Word Problem Solver with Reinforcement Learning

这篇文章也是借用了RL的reward来修改loss function。以往的seq2seq模型是使用MLE训练,这篇文章使用RL的policy gradient训练。剩下的都是对seq2seq的改进。

  • 6
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
3D点云语义分割是一项在计算机视觉领域中引人注目的研究任务,旨在将复杂的3D点云数据进行像素级的语义分类。这项研究具有广泛的应用前景,如自动驾驶、智能机器人、增强现实等领域。 在研究中,3D点云语义分割算法通常包括三个主要步骤:特征提取、分类器训练和语义分割。首先,特征提取是为了提取3D点云数据中的有用信息,常用的方法包括基于图像的特征提取和基于几何特征的提取。其次,分类器训练是为了建立一个能够将提取到的特征与语义类别进行关联的模型,常用的分类器包括支持向量机、决策树和深度学习网络等。最后,语义分割是将训练好的分类器应用于新的3D点云数据,将每个点的语义类别进行划分。 目前,关于3D点云语义分割的研究涉及了多种算法和技术。例如,基于深度学习的方法在该领域取得了显著的突破,尤其是卷积神经网络(CNN)的应用。这些方法通过利用CNN的卷积和池化等操作,可以有效地从3D点云中提取语义特征,进而进行语义分割。此外,一些基于图像的方法也被应用于3D点云语义分割中,通过将3D数据投影到2D图像平面上,再利用图像语义分割方法进行处理。这些方法巧妙地将2D图像的分割技术应用于3D点云数据上,取得了一定的效果。 尽管3D点云语义分割在计算机视觉领域中取得了显著的进展,但仍然存在一些挑战和问题。例如,点云数据的不规则性和稀疏性导致了特征提取的困难;同时,数据标注的成本和复杂性也限制了算法的发展。为了解决这些问题,研究者们正在不断探索新的算法和技术,如图卷积神经网络、图注意力机制等。 总的来说,3D点云语义分割是一个具有挑战性但有着广泛应用前景的研究领域。通过不断地改进算法和应用新的技术,我们有望实现更精确和高效的3D点云语义分割,推动计算机视觉领域的发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值