Hosseni 2014训练一个分类器判断一个动词属于加/减
最后,计算机需要具有一定有关现实世界的常识去理解自然语言里面一些隐式的指代。比如圆周率为3.14,速度乘以时间等于路程等等。在鸡兔同笼问题中,鸡有两条腿、兔有四条腿是隐式包含的条件,只有知道这些常识才能正确的解答问题。
历史与现状
智能答题系统最早可以回溯到20世纪60年代。1964年提出的STUDENT(Bobrow 1964)系统可以视作早期答题人工智能实现的代表:输入有规定的描述方式的数学题,人工定义一组关键词和关系(如EQUAL, SUM, PRODUCT),把自然语言(linguistic form)通过模式匹配映射到对应的函数关系表达。例如句子“the number of advertisements is 45”可转化为函数表达方式(EQUAL (NUMBER OF ADVERTISMENTS)45)。之后的CARPS系统(Charniak 1968)能够把自然语言表示成为成树状结构,再匹配生成公式解答,此外它嵌入了很多数学模型的知识,如面积、体积、维度等等。但CARPS系统仅限于解决比率问题 (ratio problem)。
2008年之前多数关于智能答题系统的工作都是基于预定义的模式匹配规则,这类工作主有两个主要的缺点:(1)定义的规则覆盖率小,能解决的问题十分有限,而在真实场景下数学题目的描述往往是比较自由、不太受限的;(2)评测比较模糊,这些系统很少给出评测结果以验证其有效性。
在这之后有了很多不同的尝试。比如SoMaTePs系统(Liguda & Pfeiffer 2012)尝试用扩张语义网(Augmented Semantic Network)表示数学题,抽取题目的对象(object)作为节点,节点之间的关系包括加减乘除。ARIS系统(Hosseini 2014)让机器学习题目中的动词,并对这些动词进行加减二分类,把数学题看作以动词为关系的状态转移图,但这个方法目前只解决一元加减问题,不考虑乘除。
MIT于2014年在国际计算语言年会(ACL 2014, Kushman 2014) 上提出了一种基于统计学习的方法(命名为KAZB),引入了模板的概念 (比如“1+1”和 “1+2”同属于一个模板x = a + b) 。根据公式的标注把数学题归类成不同的题型,抽取题目中不同层次的特征(如有关词汇、词性以及语法等),使用统计学习技术自动判断题型。但是此类方法的一个缺点为:无法解决训练集之外的题型。比如训练集只出现过两个数相加,机器无法泛化解答三个数相加的问题。之后百度ZDC(Zhou et al. 2015),微软研究院 (Upadhyay 2016)的研究团队也在同样的方法框架下分别做了不同的优化改进。在一个开放的评测数据集上(即ALG514,含有514道题),三个系统准确率在上分别是68.7%,78.7%以及83%。
随后,华盛顿大学的ALGES系统(Koncel-Kedziorski et al. 2015)定义了Qset的概念(一个Qset包括Quantity,Entity,Adjective等属性)。首先抽取一道问题的Qset,利用线性整数规划把Qset和加减乘除生成可能的公式,再选出最有可能的公式解出答案。目前限定于一元一次方程。他们同时构建了一个508道题的数据集,系统获得的准确率在72%左右。
艾伦人工智能研究所除了考虑数学文字题之外,还有关于几何看图题的研究。GEOS (Seo et al. 2015) 根据几何数学定义了一组数学概念以及函数,对图和文字分别构建了不同的分析器(parser)。他们在186道SAT的数学题上获得的准确率大概是60%左右。
下表对以上一些具有代表性的系统做出了总结。给出一道数学题文字描述,系统需要涵盖三大部分:自然语言理解,语义表达和映射以及数学推理得出解决公式和答案。
应用场景
作为一种有趣的人工智能问题,数学解题相关的研究和努力不仅有助于推动机器智能的进步,同时也会在众多实际应用场景中产生价值。
>>>> 线上教育
近几年兴起的中小学生学习平台,该类应用普遍会支持如下功能——学生可以采取对准题目拍照,或者文字语音方式来输入数学题,学习平台识别题目并给出解题思路。由于此类平台具有庞大的题库,因此可以通过识别匹配题目来实现上功能。该应用的用户量已经突破一亿,在教育市场份额巨大。但是这些平台中所有的题目需要人工预设解题思路,受限于此,题库的扩展存在一定约束。人工智能数学解题的成功解决将会大大提升此类平台。