A Deep Cascade Model for Multi-Document Reading Comprehension瀑布模型 阅读理解笔记

《A Deep Cascade Model for Multi-Document Reading Comprehension》

这篇文章是发表在2019年AAAI上的,主要是从抽取模型的有效性和候选排序模型的实效性进行权衡,提出了一种端到端的瀑布模型。在TriviaQA和DuReader数据集上得到了SOTA效果。

分以下四部分介绍:

  • Motivation
  • Model
  • Experiment
  • Discussion

1、Motivation

在阅读理解的抽取模型当中:

  • 模型的复杂度决定了有效性
  • 模型的时效性是来自于对文档的筛选和过滤

考虑到真实世界的多文档的场景,是非常困难的去保证以上两个指标。

为了解决这个问题,作者提出了一种深度瀑布模型。

  • 过滤的文档和段落当中的冗余信息
  • 联合训练三个模块去获得更好的答案

2、The Deep Cascade Model

2.1 overview

A Deep Cascade Model for Multi-Document Reading Comprehension瀑布模型 阅读理解笔记
模型主要包含三个部分,文档检索,段落检索,答案抽取。在前面两个模块中,排序函数主要是基于统计和结构特征,快速过滤掉不相关的文档。对于保留下来的那些文档,在不同粒度上设计了三个抽取任务。

2.2 Cascade Ranking Functions

Document Ranking
1、在文档排序方面使用传统的信息检索方法。比如BM25,TFIDF距离,去衡量问题和文档之间的相关性。

2、另外在文档当中问题词出现的召回,也可以作为一个额外的特征去表明文档和问题的相关性。

3、为了学习到不同特征的重要性,使用了一个learning to rank去给每篇文档分配一个权重相关性分数。为了让这部分速度较快,直接把任务映射成一个二分类的问题,并且使用逻辑回归作为排序函数。

4、在排序之后我们保留topK的排序文档便于后续处理。

Paragraph Ranking
1、给定上述的排序文档之后,同理去得到段落和问题之间的相关性。因为文档的结构也包含一些固有信息,比如第1段常常含有很多信息,可以作为摘要。所以我们也会增加一些结构特征,比如说段落是否是第1段或者是最后一段,段落的长度等等。

2、还可以加入问题的类型信息作为额外的二元特征(比如DuReader)。为了更好的去结合不同的特征,使用XGBoost排序。同样是用二元逻辑损失进行训练。

3、最后我们用Top K的文档和Top N的段落。

2.3 Multi-task Deep Attention Model

然而用所有的文档和段落,可能也很困难去直接的找到答案。因此把答案预测任务分成了三个模块,文档抽取、段落抽取、答案抽取,通过多任务学习可以得到更好的效果。
A Deep Cascade Model for Multi-Document Reading Comprehension瀑布模型 阅读理解笔记

Shared Q&D Modeling

首先连接词向量和基于CNN的字符向量,通过一个双向LSTM得到文档和问题的表示。
A Deep Cascade Model for Multi-Document Reading Comprehension瀑布模型 阅读理解笔记
然后使用attention去进行计算得到αij\alpha_{ij}[2],加权求和得到得到融入问题信息的文档的表示u~tD\widetilde u_t^D
A Deep Cascade Model for Multi-Document Reading Comprehension瀑布模型 阅读理解笔记
为了去融合原始的文档信息,采用了一个fusion kernel[1]得到更好的语义表达vtDv_t^D(词级别)。
A Deep Cascade Model for Multi-Document Reading Comprehension瀑布模型 阅读理解笔记
为了去建模长距离依赖的问题,我们也用了self attention,然后再经过一个fusion kernel。
这里有个问题,WsTW_s^T是一个双线性投影矩阵,这部分的维度有点不太清楚,第i个词和第j个词做一个softmax之后得到的β\beta是一个标量还是向量?
A Deep Cascade Model for Multi-Document Reading Comprehension瀑布模型 阅读理解笔记
最终我们获得了文档的表示。

对于问题的表示,因为考虑到问题比较短,直接使用一个self align
A Deep Cascade Model for Multi-Document Reading Comprehension瀑布模型 阅读理解笔记
Document Extraction

首先使用一个self align,对每一个token做softmax,然后把所有的token加权求和。得到每一篇文档的表示(由词级别转为文档级别)。
这个dtDid_t^{Di}是词级别的,对词向量的维度做一个softmax是什么操作?上面那个问题的表示也是一样,直接使用一个self align对词向量的维度做一个softmax
A Deep Cascade Model for Multi-Document Reading Comprehension瀑布模型 阅读理解笔记
接下来用问题和文档,通过一个双线性投影矩阵,计算得到相关性。A Deep Cascade Model for Multi-Document Reading Comprehension瀑布模型 阅读理解笔记
对于每一个问题,每篇文档都会有一个匹配得分我们进行归一化。
然后优化下面的目标函数,K表示的是文档的数量。
A Deep Cascade Model for Multi-Document Reading Comprehension瀑布模型 阅读理解笔记

Paragraph Extraction

段落抽取这一块和文档是类似的。优化下列的目标函数,对所有的文档和段落。
A Deep Cascade Model for Multi-Document Reading Comprehension瀑布模型 阅读理解笔记

Answer Span Extraction

最终的目标是要去预测一个正确的答案。先前的文档抽取和段落抽取作为两个辅助性的任务,能够让底层的语义表达得到更好的学习。为了直接的在不同文档之间进行比较,并且让文档的表达能够捕获不同文档的信息,作者把所有抽取的文档都连接起来,并且引入了一个多文档共享的LSTM层进行建模

A Deep Cascade Model for Multi-Document Reading Comprehension瀑布模型 阅读理解笔记
f是一个手工特征向量包含了丰富的信息,比如说文档当中的词是否出现在问题当中,这个词是否是一个句子结束的分隔符。结合问题的表达和文章的表达是为了更好的建模交互。

(下面这段对应粉红色模块的那段文字,模型里有写上,不是很理解,感觉文档的顺序对预测答案应该是没有影响的,论文里下述解释也不是很懂)
因为来自不同文章的所有的词都会通过共享的LSTM层,这个系列的顺序是非常重要的。用document ranking order进行排序。
这样,我们期望的答案预测模型也能够在文档检索模块中考虑排名相关性(we expect that the answer prediction model can also bear the ranking relevance in document retrieval module in mind)

然后使用指针网络进行预测。最小化真实起止位置的-log似然。
A Deep Cascade Model for Multi-Document Reading Comprehension瀑布模型 阅读理解笔记

Joint Training and Prediction
这三个抽取任务共享底层的表达。最终的目标函数如下:
A Deep Cascade Model for Multi-Document Reading Comprehension瀑布模型 阅读理解笔记
为了使训练更稳定,先训练下层任务,获得初始参数,然后再进行联合训练。在进行联合训练的时候,我们引入一个正则化,θ\theta 表示的是底层共享参数。以这样的方式是为了限制联合训练时共享参数不会改变的太大(为了提高时间效率)。
A Deep Cascade Model for Multi-Document Reading Comprehension瀑布模型 阅读理解笔记

预测最终答案的时候,三个得分都进行考虑,然后选择最高得分的答案:
A Deep Cascade Model for Multi-Document Reading Comprehension瀑布模型 阅读理解笔记

3、Experiment

线下实验
1、在TriviaQA和DuReader数据集上,这两个数据集上的结果可以见表1和表2,证明了瀑布模型确实是有效的。
A Deep Cascade Model for Multi-Document Reading Comprehension瀑布模型 阅读理解笔记
A Deep Cascade Model for Multi-Document Reading Comprehension瀑布模型 阅读理解笔记
2、从Ablation实验中,共享的LSTM扮演着一个很重要的角色。原因可能有两点(不理解)
a) it helps to normalize the content probability score from multiple documents so that the answers extracted from different documents can be
directly compared
b) it can keep the ranking order from document ranking component in mind, which may serve as an additional signal when predicting the best answer

3、先前的瀑布模型排序和多任务学习的答案抽取策略都很重要,通过去除文档当中不相关的噪声数据,MRC模型可以更好的去抽取相关答案。联合训练的结果表明了三个任务是紧密相关的,并且能够在底层表示彼此促进。
A Deep Cascade Model for Multi-Document Reading Comprehension瀑布模型 阅读理解笔记
4、从这个图也能看出文档和段落的抽取任务,提高了2.3。另外可以看到文档抽取的效果比段落的效果要好。原因可能是不同文档的信息之间的辨识度较大。
A Deep Cascade Model for Multi-Document Reading Comprehension瀑布模型 阅读理解笔记
5、表4衡量了有效性和时间效率。可以看到在文档数量为4,段落数量为2的情况下,有效性是最强的。但是当段落数量改成1时,时间开销减少了36%,但是效率只降低了2.4%。所以在线上使用的时候可以适当的去权衡这两者之间的关系。
A Deep Cascade Model for Multi-Document Reading Comprehension瀑布模型 阅读理解笔记

线上实验

在进行线上实验的时候,作者是用了两个场景,一个场景是电子商务促进一个场景,是税收政策的阅读。

6、当使用了瀑布排序模型之后,可以看到F1提高了很多,而且时间上也减少了将近一半。
A Deep Cascade Model for Multi-Document Reading Comprehension瀑布模型 阅读理解笔记
7、对文档的长度也进行了一个实验,随着文档长度增加,没有瀑布排序模型的基线在准确率上有所降低。因为文档信息较多,噪声数据较多,会对模型的判别造成影响。然而增加了瀑布排序模型,我们可以将噪声数据进行过滤。因此效果只是略微下降。

而且在时间上面也可以看到随着长度的增加,基线模型在时间上也有所增加。然而本文的模型时间上只是略有增加。
A Deep Cascade Model for Multi-Document Reading Comprehension瀑布模型 阅读理解笔记

4、Discussion

优点:

  • 之前V-Net虽然考虑的答案可能会来自多个文档,但是其把所有的文档信息都用上了。而这篇文章他完全过滤了不必要的文档和段落信息。称之为瀑布模型。
  • 也考虑了多任务学习,通过辅助的标签信息得到更好的底层表示。

缺点:

  • 对段落抽取那一部分,有个问题就是,文字说到相关的段落只有1,2个,可是平均即标签只有正样本只有一个,其余的都是负样本的,类别失衡。(想错了,没关系的,后面实验作者只取了top-3的段落)

5、Question

在文中已经加粗,望相互讨论!

Reference

[1]Wang, W.; Yan, M.; and Wu, C.2018. Multi-granularity hierarchical attention fusion networks for reading comprehension and question answering.(ACL)
[2]Chen, D.; Fisch, A.; Weston, J.; and Bordes, A. 2017a. Reading wikipedia to answer open-domain questions.