论文解读: :Reinforced Ranker-Reader for Open-Domain Question Answering
开放领域问答主要目标是从开放的资源中寻找答案,在目前自动问答任务中十分关键。本文是一篇2017年AAAI会议的问答系统,其认为当前大多数的问答都是基于事先提取好的候选文本作为抽取答案的passage,而并不符合实际应用;而在实际中,需要结合信息检索方法来自主地搜索与问题相关的passage并进行答案的抽取,这一过程非常繁琐,且依赖于检索的候选passage的质量。本文则提出Searcing-Reading QA(SR-QA)方法,并使用深度强化学习进行训练。
一、简要信息
序号 | 属性 | 值 |
1 | 模型名称 | |
2 | 所属领域 | 问答系统,自然语言处理 |
3 | 研究内容 | 机器阅读理解 |
4 | 核心内容 | Match-LSTM; Reinforcement Learning |
5 | GitHub源码 | |
6 | 论文PDF | https://ink.library.smu.edu.sg/cgi/viewcontent.cgi?article=5240&context=sis_research |
二、全文摘要翻译
最近几年研究成功地将神经网络应用到问答系统领域,并在一些近领域(Closed-domain settings)问答数据集(SQuAD)上达到最好效果,这种类型的数据集是预先根据问题整理好的候选文章(passage)而构建的。最近研究者们将目标转移到开放领域问答,即给定模型一个问题以及大量的文本信息而不是预先处理好的小部分passage,这种设定使得问答很复杂也很困难,这需要模型既能够检索出与问题相关的文本,还要能够较好地抽取答案。
),其基于两种算法。我们先使用Ranker部分来从检索到的文本中学习一个权重分布,根据每个passage与问题的相关性分配概率;其次使用强化学习方法联合训练Ranker和Reader两个部分。我们在五个评测数据集上进行验证。
三、开放领域问答的挑战
目前基于文本问答可以分为两小类,一种是以标准问答(standard Reading Comprehension, RC) 为主的,其表示先通过人工选择一些passage以确保这些passage包含目标答案,然后使用深度学习方法寻找对应的答案位置。另一宗则是先搜再读(Searc-and-Reaning QA, SR-QA),这种情况下,我们只给定问题和答案对,而不提供passage,因此需要借助信息检索工具,并设计算法或策略进行筛选。
我们认为,SR-QA是非常接近实际问答需求的,但往往这一过程非常困难,例如当询问“What is the largest island in the Philippines?”,需要使用信息检索工具来获取可能与之相关的文本,如图所示:
可发现,信息检索工具提供了3个文本材料,并按得分降序排列。作者使用BM25算法完成检索可知P1虽然与问题很相关,可是并没有所需要的答案;P3虽然包含于答案有关的关键词,但其并没有回答与问题相关的内容,而只有P2才包含答案内容。因此可知信息检索工具的检索并不能确保答案存在,引入不包含答案的文本作为噪声会对模型产生影响。
BM25算法
BM25算法是一种为检索工具进行打分的算法。简单的来说,给定一个检索语句,首先使用分词工具将该语句切分若干个语素(也可理解为实体词),每个语素可根据IDF计算其相对权重,其次每个语素也可以根据设计的得分函数计算其与每篇文档的相关性,最后对每个语素加权求和后即可得到得分。
因此,本文提出一种 Reinforced Ranker-Reader 问答模型,其包含两个主要模块:
- Ranker排序层:目标是根据检索工具获取的候选passage,分别计算其可能存在答案的概率,并形成概率分布,基于该概率分布挑选最有可能包含答案的passage;
- Reader阅读层:在训练阶段,如果挑选的passage包含答案,则进行反向梯度传播来更新参数
两个模块都共享同一个编码层,作者选择Match-LSTM作为编码层,对于Ranker和Reader两个模块则是编码层上的分类器。
四、模型
4.1 Match-LSTM
使用Match-LSTM作为编码层。该模型主要目的是实现“带着问题读文章”的过程。即在对passage进行编码时,每读取一个token时,都判断其与question的所有token的相关性,因此passage的每个token都会得到其对question的注意力权重分布并对question加权求和。
和文章,其最大长度分别为 ,分别使用参数共享的双向LSTM进行编码:
其中表示passage的编码,表示question的编码。对于的每个token,其与进行权重计算,所有的token都进行计算后即可得到:
其中 表示可训练的参数,而 则表示权重矩阵,其某一列则表示某个passage的token对应的question各个token注意力的权重。因此有 。最终可以得到passage融合question的编码信息:
其中 表示元素对应积。矩阵
;同理在Reader部分是给定问句和挑选的某个passage,依然可以再次得到一个passage的表征向量,记做
4.2 Ranker
Ranker部分目标是计算每个候选passage可能存在答案的概率分布,公式如下:
事实上,作者将上述的三个公式定义为强化学习中的策略,即 (其中 表示文章 存在答案的概率),因此可以使用强化学习中的采样机制,例如
4.3 Reader
本文将Reader的目标设计为预测passage中的start和end两个位置,即start和end及其之间的作为抽取的答案。因此需要进行两步,每一步都来预测passage的各个token可能作为start或end的概率分布,即:
和
损失函数定义为:
4.4 强化学习训练
至此为止,我们谈到了Ranker、Reader,而Reinforced是什么呢?作者则使用强化学习来联合训练这两个部分,如图所示:
,中间则是根据概率分布 的采样得到一个 passage ,并将其与负样本一同喂入Match-LSTM中并预测start和end位置的概率,并得到loss。因此我们可以发现,Ranker部分策略好不好将影响Reader的分类性能,因此可以使用强化学习的激励机制来训练。
最后作者发现,如果直接使用上面给出的损失函数
,;如果完全一致则给2分,第二和第三种情况之所以分值区间不同,是因为第二种情况可能预测的区间完全覆盖了正确区间,但这样的结果依然是不完善的。
因此最后策略梯度的损失可以表示为:
策略梯度则可推导为:
其中,第二行至第三行使用了log trick方法,第三行至第四行则加入了reward,可以看到,这一行公式既包含了Ranker的策略梯度更新(加号前面),又包含了Reader的梯度下降更新(加号后面)。因此该公式可以做联合训练。
预测阶段,则可将Ranker和Reader部分参数固定,并分别得到对应的两个得分(即概率值),二者乘积作为最终预测的概率:
本篇论文与 论文解读:Reinforcement Learning for Relation Classification from Noisy Data 有异曲同工之妙,都是使用强化学习来训练两个模块,在本文中Ranker相当于策略智能体,Reader则相当于去执行动作,即根据采样的passage拿去训练和预测,效果好说明这个Ranker采样策略好,就给予高分,并让模型偏向于这种采样,如果不好,则说明该采样策略不好,给予低分,而在策略控制阶段,根据当前认为的比较好的Ranker,去更新Reader,尽可能的预测准。
五、实验
实验选择5个数据集,分别为:
- Quasar-T:专门为SR-QA设计的,每个问句都对应检索工具挑选的100个passag;
- SQuAD:是由斯坦福NLP设计的问答,其包含Q、A以及人工选择的passage;本文只使用Q和A,不使用提供的passage,组成的数据集叫做 SQuAD(open);
- WikiMovies:与电影有关的问题答案配对,可直接从维基百科上搜索passage;
- CuratedTREC:是基于TREC的开放领域问答;
- WebQuestion:专门为知识图谱问答(KBQA)设计的问答系统,本文也只是用QA对,不使用知识库;
除了第一个数据集是给定的检索好的passage,其他四个都需要自行使用检索工具来完成,作者使用传统的检索工具,并运用BM25算法搜索200个与问题相关的文章,然后对每个文章切分成句子(显然句子数量远远超过200个)后再使用TF-IDF获得前200个句子。
实验结果如下所示:
GA、BiDAF和DrQA是三个baseline模型,SR和SR2则是本文模型的简单版本,可知在5个数据集上,我们的方法达到最好。具体的实验分析可详情该论文。
六、总结
本文章首次将强化学习应用在开放领域问答(SR-QA)中,因为在判断哪个passage存在答案时,由于passage并没有标注这个标签,所以我们可以使用强化学习去自己学习,这很好的避免一些其他SR-QA工作中需要启发式的远程监督标注策略(例如当句子包含答案就认为这个passage是相关的)。
当然本文也有一些缺点,例如该工作依然是抽取式找答案的过程,而如果检索到的所有的passage中都不存在答案的区间,那这个训练过程就是无意义的,且这些passage都将是噪声。另外,作者是基于句子进行抽取的,而有些答案可能存在跨句子的情况,或者答案存在多个句子里,因此在Ranker采样时不能只采一个passage,而应该设定一个阈值来采样多个。