Select, Answer and Explain: Interpretable Multi-hop Reading Comprehension over Multiple Documents
论文链接
代码链接
这篇文章是发表在2020年AAAI上的,京东实验室。
论文简介
基于多文档的可解释多跳阅读理解是一个具有挑战性的问题,它要求对多个信息源进行推理,并通过提供支持证据来解释答案预测. 这篇论文提出了一个有效的、可解释的SAE(Select, Answer and Explain, SAE) 系统来解决多文档RC 问题. 这个我们的系统首先过滤掉与答案无关的文件, 从而减少干扰信息的数量. 然后将选定的与答案相关的文档输入到一个模型中, 共同预测答案和支持句子. 该模型在答案预测的词级和支持句子预测的句子级同时优化了多任务学习目标, 并通过注意力机制实现了这两个任务的交互. 通过HotpotQA(一个具有挑战性的多跳RC 数据集) 的评估, 与排行榜上的其他现有系统相比, 提出的SAE 系统在distractorsetting 方面取得了最具竞争力的表现.
引言
HotpotQA
HotpotQA是为了提高机器对多个文档进行多跳推理的能力, 最近提出了一些多跳QA 数据集。该数据集想研究者提供多个文档,并要求其提供一个问题、相应的答案和用于获得答案的支持句,如图1所示。数据集具有挑战性, 因为它们要求模型能够在多个文档和强烈干扰下进行多跳推理.HotpotQA 还通过为答案提供支持句子来鼓励可解释的QA 模型, 这些句子通常来自多个文档(如果一个文档包含答案或包含答案支持句子,则称为“黄金文档”)黄金文档注释可以从支持句注释中派生出来。训练样本约为90K,开发样本为7.4K,测试样本为7.4K。与以往的多跳QA数据集不同:
- 不依赖现有知识库的不同题型增加了样本的可变性。;
- 多种多跳推理类型,包括新的基于比较的推理,需要更强的推理模型;
- 除了回答跨度文本外,还提供支持句作为远程监督,使模型能够解释预测的答案。
数据集链接
根据这个图,我们来解释一下什么是多跳阅读理解,以上这个栗子的问题为:在电影《吻与说》中扮演柯丽丝·阿彻的女人担任什么政府职务?
文件一,《吻与说》(1945年电影):《吻与说》是一部上映于1945年的美国喜剧电影,由17岁的秀兰·邓波儿饰演科利斯·阿彻。在电影中,两个十几岁的女孩引起了各自父母的关注,当他们开始对男孩感兴趣。父母争吵哪个女孩更坏的影响造成的问题比解决的问题更多。
文件二:秀兰·邓波儿:秀兰·邓波儿·布莱克(1928年4月23日- 2014年2月10日)是美国女演员、歌手、舞蹈家、商人和外交官。1935年至1938年,她还是好莱坞最具票房号召力的童星。成年后,她被任命为美国驻加纳和捷克斯洛伐克大使,还担任过美国宾司司长。
答案: 宾司司长
支持事实:[《吻与说》(1945年电影),0],[《秀兰·邓波儿》,0],[《秀兰·邓波儿》,1]
首先根据问题中电影名字《吻与说》,跳到这个电影的介绍文中,找到扮演科利斯·阿彻的人是秀兰·邓波儿,然后跳到秀兰·邓波儿的介绍文中找到她在政府担任什么职位,由此可以看出答案不是直接在某篇文章中找到的,而是通过文章之间的关联性,从一篇文章跳到另一篇文章中找到答案,这样的便是多跳阅读理解。
相关研究
为解决多跳多文档的QA 任务, 研究了两个研究方向:
- 第一个方向侧重于将以往在单文档QA 任务中取得成功的技术应用或调整到多文档QA 任务中;
- 另一个方向利用图神经网络(GNN) 实现跨多个文档的多跳推理, 并取得了很好的性能.
相关论文有:
- 在(Dhingra et al. 2018) 的工作中, 设计了一个递归层,在给定的协引用预测下, 显式地利用来自不同文档实体之间的跳过连接;
- (Zhong et al. 2019) 提出了一个基于注意的系统, 该系统表明在单文档RC 任务中广泛使用的共注意和自注意等技术在多文档RC 任务中也适用;
- (Song et al. 2018) 的研究采用了两种独立的命名实体识别(NER) 和共引用解析系统来定位支持文档中的实体,然后在GNN 中使用它们来实现跨文档的多跳推理;
- (De Cao, Aziz, and Titov 2019;Cao, Fang, and Tao2019) 直接使用候选提及作为GNN 节点,计算候选提及的分类分数;
- 在(Tu et al. 2019) 的研究中提出了一个包含文档、候选和实体节点的异构图, 以实现不同粒度级别上的丰富信息交互.
尽管上述方法取得了成功, 但目前的多跳多文档QA 方法仍存在一些局限性.
局限性
-
很少有人关注答案预测的可解释性, 这一点很重要, 也很有挑战性, 因为在多跳跃多文档的QA 任务中, 支持证据可能分散在很长的上下文或多个文档中(Welbl, Stenetorp, andRiedel 2018). 能够从分散的信息中检索证据, 从而保证QA系统更加实用和智能.
-
几乎所有现有的方法都直接对所有文档进行操作, 要么是连接它们, 要么是单独处理它们, 而不考虑大多数文档与问题无关或无助于找到答案这一事实. 很少有人尝试设计文档过滤器来删除与答案无关的文档, 并减少需要处理的信息量.准确的文档选择模块还可以在不降低性能的情况下提高QA模型的可伸缩性.
-
当前用于QA 任务的GNN 应用通常需要实体作为图节点, 通过在节点上传递上下文信息来实现推理. 这只有在预定义的目标实体集可用的情况下才有可能. 否则使用命名实体识别工具提取实体, 会导致图推理中存在冗余和有噪声的实体. 如果答案不是命名实体, 则需要进一步处理以定位最终答案.
创新点
该论文的创新点主要是根据以上三个局限性进行了改进:
- 我们设计了一个文档选择模块来过滤与答案无关的文档和去除干扰信息. 该模型基于对文档嵌入的多头自关注,以考虑文档之间的交互. 我们提出了一种新的成对的learning-to-rank 损失, 以进一步提高定位精确的最高排序与答案相关的黄金文档的能力;
- 我们的“回答和解释”模型是用预测的黄金文档在多任务学习的方式训练共同预测答案和支持句子. 我们以文本句子嵌入为节点, 基于GNN 构建多跳推理图, 而不是像之前那样使用实体作为节点, 直接输出带有答案预测的支持句子;
- 基于一种新的混合注意池机制, 文本句子嵌入使用在GNN 中对词级表示的求和. 注意力权重是通过回跨度logits 和词级表示的自注意输出来计算的. 这种基于注意力的交互使“回答”和“解释”任务之间的互补信息得以利用.
SAE系统
所提出的SAE 系统的示意图如图2 所示。
数据集数据包括我们假设数据集中的每个例子都包含一个问题和N 个文档; 一组来自不同文档的带标签的支持句子; 答案文本(可以是一段文本的跨度或“Yes/No”).
因为本文要做过滤器来筛选黄金文档和对答案类型分类,但是数据集里没有这两个任务的标签,所以要做一些准备工作。
从答案和支持句子标签中提取黄金文档标签.我们使用 D i D_{i} Di标记文档 i i i:如果 D i D_{i} Di为gold doc,则标记为1,否则标记为0.我们还将答案类型标记为以下注释之一:“Span”、“Y es”和“No”.
该图表示先根据问题和所有文档筛选出与问题相关的前 k k k篇文档,然后对筛选后的得到的黄金文档进行编码,再进行答案预测和支持句子的预测。在预测支持句子的同时对答案类型进行预测。
选择黄金文档
先来看第一步筛选所有文档,找出黄金文档。
我们的SAE系统首先从给定的N个文档输入中精确地提取黄金文档,我们系统的这一阶段对于减少传递给下游答案预测和解释生成任务的干扰信息至关重要.
输入:问题和若干个文档
对于每个文档,输入为“[CLS]”+问题+“[SEP]”+文档+“[SEP]”
然后通过bert对每个问题/文档进行编码,因为我们要对整个文档进行分类,就提取了代表全局表示的“[CLS]”标记输出作为每个问题/文档对的总结向量.
从bert输出的是每个文档的表示(向量),该向量只包含了各个文档自己的特征,但是文档间都存在一定的关系,所以通过多头自注意机制让文档间的信息得到交互,得到文档间联系与区别的信息,在“CLS”上添加一个多头自我注意(MHSA).MHSA层被定义为:
A t t e n t i o n = s o f t m a x ( Q K T d k ) Attention=softmax(\dfrac{QK^{T}}{\sqrt{d_{k}}}) Attention=softmax(dkQKT)
M u l t i h e a d = C o n c a t ( h e a d i … h e a d n ) Multihead=Concat(head_{i}\dots head_{n}) Multihead=Concat(headi…headn)
h e a d i = A t t e n t i o n ( Q W i Q , K W i K , V W i V ) head_{i}=Attention(QW_{i}^{Q},KW_{i}^{K},VW_{i}^{V}) headi=Attention(QWiQ,KWiK,VWiV)
其中,Q、K和V是来自文档“CLS”嵌入的线性投影,表示注意查询、关键字和值。
最后模型通过将文档的MHSA输出通过一个双线性层来输出每对文档的概率.
P ( D i , D j ) = s i g m o i d ( t a n h ( M i W i j M j + b i j ) P(D_{i},D_{j})=sigmoid(tanh(M_{i}W^{ij}M_{j}+b_{ij}) P(Di,Dj)=sigmoid(tanh(MiWijMj+bij)
其中 P ( D i , D j ) P(D_{i},D_{j}) P(Di,Dj)表示第 i i i篇文章比 j j j与问题更相关的概率, M i M_{i} Mi表示第 i i i篇文章从多头自注意力机制中输出的表示(向量), M j M_{j} Mj表示第 j j j篇文章从多头自注意力机制中输出的表示(向量)。
输出:两两文档之间的概率值,图中用loss表示.
如图3所示。
因为将该问题从分类问题表述为成对learning-to-rank问题,通过将一个文档与所有其他文档进行比较,该模型能够更好地将一小部分黄金文档与其他分散注意力的文档区分开来。相当于考虑了每篇文档的重要程度。但是我们的标签是针对一篇文档的,而我们的输出是对于两篇文档的关系,所以我们的标签也要进行修改,转化成两篇文档间的关系标签。
标签定义:
我们从答案和支持句子标签中提取黄金文档标签。我们使用 D i D_{i} Di标记文档 i i i:如果 D i D_{i} Di为黄金文档,则标记为 S ( D i ) = 1 S(D_{i})=1 S(Di)=1,否则标记为 S ( D i )