郭一璞 发自 海边边
量子位 报道 | 公众号 QbitAI

文综提分哪家强?上海交大找AI。

我一个理科生造的AI,怎么就去做历史高考题了呢?-深度学习中文社区

之所以这么说,是因为arXiv上出现了一篇论文,一个可以答高考历史题的AI,还能给高考文综的历史题“提分”。

而这篇论文的作者,是两位上交的同学,分别来自计算机系和上海市教委智能交互与认知工程重点实验室。

比选择题难N倍的简答题

以往AI们“学术研究”的范围往往是理工科领域,但是Zhuosheng Zhang和Hai Zhao两位同学选择了一个完全不一样的科目:历史。

而且不是简单的单选或多选题,他们这次要让AI来答简答题。

有前人曾经用过AI来回答多选题,比如让AI读取维基百科上的相关内容,匹配和问题相关的词汇。但简答题却完全不一样,需要用到复杂的知识计算。

简答题,问题千奇百怪。让AI做简答题该从哪里入手呢?

找到文科生的套路

其实高考的历史简答题是有“套路”的:题型只有五种,分别是背景、原因、主张、事实、意义。

背景

考察学生对某个历史时期相关社会背景知识的了解,如:

运用我们从古代诗文、戏曲、民间传说中已经学到的知识,举例说明中国古代自给自足的自然经济的状况。

原因

解释某些历史事件、社会现象的原因,如:

春秋战国时期是社会剧烈动荡的历史阶段,为什么在这样的时期会出现思想文化活跃的局面。

主张

把历史上思想家们的观点写出来,并加以分析归纳,如:

在启蒙运动中,众多的启蒙思想家的共性思想主张是什么? 他们之间有何继承和发展。

事实

通过讲述历史事实来分析问题,比如:

“农民可能充当一种极端保守的角色,也可能充当一种具有高度革命性的角色。” 试结合有关史实评析这一观点。

意义

分析历史事件有什么意义,这类题我们在中学历史和政治考卷上见过很多:

用历史唯物主义和辩证唯物主义的观点来分析古代雅典民主政治和罗马法发展的历程,了解它们对后世的作用和影响。

看明白了五类问题的题型,我们大概对高考的历史题有了一点清晰的认识。接下来,需要去四处找语料了。

请高中历史老师帮忙处理数据

历史是一门敏感的学科,尤其是高考历史,要是AI的“思想”出了偏差,可就需要接受再教育了。所以,我们只给AI投喂高中历史课本上的信息作为语料。

拿到历史课本后,作者找到了专家,根据课标要求的1929个知识点,提取出了教科书中的1929个文本片段。

然后,拿出珍藏的五三,挑出一定数量的真题,结合教科书中的文本,给这些题目分配对应的答案。

现在,我们得到了1929对带注释的问答,然后把这些问答等分为训练集和测试集两部分。

最终,我们得到了一个有一万多个字的数据集:

我一个理科生造的AI,怎么就去做历史高考题了呢?-深度学习中文社区

NTM+CGNN的模型

现在,有了数据集之后,关键来了:

要搭建一个什么样的模型,来接受这些数据的训练和检验,努力像个高中生一样来回答这些历史简答题呢?

这个模型的结构,主要包括两个部分,一个是合作门控神经网络(cooperative gated neural network, CGNN),另一个是神经图灵机(neural turing machine, NTM)。

整体如下图所示:

我一个理科生造的AI,怎么就去做历史高考题了呢?-深度学习中文社区

在整个模型中,合作门控神经网络(cooperative gated neural network, CGNN)用于特征表示和答案检索。

CGNN的具体工作过程如下图所示:

我一个理科生造的AI,怎么就去做历史高考题了呢?-深度学习中文社区

模型的另一部分神经图灵机(neural turing machine, NTM),用来拆解题目,打上各种各样的标签。

NTM的工作过程如下图所示:

我一个理科生造的AI,怎么就去做历史高考题了呢?-深度学习中文社区

打标签的具体效果,是下面这个样子:

问题为“分析人类生产力的进步与世界市场形成之间的关系,谈谈世界市场形成对人类生活方式有何影响。”

我一个理科生造的AI,怎么就去做历史高考题了呢?-深度学习中文社区

标点符号都被去掉了,而所有的词汇都被拆分成了一个一个的标签用不同深度的红色表示。

而这个问题的答案也被改为了标签:

我一个理科生造的AI,怎么就去做历史高考题了呢?-深度学习中文社区

答案第一条:“密切了国际交流,各国与各行业间生产的互补性增强,为世界市场的形成准备了物质条件。”

我一个理科生造的AI,怎么就去做历史高考题了呢?-深度学习中文社区

第二条“引起运输的技术革命,促进了国际间人口和资金的流动。”

提分成绩好,家长很放心

理科生搭建这样一个模型,能在文科生的考试里拿下几分?

虽说没正式参加高考,但他们用自己的测试集,检验了一下自己模型的成绩,和机器问答界的前辈们比拼了一下。

我一个理科生造的AI,怎么就去做历史高考题了呢?-深度学习中文社区

上图,就是它们的成绩单了。括号外边的,是每种算法自己取得的成绩;括号里,是这些算法在与打标签的NTM配合使用取得的成绩;加号,表示的是这些模型在NTM加持下提升了多少分。

从这份成绩单上,可以看出两点,

一是与前辈算法们相比,CGNN的确能取得更好的成绩。

二是在“标签法”的助力之下,每种旧算法的表现都得到了提升。

附:论文传送门

One-shot Learning for Question-Answering in Gaokao History Challenge

作者:Zhuosheng Zhang, Hai Zhao

发表于COLING 2018

arXiv:arxiv.org/abs/1806.0910

Github(数据集):github.com/cooelf/Onesh

 

欢迎大家关注我们的专栏:量子位 - 知乎专栏

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态