林鸿宇 韩先培
中国科学院软件研究所
简介
自然语言处理的长期目标是让计算机能够阅读、处理文本,并且理解文本的内在含义。理解,意味着计算机在接受自然语言输入后能够给出正确的反馈[11]。传统的自然语言处理任务,例如词性标注、句法分析以及文本分类,更多地聚焦于小范围层面(例如一个句子内)的上下文信息,更加注重于词法以及语法信息。然而更大范围、更深层次的上下文语义信息在人类理解文本的过程中起着非常重要的作用。
正如对于人类的语言测试那样,一种测试机器更大范围内理解能力的方法是在给定一篇文本或相关内容(事实)的基础上,要求机器根据文本的内容,对相应的问题作出回答,类似于各类英语考试中的阅读题。这类任务通常被称作机器阅读理解。本文主要聚焦于机器阅读理解任务的最新进展。相比较于传统的自然语言处理任务,机器阅读理解任务涉及到词法、句法、语法、语义和语用等多方面的信息,需要综合运用文本的表示、分析、理解、推理等自然语言处理与理解技术,相当具有挑战性。
形式化地,解决阅读理解问题可以被表示为一个寻求的最优解的过程,其中a 表示候选答案,q表示问题本身,c 表示给定的文档或者上下文信息。上图中给出了一个Facebook bAbi 阅读理解数据集中Path Finding 子问题的例子。该例子要求根据前4个句子陈述的事实,即上下文信息,来对后两个句子的问题给出相应的答案。图例中,要解决第5个句子提出的问题,我们首先要根据第5个句子的内容,找到与其相关的第3个以及第1 个句子,然后综合这两个句子的信息,最终生成答案。从上述过程我们可以看到,要让机器能够完成阅读理解任务,我们必须解决3个最重要问题:
1)表示问题。我们应该如何将自然语言转化为计算机可读的表示形式,并且能够从这种表示中得到完成阅读理解任务所需的信息。
2)检索问题。由于阅读理解任务的上下文较为宽泛,因此如何从大规模地上下文信息中检索出与问题以及答案相关的部分是一个重要的问题。检索结果的质量直接决定了阅读理解任务回答的质量。
3)答案生成问题。即如何根据问题以及检索得到的相关上下文,选择或生成所需要答案。
针对不同数据集的不同特点,也有大量的论文试图解决相关数据集上的阅读理解问题。从总体上而言,绝大多数工作都是将阅读理解问题当成一个匹配问题或者是打分问题来解决的。对于给定的(D,Q,A) 三元组,其中D 代表文档,Q 代表问题,A 代表候选答案,绝大多数工作按照如下三个思路中的某一种来解决该问题:
1)将每一个(Q,A)对通过某些启发式规则合并成为一个hypothesis,然后计算hypothesis与文档的匹配情况。
2) 综合考虑文档和问题,然后计算与(D,Q)对最匹配的A。
3) 计算A在D下的具体表示,然后与Q做匹配。
在当下的任务中,每个问题的候选答案的个数总是有限的。因此总的来说,该问题被转化为一个为(D,Q,A) 三元组打分的排序问题。
本文接下来的部分将按照如下的方式组织:在第二章中,我们将介绍阅读理解任务中的代表性方法,包括基于传统特征工程的方法、基于神经网络的方法以及基于深层次语义信息的图匹配的方法。在第三章中,我们将介绍阅读理解任务的多个数据集,以及在每个数据集上的最新进展。最后,我们将给出本文的结论以及展望。
代表性方法
本章将介绍阅读理解任务中的几类代表性方法。在阅读理解任务提出后,大量基于传统特征工程的方法被用于该任务。这类方法至今在某些数据集上仍能取得当下最好的结果。随着深度神经网络的兴起,也有许多基于神经网络的方法被引入到阅读理解任务中,这些方法大多数以Weston 等人提出的Memory Network [26]作为基本结构。最后,我们将会介绍一种基于深层次语义信息的图匹配算法,该方法利用文档的深层语义信息构造一个语义知识图谱,然后将阅读理解问题转化为一个图匹配问题,尤其适用于与事件有关的阅读理解问答。
基于传统特征的方法
基于传统特征的方法的核心在于通过选取不同的特征,然后基于选取的特征构造并学习一个三元打分函数,将得分最高的候选答案a作为问题q在文档d中的答案。较为常用的打分函数包括有线性模型[23]和对数线性模型[13]。
当前被证明有效的浅层特征主要包括有以下几类:
1)与答案本身相关。考察答案在原文中是否出现、出现的频率等信息。具体细节可以参考 [3]。
2)答案与问题在原文中的关联。一个典型的例子是考察答案与问题中的词语在原文中的距离。其它的方法还包括答案与问题在原文中的窗口序列的N-gram匹配度、答案中的实体与问题中的实体的共现情况[3]等。
3)依存语法。该方法一般通过启发式规则将问题与答案组合,然后抽取出依存关系对。同时对原文进行依存句法分析,然后考察问题/答案对的依存句法与原文的依存句法的匹配情况。
4)语篇关系。考察与问题相关的多个句子在原文中的语篇关系。例如一个问题是以Why开头的问句,那么这个问题的多个相关句子在原文之中可能存在因果关系。
除了上述浅层的特征之外,也有一些较为深层次的语义特征被引入到了阅读理解问题当中,这些特征主要由Wang等人在[23]中提出的,包括有:
1)语义框架匹配。考察答案/问题与文章当中的句子的语义框架匹配程度。该方法也类似于Hermann等人在[5]中提出的基于frame-semantic 标记匹配的方法。
2)Word Embedding。使用了两种基于Word Embedding的方法,包括有BOW以及基于依存树结构的匹配方法。
基于传统特征工程的方法在部分阅读理解任务上能够起到非常好的效果,但是仍然有很多问题不能解决。总的来说,由于大多数传统特征是基于离散的串匹配的,因此在解决表达的多样性问题上显得较为困难。这一点Chen等人在 [3]文中也已经证实。除此之外,由于大多数特征工程的方法都是基于窗口匹配的,因此很难处理多个句子之间的长距离依赖问题。虽然近年来[17]与[19]等文章中提出了基于多种不同层次窗口的模型可以缓解这一问题,但是由于窗口或者n-gram并不是一个最有效的语义单元,存在语义缺失(缺少部分使语义完整的词)或者噪声(引入与主体语义无关的词)等问题,因此该问题仍然较难解决。
Memory Networks
近年来,随着深度学习的兴起,许多基于神经网络的方法被引入到了阅读理解任务中。相比于基于传统特征的方法,在神经网络中,各种语义单元被表示为连续的语义空间上的向量,可以非常有效地解决语义稀疏性以及复述的问题。 在这个方向上,最具有代表性的工作是由Weston等人在14年提出的Memeory Networks [26]。Memory Networks是一种学习的框架,它包含有以下几个部分:
输入特征映射:将输入层(文本序列)转化到特征空间之中,类似于embedding。
泛化层:根据新的输入,来更新旧的、已有的记忆。
输出特征层:根据现时的记忆,输出一个或多个特征向量作为反馈。
反馈层:将输出的特征空间的向量转化为现实空间中的反馈信号,例如一个词。
在文[26]中,Weston等人还提出了一种最基本的Memory network模型。该模型以句子作为基本的输入单元,在输入层使用了句子的BOW表示作为句子表示,并且在泛化层直接将输入层的输入信号存储下来。在关键的输出层特征层,该模型使用了一种框架,查找与当前输入最匹配的k 个记忆向量作为输出的反馈。具体地,当K=1时,该模型首先输出一个特征向量,满足
即找出与当前输入最相似的一个从前的记忆,其中是一个打分函数。在原文中使用了一种bilinear的打分函数,有
其中是将输入映射到特征空间(即句子映射到其BOW表示)的函数,则可以理解为一个隐含空间的embedding矩阵。因此,该相似度函数本质上度量的是x与y中所有词的内积距离之和,是一种Matching函数。
在查找完成第一个相关记忆之后,我们在给定第一个记忆的基础之上,获取第二个最相似的记忆,即
在得到全部的输出特征之后,我们可以根据所检索到的相关记忆以及输入信息得到最终的反馈。如果反馈需要的是一个词的话,我们可以很容易地作出如下的定义
很显然,该模型可以很好地用于QA问题当中,只需要将文档的BOW作为记忆层,将Question作为最新的输入,然后通过该网络匹配原文中最相关的句子之后,即可得到相应输出。由于该模型保留了每一个输入语义单元(句子或者片段)的信息,因此在输出特征层可以很好地处理长距离依赖问题。同时,由于在输出特征层使用了多层的结构,该模型可以处理多句之间的推理问题。这些优点使得类似的结构在阅读理解任务中非常流行。
然而,由于模型中有argmax操作的存在,文 [26]中提出的Memory Network在训练的时候必须使用的是完全有监督的算法进行的,即在训练的过程中不仅仅需要标注每个问题的答案,还需要标注有答案匹配的关键句子,这使得数据收集成为了难题,模型的可拓展性不够强。因此,Sukhbaatar 等人在 [18] 中提出了一种端到端Memory Network,主要对原模型中的输出层进行了修改,将原本的硬匹配机制换成一种基于attention的软匹配机制。对应于第k次匹配中的输入向量,其与每个记忆向量的匹配得分可以按照如下方式算出
之后,根据attention的匹配结果,我们得到第k次匹配的输出结果
其中A是记忆层到输出层的embedding参数矩阵。然后,根据第k轮的输出结果,我们更新第k+1轮输入的信息
实际上,如果我们使用的BOW模型,我们发现该模型本质上等价于使用软概率版本的 [26]中的模型。
Memory Networks在阅读理解任务中被证明了是一种非常有效的结构。该结构将阅读理解的三大任务–表示、检索以及答案生成–由离散的空间转换到了连续的语义空间之中,从而可以非常有效地处理复述以及传统One-hot词表示带来的数据稀疏问题。但是如何在该框架下学习到更好的语义表示、如何更好地检索相关句子以及如何更好地依据相关问题以及问题生成答案仍然是非常重要的问题,也是框架本身并没有解决的问题。
基于深层语义的图匹配方法
上述的方法在某些简单的阅读理解任务中能够起到较好的效果。但是对于某些需要引入外部知识进行更深层次推理、几乎不可能仅仅通过相似度匹配得到的结果的阅读理解任务来说,上述方法几乎起不到作用。一个最典型的例子就是Berant等人在 [2]中提出的Biological Processes。该问题需要机器阅读一篇与生化过程有关的文章,并且根据文章回答问题。文中给出的一个例子如图 所示。可以看到该问题涉及到大量的知识推理以及理解方面的内容。
针对上述问题,Berant 等人在[2] 中提出了一种基于图匹配的方法。该方法首先通过类似于语义角色标注的方法,将整篇文章转化成一个图结构。然后将问题与答案组合(称为查询),也转化为一个图结构,最后考虑文章的图结构与查询的图结构之间的匹配度。
在文章生成图结构的过程当中,作者使用了一种拓展的语义角色标注的方法。由于生化过程的核心是动词,因此文档选择了以动词(trigger)为核心的图构造方式。作者将该语义图内的边分为两种:动词- 参数(Argument)连边以及动词- 动词连边。 在动词-动词连边上,考虑到生化过程的具体性质,文章在动作A和动作B之间定义了三种可能的关系:Cause、Enable 和Prevent,分别表示A是B的导致B的直接原因(即A 发生后B立即发生)、A是B的发生条件(但B不一定紧随A发生)以及A 阻止了B 的发生。在动词 - 参数连边上,由于性质上相似,文章沿用了语义角色标注中的相关标记。除此之外,文章还定义了一些启发式的约束条件,来保证全文标记的一致性。在那之后,文章使用一个ILP算法来求解每篇文章的图结构。
在问题以及答案方面,作者首先将一个问题/答案对组合转化成一个三元组,这个三元组中包含有一个源节点、目标节点以及一个由关系的正则表达式组成的边的组合。正则表达式是由问句的类型(直接导致、阻止、以及默认关系)根据规则而产生的,实际上就是指在文章图中可以接受的边的组合。这种转化是基于某些简单的启发式规则完成的。在那之后,只需要将问题/答案三元组中的源节点与目标节点映射到文章中,并且检查文章图中两个节点之间是否存在满足正则表达式的边即可。这样,该阅读理解问题被转化成了一个图匹配问题。
该方法的优缺点同样明显。由于引入了更深层次的语义结构,该方法能够捕捉更深层面的语义信息,从而获得更好的理解能力。但是由于这种语义结构的定义是问题相关的,并且结构的定义十分依赖于人工的干预,这就导致这种方法是一种领域相关的方法,应用的范围具有较大的局限性。
小结
本章介绍了在机器阅读理解任务中最常用的三种基本方法:基于特征工程的方法,基于Memory Networks的方法以及基于深层语义的图匹配方法。三种方法各有侧重,有着不同的应用场景。
基于传统特征的方法在模型结构以及实现上最为简单,在某些特定的数据集上也能起到较好的效果。但是由于特征本身所具有的局限性,该类方法很难处理复述以及远距离依赖问题。基于神经网络的方法能够很好地处理复述和长距离依赖问题,但是对于某些需要引入外部知识进行更深层次推理、几乎不可能仅仅通过相似度匹配得到结果的任务则无能为力。基于深层语义的图匹配方法通过在深层次的语义结构中引入人为定义的知识,从而使得模型具有捕捉更深层次语义信息的能力,大大提高了模型的理解以及推理能力。但是由于这类方法对于外部知识的依赖性极强,因此适用范围较窄,可拓展性较弱。
数据集及研究现状
在本章中,我们将会介绍当下阅读理解任务的几个主要数据集,以及在每个数据集上的研究现状。
Facebook bAbI Simple Questions
数据集介绍
该数据集是由Weston等人在 [25]中提出的。在这篇文章中,Weston 等人定义了二十个小的子类的推理问题,分别涉及到20种不同的理解能力。这20类问题总的形式是相同的,都是通过罗列出一些事实,然后希望机器能够根据这些事实以及问题给出正确的回答。作者通过机器模拟的方式来自动地生成相应的文本以及问题,同时还包括有每个问题的答案以及回答问题所需要引用的到的Fact。答案中既包括有基本的实体回答,也包括YES/NO 的判断性回答,还包括需要罗列相关事实的问题。Weston 等人希望能够借由这个数据集来考察机器在推理的不同方面的能力。
由于该语料是由机器自动生成的简单语料,因此文档句式单一、词汇表小且均是短句,不同数据之间仅仅是某些实体替换的差别。这就使得其主要侧重点在于推理能力,而非对自然语言的理解。
研究现状
在该数据集上,基于Memory Networks的方法是最主流的方法。但Weston等人在[25]中提到Memory Network有几个缺陷:
1)使用BOW来进行句子的表示,从而无法处理语序的问题。
2)由于Memory Network只有两层,所以无法处理依赖句子数量超过两个的情况。
3)无法处理多个输出的情况。
针对上述问题,Weston等人提出了Adaptive Memory,该模型增加了一个终结符用于自动确定依赖句子的个数以及输出词的个数。同时,作者还引入了基于N-Gram的表示以及基于词位置的表示融合方式,使得模型有能力处理语序的问题。
除此之外,Kumar等人在文 [10]中提出了基于End-To-End Memory Networks的Dynamic Memory Networks。Dynamic Memory Networks不仅融入了Adaptive Memory Netowrk自动判定推理终结的能力,还在模型中使用带attention机制的GRU模型代替了BOW模型,对输入层以及Memory进行处理,从而融入了语序信息并且获得更好的拟合。Peng 等人在 [14]中提出了一种名为Neural Reasoner的更加抽象、但更加简单的结构。该模型在每一轮推理结束之后,不仅仅更新了问题的向量(即用于匹配的内容),还更新了文档的向量(即记忆)。同时,模型引入了大量的非线性层,虽然使得整体模型的拟合能力得到了一定的提高,但是也使得模型的可解释性变得更差。
Task / Method MemNN AM AM+MUL DMN NR ------------------------------------------------------------ Single Supporting Fact 100 100 100 100 - Two Supporting Fact 100 100 100 98.2 - Three Supporting Fact 20 100 99 95.2 - Two Arg. Relations 71 69 100 100 - Three Arg. Relations 83 83 98 99.3 - Yes/No Question 47 52 100 100 - Counting 68 78 90 96.9 - List/Set 77 90 91 96.5 - Simple Negation 65 71 100 100 - Indefinite Knowledge 59 57 96 97.5 - Basic Coreference 100 100 100 99.9 - Conjunction 100 100 100 100 - Compound Coreference 100 100 100 99.8 - Time Reasoning 99 100 99 100 - Basic Deduction 74 73 100 100 - Basic Induction 27 100 100 99.4 - Position Reasoning 54 46 60 59.6 70.9 Size Reasoning 57 50 89 95.3 - Path Finding 0 9 34 34.5 18.1 Agent’s Motivation 100 100 100 100 -
上表中给出了上述几种方法在20个任务上的实验结果。我们可以看到,相比较于完全使用BOW线性信息的Memory Network以及Adapative Memory Network,加入了非词位置信息的非线性模型(AM+MUL以及DMN)在某些类别的数据上能够得到显著的提高。原因在于该数据集的模式较为确定,因此融入词序或者是位置信息之后,可以更精确地找到所必须的信息以及答案。除此之外,引入非线性信息也增强了模型的拟合能力,从而提升了实验的结果。
CNN/Daily Mail & Children’s Book Test 数据集介绍
CNN/Daily Mail数据集是Hermann等人在[5]中提出的,该数据集从CNN和Daily Mail上摘取了大量语料,然后将每篇文章对应的总结以及复述句子作为问题原型,并从问题中去除某个实体,要求机器能够根据文章内容自动找出答案。该数据集的一个实例如图所示。
FaceBook Children’s Book Test [6]与CNN/Daily Mail类似,该数据集的构造是通过从儿童书籍里抽取出文章,然后归纳出21 个句子,将前20 个句子作为文本的代表,将第21 个句子作为问题而产生的。但不同点在于对于每个问题,CBTest提供有候选的答案词,同时其答案分为实体、一般名词、动词以及介词四类。 另外,CNN/Daily Mail来源于新闻语料,而CBTest则来自于儿童故事。这就使得外部知识对于CBTest的可能影响要更小些。
总的来说,这两个数据集都是根据文章的内容以及问题找出文章当中相应的一个词来进行回答。因此我们将这两个数据集归为一类。事实上,现有的模型一般在这两个数据集之间是通用的。相比较于前面的bAbI数据集,这两个数据集的文章内容都完全来自于自然语言之中,因此更加符合人类阅读理解任务的性质。
一个值得关注的工作是[3],在这篇文章中,作者对对CNN/Daily任务进行了一个详尽的分析。这篇文章从开发集中选取了100个样本,然后将它分为精确匹配、复述、部分包含、多句、共指消解错误以及有歧义等六大类,同时发现人类也不可解决的第五类和第六类问题占到了总问题的25%,因此作者大致推断出这个任务的天花板在75%左右。
研究现状
在[5]中,作者提出了几种Baseline的方法。包括在第2章中曾提到的基于frame-semantic标记匹配的方法以及基于答案与问题中的词语在原文中的距离的方法。同时,原文中还提出了一些基于神经网络的方法。最简单的神经网络基线方法就是将问题也作为一个句子连接在文档的后面,然后使用一个bi-direction的LSTM 来学习得到整个连接结构的最终表示,然后将其与答案的表示进行匹配。出乎意料地是,这种极为简单的方法得到的结果要比基于特征的方法还要好。
除此以外, [5]文中还提出了两种神经网络结构,分别称为Attentive Reader和Impatient Reader。Attentive Reader和前文提到的Memory Network有非常相似之处。它首先使用一个双向的LSTM对输入的文档以及问句进行向量化表示,然后通过一个基于tanh函数的attention 层,根据问题的表示对文档当中的词语进行加权,从而学习到文档在该问题下的表示。在这之后,使用一个tanh加权函数来得到问题和文档的联合表示,并将其与候选答案进行匹配。Chen等人在 [3]文中对该模型做了简化,将Attention层换成了一个bilinear形式的的函数,并且在得到最后的表示向量后并不再经过非线性层。这些变化简化了整个模型,然后却使实验结果有了显著的提升。
Attentive Reader将问题作为一个整体作为建模,考虑问句整体对词的attention,从而忽视了问句中每个词的作用。Impatient Reader则更进一步,建模了问句中每一个词对文章中每个词的attention。该方法建模了人类进行阅读理解的过程:从左到右阅读问题,然后每看到一个词之后,都去原文中寻找对应部分,之后更新记忆,一直重复上述过程直到读完问题,然后选择答案。
与先前的工作不同,Kobayashi等人在[9]文中提出了Dynamic Entity Representation方法。他的模型首先考虑答案实体在文章的语境中的具体表示,然后再考虑其与问句的相似度。这种方法相对来说能够在上下文环境中得到更好的答案实体表示,在一定程度上能够缓解集外词带来的问题。
Kadlec等人在[8]中提出了一种更为简单的结构Attention Sum Reader。该模型对于每一个候选答案,直接计算它在文档中的所有出现的attention分数值之和,结构异常简单,但是在CNN/Daily 以及CBTest上都得到了非常好的实验结果。更进一步的工作是[20]中提出的 EpiReader。该文章首先使用类似Attention Sum Reader的结构在词层级上算出每个问题的top K 个候选答案,然后根据某些句子层级的特征,使用类似于RTE的方法对K个答案进行重排序。该方法融合了词级别以及句子级别这两个层级的特征,提升了实验效果。
上述的attention模型都只考虑到了问题对于文档的attention,但是忽略了文档对于问题的attention (即问题中每个词应当拥有不同的重要性)。Cui等人在 [4]一文中提出了一种多重attention机制,该方法可以视为一种对问题中词赋权版本的Attention Sum Reader,在CNN以及CBTest上都得到了一定的提升。
CNN DailyMail CBT NE CBT CN ------------------------------------------------------------------------- Frame-semantic 40.2 35.5 - - Word Distance 50.9 55.5 - - Attentive Reader 63.0 69.0 - - Impatient Reader 63.8 69.0 - - Attentive Reader(Chen et al.) 72.4 **75.8 - - Dynamic Entity 72.9 - - - Attention Sum Reader 69.5 73.9 68.6 63.4 Attention over Attention **74.4 - **72.0 **69.4 EpiReader 74.0 - 69.7 67.4
上表中给出了CNN/Daily Mail数据集以及CBTest数据集上的实验结果的汇总。我们可以看到,基于多重Attention的方法在三个数据集上都得到了最好的实验结果,说明对问句中的词的建模确实是必要的。Chen等人使用的简化版的Attentive Reader在实验结果上要大大超出了原版的实验结果,同时相对来说最为复杂、并且引入了多层次信息的EpiReader并没有表现出特别大的优势。这也说明可能在该问题上,简单模型可能能够起到很好的效果。由于数据集中涉及到的多句推理的问题较少 [3],该数据集上的所有模型都是简单的单层模型。
MCTest 数据集介绍
MCTest是Ricardson等人在[16]中提出的一个阅读理解测试。其总体形式类似于英语考试中的单项选择阅读理解题。但是不同点在于MCTest 严格限制的文档本身是儿童能够理解的故事内容,从而保证阅读理解的过程当中不需要过量的外部知识。
MCTest又分为两个子数据集:MC160与MC500。相比于MC160,MC500针对于答案做了一些特殊的处理,使得其难度会更大一些。MCTest 一个最大的不同点就在于它的答案不再是一个词或者是实体,而是可能是一个片段或者是句子,这增大了MCTest 的难度。除此之外,MCTest的数据量极少。MC160只有70个训练样本,而MC500 也仅有300个训练样本。因此仅仅利用MCTest本身的信息训练一个复杂的模型是一件几乎不可能的事情。
研究现状
[16]中提出了两种基于词汇匹配的最基本baseline。首先提出了一种Sliding Windows同问题与答案组合中词汇匹配分数的方法。同时,为了考察距离依赖的问题,该文章还在考察了问题中的词与答案中的词在文章当中出现的最短距离长度的值。这种方法较为简单,但是已经可以取得很好的结果。同时,文章还引用了一种基于RTE的方法。首先将问题以及答案按照启发式规则进行拼接,然后计算上述拼接结果(称为假设)与原文信息之间的关系。在MCTest数据集上,现有模型中的大多数都选择先使用某些启发式规则组合问题与答案。
上述Sliding Windows方法将窗口大小限定在了和(Q,A)对大小相同的范围内,可能会影响到有关多句推理的问题的最终结果。Smith等人在 [17]中使用了称为Strong Lexical Matching的变窗口大小的方式改进了模型。Trischler等人在[19]中提出了一个上述工作的更进一步拓展,称为Parallel-Hierarchical 模型。不同于上述的仅仅使用窗口大小的匹配,Trischler 等人利用Word Embedding,充分考虑了不同级别窗口以及n-gram级别的匹配信息,并使用一个MLP来结合上述匹配结果,最终实现端到端的训练。该模型相较于传统的神经网络模型参数较少,同时考虑多种层面的信息,又仅仅使用了少量的特征,在MCTest 上取得了非常好的结果。
在特征工程方面,Narasimhan等人在[13]中通过一个生成式模型引入了语篇关系的信息,考察与问题相关的多个句子在原文中的语篇关系。Wang等人在[23]使用了线性模型融合多种框架、句法以及语义级别的特征,使得模型结果有了大量的提高。
由于数据稀疏,因此仅仅在MCTest上训练一个端到端神经网络几乎是不可能的事情。为了解决这个问题,Wang 等人在[22] 中引入了大量来自于外部语料的信息(External Knowledge)。Wang等人将阅读理解任务划分为答案选择以及答案生成两个步骤,在这两个步骤中分别引入了从WikiQA上训练得到的答案选择模型以及一个外部的RTE模型,成功地学习到了一个能用于MCTest的端到端神经网络模型,取得了很好的效果。
MC160 MC500 ---------------------------------------------------------------------- Sliding Windows + Distance 66.25 56.67 RTE 59.79 53.52 SW+D+RTE 67.60 60.83 Strong Lexical Matching 75.77 65.43 Parallel-Hierarchical 74.58 **71.00 Discourse 73.23 63.75 Frame,Syntax,Semantics 75.27 69.94 External Knowledge **75.83 70.96
上表中给出了上述系统在MCTest上的实验结果。我们可以看到,Parallel-Hierarchical 模型能够得到非常好的结果。该模型实际上与EpiReader 有一定程度上的相似之处,表明综合考虑多个层面的语义信息确实能够对阅读理解任务有所帮助。此外,引入外部信息的模型达到了非常好的结果,这也说明了数据稀疏是解决MCTest的一个重大难点。虽然从MCTest的设计原则上不希望能够直接通过词匹配找到答案,但是我们看到,基于各种各样Matching 的方法仍然已经能到达到70%以上的准确率。
Biological Processes 数据集介绍
Biological Processes是Berant等人在[2]中提出的一个问题。该问题需要机器阅读一篇与生化过程有关的文章,并且根据文章回答问题。文中给出的一个例子如图 所示。由于该问题需要一定的外部知识,并且涉及到复杂的知识推理以及理解方面的内容,几乎不可能通过单纯地词匹配来完成,非常具有挑战性。
研究现状
该数据集上的最具代表性的工作就是第 节中提到的基于深层语义的图匹配方法。该方法在斯坦福的数据集上能够取得66.7%的准确率。同时,如果能够完全正确地识别出触发词(Trigger),该方法的准确率可以提升到76.7%。
SQuAD 数据集简介
SQuAD是由Rajpurkar等人在[15]中提出的一个最新的阅读理解数据集。与上述数据集显著不同的一点在于,SQuAD数据集是问答题而非选择题,因此其没有候选答案可以参考。但是其限定了答案为原文中连续的片段,因此对于一片长度为N的文章来说,有O()个可能的候选答案,因此候选答案的检索空间很大。另外一个值得关注的地方在于,该数据集并不公开发布测试集,而是采用了与ImageNet类似的封闭评测的方式来测试模型的性能,能够一定程度上防止模型对测试数据过拟合的问题。
研究现状
Rajpurkar等人在[15]中提出了一种基于logistic回归的Baseline,该模型包括词匹配、词频率、依存关系等特征。该方法能够达到40.4%的准确率和51.0%的F1值,远远超出基于简单的滑动窗口词匹配模型。
最新的State-of-the-art的结果是由基于Match-LSTM的Pointer Networks产生的 [24]。Pointer Networks是由Vinyals 等人在 [21]中提出的。Wang等人在 [24]中使用了两种Pointer Networks结构,一种通过Pointer Networks从原文中预测所有答案词的位置。考虑到答案是原文中连续的序列,另一种仅仅要求模型输出两个位置标记,一个标记答案的开始位置,一个标记答案的结束位置,该模型的准确匹配率为59.5%,而生成答案的F1值达到了70.3%。
Rochester Story 数据集简介
一个最新的阅读理解任务是由 Mosafazadeh 等人在 [12]中提出的 Rochester Story。该问题的每一篇文档都是对一个事件的描述。每篇文档有5个句子,机器要求在给出前4个的情况下根据常识从2个备选答案中选出正确的第5个句子。三个样例在图中给出。我们可以看到该任务的答案并不来源于文章的内容之中,而回答这些问题需要对文章的各个方面的整体理解。虽然该数据集中的句子语言也较为简单,但是显然之前简单的基于词匹配的方法很难在这个数据集上取得比较好的结果。
研究现状
在[12]中,作者引入了9种模型作为这个任务的Baseline。但是其中的7种方法都不能超过随机猜测50%的正确率,说明该问题的难度确实较大。唯一能够取得58% 正确率的是DSSM[7],这也说明了解决这个问题需要使用到更深层次的语义结构信息。
实际上,从图 中给出的例子我们就可以看出,使用在先前数据集上提到的基于匹配的方法可能很难解决Rochester Story。在大多数情况下,Rochester Story 的两个候选答案与前文之间的语义均是连续的,所以光从语言本身出发很难能够得到正确的答案。
小结
在本章中,我们着重分析了当下机器阅读理解任务中七个重要的数据集,以及在各个数据集上的研究现状。表 列出了当下各个阅读理解数据集的各方面情况的比较。可以看到,当下机器阅读理解任务的数据集各有侧重、各有不同。CNN/Daily Mail、Facebook CBT、MCTest以及SQuAD主要侧重于自然语言理解,Facebook bAbI 更加侧重于考察机器的推理能力,而BioProcess和Rochester Story则更侧重于机器理解与融合外部知识的能力。同时,不同数据集的答案形式也不尽相同。
在使用的方法方面,基于传统特征工程的方法以及基于神经网络隐含语义空间的方法是主流。基于传统特征工程的方法在不同数据集上所使用的特征具有较多相似之处。而基于神经网络的方法则通常使用不同结构的attention机制来模拟检索的过程,并根据不同的答案形式构造不同的输出层来生成答案。
就当下而言,机器阅读理解任务上在能够基于浅层以及隐含语义空间匹配解决的问题上都已经达到了较高的水准,但是在需要融合外部知识进行推理,以及需要使用到更深层次语义信息的问题上相关进展仍然较少。
数据集 规模 侧重点 答案形式 是否涉及外部知识 ------------------------------------------------------------------------------ Facebook bAbI 自动生成 浅层推理 一个或多个词 否 CNN/Daily Mail 较大 自然语言理解 一个实体 - Facebook CBT 较大 自然语言理解 一个词 否 MCTest 小 自然语言理解 片段(选项) 较少 BioProcess 小 自然语言理解、推理 片段(选项) 是 SQuAD 较大 自然语言理解、推理 片段 - Rochester Story 中等 基于常识的推理 句子(选项) 是
总结
机器阅读理解是当下自然语言处理领域的一个热门任务。近年来,各类阅读理解的数据集以及方法层出不穷。总的来说,基于浅层匹配的方法在部分简单的数据集上已经能够取得较好的结果。但是对于某些较为困难的任务,涉及到复杂推理以及大规模的语篇、语用以及情感等信息的阅读理解任务,基于浅层匹配的方式无法解决。
人类对于语言的理解是一个复杂而多样的过程,理解语言的过程当中涉及到了大量的语言知识、常识、环境以及情感等因素,在当下对于这些复杂因素的建模仍然处于较为初级的阶段。就机器阅读理解任务而言,理解人类完成理解与推理的过程,将更多的人类在理解过程中所用到的知识与因素融入到机器理解的过程之中,也会给机器理解任务带来新的思路和发展方向。
参考文献
[1] Berant et al. Modeling biological processes for reading comprehension. EMNLP2014
[2] Chen et al. A thorough examination of the cnn/daily mail reading comprehension task. ACL2016
[3] Cui et al. Attention-over-attention neural networks for reading comprehension. arXiv2016
[4] Hermann et al. Teaching machines to read and comprehend. NIPS2015
[5] Hill et al. The goldilocks principle: Reading children’s books with explicit memory representations. arXiv2015
[6] Huang et al. Learning deep structured semantic models for web search using clickthrough data. CIKM2013
[7] Kadlec et al. Text understanding with the attention sum reader network. arXiv2016
[8] Kobayashi et al. Dynamic entity representations with max-pooling improves machine reading. NAACL-HLT2016
[9] Kumar et al. Ask me anything: Dynamic memory networks for natural language processing. arXiv2015
[10] Liang, P. Learning executable semantic parsers for natural language understanding. arXiv2016
[11] Mostafazadeh et al. A corpus and cloze evaluation for deeper understanding of commonsense stories. NAACL2016
[12] Narasimhan et al. Machine comprehension with discourse relations. ACL2015
[13] Peng et al. Towards neural network-based reasoning. arXiv2015
[14] Rajpurkar et al. Squad: 100,000+ questions for machine comprehension of text. arXiv2016
[15] Richardson et al. Mctest: A challenge dataset for the open-domain machine comprehension of text. EMNLP2013
[16] Smith et al. A strong lexical matching method for the machine comprehension test. EMNLP2015
[17] Sukhbaatar et al. End-to-end memory networks. NIPS2015
[18] Trischler et al. A parallel-hierarchical model for machine comprehension on sparse data. ACL2016
[19] Trischler et al. Natural language comprehension with the epireader. arXiv2016
[20] Vinyals et al. Pointer networks. NIPS2015
[21] Wang et al. Employing external rich knowledge for machine comprehension. IJCAI2016
[22] Wang et al. Machine comprehension with syntax, frames, and semantics. ACL2015
[23] Wang et al. Machine comprehension using match-lstm and answer pointer. arXiv2016
[24] Weston et al. Towards ai-complete question answering: A set of prerequisite toy tasks. arXiv2015
[25] Weston et al. Memory networks. ICLR2015
本文转载自 中国中文信息学会青年工作委员会(cips_ywc)公众平台,转载请注明出处。