论文题目:《Multi-Passage Machine Reading Comprehension with Cross-Passage Answer Verification》

论文来源链接:原文链接

Abstract

基于真实Web数据的机器阅读理解(MRC)要求机器通过对搜索到的多个段落进行分析以后,回答问题。与基于当个段落的MRC相比,多个段落的MRC更具有挑战性,因为我们可能会从不同的段落中获得多个令人困惑的答案候选者。为了解决这个问题,我们提出一个end-to-end神经模型,该模型使得来自不同段落的答案候选者能够根据他们的内容表示来互相验证。具体来说,我们联合训练三个模块,这三个模块可以基于三个因素预测最终答案:答案边界、答案内容和跨段落答案验证。实验结果证明我们的模型相比于baseline有大幅度的提高,而且在英文的MS-MARCO数据集和中文DuReader数据集上都获得了最优性能。

1 Introduction

这种多段落的MRC存在一个固有的挑战,就是所有段落都与问题有关,但是通常都是分开写的,因此很可能存在多个令人困惑的答案候选者(正确or不正确)。

为了解决这个问题,我们假设正确的答案可能会更频繁的出现在其他段落,并且会有一些共性,但是错误的答案通常与其余答案不同。人类可以通过对比候选答案的来源,推理出正确的答案,所以我们也希望MRC模型也可以从跨段落答案验证过程中受益。

我们的模型如图所示,主要由三个模块组成。第一,我们根据基于边界的MRC模型找到每个段落的候选答案的起始位置。第二,我们模拟从这些段落中提取的答案候选者的含义,并使用content score从另一个角度来衡量候选答案的质量。第三,我们通过让每个候选答案根据其余候选者的表示参加其他候选者来构建答案验证。

这三个模块采用不同的模块来建模,但是可以在我们的end-to-end模型中进行联合训练。

2 Approach

首先,对问题和段落进行建模,也就是计算每个段落的question-aware表示。根据这些表示,我们采用一个Pointer Network来预测答案的起始位置。与此同时,答案内容模型,我们评估每个单词是否应该被包含在答案中,从而获得答案表示。接下来,在答案验证模块中,每个候选答案可以参加其余的候选者们来收集支持信息,然后我们根据验证信息,对每个候选答案都计算一个分数来衡量该答案是否正确。最后的答案,由答案边界、内容、验证分数来决定。

2.1 Question and Passage Modeling

给定一个问题Q和搜索引擎获得的一组段落集合 left{ P_{i} 
ight} ,我们的任务是找到问题最佳的答案。首先介绍问题和段落的建模细节:

Encoding:我们首先把每个单词映射到向量空间,也就是将每个单词的word embedding和单词对应的character embedding的和相连接,然后采用BiLSTM来编码问题Q和段落left{ P_{i} 
ight}

这里的 e_{t}^{Q} c_{t}^{Q} e_{t}^{P_{i}} c_{t}^{P_{i}} 是第t个词语在词级别和字元级别的embedding,u_{t}^{Q} u_{t}^{P_{i}} 分别是问题和段落的第t个词语的编码输出。

Q-P Matching:MRC中的一个重要步骤是将问题和段落相匹配,这样就可以突出重要信息。我们采用Attention Flow Layer对Q-P的两个方向进行匹配,这里的相似度矩阵采用一个较为简单的方式来获得:

然后context-to-question attention和question-to-context attention将根据Seo et al.(2016)中所提出的方法来获得question-aware段落表示 left{ 	ilde{u}_{t}^{P_{i}} 
ight} ,具体计算方法此处不再详细说明。然后采用另一个BiLSTM来做信息融合,得到段落中每个单词的表示:

基于得到的段落表示,我们下面详细介绍本论文所提的三个模块。

2.2 Answer Boundary Prediction

我们采用Pointer Network来预测每个单词作为起始位置的概率:

利用attention权重,可以获得段落中第k个单词作为答案的起始位置的概率 alpha_{k}^{1}alpha_{k}^{2},边界模型可以通过以下方式进行训练:

这里N是指训练样本数, y_{i}^{1}y_{i}^{2}是指gold起始位置。

2.3 Answer Content Modeling

为了能够进行后续的验证操作,我们提出一种基于概率来获取候选答案表示的方法。

具体来说就是我们更改了经典的MRC模型的输出层,除了预测段落中答案的边界之外,我们还预测每个单词是否应该被包含在答案的内容中,段落中第k个词语的概率通过以下方式计算得到:

这个模型的训练也非常直观,我们把边界标签转换为连续的片段,也就是说在答案边界内的词语标为1,其余词语标为0,通过这种方法,我们就可以定义loss函数:

这里的内容概率从另一个角度来衡量答案的质量。获得这些概率之后,我们可以将来自段落i的答案表示为这个段落每个词语的加权和:

2.4 Cross-Passage Answer Verification

边界预测模型和内容预测模型侧重于将答案从单个段落中抽取出来,而不考虑跨段落信息。但是会出现多个候选答案来自不同的段落这种情况,所以整合不同候选答案信息选择一个最佳的答案。因此,我们提出一种方法,使得候选答案通过与其它候选答案交换信息和互相验证,从而获得验证信息。

每个段落的候选答案的表示是 left{ r^{A_{i}} 
ight} ,每个候选答案参与其它候选答案来通过attention机制获得支持信息:

这里的 	ilde{r}^{A_{i}} 是基于attention权重获得的来自其它段落的验证信息。然后我们把其与原本的候选答案表示整合在一起,并且通过一个全连接层:

然后,我们对得到的分数进行归一化处理,就可以得到每个候选答案的验证分数:

为了训练这个验证模型,我们把来自gold段落的答案作为gold answer,然后loss函数就可以通过以下方式计算得到:

这里的 y_{i}^{v} 是正确答案所在的段落索引。

2.5 Joint Training and Prediction

本模型由答案边界预测、答案内容预测和跨段落答案验证这三部分组成。由于他们共享相同的embedding、encoding和match层,所以我们提出把他们作为多任务学习来一起训练,联合训练目标函数是:

这里的 eta_{1}eta_{2}是两个超参数,来控制对应模块的权重。

在最终预测答案时,我们将边界分数、内容分数、验证分数都纳入考虑范围。我们首先抽取候选答案 A_{i} ,它已经最大化段落i的边界分数,这里的边界分数是通过将答案起始位置的概率相乘得到的。然后对于每个候选答案A_{i} ,我们把所有单词的概率求平均就得到候选答案A_{i} 的内容分数。然后我们可以使用验证模型来获得A_{i} 的验证分数。因此,可以根据这三个分数的乘积从所有答案候选中选择最终答案。

3 Experiments

为了验证模型的有效性,我们在数据集MS-MARCO和DuReader上进行实验,均取得最优实验效果。

3.1 Datasets

MS-MARCO和DuReader这两个数据集都是从真实世界的引擎搜索中获得的,区别就是MS-MARCO侧重于英文数据,而DuReader是中文数据。MS-MARCO有102023个问题,阅读理解中,每个问题大约与10个段落进行配对。DuReader共201574个问题,每个问题与相关性最高的5个段落配对。

3.2 Results on MS-MARCO

3.3 Results on DuReader

4 Conclusion

在本论文中,我们提出一个end-to-end框架来解决多段落MRC任务,我们设计了三个不同的模块分别预测答案边界、答案内容、跨段落答案验证。所有这三个模块可以使用不同形式的答案标签进行训练,联合训练它们可以实现进一步提高实验效果。实验结果大幅超过baseline的结果,证明了模型的有效性。


推荐阅读:
相关文章