尽管人工智能的热点此起彼伏,但毫无疑问的是,自然语言处理始终是实现智能、自然人机交互愿景里一块重要的技术基石。而机器阅读理解则可以被视为是自然语言处理领域皇冠上的明珠,也是目前该领域的研究焦点之一。自然语言处理技术在语音助手、机器翻译、智能搜索、智能推荐、智能客服、智能机器人等人工智能应用具有重要意义,需要大量依赖机器阅读理解来阅读真实人类问题、互联网材料以及给出完整答案。
机器阅读理解(MRC)是指对文本的自动、无监督理解;让计算机具备通过文本数据获取知识和回答问题的能力,人们相信这是构建通用智能体的一个关键步骤。MRC社区近些年来增长迅速。
在过去的二十年左右,自然语言处理(NLP)为底层句法和语义文本处理任务开发了强大的方法,如解析,语义角色标注和文本分类。在同一时期,机器学习和概率推理领域也取得了重要突破。现在AI社区已经逐步转向研究如何利用这些进步来理解文本。
这里“理解文本”一词意思是基于文本语料库和背景/理论形成一套连贯一致的理解。因为文本和背景/理论可能不一致,所以用概率术语来表达结果信念和推理过程是很自然的。这里值得指出,许多对文章的理解只能与背景/理论相结合。举例来说,如果文字指出一个人在满意的进餐后离开餐厅,那么推断他可能已经支付账单并留下小费是合理的。即推论是文本理解的一个组成部分。
一般来说,人们在读完一篇文章之后就会在脑海里形成一定的印象,例如这篇文章讲的是什么人,做了什么事情,出现了什么,发生在哪里等等。人们能够很轻而易举地归纳出文章中的重点内容。机器阅读理解的研究就是赋予计算机与人类同等的阅读能力,即让计算机阅读一篇文章,随后让计算机解答与文中信息相关的问题。这种对人类而言轻而易举的能力,对计算机来说却并非如此。
机器阅读理解其实和人阅读理解面临的问题是类似的,不过为了降低任务难度,很多目前研究的机器阅读理解都将世界知识排除在外,采用人工构造的比较简单的数据集,以及回答一些相对简单的问题。给定需要机器理解的文章以及对应的问题,比较常见的任务形式包括人工合成问答、Cloze-style queries和选择题等方式。
人工合成问答是由人工构造的由若干简单事实形成的文章以及给出对应问题,要求机器阅读理解文章内容并作出一定的推理,从而得出正确答案,正确答案往往是文章中的某个关键词或者实体。比如下图展示了人工合成阅读理解任务的示例。图1示例中前四句陈述句是人工合成的文章内容,Q是问题,而A是标准答案。
Cloze-style queries是类似于“完形填空”的任务,就是让计算机阅读并理解一篇文章内容后,对机器发出问题,问题往往是抽掉某个单词或者实体词的一个句子,而机器回答问题的过程就是将问题句子中被抽掉的单词或者实体词预测补全出来,一般要求这个被抽掉的单词或者实体词是在文章中出现过的。目前的各种阅读理解任务中“完形填空式”任务是最常见的类型。
很长一段时间以来,自然语言处理的研究都是基于句子级别的阅读理解。例如给计算机一句话,理解句子中的主谓宾、定状补,谁做了何事等等。但长文本的理解问题一直是研究的一个难点,因为这涉及到句子之间的连贯、上下文和推理等更高维的研究内容。随着各种数据集的推出,MRC任务也已经从早期的完形填空式的测试发展成了从单篇文章中提取答案,并且最近还发展成了更复杂的基于网络数据的问答。例如在智能客服应用中,人们可以使用机器阅读用户手册等材料,自动或辅助客服回答用户问题;教育领域可利用该技术从海量题库中辅助出题;在金融领域中,该技术可从大量新闻文本中抽取相关金融信息等。
机器阅读(MR)与当前的语义NLP研究领域(如信息提取(IE)或问答(QA))非常不同。许多NLP任务利用监督式学习技术,这些技术依赖于手动标记的训练实例。例如,IE系统通常利用从目标关系的实例中提取的规则。然而,MR并不局限于一小组目标关系。事实上,阅读任意文本时遇到的关系一般并不是事先知道的。因此,为每个感兴趣的关系建立手动标记的训练实例是不切实际的。与许多NLP任务相比,MR本质上是无人监督的。
另一个重要的区别是IE和QA关注从文本中获得的孤立的信息,而MR则更注重文本信息内在的联系。虽然MR建立在NLP技术的基础上,但它是一个整体过程,将从文本中收集的信息与机器的现有知识进行综合。
[描述来源:Etzioni, O.; Banko, M.; Cafarella, M. J. (2006).Machine Reading . AAAI. ]
[描述来源:2018 机器阅读理解技术竞赛,奇点机智获第一名|机器之心]
[描述来源:从短句到长文,计算机如何学习阅读理解|机器之心]
2.发展历史
描述
在人工智能发展的早期阶段,研究人员倾向于通过以形式逻辑语言来手工构建大规模结构化知识库,并开发自动推理方法的方式从知识中获取事实进而实现智能机器。然而,随着现代化互联网络的出现,我们所面对的是大量的以人类语言编码的巨大在线信息库。其中一个典型的例子就是科技文献,科技文献的数量正在快速增长:美国国家医学图书馆Medline系统中的索引规模呈指数级增长。即使在狭小的专业领域,科学家们也无法跟上这样的增长速度。因此,为了理解和总结文献,以及从这些文献中提取事实和假设,针对机器阅读的需求逐步提升。
早期的研究还谈不上阅读理解,其任务也只是阅读而已。例如,使用结构化的预测分类器从词序列和句子的语法结构中提取特征来抽取关系。一个比较典型的例子是Aron Culotta和Jeffrey Sorensen在2004年使用支持向量机(SVM)检测和分类新闻文章的自动内容提取(ACE)语料库中的实体之间的关系。这类系统是诸如生物医学等领域中应用的文献事实提取工具的支柱。
很快,随着深度学习的流行,越来越多的研究者使用神经网络来构建自己的模型。Karl Moritz Hermann等学者于2015年发表的论文“Teaching Machines to Read and Comprehend”中提出了两个基础模型——”Attentive Reader”和“Impatient Reader”,成为了后来许多研究的基础。Attention Reader在处理的时候,⾸先采⽤双向RNN分别表⽰⽂本(看做⼀个“长句⼦”)和问句,再利⽤attention机制寻找⽂本表⽰中同问句相关的信息,最后根据相关程度提取⽂本信息做分类并给出预测的答案。2016年,IBM公司的Kadlec提出了Attention-Sum Reader,该模型直接利⽤attention机制基于问句表⽰在⽂章中寻找最相关的词作为答案。Attention-SumReader同Attention Reader在模型框架上⼏乎类似。Attention-Sum Reader直接利⽤attention机制获取⽂本中各个位置作为答案的概率(需要将同⼀词语在⽂本中不同位置的概率加和作为该词语成为答案概率),⽽不再同Attention Reader最后⼀步那样,通过分类(softmax)获取各个词语作为答案的概率。
同年,Rajpurkar等人提出阅读理解数据集SQuAD。该数据集包含10万个(问题,原文,答案)三元组,原文来自于536篇维基百科文章,而问题和答案的构建主要是通过众包的方式,让标注人员提出最多5个基于文章内容的问题并提供正确答案,且答案出现在原文中。自SQuAD出现后,涌现了大量具有代表性的模型,极大地促进了机器阅读理解领域的发展。SQuAD提出后,Caiming Xiong等学者引入动态协调网络(DCN)进行问题解答(Question Answering)的任务,该模型当时在SQuAD比赛中取得了第九名,单个DCN模型将先前的F1值从71.0%提高到75.9%,而使用模型集成(model ensemble)后提升到了80.4%。
2017年,为了研究机器阅读理解的问题,谷歌韦福如和杨南等学者在内的研究团队试图去建模人做阅读理解的过程。他们采用了R-NET,一个多层的网络结构,分别从四个层面对整个阅读理解任务的算法进行了建模。取得了当时SQuAD数据集测评的第一名。
2018年,微软和阿里巴巴的机器阅读理解系统在SQuAD数据集测评结果中取得了并列第一的成绩。这是历史上第一次,机器阅读理解的精准匹配分数超越了人类的评测结果。阿里巴巴参与测评的系统名为SLQA,即Semantic Learning for Question Answering,是iDST NLP团队提出的「基于分层融合注意力机制」的深度神经网络系统。而在阅读理解任务上使用基于注意力的深度神经网络最早就是由Karl Moritz Hermann和Phil Blunsom等学者在2015提出的,当时主要是针对针对机器阅读系统缺乏有效的监督学习算法这种类型的评估和大规模的测试数据集。随后,百度提出的V-NET模型,登顶MS MARCO数据集榜单。值得注意的是,此次百度只凭借单模型(single model)就拿到了第一名,并没有提交多模型集成(ensemble)结果。
据介绍,相比SQuAD,MARCO的挑战难度更大,因为它需要测试者提交的模型具备理解复杂文档、回答复杂问题的能力。对于每一个问题,MARCO提供多篇来自搜索结果的网页文档,系统需要通过阅读这些文档来回答用户提出的问题。但是,文档中是否含有答案,以及答案具体在哪一篇文档中,都需要系统自己来判断解决。更有趣的是,有一部分问题无法在文档中直接找到答案,需要阅读理解模型自己做出判断;MARCO也不限制答案必须是文档中的片段,很多问题的答案必须经过多篇文档综合提炼得到。这对机器阅读理解提出了更高的要求,需要机器具备综合理解多文档信息、聚合生成问题答案的能力
而在ACL2018大会上,北京大学计算语言学教育部重点实验室与百度的研究者考虑到在真实网络数据上的机器阅读理解(MRC)在回答一个问题时通常需要机器分析搜索引擎检索到的多篇文章。相比于在单篇文章上的MRC,多文章MRC的难度更大,因为我们很可能会从不同的文章得到多个让人困惑的候选答案。他们提出了一种端到端的神经模型,能让这些来自不同文章的候选答案基于它们的内容表征彼此验证。
目前MRC是一个很活跃的研究领域,研究进展也很快,也有不少研究人员试图将MRC与迁移学习等方向结合起来。
主要事件
年份 | 事件 | 相关论文/Reference |
2002 | Peter Turney提出了一种简单的无监督学习算法,可以高度准确地将意见词语分为正面或负面 | Turney, P. D. (2002). Thumbs up or thumbs down? Semantic orientation applied to unsupervised classification of reviews. Proceedings of the 40th Annual Meeting of the Association for Computational Linguistics, pp 417-424. |
2004 | Aron Culotta和Jeffrey Sorensen使用支持向量机(SVM)检测和分类新闻文章的自动内容提取(ACE)语料库中的关系 | Culotta, A.; Sorensen, J. (2004). Dependency tree kernels for relation extraction. Proceedings of the 42ndAnnual Meeting of the Association for Computational Linguistics (Associationfor Computational Linguistics, Stroudsburg, PA, 2004), pp. 423–429. |
2015 | Karl Moritz Hermann等学者发表的论文“Teaching Machines to Read and Comprehend”中提出了两个基础模型——”Attentive Reader”和“Impatient Reader”,成为了后来许多研究的基础 | Hermann, K. M.; Kocisky, T.; Grefenstette, E.; Espeholt, L.; Kay, W.; Suleyman, M. and Blunsom, P. (2015). Teaching machines to read and comprehend. In Proc. of NIPS, pp 1684–1692. |
2016 | IBM 公司的 Kadlec 提出了 Attention-Sum Reader | Kadlec, R.; Schmid, M.; Bajgar, O. and Kleindienst, J. (2016). Text understanding with the attention sum reader network. arXiv preprint arXiv:1603.01547. |
2016 | Rajpurkar 等人 提出阅读理解数据集SQuAD | Rajpurkar, P.; Zhang, J.; Lopyrev, K. and Liang, P. (2016). Squad: 100,000+ questions for machine comprehension of text. In Proceedings of EMNLP. |
2016 | Caiming Xiong等学者引入动态协调网络(DCN)进行问题解答(Question Answering)的任务 | Xiong, C.; Zhong, V.; Socher, R. (2016). Dynamic Coattention Networks For Question Answering. arXiv:1611.01604. |
2017 | 谷歌韦福如和杨南等学者在内的研究团队提出了他们采用了R-NET | Wang, W.; Yang, N.; Wei, F.; Chang, B. and Zhou, M. (2017). Gated Self-Matching Networks for Reading Comprehension and Question Answering. ACL 2017. |
2018 | 北京大学计算语言学教育部重点实验室与百度的研究者提出了一种能帮助机器更好地从多篇文章中挑选出正确答案的方法 | Wang, Y. et al. (2018).Multi-Passage Machine Reading Comprehension with Cross-Passage Answer Verification.arXiv:1805.02220. |
3. 发展分析
瓶颈
眼下能够回答复杂问题的系统仍处于起步阶段。以必应等搜索引擎和微软小娜(Cortana)等人工智能助手为例,目前它们只能回答一些基本问题,例如“春节黄金周哪天开始?”或者“2,000乘以43得多少?”等。多数情况下,搜索引擎和人工智能助手只能向用户提供一组搜索结果。用户固然可以据此获取所需信息,但前提是他们仍需自己动手再从搜索结果进行筛选,并在网页上找到答案。特别是当MRC涉及到多文章时,目前模型的表现还不够好。
机器阅读目前在场景数据相对较为充分、文档结构清晰、内容描述较为正规的文档上可以取得比较好的结果,如 Wikipedia 类客观知识问答,但当遇到上述条件不满足的复杂问题时,机器阅读还处于比较初级的阶段。另外,机器阅读始终面对着数据规模小或质量不佳的问题。虽然已经有SQuAD这样的数据集,大量的数据集是模型表现的重要前提。
未来发展方向
- 大规模语料集的构建;
- 基于深度学习的算法和模型还有很大的空间,适合机器阅读理解的网络结构值得在SQuAD类似的数据集上进一步尝试和验证;
- 目前基于深度学习的阅读理解模型都是黑盒的,很难直观地表示机器进行阅读理解的过程和结果,因而可解释性的深度学习模型也将是很有趣的研究方向;
- 结合多任务(例如阅读理解之后进行摘要和问答)的模型;
- 大部分算法都是抽取型的方式,未来生成型的算法也值得更多的探索和研究;
- 随着自然语言处理的发展,目前的研究越来越向着模拟人类阅读的方向发展,如结合篇章内容审题、带着问题反复阅读文章、避免阅读中遗忘而进行相关标注等;并将机器阅读的技术真正应用于业务场景。
- 目前机器阅读理解关注的都是理解客观信息的能力,未来机器理解文字里面所表达出来的主观信息(例如情感)也是非常有趣并值得关注的方向
Contributor: Yuanyuan Li