Query Expansion Using Contextual Clue Sampling with Language Models

  • 摘要
  • 1. 引言
  • 2. 方法
    • 2.1 上下文线索采样和过滤
    • 2.2 检索和融合
  • 3. 实验
    • 3.1 数据集
    • 3.2 实验设置
    • 3.3 基线
  • 4. 结果
  • 5. 结论

原文链接:https://arxiv.org/abs/2210.07093
(2022)


摘要

查询扩展是减少信息检索中查询和文档之间词汇不匹配的有效方法。最近的一项研究使用语言模型来生成与查询相关的上下文以进行扩展。沿着这个思路,我们认为来自这些背景的扩展术语应该平衡两个关键方面:多样性和相关性。增加多样性的明显方法是从语言模型中采样多个上下文。然而,这是以相关性为代价的,因为众所周知,模型倾向于产生不正确或不相关的上下文。为了平衡这两个考虑因素,我们提出了有效的过滤策略和基于上下文的生成概率的检索文档融合的组合。与成熟的密集检索模型 DPR 相比,我们基于词汇匹配的方法实现了类似的 top5/top-20 检索精度和更高的 top-100 精度,同时将索引大小减少了 96% 以上。对于端到端 QA,阅读器模型也受益于我们的方法,并根据多个竞争基线获得了最高的精确匹配分数。

1. 引言

尽管出现了基于语义匹配的开放域问答密集检索方法,例如 DPR(Karpukhin 等人,2020),但基于词汇匹配的方法(例如 BM25)由于其空间效率而仍然很重要,并且可以作为混合方法的输入(Gao 等人,2021;Formal 等人,2021;Lin 和 Ma,2021)。

词汇检索的核心挑战是查询和文档之间的词汇不匹配。半个多世纪以来的查询扩展技术已被证明可以有效解决这个问题(Salton,1971)。传统上,扩展项是使用伪相关反馈技术从相关语料库中预先计算的(Salton,1971;Robertson 和 Jones,1976;Abdul-Jaleel 等,2004)。在最近的工作中,GAR(Mao et al,2021)探索消除查询扩展对外部语料库的依赖,而是使用大型语言模型来生成上下文。
(“伪相关反馈”是信息检索领域的一个术语,用来描述在搜索引擎中改进搜索结果的一种技术。它基于搜索结果的前几个相关文档,假定它们是相关的,然后利用这些文档的特征来重新调整搜索查询或重新排序搜索结果,以提高搜索的准确性和相关性。)

我们认为扩展需要平衡两个关键因素:
(1)多样性:给定问题,可以有多种不同的推理路径(称为上下文线索)来得出正确答案。
(2)相关性:仅仅依赖于单个生成的上下文会增加查询漂移的风险,因为生成的上下文可能在语义上不相关或包含事实错误(Schütze 等人,2008)。然而,简单地生成多个上下文很容易出现幻觉问题——它们可能不忠实于输入或包含错误信息(Tian 等人,2019 年;Maynez 等人,2020 年;Dziri 等人,2021 年)。
因此,在这项工作中,我们希望探讨这个问题:我们如何才能最好地生成一组足够丰富的上下文线索来回答查询?

我们提出的解决方案(图 1)通过两个简单而有效的步骤克服了这些问题:过滤和融合。从微调语言模型的解码器采样 top-k 输出后,我们首先根据词汇距离对这些生成的上下文线索进行聚类。在每个集群中,高度相似的上下文线索被分组在一起,我们只保留具有最高生成概率的单个生成输出。过滤步骤有效地减少了潜在的事实错误和冗余的接近重复。然后,使用每个过滤后的上下文线索单独增强查询。我们为每个增强查询单独检索文档。作为最后一步,所有文档根据增强查询中完整上下文线索的生成概率一起排名(融合)。

我们根据两个既定基准评估我们的方法:自然问题(Kwiatkowski 等人,2019)和 TriviaQA(Lee 等人,2019)。当检索少量段落时,我们的基线模型 GAR(Mao 等人,2021)大幅落后于其密集检索模型 DPR(Karpukhin 等人,2020)。我们弥补了这一差距,在 NQ 数据集的 Top-5/Top-20 准确度上比 GAR 分别高出 3.1% 和 2.9%。与 DPR 相比,我们的方法在两个数据集上的 Top-100 准确度上优于 DPR 0.6 和 1.0 个百分点,同时需要的索引存储空间减少了 96%。将 DPR 检索到的文档与我们的方法融合在一起时,在 DPR 性能的基础上,准确率可以进一步提高 3.4%。此外,我们的检索性能还成功转移到下游问答任务,与 DPR 和 GAR 检索的文档相比,我们的方法的精确匹配分数提高了 3.2% 和 0.8%。

2. 方法

2.1 上下文线索采样和过滤

我们采用序列到序列模型,将问题作为输入,并生成答案的上下文线索作为目标。作为我们的模型,我们使用 BART-large(Lewis 等人,2020a),但请注意,生成器可以替换为任何其他序列到序列模型。上下文线索是段落中包含问题的真实答案的句子。这些句子要么是从数据集提供的段落中提取的(如果可用),要么是从用作检索器参考的匹配段落中提取的。

在推理时,我们首先从微调模型中采样一组不同的上下文线索。一般来说,单个上下文线索可以分为两个主要组成部分:相关事实(“2018 年 8 月 21 日”) 和上下文描述(“游戏发布日期”)。有趣的是,我们注意到许多生成在上下文描述中是相同的,但与事实词语(各种日期、数字或命名实体)不一致。之前的工作尝试通过额外的训练损失(Elazar et al, 2021)、添加推理模块(Nye et al, 2021)或通过多数投票(Wang et al, 2022)来解决这种不一致问题。相反,我们首先根据上下文线索的编辑距离对它们进行聚类。对于大多数情况,具有相同上下文描述但不同关系事实的上下文线索被分组在同一簇中。然后,我们对每个簇采用简单的过滤策略,保持具有最大生成概率的顶级输出,同时丢弃簇中的其余输出。因此,我们可以收集所有可能的推理路径来得出答案,同时减少潜在的事实错误。如附录 A.2 所示,过滤策略对于后续检索步骤至关重要,无论是检索效率(检索过程节省 70%)还是准确性(始终优于使用完整上下文线索)。

2.2 检索和融合

将 n 个生成和过滤的上下文线索定义为 {ci}i=1~n,我们通过将每个单独的上下文附加到问题 q 将其扩展为 {[CLS]q [SEP] ci}ni=1。继 GAR 之后,我们使用 BM25 作为检索后端,它可以被视为使用查询编码器 ηq 和段落编码器 ηd 的逻辑评分模型(Lin,2022):

其中 φ 是相似函数,例如点积或 L2 距离。
请注意,我们使用 c 表示生成的上下文,使用 d 表示语料库中的真实段落。为了聚合不同增强查询的检索结果,我们对每个增强查询单独执行检索,并使用生成的上下文 ci 的似然 p(ci | q) 作为融合权重。因此,每个问题-文章对的最终检索得分 sf (q, d) 计算如下:

我们最终根据融合分数对候选进行重新排序,并返回 top-k 段落用于下一阶段的答案提取。

3. 实验

3.1 数据集

我们在两个广泛使用的 ODQA 数据集上进行了实验:Natural Questions (NQ)(Kwiatkowski et al,2019)和 TriviaQA(Joshi et al,2017)。 NQ 由 79,168 个训练题、8,757 个开发题和 3,610 个测试题答案对组成。我们使用 TriviaQA 的开放域分割,其中包含 78,785 个训练、8,837 个开发和 11,313 个测试 QA 对(Lee 等人,2019)。

3.2 实验设置

我们对 BART-large 模型(Lewis 等人,2020a)进行了微调,以生成上下文线索。给定问题,我们使用波束大小为 100 的波束搜索从 BART 生成 100 个候选输出。我们首先使用内置 difflib Python 模块的模糊字符串匹配对候选进行聚类。相似度截止值设置为 0.8,任何得分低于截止值的字符串对都不会保留在同一组中。平均而言,对于每个问题,经过过滤后,NQ 有 24 个上下文线索,TriviaQA 有 33 个上下文线索。有关处理上下文线索的更多详细信息,请参阅附录 A.1 和 A.2。

对于每个上下文线索增强查询,我们使用 Pyserini (Lin et al, 2021) BM25 来检索前 1000 个候选段落。然后根据等式(2)对所有检索到的文档重新排序。
更多详细信息包含在附录 A.3 中。

3.3 基线

检索器
开放域 QA 中的检索传统上是使用基于精确术语匹配(exact term matching)的稀疏向量空间模型 BM25(Robertson 和 Zaragoza,2009)来实现的。 DPR(Karpukhin et al, 2020)通过将问题和段落表示为密集向量来实现检索。 GAR(Mao et al, 2021)建议通过添加相关答案、段落标题和答案所属的句子来扩展查询。它还融合了自己的结果和 DPR (GAR+DPR) 的结果。为了进行公平的比较,我们将生成目标从仅答案上下文(Ours-single)扩展到包括答案和段落标题(Ours-multi)。我们还报告了与 DPR 的融合结果。 SEAL(Bevilacqua 等人,2022)使用 BART 模型生成 ngram,然后使用 FM 索引映射到完整段落。

阅读器
DPR(Karpukhin 等人,2020)采用基于 BERT(Devlin 等人,2019)的提取式阅读器模型并预测答案范围。RAG(Lewis 等人,2020b)将 DPR 密集检索器与 BART 答案生成器结合在一起,并端到端联合训练两个模型。FiD(Izacard 和 Grave,2021)还使用 DPR 检索相关段落,解码器负责所有编码段落以生成最终答案。为了公平比较,我们在同一读者模型 FiD-large 上评估 FiD、GAR 和 SEAL 的检索结果,该模型将问题以及 100 个检索最多的段落作为输入。

4. 结果

4.1 上下文线索评估

我们有兴趣了解生成的上下文线索的质量。在表 1 中,Top-1 返回波束搜索期间概率最高的顶部序列,而 Full contexts 包含所有排名最高的 100 个序列。 Filtered是过滤后的上下文线索的集合。我们报告了 NQ 验证集上真实情况和生成的上下文线索之间的 ROUGE F 测量分数。我们还报告答案覆盖率,以包含答案的上下文线索的百分比来衡量。

如表 1 所示,与仅生成顶部序列相比,严格增加生成的候选数量使 ROUGE 得分至少提高 10%,这表明更有可能捕获潜在的真实答案上下文。该过滤策略有效地减少了候选上下文的大小,同时保持了高覆盖率和多样性(ROUGE 分数差异小于 1%)。此外,与 Top-1 相比,Full 显着提高了答案覆盖率约 17%,这表明在更大的候选数中不仅捕获了更多的语义,而且还捕获了更多的事实词。

4.2 主要检索结果

在表 2 中,我们显示了检索精度和索引大小。请注意,索引大小应与盐一起考虑,因为它很大程度上取决于系统实现。基线模型在其开源版本中报告。我们还在附录 A.4 中与其他内存高效的神经检索模型进行了比较,并在附录 A.5 中报告了检索时间延迟。
与其他词汇检索模型相比,我们的方法显着优于 GAR 和 SEAL,显示了广泛采样的上下文线索的有效性。我们还发现 Oursmulti 持续改进 Ours-single。我们推测,真实答案在检索过程中可以作为有用的信号,并且在直接对答案进行采样时更有可能被覆盖。大多数传统的词汇检索方法总是远远落后于密集检索,如表 2 所示。令人惊讶的是,我们的方法在两个数据集上的前 100 准确率方面甚至比 DPR 模型高出 0.6 和 1.0 个百分点,同时要求索引存储空间减少 96%。为了突破检索性能的极限,我们还展示了与 DPR 融合的不同基于词汇的方法的准确性。总体而言,我们与 DPR 融合的方法在两个数据集上的所有基线方法中实现了最高的准确度。

4.3 端到端QA的结果

如表 3 所示,与两个数据集上的其他基线方法相比,Ours-multi 获得了最高的精确匹配分数。我们对 TriviaQA 数据集有一个有趣的观察。 FiD 和我们的唯一区别是 FiD 从 DPR 检索。尽管 ours-single 在 Top-100 准确率上比 DPR 低 0.2 分,但 Ours-single 的 EM 分数比 FiD 高 ∼ 2 分。它表明,即使具有相对相同的 top-k 检索精度,我们的方法也可以检索质量更好的段落,这些段落更容易让读者模型回答。

5. 结论

我们建议通过使用广泛采样的上下文线索来增强查询,从而缩小查询和文档之间的词汇差距。为了确保生成的上下文线索既多样化又相关,我们提出了上下文过滤和检索融合的策略。我们的方法优于上一代基于查询扩展的方法和索引要求小得多的密集检索方法。