OpenQA论文阅读(七) Latent Retrieval for Weakly Supervised Open Domain Question Answering
2022-03-09 14:39:00

image-20220309143951580

Abstract

​ 最近关于开放领域问题回答(QA)的研究假设对支持性证据进行强有力的监督,并/或假设使用一个黑盒信息检索(IR)系统来检索候选证据。我们认为两者都是次优的,因为黄金证据并不总是可用的,而且QA与IR有根本上的不同。我们首次表明,在没有信息检索(IR)系统的情况下,从问答字符串对中联合学习检索器和阅读器是可能的。在这种情况下,从所有维基百科中检索的证据被视为一个潜在变量。由于从头学习是不切实际的,我们用逆封闭任务对检索器进行预先训练。我们评估了五个QA数据集的开放版本。在提问者已经知道答案的数据集上,一个传统的IR系统(如BM25)就足够了。在用户真正寻求答案的数据集上,我们证明了学习检索是至关重要的,在精确匹配中比BM25多出19分。

1. Introduction

​ 由于阅读理解系统的最新进展,人们再次对证据必须从开放语料库中检索(而不是作为输入)的开放领域问题回答(QA)产生兴趣。这为实际应用提供了一个更现实的场景。

​ 目前的方法需要一个黑盒信息检索(IR)系统来完成大部分繁重的工作,即使它不能在下游任务上进行微调。在DrQA推广的强监督环境中(Chenetal.,2017),他们还假设了一个经过问答证据三组训练的阅读理解模型,如SQuAD(Rajpurkar等人,2016)。信息检索系统在测试时被用来生成候选证据来代替黄金证据。在由TriviaQA(Joshi等人,2017)、SearchQA(Dunn等人,2017)和类星体(Dhingra等人,2017)提出的弱监督场景中,通过信息检索系统提供了有噪声的黄金证据,消除了对强监督的依赖。

​ 这些方法依赖于红外系统来大规模减少搜索空间和/或减少虚假的模糊性。然而,QA与IR有根本上的不同(Singh,2012)。IR涉及词汇和语义匹配。而根据定义,问答系统的问题还不够明确,需要更多的语言理解,因为用户正在明确地寻找未知的信息。我们应该直接学习使用问答数据进行检索,而不是让召回率上限受限于的信息检索系统。

​ 在这项工作中,我们介绍了第一个开放检索问题回答系统(ORQA)。ORQA学习从一个开放的语料库中检索证据,并且只由问答字符串对进行监督。虽然最近改进证据检索的工作取得了显著进展(Wang et al., 2018; Kratzwald and Feuerriegel, 2018; Lee et al., 2018; Das et al., 2019),但他们仍然只是重新排序。完全端到端学习的主要挑战是,在开放语料库上的检索必须被认为是一个潜在的变量,从头开始训练是不现实的。信息检索(IR)系统提供了一个合理但可能的次优的起点。

​ 这项工作的关键见解是,如果我们用反向完型填空任务(ICT)对信息检索(IR)系统进行预先训练,端到学习是可能的。在反向完型填空任务(ICT)技术中,句子被视为伪问题,其上下文被视为伪证据。给定一个伪问题,ICT需要从一批候选证据中选择相应的伪证据。ICT预训练提供了一个足够强的初始化,这样ORQA,一个联合检索器和阅读器模型,可以通过简单的优化端到端优化确定所找到的正确答案的边际对数似然值。。

​ 我们在五个现有QA数据集的开放版本上评估了ORQA。在问题作者已经知道答案的数据集上——squad(Rajpurkar等人,2016)和TriviaQA(Joshi等人,2017)——检索问题类似于传统的IR,BM25(Robsorn等人,2009)提供了最先进的检索。在问题作者不知道答案的数据集上——自然问题(克维特科夫斯基等人,2019年)、网络问题(Berant等人,2013年)和Baudis和塞迪夫y,2015年)——我们表明学习检索是至关重要的,在比BM25精确匹配方面提供6到19点的改进。

2. Overview

​ 在本节中,我们将介绍开放域QA的符号,它对于比较之前的工作、基线和我们提出的模型很有用。

2.1 Task

​ 在开放域的问题回答中,输入qq是一个问题字符串,输出aa是一个答案字符串。与阅读理解不同,证据的来源是一个建模选择,而不是任务定义的一部分。我们比较了表1中阅读理解和问题回答任务所做的假设。

image-20220309150708509

​ 根据DrQA的评估脚本,评估与任何参考答案字符串都是精确匹配的(Chenetal.,2017)。

2.2 Formal Defifinitions

​ 我们介绍了包含许多基于检索的开放域问题回答系统的模型组件的几种一般定义。

​ 模型被定义为一个非结构化的文本语料库,该语料库被分割成B个证据文本块。 一个问题可以被描述为(b, s),其中1bB1\leq b \leq Bbb用来表示证据块,ss用来表示b内的区域,span的开始和结束标记索引分别用START(s)START(s)END(s)END(s)表示。

​ 模型定义了一个评分函数S(b,s,q)S(b,s,q),表示给定一个问题q的答案推导b,s(b,s)的有效性。通常,此评分函数通过检索组件Sretr(b,q)S_{retr}(b,q)和阅读器组件Sread(b,s,q)S_{read}(b,s,q)进行分解:

S(b,s,q)=Sretr(b,q)+Sread(b,s,q)S(b,s,q) = S_{retr}(b,q)+S_{read}(b,s,q)

​ 在推理过程中,模型输出得分最高的推导的答案字符串:

a=TEXT(argmaxb,sS(b,s,q))a^{*}=TEXT(\mathop{\arg\max}\limits_{b,s}{ S(b,s,q)})

​ 其中TEXT(b,s)TEXT(b,s) 确定性地将答案b,s(b,s)映射到一个答案字符串。任何开放领域的问题回答系统的一个主要挑战是处理规模。在我们在英语维基百科语料库上进行的实验中,我们考虑了超过1300万个证据块bb,每个证据块都有超过2000个可能的答案跨度ss

2.3 Existing Pipelined Models

​ 在现有的基于检索的开放域问题回答系统中,黑盒IR系统首先选择一组封闭的候选证据。例如,来自DrQA(Chenetal.,2017)的检索器组件的得分被定义为:

Sretr(b,q)={0btop(k,tfidf(q,b))otherwiseS_{\mathit{retr}}(b, q) = \begin{cases} 0 & b \in {top}(k, {tf-idf}(q, b)) \\ -\infty & \text{otherwise} \end{cases}

DrQA之后的大多数工作使用与TF-IDF相同的候选对象,并专注于阅读理解或重新排序。阅读组件Sread(b,s,q)S_{read}(b,s,q)是从黄金答案学习,通常从SQuAD (Rajpurkar et al.,2016)数据集,其中证据文本在其中已有包含。

​ 在与我们的方法更密切相关的工作中,阅读器完全是从薄弱的监督中学习到的(Joshi等人,2017;Dhingra等人,2017;Dunn等人,2017)。虚假的歧义被检索系统启发式地消除(见表2),清理后的结果被视为黄金衍生物。

image-20220310151434801

3 Open-Retrieval Question Answering (ORQA)

​ 我们提出了一个端到端模型,其中检索器和阅读器组件是共同学习,我们称之为开放检索问题回答(ORQA)模型。ORQA的一个重要方面是它的表达性——它能够在一个开放的语料库中检索任何文本,而不是被限制在一个黑盒IR系统返回的封闭集上。图1展示了ORQA如何回答派生的分数。

image-20220310151605335

​ 随着迁移学习的最新进展,所有的评分组件都来自于BERT(Devlinetal.,2018),这是一种双向转换器,已经在无监督的语言建模数据上进行了预训练。关于架构的细节,我们请读者参考原始论文。在本工作中,相关的抽象可以通过以下功能来描述:

BERT(x1,[x2])={CLS:hCLS,1:h1,2:h2,...}BERT(x_1, [x_2]) = \{\texttt{CLS}:h_{\texttt{CLS}}, 1:h_1, 2:h_2, ...\}

BERT函数接受一个或两个字符串输入(x1x_1和可选的x1x_1)作为参数。它返回与CLSCLS标记或输入标记的表示对应的向量。

检索部分

​ 为了使检索器能够可学习,我们将检索分数定义为问题qq和证据块bb的密集向量表示的内积。

hq=WqBERTQ(q)[CLS]h_{q}=W_{q}BERT_{Q}(q)[CLS]

hb=WbBERTB(b)[CLS]h_{b}=W_{b}BERT_{B}(b)[CLS]

Sretr(b,q)=hqThbS_{retr}(b,q)=h_{q}^{T}h_{b}

其中WqW_{q}WbW_{b}是将BERT输出投影到128维向量中的矩阵。

阅读部分

​ 阅读组件是Devlin等人(2018)提出的阅读理解模型的一个基于跨的变体:

hstart=BERTR(q,b)[SRART(s)]h_{start}=BERT_{R}(q,b)[SRART(s)]

hend=BERTR(q,b)[END(s)]h_{end}=BERT_{R}(q,b)[END(s)]

Sread(b,s,q)=MLP([hstart;hend])S_{read}(b,s,q)=MLP([h_{start};h_{end}])

​ span由其端点的连接来表示,该连接由一个多层感知器进行评分,以实现开始/结束交互。

推理/学习的挑战

​ 上面描述的模型在概念上很简单。然而,推理和学习却具有挑战性,因为(1)开放证据语料库提供了一个巨大的搜索空间(超过1300万个证据块),(2)如何在这个空间中导航完全是潜在的,所以标准的教师强制方法并不适用。

​ 由于大量的模糊推导,Latent-variable 方法也很难简单地应用。例如,如表2所示,维基百科中许多不相关的段落都包含答案字符串“Seven”。

image-20220310152533781

​ 我们通过使用无监督的预训练仔细地初始化检索器来解决这些挑战**(第4节)。预先训练好的检索器允许我们对维基百科中的所有证据块进行(1)预编码,从而在微调过程中实现动态而快速的top-k检索(第5节),(2)使检索远离虚假的歧义转向支持性证据(第6节)**。

4 Inverse Cloze Task

​ 我们提出的预训练程序的目标是让检索器解决一个与QA的证据检索非常相似的无监督任务。

​ 直观地说,有用的证据通常会从问题中讨论实体、事件和关系。它还包含了问题中不存在的额外信息(答案)。问题-证据对的无监督模拟是句子-文本对——句子的上下文在语义上是相关的,可以用来推断句子中缺失的信息。

​ 根据这种直觉,我们建议用一个反向填空任务(名字是我自己翻译的,差不多吧,差不多是这个意思)(ICT)对我们的检索模块进行预训练。在标准的Cloze任务(Taylor,1953)中,目标是根据其上下文来预测掩码文本。相反,ICT需要预测反向给定的一个句子,预测它的上下文(如图2所示)

image-20220311084007818

​ 我们使用了一个类似于下游检索的区别性目标:

PICT(bq)=exp(Sretr(b,q))bBATCHexp(Sretr(b,q))P_{ICT}(b|q)=\frac{exp(S_{retr}(b,q))}{\sum_{b^{'}\in BATCH}{exp(S_{retr}(b^{'},q))}}

​ 其中qq是一个随机的句子,被视为一个伪问题,bb是围绕qq的文本,批处理是批处理中用作抽样负样本。ICT的一个重要方面是,它需要学习的不仅仅是单词匹配特征,因为伪问题并没有出现在证据中。例如,图2中的伪问题从未明确提到“斑马”,但寻检索器仍然必须能够选择讨论斑马的上下文。能够从未指定的语言中推断出语义是QA与传统IR的区别。

然而,我们也不想阻止检索器学习执行单词匹配——词汇重叠最终是检索的一个非常有用的特征。因此,我们只在90%的例子中将句子从上下文中删除,鼓励模型在需要时学习抽象表示,在可用时学习低级单词匹配特征。

​ ICT预训练实现了两个主要目标:

  1. 尽管在训练前的6090句子和微调过程中的问题不匹配,我们期望zero-shot证据检索性能足以引导潜在变量学习。
  2. 预先训练的证据块和下游证据块之间没有这种不匹配。我们可以期望块编码器BERTB(b)在没有进一步训练的情况下工作良好。只有问题编码器需要对下游数据进行微调

正如我们将在下一节中看到的,这两个特性对于实现计算上可行的推理和端到端学习是至关重要的。

5 Inference

​ 由于固定块编码器已经为检索提供了一种有用的表示方法,因此我们可以预先计算证据语料库中的所有块编码。因此,大量的证据块不需要在微调时重新编码,它可以使用现有的工具将其预编译为一个索引,以进行快速的最大内部搜索。

​ 使用预编译的索引,推理遵循一个beam-search过程。我们检索前k个证据块,只计算这k个块昂贵的读者分数。虽然我们在单个推理步骤中只考虑top-k个证据块,但该集合在训练过程中会动态变化,因为问题编码器是根据弱监督的QA数据进行微调的,如下一节所述。

6 Learning

​ 学习相对简单,因为ICT应该提供非平凡的zero-shot检索。我们首先定义一个在答案推导上的分布:

P(b,sq)=exp(S(b,s,q))bTOP(k)sbexp(S(b,s,q))P(b,s|q)=\frac{exp(S(b,s,q))}{\sum_{b^{'}\in TOP(k)}{\sum_{s^{'}\in b^{'}}{exp(S(b^{'},s^{'},q))}}}

其中,TOP(k)TOP(k)表示基于SretrS_{retr}检索到的前kk个块。我们在实验中使用了kk=5。

给定一个答案字符串a,我们可以在beam中找到所有(可能是虚假的)正确的推导,并优化它们的边际对数似然:

Lfull(q,a)=logbTOP(k)sb,a=TEXT(s)P(b,sq)L_{full}(q,a)= -log\sum_{b\in TOP(k)}{\sum_{s\in b,a=TEXT(s)}{P^{'}(b,s|q)}}

其中a=TEXT(s)a=TEXT(s)表示答案字符串aa是否与spansspans完全匹配。

​ 为了鼓励更积极的学习,我们还包括了一个早期更新,其中我们考虑一个更大的c证据块集,但只更新检索分数,这计算起来很容易:

Pearly(bq)=exp(Sretr(b,q))bTOP(c)exp(Sretr(b,q))P_{early}(b|q)=\frac{exp(S_{retr}(b,q))}{\sum_{b^{'}\in TOP(c)}{exp(S_{retr}(b^{'},q))}}

Learly(q,a)=logbTOP(c),aTEXT(b)Pearly(bq)L_{early}(q,a)= -log\sum_{b\in TOP(c),a\in TEXT(b)}{P_{early}(bq)}

其中,一个aaTEXT(b)TEXT(b),表示回答字符串aa是否出现在证据块bb中。我们在实验中c=5000c = 5000

最终的损失包括以下两个更新:

L(q,a)=Lfull(q,a)+Learly(q,a)L(q,a) = L_{full}(q,a) + L_{early}(q,a)

如果根本没有找到匹配的答案,则将丢弃该示例。虽然我们期望几乎所有的例子都在随机初始化时被丢弃,但由于ICT预训练,我们在实践中丢弃了不到10%的例子。

​ 如前所述,我们对除证据块编码器中的参数之外的所有参数进行了微调。由于查询编码器是可训练的,因此该模型可能会学习检索任何证据块。这种表达能力是与黑盒IR系统的一个关键区别,在黑盒红外系统中,回忆只能通过检索更多的证据来提高。

实验/结论

待完善

总结

​ 作者将retrieval和reader一起训练,retrieval得分是通过基于BERT的编码器之间的内积来计算的,得分最高的证据块与问题共同编码,并使用多层感知器对span表示进行评分,这是reader的得分,最终的分数是retrieval得分+reader得分。由于inference阶段的检索是有巨大的搜索空间的,retriever不好学习,因此引入了预训练任务的想法,使用Inverse Close Task预训练retriever。在RC上进行fine-tune, fine-tune的时候只更新question encoder,原因是ICT里面的block和fine-tune的是同一类语料,而question是伪造的。实验在Natural Questions,WebQuestions,CuratedTrec三个数据集上比BM25更好,但是在TriviaQA,SQuAD上不如BM25,作者说可能原因是后俩数据集在编写问题的时候看到了document,所以很多用词来自于document,这样对更注重exact match的BM25更有利,而前三个数据集的问题用户没有看到document,更需要学习得到的semantic match。