北京大学、百度:基于跨文档答案验证的多文档阅读理解

你和“懂AI”之间,只差了一篇论文

号外!又一拨顶会论文干货来袭!

2018年6月9-10日,代表学术界和工业界的顶级交流盛会——由中国中文信息学会青年工作委员会和百度公司联合举办的【“AIS2018(ACL、IJCAI、SIGIR)论文预讲会”】在北京盛大举行。两天时间内,来自“情感分析”“推荐系统”“机器问答”“对话系统”等不同主题的顶级会议论文报告汇聚一堂,英雄相惜,华山论剑。

据芯君了解,本次预讲会在学术圈的火爆程度完全超出了主办方的想象,开放报名的短短几天就全面满额了,以至于主办方不得不设定条件筛选参会者。

读芯君作为本次预讲会的活动媒体,将全程跟随大会,为大家全程纪录活动中最前沿的观点,最有价值的成果,并特邀预讲会论文报告者联合为读者朋友们推出预讲会系列组文,向你展示顶会最新论文成果。

这是读芯术解读的第42篇论文

作者:王义中,刘凯,刘璟,和为,吕雅娟,吴华,李素建,王海峰

ACL 2018

基于跨文档答案验证的多文档阅读理解

Multi-Passage Machine Reading Comprehension with Cross-Passage Answer Verification

北京大学、百度

Peking University、Baidu

【摘要】真实Web数据上的阅读理解任务,通常与搜索引擎相结合,它要求机器能够在检索回来的多篇文档中找到答案来回答问题。与单文档上的阅读理解任务相比,在多个文档中通常包含多个极具混淆性的答案,因而多文档阅读理解目前还面临极大的挑战。针对这个问题我们提出,可以让从不同文档中找到的候选答案,基于他们的内容表示来进行互相验证,从而能够选出最好的答案。具体地,我们提出了一个端到端的神经网络模型,同时训练了三个不同的模块从三个不同的方面来预测答案:答案的边界、答案的内容和跨文档的答案验证。我们在英文的MS-MARCO数据集和中文的DuReader数据集上进行了实验,结果表明我们的模型相对基线模型有很大的提高,并且在两个数据集上都取得了最先进的性能。

1 简介

机器阅读理解使得计算机能够从文本数据中获取知识和回答问题,因而也被认为是构建通用智能代理的关键步骤之一。近年来,机器阅读理解技术迅速发展。随着各种不同类型的数据集的发布,机器阅读理解任务从早期的完形填空形式( CNN-DM,CBT )发展到从单个文档中提取答案,并进一步发展到基于web数据来进行更复杂的问答任务( MS-MARCO,SearchQA,DuReader )。

针对这些阅读理解任务,研究人员进行了大量的研究,并设计了多种不同的模型。尤其是对从单文档中抽取答案,多个阅读理解模型已经在SQuAD数据集上超过了人工标注的性能,这被认为是机器阅读理解的一个重要的里程碑。然而,考虑到我们希望阅读整个互联网来回答任意问题的终极目标,这一针对维基百科的阅读理解的成功仍然是不够的。因此,几个最新的数据集(Nguyen等,2016; He等,2017;Dunn等,2017)试图通过引入搜索引擎来设计更加真实的阅读理解任务。通常,对于每个问题,他们使用搜索引擎检索出多个相关文档,阅读理解模型需要阅读这些文档来给出最终的答案。

这种多文档阅读理解一个的内在挑战是,由于所有文档都是与问题相关的,但通常它们又是独立写作的,所以很可能存在多个极具混淆性的候选答案(正确或不正确)。表1显示了一个来自MS-MARCO的例子。我们可以看到,所有候选答案都在语义上跟问题有一定的匹配,而它们在字面上是不同的,其中一些答案甚至是不正确的。正如Jia和Liang(2017)所示,这些混淆的候选答案对与机器阅读理解模型来说是很难区分的。因此,我们需要对这种多文档的阅读理解进行专门的研究。

表1. 一个MS-MARCO中的例子。加粗的部分是根据答案边界模型预测的每个文档中最可能的候选答案。[1]中的候选答案是该模型预测的概率最高的答案,而正确的答案来自[6],并且能够得到[3],[4],[5]的答案的验证。

在本文中我们提出,可以利用来自不同文档的候选答案来验证其中的正确答案并且过滤那些不正确的答案。我们的方法基于以下假设,即正确的答案可能会在不同文档中更频繁地出现,并且通常具有一些共同点,而不正确答案通常彼此不同。表1的例子证明了这种现象。 我们可以看到,从最后四篇文章中提取的候选答案都是问题的有效答案,并且它们在语义上彼此相似,而来自另外两篇文章的候选答案是不正确的,并且很难从其他文档获得支持性的信息。正如人类通常比较来自不同来源的候选答案来确定最终的答案,我们也希望机器阅读理解模型可以利用跨文档的答案验证来获得提升。

我们在MS-MARCO(Nguyen等,2016)和DuReader(He等,2017)数据集上进行了大量的实验。结果显示,我们的基于跨文档答案验证的阅读理解模型相对基准模型有明显的提升,并且在两个数据集上都达到了最先进的性能。

2 方法

图1 模型的整体架构

图1是我们模型的整体框架,由三个模块组成。首先,我们采用了之前阅读理解中常见的答案边界模型(Seo等,2016; Wang and Jiang,2016),通过确定答案的起始和结束位置(图2)从每篇文档中找到可能的候选答案。其次,我们对这些候选答案内容的语义进行建模,在语义建模时我们会对答案的内容进行打分,这从另一个角度(除了边界)来衡量了答案的质量。第三,我们通过让每个候选答案根据它们的内容表示对其他候选答案进行验证。我们希望候选答案可以根据它们的语义相似性,彼此收集支持信息,从而进一步决定每个候选是否正确。因此,最终的答案由三个因素决定:答案边界,答案内容和跨文档的答案验证。这三个步骤使用不同的模块进行建模,在我们的端到端框架中,这三个模块可以得到联合训练。下面,我们分步骤介绍模型的几个关键部分:

2.1 问题和文档建模

给定一个问题Q和一系列由搜索引擎搜索到的文档,我们的任务是找出能够回答这个问题的精准答案。首先,我们需要对问题、文档进行建模,以获得它们的向量化表示。

我们首先获得问题和文档中的每个词的embedding表示(其中词的embedding和字符embedding的加和),然后我们使用双向LSTM来进行编码(Encoding):

之后我们利用注意力机制进行问题(Q)和文档(P)的匹配,即Q-P Matching。我们采用了类似于Attention Flow Layer(Seo 等, 2016)的方式,但我们使用了更简洁的相似度矩阵计算方法,直接使用点积来计算问题中的第t个词和文档中第k个词的相似度:

基于计算出来的相似度矩阵,我们严格按照Attention FlowLayer的方式使用了问题到文档和文档到问题的注意力机制,并最终获得了带有问题信息的文档表示。然后,我们又使用了一层双向LSTM来 融合上下文信息,对文档中的每个词我们获得了新的表示:

需要指出的是,对于多篇文档,早先的其他工作(Wang 等,2017)简单地将它们连接起来看成一个文档,与他们不同,在编码和Q-P匹配阶段我们将每一篇文章独立看待。

2.2 答案边界预测

为了从文档中抽取出答案片段,之前的研究一般采用预测答案边界的方式,它也被证明是一种有效的答案抽取方式,因此在我们的模型中也采用了这一方式,在这里我们称之为答案边界模型。我们使用了Pointer Network(Vinyals 等, 2015)来计算每一个词作为答案开始和结束的概率:

这里,和分别是第k个词作为开始和结束的概率。需要注意的是,为了使得计算出来的概率能够在不同文档间可比,在使用Pointer Network之前,我们是将所有文档的表示连接起来进行注意力机制计算的。这个边界模型可以通过最小化正确的开始和结束位置的负的对数似然进行优化:

2.3 答案内容建模

先前的工作采用答案边界模型,找到边界分数最大的片段作为最终答案。但是,在我们的模型中,除了找到候选答案之外,还需要对候选答案加以表示,从而能够进行跨文档的验证。一种直观的方法是,先对每个文档提取候选,然后再计算候选答案的表示,但这种分步的方法很难进行端到端的训练。在这里,我们提出了一种新的方法,可以根据概率获得候选答案的表示。具体地,我们对输出层做了修改,除了在上一章节介绍的边界预测之外,我们还预测了每一个词被包含在答案的内容中的概率:

训练这一答案内容模型的方式非常直观,我们只需要把原来的答案边界的标签转换为一段连续的答案内容标签,即答案内部的词将会被标记成1,外部的词将会被标记成0。我们使用交叉熵作为内容模型的损失函数:

我们对每一个词计算了一个它被包含进答案内容的概率,这一概率在答案边界之外,提供了另一个角度来衡量答案的好坏。更进一步的,使用这一概率,我们可以将从第i个文档找出的答案片段Ai表示为:

2.4 跨文档答案验证

答案边界模型和答案内容模型分别着重于在单个文档内提取和建模答案,而很少考虑跨文档的信息。但是,正如简介中所讨论的,可能会有来自不同文档的多个候选答案,其中一些可能会误导阅读理解模型来做出不正确的预测。有必要综合不同文档的信息,并从这些候选中选出最好的答案。因此,我们提出了一种方法,使候选答案能够通过跨文档的答案验证过程,进行信息交换和答案验证。

给定从所有文档中抽取出来的候选答案表示,我们让每一个答案候选关注其他的答案候选,从而能够通过注意力机制来收集支持性的信息:

这里,是根据注意力的权重来收集的对答案Ai的验证信息,之后我们计算Ai的验证分数如下:

为了训练这一个验证模型,我们将从正确的文档抽取的那个答案作为正确答案,希望通过验证,能够将改答案选出。因此,损失函数可以定义为该答案的负的对数似然:

2.5 联合训练和预测

如上所述,我们为多文档的阅读理解模型定义了三个目标:1. 找出答案的边界; 2. 预测每个单词是否应该包含在内容中; 3. 通过跨文档的答案验证选出最佳答案。 根据我们的设计,这三项任务可以共享相同的底层表示。因此,我们提出可以将它们作为多任务学习进行训练(Ruder,2017)。联合的目标函数形式如下:

当预测最终答案时,我们考虑边界分数,内容分数和验证分数。 我们首先从文档i中提取具有最大边界分数的候选答案。这里,边界分数是候选答案的开始位置和结束位置概率的乘积。然后,对于每个候选答案,我们取它的所有单词的内容概率平均值作为为的内容分数。在计算完候选答案的表示之后,我们进一步使用验证模型预测的验证得分。最后,我们根据这三个分数的乘积从所有候选答案中选择出最终的答案。

3 实验

3.1 数据集

我们选择MS-MARCO和DuReader数据集来测试我们的模型,因为它们都是针对真实世界的搜索引擎进行设计的,并且包含从网络中检索出来的大量文档。这两个数据集的一个区别是,MS-MARCO主要来自英文互联网,而DuReader则是针对中文的阅读理解设计的。我们希望这种多样性可以反映我们方法的泛化能力。在数据量方面,MS-MARCO包含102023个问题,每个问题下包含大约10个文档。而DuReader则保留了每个问题的前5名的搜索结果,并且共包含201574个问题。

答案验证的一个先决条件是应该有多个正确的答案,以便他们能够相互验证。MS-MARCO和DuReader数据集都注意到了每个问题可能有多个答案对应的现象,因此它们都要求标注者在需要的情况下生成多个答案。

表2 含有多个有效答案或者有效答案片段的问题比例

表2显示了两个数据集中有多个答案的问题的比例。 然而,多次出现的相同答案在这里被视为一个单一的答案。 因此,我们还统计了在文档中可找到多个文本片段能够人工生成的答案能够匹配的问题比例。这里我们认为,F1值大于0.7即为一个有效的匹配。从这些统计数据中,我们可以看到,对于MS-MARCO和DuReader来说,多答案的现象是相当普遍的。如果我们能够正确利用这些信息,它们将为答案验证提供非常有效的信号。

3.2 主要结果

表3 我们的模型和其他模型在MS-MARCO测试集上的表现

表3中列出了我们的系统和其他目前最先进的模型在MS-MARCO数据集上的结果。我们采用官方评估指标,包括ROUGE-L(Lin,2004)和BLEU-1(Pa-pineni等,2002)。 正如我们所看到的,对于这两种指标,我们的单一模型都明显优于其他模型。鉴于目前的效果已经非常接近于人的表现,这一提升是非常可贵的。如果我们将用不同的随机种子和超参数训练的多个模型进行融合,效果可以得到进一步的改善,并且也超过Tan等(2017年)的集合模型,尤其是在BLEU-1上。

在DuReader测试集上,我们评测了我们的模型和几个基线系统,结果如表4所示。我们对比了在原始的DuReader论文中汇报的BiDAF和Match-LSTM的结果,与这两个基线系统相比,我们也尝试通过采用段落排序(PR)模型来改变测试期间的段落选择策略。我们可以看到,段落排序可以显着提高BiDAF基线。之后,基于这个新的段落选择策略,我们实现了我们的系统,结果表明,我们的单模型系统,已经能够显著提高在DuReader上的效果。

表4 在DuReader数据集上的表现

3.3 各模块分析

为了更好地分析我们的系统,我们在MS-MARCO开发集上,对我们的系统的各个模块进行了分析。这里,我们主要关注Rouge-L这一指标。从表5中,我们可以看出跨文档的答案验证对整体的提升有明显的效果,这证实了我们的假设,即跨文档的答案验证对于多文档机器阅读理解是正面作用的。对于去除掉答案内容模型,我们分析它不仅会影响内容评分本身,还会破坏验证模型,因为答案内容概率对于答案表示是必要的,如果只用边界概率将很难捕捉到答案的语义信息。另一个发现是,联合训练这三种模式可以带来巨大的好处,这表明这三项任务实际上是密切相关的,并且可以共享底层的表示,互相促进。最后,将我们的方法与基线进行比较,不考虑是非分类这一技巧,我们仍然可以提高3分左右。 这一显著提升也证明了我们方法的有效性。

表5 在MS-MARCO开发集上进行的各模块分析

3.4样例分析

为了演示我们模型的每个模块在预测最终答案时的作用,我们在表6中展示了一个样例,使用了和简介中同样的例子。对于每个候选,我们列出了由边界模型、内容模型和验证模型分别对每个答案给出的分数。

一方面,我们看到这三个分数有一定的相关性。例如,第二个候选答案在所有三个模型中得分最低。我们分析这是因为这些模型在底层共享相同的编码和匹配层,并且这种相关性保证了内容和验证模型不会太多地破坏边界模型的结果。另一方面,当边界模型在混淆的候选答案([1],[3],[4],[6])中作出错误的判断时,我们看到答案验证分数可以在这里发挥作用。此外,正如我们所预期的,验证模型倾向于为那些具有语义共性的候选答案([3],[4],[6])给出更高的分数,而且这些都是有效的答案。通过把这三个分数相乘,我们的模型最终能够正确地预测出答案。

表6 我们的模型预测的表1中的候选答案的分数

3.5 答案内容模型的作用

我们采用了单独的答案内容模型来计算出答案内容概率,从而获得答案表示,而没有直接采用边界概率。我们认为这个内容模型对于答案验证过程是非常必要的。图2展示了针对一段文本预测的内容概率以及边界概率。我们可以看到边界和内容概率可以捕捉到答案的不同方面。由于候选答案通常有相似的边界词,如果我们根据边界概率计算答案表示,很难反映不同候选答案之间的真实差异。相反,对于内容概率,我们更关注答案的内容部分,这就可以提供更多可辨识的信息来验证出正确的答案。此外,利用内容概率,我们可以调整每个单词的权重,以便在最终答案表示中不重要的单词(例如“and”和“.”)也得到较低的权重。

图2 模型预测出的边界概率和内容概率

4 结论

我们提出了一个端到端的框架来解决多文档的机器阅读理解任务。在我们的模型中,我们设计了三个不同的模块,它们分别可以寻找答案边界,对答案内容进行建模并进行跨段落的答案验证。通过变换答案标签的形式,我们可以有监督地训练这三科模块,而且联合训练可以进一步改进模型的效果。 实验表明,我们的模型能够明显超过基准模型,并且在两个极具挑战性的数据集上实现了目前最先进的性能,而且这两个数据集都是针对真实Web数据上的阅读理解而设计的,因此具有很大的应用价值。

留言 点赞 发个朋友圈

我们一起探讨AI落地的最后一公里

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20180609G044LX00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券