Simple and Effective Multi-Paragraph Reading Comprehension

ACL 2018 Simple and Effective Multi-Paragraph Reading Comprehension

github

背景

本文是华盛顿大学和艾伦研究所发表在ACL 2018 年上的工作,它主要关注的问题是阅读理解(Reading Comprehension),并提出了一种处理整篇文档作为输入的段落型QA模型。现有的模型虽然可以在短文档QA问题上取得不错的效果,但是模型却并不具有很好的放缩性,即同样的模型在长文档和多文档的情形下往往难以取得理想的效果,它们经常会忽略一些看起来和问题相关性较小却包含答案的段落。

因此,为了解决上述的多段落型QA问题,作者在本文中通过修正训练模式,使得模型可以学会忽略哪些不包含答案的段落,并从全局考虑最后答案的提取。最后在riviaQA和SQuAD上进行实验,证明了所提出模型的优异性。

对于多段落的QA问题而言,现有的处理方法主要有以下两种:

  • 从多个段落中找到可能包含答案的段落,并从中抽取对应于问题的答案
  • 使用一种置信度(Confidence)模型来对候选答案进行打分,最后返回分数最高的答案即可

相比之下置信度模型的鲁棒性更好,但最后的效果同样依赖于模型能够给出准确的分数。因此,两种方法就自身而言都存在着一定的不足。

本文结合以上两种方法各自的优势,首先提出了一种新的流水线方法,通过构建的线性分类器来从文档中选择多个段落,并使用一种基于全局信息的目标函数来要求模型生成全局正确的输出。另外提出了一种新的模型训练方法,它可以帮助置信度模型为每个段落计算准确的置信度分数。

流水线方法

当所处理的是单文档时,模型选择和问题具有最小TF-IDF余弦相似度的段落作为下一阶段答案抽取的对象;当所处理的为多文档时,这里根据TF-IDF分数、段落在文档中的位置、段落所包含的token数、问题中的词在段落中的比例等统计特征构建一个线性分类器,当有新的处理文档到达时,根据分类器的结果来决定是否用于答案的抽取。

另外在监督式学习中,如果将匹配答案的所有文本范围标记为正确,可能会使得模型最终选择到不包含正确答案的部分。因此,这里使用了一种总和目标函数(summed objective function),通过优化选择任何正确答案范围的负对数似然,一次降低选择非必要答案的范围,具体来说就是需要模型独立的预测开始的位置和结束的位置。

模型

本文提出的模型如下:


在这里插入图片描述

扫描二维码关注公众号,回复: 9095547 查看本文章

模型整体上分为如上所示的五个部分:

  • Embedding:这里使用了词嵌入和字符嵌入的拼接方式,其中字符嵌入通过CNN+MaxPooling获得
  • Pre-process:这里使用Bi-GRU来进一步的获取关于文本和段落的表示
  • Attention:在前两步得到了关于问题和段落的表示后,我们需要判断该段落和问题之间哪些部分是相关的。这里使用的是双向注意力模型(Bi-Directional Attention Flow Model),假设 h i h_{i} q j q_{j} 分别表示段落的第 i i 个词和问题中的第 j j 个词,那么注意力分数计算为: a i j = w 1 h i + w 2 q j + w 3 ( h i q j ) a_{ij}=w_{1} \cdot h_{i} + w_{2} \cdot q_{j} + w_{3} \cdot (h_{i} \bigodot q_{j}) 然后根据结果计算段落中每个词对应的attened vector p i j = e a i j j = 1 n q e a i j c i = j = 1 n q q j p i j p_{ij}=\frac{e^{a_{ij}}}{\sum_{j=1}^{n_{q}}e^{a_{ij}}} \\ c_{i}=\sum_{j=1}^{n_{q}}q_{j}p_{ij} 按照类似的思想,同样可计算得到一个基于段落的查询表示向量 q c q_{c} 。最终的表示向量为 h i , c i , h i c i , q c c i h_{i},c_{i},h_{i} \bigodot c_{i},q_{c} \bigodot c_{i} 拼接后的结果,它会通过一个线性层来作为下一阶段的输入。
  • Self-Attention:通过另一个Bi-GRU,应用相同的Attention机制来对段落信息进行分析
  • Prediction:最后使用Bi-GRU+Linear来预测答案在段落中所对应的开始和结束位置
Confidence Model

当输入为多文档时,在每个文档中都可能存在与问题相对应的答案区域,因此就需要一个置信度模型为此打分,这里使用的基于边界的模型,每个答案区间的分数是开始分数和结束分数之和。

为避免模型在启发式模式下产生的过度自信(比如模型可能过于依赖去选择与问题所要求的语义类型相匹配的答案),这里尝试了4种模型训练方法, 并都会将不包含答案的段落作为额外的训练点进行抽样。

  • Shared-Normalization:这里修改了目标函数,其中从相同上下文中采样的所有段落的开始和解书分数都被标准化,这样使得具有相同上下文的段落在最终的softmax操作前具有相同的标准化系数,迫使模型最终得到的分数具有可比性
  • Merge:将从相同上下文中采样的所有段落进行拼接,在每个段落前添加具有学习嵌入的段落分隔标识符
  • No-Answer Option允许模型为每个段落选择一个特殊的无应答选项
  • Sigmoid:考虑具有S形损失目标函数的训练模型。通过将sigmoid函数应用于每个标记的开始/结束分数来计算每个标记的开始/结束概率,用交叉熵损失用于每个单独的概率。

在后面的实验中显示第一种方法始终优于其他的方法。

实验部分可见原文。

发布了267 篇原创文章 · 获赞 91 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/Forlogen/article/details/103177865