联合编译:章敏,陈圳
NLP尚未解决的核心目标是,确保电脑理解文件回答理解问题。而通过机器学习系统,解决该问题的一大阻碍是:人类-注释数据的可用性有限。Hermann等人通过生成一个超过百万的实例(将CNN和日常邮件消息与他们自己总结的重点进行配对)来寻求解决方案,结果显示神经网络可以通过训练,提高在该任务方面的性能。本文中,我们对这项新的阅读理解任务进行了彻底的检测。我们的主要目标是,了解在该任务中,需要什么深度的语言理解。一方面,我们仔细的手动分析问题小的子集,另一方面进行简单的展示,在两个数据集中,细心的设计系统,就可以获得72.4%和75.8%的精度,这超过了当前最好结果的5%,并且达到了我们认为在,该任务上的最高性能。
阅读理解(RC)也就是阅读文章,处理,并且理解含义的能力。如何让计算机具有这方面的能力,是难以捉摸的挑战,而且这也是人工智能的一个长期目标(例如,(Norvig,1978))。真正的阅读理解涉及解释文章,并进行推理。人类阅读理解通常通过,问关于文章理解方面的问题,来进行测试,并且,这样的方法也被建议用于测试电脑(Burges,2013)。
最近几年,在DeepMind方面的研究者(Hermann等人,2015)非常吸引眼球,探索这方面的最初想法是:通过大量附有要点总结的CNN和Daily Mail新闻文章,来尝试创造用于阅读理解任务的大规模监督训练数据。图1给出了一个例子。其想法是:总结文章1个或几个方面的要点。如果电脑理解了文章的意思,它就应该可以推测出要点中丢失的实体。
这是最聪明的方法,用来创建实惠且可以在RC模型上面进行训练的监督数据集;然而,解决一些人工任务,所需的阅读等级并不是非常清楚。实际上,已经真正学会了什么样的统计模型,在该任务方面做的最好。
本文中,我们的目标是,对文章提供一个深度且缜密的分析,并了解需要什么等级的自然语言理解,才可以在该任务方面做得更好。我们简单的证明了,细心的设计系统,就可以分别在CNN和Daily Mail获得最高精度72.4%和75.8%。我们对问题子集做了仔细的手动分析,以在他们的困难方面,提供数据和成功所需要的语言理解种类,同时我们也尽量判断,我们创建的系统学习了什么。我们总结出:(i)数据集比原先认为的要简单,(ii)简单的,传统的NLP系统,比以前的建议做得更好,(iii)在识别释义方面,深度学习系统的分布式表示非常的有效,(iv)部分由于问题的性质,相比于更大的语篇语境文本理解系统,当前的系统更具有单句子关系抽取系统的性质。(v)我们提出的系统接近于单句的最高性能,和数据集明确的情况。(vi)正确获得问题最后20%的前景的结果不理想,因为他们中的大多数都涉及数据中的准备问题,这会破坏回答问题的机会(指代错误或进行匿名实体的理解太困难)。
图1:CNN数据集的实例
Hermann等人介绍的RC数据集,是利用新闻网站CNN和Daily Mail的文章及要点总结得到的。 图1展示了一个例子:它由文章p,问题q和答案a组成,其中文章是新闻网站,问题是完形填空任务(文章要点被横线代替),答案是问题的本质。目标是从所有可能的选项中(在文章中给出)推测出丢失的实体(答案a)。新闻文章通常只有很少的要点,并且每一个要点都强调了文章的一方面。
文章通过GoogleNLP通道运行。它已经进行了,标志,字体小写,识别命名实体和共指消解。为了独特的指标n,每个共指链包含至少一个命名实体,链中的所有项目都是由一个@实体n标志所取代。Hemann等人(2015)令人信服地说明了:这样的策略是必要的,以确保系统通过理解它们面前的文章,来完成这个任务,而不是在不需要理解文章的情况下,通过使用世界知识和语言模型来回答问题。然而,这也给出了一些符合人工特性的任务。一方面,实体识别和已被执行的指代很大程度上帮助了系统;另一方面,无论模块是否失败,它都会很艰难(如图1所示,“特性”应该复指@entity14;在我们后续的数据分析中,有更清晰的失败实例)。此外,无法使用世界知识,也使得人类进行该任务变得更加困难——以方式提出一个匿名条款时,人类很难决定出正确的答案。
网上有大量可利用的新闻文章,使得创建数据集变得很方便,因此它们为统计模型提供了一个大而现实的试验场。表1提供了一些两个数据集的统计:里面分别有380k和879k的CNN和Daily Mail训练实例。文章平均有30个句子和800个标志,同时每个问题包含12-14个标志。
接下来的章节中,我们寻求对于数据集本质更深度的理解。我们首先建立了一些简单的系统,以便更好的了解当前NLP系统的下边界性能。然后,转向数据分析项目的样本,以检查他们的性质和性能的上限。
表1:CNN和Daily Mail数据集的数据统计。平均标志和文章的句子,查询中的标志,和训练集中基于统计的实体数量,当在发展和测试集中它们非常相似。
本节中,我们描述了实施的两个系统——一个传统的以实体为中心的分类器和一个终端到终端的神经网络。尽管Hermann等人在RC任务方面的性能提供了几个基线,我们仍然怀疑它们的基本不够强大。他们试图使用一个框架—语义(frame-semantic)分析器,我们觉得这种小范围的解析器破坏了结果,并且它不能代表简单的NLP系统—基于标准的方法来陈述问题答案,和过去15年中发展的关系提取(可以实现)。的确,他们的框架—语义模型明显逊色于他们提供的另一个基线,一个启发式的单词距离模型。目前只有两篇论文可以用来展示RC任务的结果,这两篇论文都是利用神经网络的方法:Hermann等人和Hill等人的研究。然而后者被包裹在终端到终端的存储网络的语言中,它实际上提出了一个相当简单的,运行于CNN数据集上的,基于窗口的神经网络分类器。它的成功再次提出了,关于由该数据集提供RC任务的真实性和复杂性问题,这方面,我们通过建立简单的基于注意力神经网络分类器,进行分类。
给定(文章,问题,答案)三元组(p,q,a),p={p1, . . . , pm},q= {q1, . . . , ql}是文章标标志的结果,且问题语句,用q包含一个“@placeholder”标志。目标是推测出正确的实体 a ∈ p ∩ E(与占位符对应),其中E是所有抽象实体标记的集合。注意:正确的答案实体必须出现在文章p中。
我们首先建立一个传统的基于特征的分类器,用于探索对于该任务有效的特征。这和Wang等人的灵感相似,目前它在MCTest RC数据集有极具竞争力的性能(Richardson等人)。该系统的步骤是为每一个候选实体e,设计特征矢量fpq(e),并且学习一个权重矢量θ,例如正确的答a的排名高于所有其他候选实体:
我们采用以下功能模板:
1.在通道中是否存在实体E。
2.在问题中是否存在实体E。
3.段落中实体的频率。
4.段落中实体e第一次出现的位置。
5.n-gram精确匹配:在占位符周围的文本和文本周围的实体e,是否有一个确切的匹配。我们有所有匹配组合的特征,左和/或右一个或两个单词。
6.字间距:我们用每一个发生的实体e排列占位符,并计算每一个不停的(non-stop)问题词汇到段落中实体的平均距离。
7.句子共生:在一些句子的段落,实体e是否与另一个出现在这个问题上的实体或动词一起发生。
8.依赖解析匹配:我们依赖解析这两个问题和所有在段落中的句子,并且提取指标特征
我们的神经网络系统基础是:Hermann等人提出的AttentiveReader模型。该框架可以用下三个步骤描述(见图2):
图2:我们用于阅读理解任务的神经网络结构。
编程:
注意力:在这一步中,目标是将问题的嵌入和所有语境嵌入进行对比,并选择与这个问题有关的信息碎片。我们计算一个依赖于词与词之间的关联度pi(在它的语境)和问题q的概率分布α,然后产生输出向量O,它是所有语境嵌入{pi~}的加权组合:
预测:使用输出向量O,系统输出最有可能的答案:
最后,该系统在Wtap上面增加了一个softmax函数,并且将负对数似然用于训练。
不同于Hermann等人.我们的模型基本上都遵循AttentiveReader。然而,让我们惊讶的是:我们的实验观察到,相比于原先在CNN和Daily Mail数据集上AttentiveReader结果,我们的结果提升了将近8-10%(第四部分进行讨论)。具体地说,我们的模型有以下差异:
·我们使用一个双线性的术语,而不是一个双曲正切层,计算问题和语境嵌入的关联(注意)简单双线性注意函数的有效性,已经在以前的神经机器翻译得到了证明(Luong 等人)。
·获得权重语境嵌入o后,我们使用o进行直接预测。与之相比,在做最后的预测之前,原来的模型(Hermann等人)通过另一个非线性层结合o和问题嵌入q。我们发现,可以不损害性能的情况下去除这一层。并且我们相信,这足以让模型学习返回被给予最大限度地注意的实体。
·原来的模型在作出预测时,考虑了所有来自词汇V的话。我们认为这是不必要的,并且只预测在段落中出现的实体。
在这些变化中,似乎只有第一个是重要的;另外两个只是为了保持模型的简单性。(敏)
Window-based MemN2Ns.另一个神经网络系统方法是基于记忆网络结构的。我们认为这两个方法在思想上是极度相似的。最大的不同在于编码方式的不一样:证明显示在评估一个候选单位时,仅使用5个单词文本是最有效的语境嵌入编码方式:如果窗口包含5个单词x1,……x5,那么就会编码成5个独立的嵌入矩阵进行学习。他们能以类似的方式围绕占位符,对5词窗口或是其他所有在问题文本中被忽视的单词进行编码。此外,他们仅仅使用一个产品点来计算问题或是文本镶嵌之间的“相关性”。这个简单的模型表现的十分好,因为显示出了RC任务在何种程度能通过本地文本匹配表现的十分好。
为训练常规分类器,我们在RankLib应用LambdaMART。我们使用排序算法,因为我们的问题本身就是排序问题,所以也就促进决策树体系最近的成功。我们并未使用LambdaMART的所有特征,因为仅基于第一条建议对1/0损失进行排序,而不是使用IR矩阵对所有的结果进行排序。我们使用斯坦福神经网络依赖解析器对文本或是问题进行解析,并且其他的特征都能在不使用额外工具的情况下提取出来。
为训练我们的神经网络,我们仅保留最常使用的50k的单词(包括实体和占字符),并会标注其他所有的单词。我们选择单词的嵌入尺寸d=100,并为初始化使用100维度的预训练GloVe单词镶嵌。注意力或是输出是从统一的分配(-0.01,0.01)之间进行初始化,LSTM权重是从高斯分布N(0.01)中进行初始化。
表3:实体为中心的分类器会基于CNN数据集的部分发展进行特征消融分析。数字暗示了我们从所有系统中排除的每一个特征的准确性,所以较小的数字就暗示是一个重要特征。
我们使用的CNN大小是h=128,Daily Mail是256。优化是通过随机梯度递减(SGD)实现的,其固定学习率为0.1。我们根据所有例子的文本长度来进行分类,并随机抽取样本批量大小为32进行更新。当梯度的规模超过了10,会将丢弃概率为0.2应用于嵌入层和梯度剪裁。
我们所有的模式都是在单个GPU(GeForce GTX TITAN X)上运行,对于CNN每一个阶段的运行时间为6小时,DailyMail的每一个阶段的运行施加为15小时。我们运行的模式其阶段长达30个,并基于发展集选择最精准的模式。
表2展示了我们的主要成就。基于特征的传统分类器在CNN测试集上实现了67.9%的准确度。这一结果不仅超过了其他象征方法,也超过了其他神经网络在论文中或是单一系统上的结果报告。这也表明,这一任务不会像想象的那么困难,并且一个简单的特征集能包含许多种情况。表3显示的是基于CNN部分数据发展实体分类器的特征消融分析。这表明n-gram匹配和实体频率是特征分类最重要的两类。
表2:基于CNN和Daily Mail数据集的模式准确度。分类器和神经网络分别指代实体中心分类器和神经网络系统。标有*的数据暗示其结果是来自于集成模式。
更加戏剧化的是,但模式神经网络的结果大幅度超过之前的结果(超过5%),并推动其具有领先水平的结果至72.4%或是75.8%。由于资源的限制,我们没有机会调查集成模式,尽管集成模式能像其他论文所描述的那样带来更好的结果。
同时与我们的论文一样,Kadlec等和Kabayashi等同样也基于这两个数据集进行试验但其结果也是非常出色的。然而,我们的单一模式不仅仅在模式上超过他们,在结构上也更加简单。最近所有的结果汇聚成了相似的数据,并且我们相信这一数据是逼近于这一任务的最好结果,这一结论我们会在接下来的部分进行说明。
到目前为止,通过我们的系统获得了较好的结果。在本部分,我们致力于进行深入分析并回答以下问题:(1)由于数据是基于自动化和启发式的方式创建的,有多少问题是不重要的?有多少是嘈杂并不能回答的?(2)这些模式学到了什么?进一步改善它们的前景在哪?为研究这一问题,我们随机从CNN部分发展集中选取100例子进行分析。
在仔细分析这100个实例之后,我们把它们大概分成以下几个种类(如果一个例子不仅满足一个类型,我们会把它归类于前一个类型):
完全匹配:最靠近占字符的单词同样也存在于实体标记中;且答案是明显的。
句子级别的释义:问题文本重新用一句话在文中进行改写,所以其答案也是和这一句子是完全一样的。
局部线索:在许多情况下,尽管我们不能把问题文本和一些句子在语义上完全匹配,但任能通过一些局部线索进行推理,例如一些单词或是概念的匹配。
多个句子:这需要通过处理多个句子来推理出正确答案。
指代错误:在数据集中指代错误是不可避免的。这一类包括在问题中出现的答案实体或是关键实体的指代错误。一般我们会把这一类问题归类为“不可回答”。
表4:每一类型的代表例子。
图5:基于从CNN数据集中取样的100个实例分析,对数据分解的评价。
模糊或是十分困难:这一类型所包含的实例是我们认为人类都难以回答的问题。
表5展示的是每一个类型所占的百分比,表4展示的是每一类型的代表实例。令人惊讶的是,基于我们的人工分析“指代错误”和“模糊/困难”的情况占了25%,所以这对于将准确率提高到75%会是一个障碍(当然,模式有时能猜测准确。)此外,仅有2个例子需要多个句子进行推理—这是一个就Hermann而言比较小的概率。因此,我们要假设在大对数“不能回答”的情况下,目标是要找出相关的(单个)句子,并基于这单一句子进行答案推理。
现在,基于以上的分类,我们进一步分析这两个系统的预测。
如表6,我们观察结果如下:(1)完全匹配的情况十分简单,且两个系统都能实现100%的准确。(2)对于模糊/困难的情况或是实体和错误相连的情况,正如我们所预测的那样,两个系统表现都很差。(3)这两个系统在释义和有部分提示的情况下差别教大。这也表明了在涉及到改写或是两个句子词汇有所区别时,神经网络系统能更好地进行语义匹配。(4)我们相信在单一句子或是明确的情况下,神经系统的表现已接近最佳表现。基于这一数据集,对于探索更加复杂的自然语言理解方法似乎没有很多有用的净空。
图6:这两个模式在每一个类别上表现。
我们会简单调查其他与阅读理解相关的任务。
MCTest是一个开放性领域的问题,经常是一个短篇小说的形式呈现并带有多项选择式的问题。这是通过大规模探索创造出来的方法,其目标是达到一个7岁小孩的阅读理解水平。
一方面,需要具有各种各样推理技能的数据集:超过50%的问题需要通过理解多个句子进行回答,并且问题的种类也是多种多样的(例如,是什么,为什么,怎么样,谁的,哪一个等问题)。另一方面,整个数据集总共只包括660个段落(每一个段落包含4个问题),这使得训练统计模式(尤其是复杂的模式)变得相当困难。
到目前为止,最好的解决方案依然是依赖手动提取的句义或是语义上的特征,以及额外知识的帮助(例如,镶嵌词汇,句义或是改写数据集)。
儿童书测试是为类似的目的基于CNN/DailyMail数据集所创建的任务。从儿童书内随机选取20个连续的句子—前20个句子作为一个段落,目标是推断出在第21个句子中所缺失的单词(问题或是答案)。这些问题也可以按照所缺少的单词进行分类:实体名词,普通单词,介词或是动词。根据对此数据集的第一个研究得出,一个有当地文本的语言模式(n-gram模式或是递归神经网络)足以预测动词或是介词。然而,对于预测实体名词或是普通名词,只能通过浏览全文才能提高预测的结果。
bAbI是一个人工数据集合包括20中不同的推理类型。它鼓励发展模式的链推理,归纳,演绎等能力,所以它在阅读“约翰在操场;鲍勃在办公室;约翰拿了足球;鲍勃去了厨房”这一系列句子之后能回到出像“足球在操场上”的问题。在这些任务上不同类型存储网络已表现出了有效性,此外基于广泛问题分析的空间矢量模式能在所有的任务类型上表现出接近于完美的准确率。尽管这些结果十分好,但是数据集仅限于少量的词汇(100-200词)和简单的语言变化,所以这与在现实世界中我们需要预测的数据集相比相差很大。
在本文中,我们仔细的研究了最近CNN/DailMail的阅读理解任务。我们的系统表现出了完美的结果,但是更重要的是,我们手动进行了仔细的数据分析。
总体而言,我们认为CNN/Dail Mail数据集是极具价值的数据集,为训练用于阅读理解任务的数据模式提供了良好的方法。但是,我们还是认为:(1)由于数据的创建方法和指代错误,数据集还是十分的吵杂;(2)目前递归神经网络在此数据集上表现已达到最优;(3)所用推理的数据集还是过于简单。
在未来的研究中,我们会考虑如何利用这些数据集(以及基于这些数据集训练的模式)去解决更为复杂的阅读理解(RC)推理问题。
哈尔滨工业大学李衍杰副教授的点评:阅读理解是一种阅读文章并且处理理解文章含义的能力,如何让计算机具有阅读理解能力,理解文献并回答理解型问题是NLP领域重要且未解决的问题,阻碍机器学习系统解决该问题的一个关键因素是人类注释数据的可用性有限,为此,有研究者通过CNN和日常邮件消息与他们自己总结的重点进行配对,生成了超过百万的训练数据,并借助于神经网络较好的解决文献理解的问题。今天推荐的这篇论文对这方面的研究又进行了详细的检查,通过对数据集的手动分析,并引入实体中心分类器(Entity-Centric Classifier)和端到端神经网络,从另一方面考虑并解决了上述问题,得到了更高的精度。
PS : 本文由雷锋网独家编译,未经许可拒绝转载!