第1章 概论
1.1 任务简述
提起“阅读理解”,相信读者并不陌生——不论语文还是英语考试中,它都是常见题型——通过填空、选择、问答等形式,来测试学生阅读和理解一定语言的文字资料的能力。机器阅读理解(Machine Reading Comprehension, MRC)与语言考试中的阅读理解题类似,只不过测试对象从人变成了机器,让机器根据给定的文本,回答与文本内容相关的问题,以此衡量机器理解自然语言(文本)的能力。换言之,机器阅读理解任务的输入是问题和文本,问题通常与文本内容相关;而输出是机器预测的答案。图1.1给出了机器阅读理解任务的直观表示。
图1.1 机器阅读理解任务示意
人们研究机器阅读理解任务已经有四十多年历史了,但在很长一段时间里,主要聚焦于基于规则或基于传统机器学习的方法,模型训练、方法验证等环节使用的数据样本量非常少,且相对简单,导致相关技术成果的实用性不强。这种局面在2015年左右发生了巨大改观,一般认为,这主要归功于以下两点:
一是深度学习技术在机器阅读理解任务上的应用,催生了基于深度学习的机器阅读理解(或称神经机器阅读理解)模型,这类模型更擅长于挖掘文本的上下文语义信息,并具有更好的泛化能力,其性能相对于传统模型有了显著提升,接近、甚至在部分测试集上超过了人类水平。
二是在此期间一系列大规模机器阅读理解数据集的构建和发布,如CNN&Daily Mail[1]、SQuAD[2]、MSMARCO[3]等。这些数据集不仅使得训练参数量巨大的深度神经网络成为可能,也使得模型测试和验证更加充分。
也因此,基于深度学习的机器阅读理解技术在近几年里受到越来越多关注,已成为学术界和工业界的热点、甚至焦点,其热度在相关竞赛中体现得尤其淋漓尽致:自2016年斯坦福大学公布了 SQuAD数据集并发起了在此数据集上的竞赛之后,各大公司、高校和科研机构争先恐后地参赛和刷新榜单,各种模型层出不穷,机器阅读理解领域的“军备竞赛”拉开帷幕。随后,微软公布了MS MARCO 数据集,相比于SQuAD,MS MARCO数据集中的问题为真实的用户搜索数据(即问题由真人提出),答案是人工生成的高质量回答,文档也由给定一篇文章变为了给定10篇,这种设置与实际应用场景更加贴合,也对机器的阅读理解能力提出了更高要求。在中文领域,百度公司2017年公布了大规模中文机器阅读理解数据集 DuReader[4],并针对此数据集成功举办两届机器阅读理解技术竞赛,一定程度上促进了中文机器阅读理解的发展。值得注意的是,微软亚洲研究院、阿里巴巴等提出的模型先后在SQuAD数据集上超越了人类平均水平,这标志着机器阅读理解技术取得了突破性进展;之后提出的BERT[5]等基于上下文的文本表示技术,通过使用大规模语料进行预训练,进一步显著提升了机器阅读理解模型的表现,无疑为本领域发展再添了一把大火。
机器阅读理解如此备受关注,无疑与其具有较高的应用价值和较好的应用前景有极大关系。凡是需要依据一定文本资料来回答问题的应用场景,比如在线客服回答客户有关本公司或产品服务条款的问题、在线法律助理根据法律文书回答求助者的问题、等等,都可以引入机器阅读理解技术来加以支撑。此外,正如很多科幻片里演绎的那样,由于问答是人们交互过程中最重要的形式之一,所以阅读理解文字或语音资料、然后回答提问的能力,往往也是我们期待的、类人机器人所应具备的能力之一。在后面1.5节,我们还将进一步讨论机器阅读理解的典型应用。
机器阅读理解如此备受关注,也是由于该领域目前并不成熟、还有很大的研究空间。虽然前面已提到,在SQuAD(特别是SQuADl.O)等相对简单的特定数据集上,机器阅读理解的精度水平已经超越了人类的平均水平;但在更多数据集上,现有模型的反应速度和精度水平与人类相比,还相去甚远。特别是,由于自然语言具有表达的随意性、灵活性,语法规则的复杂性、多变性,以及与时俱进的演化性,实际应用中往往存在新词新句、语言混用、连续提问、多重指代、省略成分等很多挑战性的语言现象,需要本领域研究人员逐一去研究解决。
1.2 发展历程
对机器阅读理解的相关研究,最早可追溯到20世纪70年代,迄今已经过近50年的发展,其历程大致可以划分为略有重叠的三个阶段,分别称为“早期”、“近期”和“当代”。这种划分方式受到陈丹琦(Danqi Chen)女士的博士论文中相关内容的启发[8],那里她称三个阶段分别为“早期系统(Early Systems)”、“基于机器学习的方法(Machine Learning Approaches)”和“复苏:深度学习时代(A Resurgence: The Deep Learning Era)”。
本节接下来分阶段概述机器阅读理解技术的发展历程,有关每个阶段中涌现的方法、技术和数据集的更详细内容请参考本书附录3。
1.2.1 早期
这一阶段大致从20世纪70年代持续到20世纪末。期间,机器阅读理解任务被引入,并逐渐引起关注,但相关研究主要针对特定领域的小数据集,所采用的方法则主要基于规则或基于模式匹配。
早期工作中最有开创性和代表性的要数耶鲁大学人工智能团队Lehnert等人开发的故事阅读理解系统QUALM[9]。该系统将故事和问题表示为一定的语义结构,然后通过动态化的语义结构匹配来实现问题回答。在研究过程中,Lehnert 和她的同事发现,对故事乃至问题的理解和表示往往需要用到很多外部知识,为了引入这些外部知识,他们后来又设计开发了 BORIS系统[10]。但这些早期系统在方法验证上很不充分,往往只针对少量故事或故事书籍进行实验,并且模型中用到了很多人工制定的规则或外部知识,这大大限制了方法的普适性,相关系统更多是实验室的概念演示验证原型,距离实际应用还十分遥远。
之后从20世纪80年代中后期直到90年代末,有关阅读理解的研究更多集中在心理学领域,而计算模型方面的研究则日益稀少。造成这种局面的一个重要原因是,当时没有形成科学统一的评价方法。
模型评价离不开指标和数据集,而如英语阅读试题一类的、用于测试人的阅读理解能力的数据资料早已大量存在,且具有很高的质量(往往为每个问题都提供了准确的参考答案)。这启发了Hirschman[11]等人在1999年左右发表的里程碑工作:他们利用现成的英语阅读理解语料构建了一个高质量数据集,一般称为“Remedia数据集”,并设计实现了一个模块化的自动机器阅读理解系统Deep Read。尽管该系统只使用了简单的基于规则的方法,但在Remedia数据集上的测试精度超过了30%。
Hirschman等人的工作,特别是Remedia数据集引起了本领域的髙度关注,也激发了2000年左右一系列的后续研究。特别是,2000年首届北美计算语言学分会的年会(North American Chapter of the Association for Computational Linguistics, NAACL)上,设置了一个名为“用于评测计算机自然语言理解系统的阅读理解测试”的专题研讨,其中 Riloff和Thelen 的 Quarc (Question Answering for Reading Comprehension)系统,以及Brown大学Chamiak等人的模型[12],均采用基于规则的机器阅读理解方法,并将Remedia数据集上的测试精度提升至40%左右。
总之,这个阶段中机器阅读理解任务被引入,并提出了一些基于规则(或基于模式匹配)的算法模型,但所用数据集通常较小、测试精度也较低,整体上属于初步探索与概念演示验证阶段,离实用需要还有很大距离。
1.2.2 近期
这一阶段在时间跨度上大致从2000年持续到2015年,技术特点包括:一是仍然主要针对小数据集;二是决策树等传统机器学习模型逐渐被应用到各种阅读理解系统中,使得这些系统具备了更好的领域适应能力。
最早报道的基于机器学习的阅读理解模型,同样发表在上面提到的首届 NAACL的“用于评测计算机自然语言理解系统的阅读理解测试”专题研讨中,其基本思路是,将故事中的句子视为候选答案,然后将答案预测任务转化为对故事中每个句子与问题构成的问题-句子对的二分类任务。不过,该模型在Remedia 数据集上的最佳测试精度只有14%,远低于同年发表的基于规则的方法,难言是一次成功的尝试。但所提出的、将答案预测转化为对问题-句子对进行分类的思路,却十分巧妙,也被后续工作长期沿用。
2000年晚些时候召开的SIGDAT和EMNLP联合会议上,新加坡防卫科学实验室(DSO National Laboratories)的Ng等人报道了他们研发的基于机器学习的故事阅读理解系统 AQUAREAS (Automated QUestion Answering upon REAding Stories)[13]。该系统沿用了上述分类思想,通过引入更合适的分类特征,在Remedia 数据集上取得了将近40%的精度,已经达到了同期基于规则方法的水平;而其所具备的人工参与更少、更容易应用到新领域的优势,则是基于规则的方法很难拥有的。
2000年以后,机器阅读理解相关研究又一度相对沉寂,其间零星发表的研究成果也不再完全限于英语语料,而是拓展到中文等其他语言,关注点主要集中在两方面:一是机器阅读理解数据集构造。除了 CBC4Kids[14]、MCTest[15]和PROCESSBANK[16]等新的英语数据集,还涌现出中英双语数据集BRCC (Bilingual Reading Comprehension Corpus)[17],以及中文数据集 CRCC(Chinese Reading Comprehension Corpus)[18],等等。二是阅读理解方法,特别是基于传统机器学习模型的阅读理解方法研究。这期间的模型基本上仍然沿用问题-句子对分类的思路来预测答案,大多都使用了最大间隔(max-margin)学习框架下的分类器,如逻辑回归、支持向量机等,并尝试引入了更多特征,特别是结构特征。针对Remedia 数据集的测试精度在2008年左右上升到了43%以上[19]。但此后的研究,就很少再使用Remedia这一早期数据集了。
总之,本发展阶段的特点在于:一是更多数据集的出现;二是机器学习技术的引入,这使得阅读理解技术在实用性、领域适应性等方面都取得了较为明显的进步。但是,这些新引入的数据集大多仅包含数百个问题、在规模上并不大,还不能支持包含大量参数的复杂模型训练,也不能充分验证模型算法的精度水平。而且,所采用的主要是逻辑回归、支持向量机等基于最大间隔学习框架等传统机器学习技术,需要大量人工特征工程,甚至需要与规则相结合,这又从客观上制约了这些方法的跨领域迁移能力。
1.2.3 当代
这一阶段大致从2015年开始,一直持续到今天,而其结束时间尚难预测。开创性事件有两项:一是2015年Hermann等人利用CNN(美国有线电视新闻网)和 Daily Mail (每日邮报)构建了第一个大规模阅读理解数据集,并提出了首个基于深度学习的阅读理解模型AttentiVeReader[1]、取得了明显优于传统模型的实验效果。二是2016年斯坦福大学发布了一个包含的问题数量为10万+规模的阅读理解评测数据集 SQuAD(Stanford Question Answer Dataset)[2]。
我们将在后续章节中详细介绍这些数据集和模型。这里想强调的是,正是这些开创性工作,引发了学术界和工业界对基于深度学习的阅读理解理论和技术的研究热潮,开启了新的阶段。
在本阶段已经过去的五年中,展现出了一些明显不同于以往两个阶段的特点,至少包括两方面:首先,数据集的规模更大,问题数量
展开