摘要  

        开放领域问答的生成模型已经被证明是有竞争力的,不需要求助于外部知识。虽然很有前途,但这种方法需要使用具有数十亿个参数的模型,这些模型的训练和查询成本很高。在本文中,我们研究了这些模型从检索文本段落中获益的程度,这些文本段落可能包含证据。我们在自然问题和TriviaQA开放基准测试中获得了最先进的结果。有趣的是,我们观察到,当检索的段落数量增加时,该方法的性能显着提高。这证明序列到序列模型提供了一个灵活的框架来有效地聚合和组合来自多个通道的证据。 

1 引言

        近期,有几项工作表明可以从在大量数据上训练的大规模语言模型中提取事实信息(Radford等人,2019年;Petroni等人,2019年;Jiang等人,2019年;Talmor等人,2019年)。基于这一观察结果和自然语言处理模型预训练的进展,Roberts等人(2020年)引入了一个用于开放领域问答的生成模型。这种方法不依赖外部知识,在几个基准测试中取得了有竞争力的结果。然而,由于所有信息都需要存储在权重中,这要求模型包含数十亿个参数。这使得模型的查询和训练成本高昂。在本文中,我们研究了这种方法在访问外部知识源(如维基百科)时能获得多大的益处。基于检索的方法之前已在带有抽取式模型的开放领域问答的背景下被考虑(Chen等人,2017年)。在这种情况下,系统首先检索支持文档,然后从这些文档中提取答案。已经考虑了不同的检索技术,有的使用基于TF/IDF的稀疏表示,有的使用密集嵌入(Guu等人,2020年;Karpukhin等人,2020年)。提取答案的模型通常基于上下文化词表示,如ELMo或BERT(Peters等人,2018年;Devlin等人,2019年),并预测一个作为答案的文本跨度。在使用抽取式模型时,从多个文本段落中汇总和组合证据并非易事,已经提出了多种技术来解决这一局限(Clark和Gardner,2018年;Min等人,2019a年)。
        在本文中,我们探索了一种简单的方法,它结合了生成建模和开放领域问答检索的最新发展。这种方法分为两步,首先使用稀疏或密集表示检索支持段落。然后,一个序列到序列模型生成答案,输入的是检索到的段落以及问题。尽管在概念上很简单,但这种方法在TriviaQA和NaturalQuestions基准测试上设定了新的最先进结果。特别是,我们展示了当检索到的段落数量增加时,我们方法的性能显著提高。我们相信,这是生成模型在从多个段落组合证据方面优于抽取式模型的证据。 

2 相关工作 

        开放领域问答任务是回答一般领域的疑问,其中证据不是作为输入提供给系统的。尽管这是自然语言处理中的一个长期问题(Voorhees等人,1999年),但自从Chen等人(2017年)的工作之后,这个任务最近又重新引起了人们的兴趣。在那个版本的问题中,学习系统可以获得强监督,形式为与答案对应的文本跨度。Chen等人(2017年)提出了解决这个问题的方法,即首先从维基百科检索支持文档,然后从检索到的文档中提取答案。提出了不同的方法来处理没有给系统提供黄金跨度,而只有正确答案的情况。Clark和Gardner(2018年)提出了一种基于所有与答案对应的跨度进行全局归一化的方法,后来这种方法被应用于基于BERT的模型(Wang等人,2019年)。Min等人(2019a年)引入了一种基于硬期望最大化方法来处理这种设置中的噪声监督。Wang等人(2018b年)描述了一种技术,用于聚合来自不同段落的答案,使用置信度和覆盖度分数。
        段落检索是开放领域问答中的一个重要步骤,并且是提高QA系统性能的一个活跃研究领域。最初,基于TF/IDF的稀疏表示被用来检索支持文档(Chen等人,2017年)。Lee等人(2018年)引入了一种基于BiLSTM的监督学习方法来重新排名段落,而Wang等人(2018a年)训练了一个使用强化学习的排名系统。提高QA系统检索步骤的第二个方法是使用额外的信息,如维基百科或Wikidata图谱(Min等人,2019b年;Asai等人,2020年)。最近,多项工作表明,完全基于密集表示和近似最近邻的检索系统与传统方法相比具有竞争力。这样的模型可以使用弱监督,形式为问题-答案对(Karpukhin等人,2020年)进行训练,或者通过完形填空任务进行预训练,然后端到端微调(Guu等人,2020年;Lee等人,2019年)。
        在之前的工作中,生成式问答主要被认为是针对需要生成答案的数据集,如NarrativeQA(Kociský等人,2018年)、CoQA(Reddy等人,2019年)或ELI5(Fan等人,2019年)。这些数据集是以一种答案不对应于支持文档中的文本跨度的形式生成的,因此需要抽象式模型。Raffel等人(2019年)表明,生成式模型在阅读理解任务(如SQuAD(Rajpurkar等人,2016年))中具有竞争力,这些任务的答案是对应的文本跨度。Roberts等人(2020年)提出使用大型预训练生成模型,不使用额外知识,用于开放领域问答。与我们的工作最接近的是,Min等人(2020年)和Lewis等人(2020年)为开放领域问答引入了检索增强的生成模型。我们的方法与这些工作的不同之处在于生成模型处理检索到的段落的方式。这允许我们扩展到大量文档,并从大量证据中受益。 

3 方法 

        在本节中,我们将描述开放领域问答的方法。它分两步进行,首先检索支持通道,然后用序列到序列模型处理它们。 

        检索。在检索支持段落时,我们考虑了两种方法:BM25(Robertson等人,1995年)和DPR(Karpukhin等人,2020年)。在BM25中,段落被表示为词袋,排名函数基于术语和文档的逆频率。我们使用Apache Lucene1的默认参数实现,并使用SpaCy2对问题和段落进行分词。
在DPR中,段落和问题被表示为密集的向量表示,这是通过两个BERT网络计算得到的。排名函数是查询和段落表示之间的点积。使用FAISS库3执行近似最近邻检索。
        阅读。我们的开放领域QA生成模型基于一个序列到序列网络,该网络在无监督数据上进行了预训练,如T5或BART(Raffel等人,2019年;Lewis等人,2019年)。模型以问题和支持段落作为输入,并生成答案。更准确地说,每个检索到的段落及其标题与问题连接在一起,并由编码器独立于其他段落进行处理。我们在问题、标题和每个段落的文本之前添加了特殊标记question:、title: 和context:。最后,解码器对所有检索到的段落的表示的连接执行注意力。因此,模型仅在解码器中进行证据融合,我们将其称为解码器中的融合。
        通过在编码器中独立处理段落,但在解码器中联合处理,这种方法与Min等人(2020年)和Lewis等人(2020年)的方法不同。在编码器中独立处理段落允许扩展到大量上下文,因为它一次只对一个上下文执行自注意力。这意味着模型的计算时间与段落数量呈线性增长,而不是二次方增长。另一方面,在解码器中联合处理段落可以更好地从多个段落中聚合证据。 

4 实验 

        在本节中,我们报告了Fusion-in-Decoder在开放领域QA中的实证评估。
        数据集。我们考虑以下数据集,并使用与Lee等人(2019年)相同的设置:

  • NaturalQuestions (Kwiatkowski等人,2019年) 包含与Google搜索查询相对应的问题。这个数据集的开放领域版本是通过丢弃超过5个令牌的答案获得的。
  • TriviaQA (Joshi等人,2017年) 包含从琐事和问答联赛网站收集的问题。TriviaQA的未过滤版本用于开放领域问答。
  • SQuAD v1.1 (Rajpurkar等人,2016年) 是一个阅读理解数据集。给定从维基百科提取的段落,注释者被要求编写问题,其答案是对应段落中的一个跨度。

        遵循Lee等人(2019年)的做法,我们将验证集作为测试集,并将训练集的10%用于验证。
我们使用2018年12月20日的Wikipedia转储用于NQ和TriviaQA,以及2016年12月21日的转储用于SQuAD。我们应用与Chen等人(2017年);Karpukhin等人(2020年)相同的预处理,得到不重叠的100个单词的段落。
        评估。预测的答案使用标准精确匹配指标(EM)进行评估,该指标由Rajpurkar等人(2016年)引入。生成的答案在经过规范化后,如果与可接受答案列表中的任何答案匹配,则被视为正确。这个规范化步骤包括将文本转换为小写,并移除冠词、标点和重复的空白。
        技术细节。我们在HuggingFace Transformers库中使用的预训练T5模型(Raffel等人,2019年)初始化我们的模型。我们考虑两种模型大小,基础和大型,分别包含220M和770M参数。我们分别在每个数据集上独立地对模型进行微调,使用Adam(Kingma和Ba,2014年)优化器,学习率为10^-4,dropout率为10%。我们以64的批量大小训练模型10k梯度步骤,使用64个Tesla V100 32Gb。我们每500个步骤评估一次模型,并根据验证集上的精确匹配分数选择最佳模型。在NaturalQuestions和SQuAD上进行训练时,我们从答案列表中抽样目标,而对于TriviaQA,我们使用唯一的人类生成的答案。对于TriviaQA,将大写答案通过将每个单词的第一个字母除外,将所有字母转换为小写来进行规范化,使用Python字符串的title方法。对于训练和测试,我们检索100个段落(除非另有说明),并将它们截断为250个词片。遵循Karpukhin等人(2020年)的结果,使用DPR检索NQ和TriviaQA的段落,使用BM25检索SQuAD的段落。我们通过使用贪婪解码生成答案。


        与最先进技术的比较。在表1中,我们将Fusion-in-Decoder获得的结果与现有开放领域问答方法进行了比较。我们观察到,尽管在概念上很简单,但这种方法在NaturalQuestion和TriviaQA基准上优于现有工作。特别是,与抽取式方法相比,当需要从多个段落聚合证据时,生成模型似乎表现良好。我们的方法也比其他生成模型表现得更好,显示出扩展到大量段落并联合处理它们可以提高准确性。其次,我们观察到,通过使用检索在生成模型中引入额外知识,可以显著提高性能。在NaturalQuestions上,封闭书卷的T5模型使用110B参数获得了36.6%的准确率,而我们的方法使用770M参数加上使用BM25检索的维基百科获得了44.1%的准确率。这两种方法存储信息所需的内存量大致相同,表明基于文本的显式记忆在知识检索任务中具有竞争力。

 
        随着段落数量的扩展。在图3中,我们报告了根据检索到的段落数量得出的性能。特别是,我们观察到,将段落数量从10增加到100,在TriviaQA上提高了6%的性能,在NaturalQuestions上提高了3.5%。另一方面,大多数抽取式模型的性能似乎在10到20个段落时达到峰值(Wang等人,2019年;Yang等人,2019年)。我们相信这是序列到序列模型擅长从多个段落组合信息的证据。
训练段落数量的影响。在上一节中,模型是用相同数量的段落进行训练和评估的。为了减少训练计算预算,一个简单的解决方案是用更少的段落训练模型。在表2中,我们报告了用不同数量的段落训练而用100个段落测试获得的性能。我们观察到,减少训练段落数量会导致准确率下降。此外,我们提出使用100个段落对先前模型进行1000步的微调。这允许在显著减少计算资源的情况下缩小准确率差距:我们可以在NaturalQuestions上达到46.0的EM,使用147个GPU小时,而训练100个段落则需要425个GPU小时。
        总结。我们的研究表明,通过在解码器中融合来自多个段落的证据,可以显著提高开放领域问答的性能。我们的方法不仅简单,而且在NaturalQuestions和TriviaQA基准上超越了最先进的技术。此外,我们展示了通过增加检索到的段落数量,可以进一步提高模型的准确性。我们还发现,即使是大型生成模型,也可以通过使用检索来引入额外的知识,从而实现性能的显著提升。最后,我们的实验还表明,减少训练过程中的段落数量可以在保持高性能的同时显著降低计算成本。这些发现为开放领域问答和大型语言模型的进一步研究提供了有价值的见解。 

5 结论 

        在本文中,我们研究了一种简单的开放域问答方法,该方法依赖于检索支持段落,然后用生成模型对其进行处理。我们表明,虽然概念上很简单,但这种方法与现有方法具有竞争力,并且随着检索段落的数量的增加,它可以很好地扩展。在未来的工作中,我们计划使这个模型更有效,特别是在扩展到大量支持通道时。我们还计划将检索集成到我们的模型中,并端到端学习整个系统。 

 

 

 

更多推荐