SIGIR 24:利用大语言模型进行无监督密集检索器排序
原文:Leveraging LLMs for Unsupervised Dense Retriever Ranking
地址:https://arxiv.org/abs/2402.04853
代码:https://github.com/ielab/larmor/
出版:SIGIR '24
机构:昆士兰大学、澳大利亚联邦科学与工业研究组织

1 研究问题
本文研究的核心问题是:如何在无监督和零样本场景下为特定目标语料库选择最佳的密集检索器(Dense Retriever, DR)。这也是 RAG(检索增强生成)检索增强中重点研究的环节。
想象一个小型法律咨询公司刚刚建立了一个包含数千份法律文件的数据库。他们想要实现一个高效的搜索系统,但面临两个挑战:首先,他们没有足够的资源为这个特定领域的数据集训练一个新的检索模型;其次,他们也没有现成的查询 - 文档相关性标注数据。在这种情况下,如何从现有的预训练密集检索器中选择一个最适合他们数据库的模型就成为了一个关键问题。
本文研究问题的特点和现有方法面临的挑战主要体现在以下几个方面:
- 缺乏目标语料库的查询和相关性判断:传统方法通常依赖于目标语料库的查询和人工标注的相关性判断来评估检索器性能,但在实际应用中,这些资源往往难以获得或成本很高。
- 领域偏移问题:预训练的密集检索器在面对与其训练数据不同领域的目标语料库时,性能往往会下降。
- 模型选择的复杂性:随着各种密集检索器模型的不断涌现,如何在众多模型中选择最适合特定目标语料库的一个变得越来越具有挑战性。
- 评估方法的局限性:现有的一些无监督评估方法,如基于分数的查询性能预测(QPP)技术,在跨模型比较时效果不佳,因为不同模型产生的分数分布可能有很大差异。
总的来说,这个调整非常普遍,基本上现在 RAG 都会有这个痛点。针对这些挑战,本文提出了一种名为'大语言模型辅助检索模型排序'(LARMOR)的方法。
LARMOR 的核心思想是利用大语言模型(LLM)的强大能力来模拟人类专家在评估检索系统时的行为。就像一个法律专家可以根据文档内容构造相关查询并判断检索结果的相关性一样,LARMOR 使用 LLM 为目标语料库生成伪查询、伪相关性判断和伪参考列表。这些生成的数据然后被用来评估和排序各种密集检索器。具体来说,LARMOR 首先从目标语料库中采样一部分文档,并使用 LLM 为每个文档生成多个相关查询。这就像是模拟了可能的用户查询。然后,它使用这些生成的查询来获取各个密集检索器的检索结果。接下来,LARMOR 再次调用 LLM 来为这些检索结果生成相关性判断或重新排序,从而创建伪相关性判断和伪参考列表。最后,基于这些生成的数据,LARMOR 可以计算各种评估指标(如 nDCG 或 RBO)来对密集检索器进行排序。这种方法巧妙地解决了缺乏真实查询和相关性判断的问题,同时也能适应不同领域的目标语料库。它就像是创造了一个'虚拟评估员',可以为任何给定的语料库生成评估数据并进行检索器选择。
2 研究方法

论文提出了一种名为 LARMOR (Large Language Model Assisted Retrieval Model Ranking) 的方法,用于解决密集检索器选择问题。这种方法巧妙地利用了大语言模型 (LLM) 的能力,在没有目标语料库查询和相关性判断的情况下,对密集检索器进行无监督排序。LARMOR 主要包括三个关键步骤:伪查询生成、伪相关性判断和参考排序列表构建,以及密集检索器排序。下面我们将详细介绍这三个步骤。
2.1 伪查询生成
在实际应用中,我们经常面临这样的情况:有一个目标语料库需要应用密集检索器,但没有相应的查询集。LARMOR 方法的第一步就是解决这个问题,通过生成伪查询来模拟真实的查询场景。
具体来说,论文采用以下步骤生成伪查询:
- 从目标语料库中随机抽样 $N$ 个文档,形成子集。
- 对于每个抽样文档,使用 LLM 生成 $K$ 个查询。生成过程可以表示为:$Q = \text{LLM}(D_{doc}, P_{prompt})$,其中 $P_{prompt}$ 是针对特定领域的查询生成提示。
举个例子,假设我们正在处理一个维基百科文章的集合。对于一篇关于'人工智能'的文章,我们可能会使用这样的提示:'生成一个这篇维基百科文章可以回答的问题。避免生成一般性问题。维基百科页面:{}'。LLM 可能会生成如下查询:
- '什么是图灵测试,它与人工智能有什么关系?'
- '深度学习在人工智能发展中起到了什么作用?'
- '人工智能在医疗领域有哪些具体应用?'
通过这种方式,我们可以为目标语料库生成一组与领域相关的伪查询,这些查询将在后续步骤中用于评估密集检索器的性能。
2.2 伪相关性判断和参考排序列表构建
有了伪查询后,下一步是构建评估密集检索器所需的信号。LARMOR 方法创新性地提出了两种评估信号:伪相关性判断和伪参考排序列表。
2.2.1 伪相关性判断
为了生成伪相关性判断,LARMOR 采用以下步骤:
- 对于每个生成的查询,使用所有待评估的密集检索器检索文档,得到排序结果。
- 使用排序融合算法(如 RRF)合并这些排序结果,得到一个融合排序。
- 从中选取前 $M$ 个文档,让 LLM 为这些文档生成相关性判断:$J = \text{LLM}(Q, D_{top}, P_{judge})$。这里,$P_{judge}$ 是用于生成相关性判断的提示。
举个例子,对于之前生成的查询'深度学习在人工智能发展中起到了什么作用?',LLM 可能会被要求判断一篇讨论神经网络的文章是否相关。提示可能是这样的:'对于以下查询和文档,判断它们是'高度相关'、'somewhat 相关'还是'不相关'。查询:{} 文档:{}'。
2.2.2 伪参考排序列表
除了生成相关性判断,LARMOR 还提出了生成伪参考排序列表的方法:
- 使用与生成相关性判断相同的融合排序。
- 让 LLM 重新排序这个文档,生成一个理想的排序列表:$R = \text{LLM}(Q, D_{top}, P_{rank})$。这里,$P_{rank}$ 是用于生成排序列表的提示。
具体来说,LLM 可能会被要求:'请根据与查询'深度学习在人工智能发展中起到了什么作用?'的相关性,对以下文档进行排序,最相关的排在前面。'
这两种评估信号的结合为后续的密集检索器排序提供了强有力的支持。
2.3 密集检索器排序
有了伪相关性判断和伪参考排序列表,LARMOR 方法可以对密集检索器进行排序。这个过程分为三个步骤:
-
使用伪相关性判断进行排序:
- 对于每个密集检索器,使用生成的查询检索文档。
- 使用评估指标 E(如 nDCG@10)和伪相关性判断评估检索结果。
- 计算每个检索器的平均评估分数。
- 根据分数对检索器进行降序排序。
-
使用伪参考排序列表进行排序:
- 对于每个密集检索器,计算其检索结果与伪参考排序列表之间的平均 RBO(Rank Biased Overlap)值。
- 根据 RBO 值对检索器进行降序排序。
-
融合两种排序结果:
- 使用排序融合算法(如 RRF)合并上述两种排序结果,得到最终的检索器排序。
这个过程可以用一个具体的例子来说明。假设我们有三个密集检索器 A、B、C,需要为一个医学文献库选择最合适的一个。
-
使用伪相关性判断:
- 检索器 A 的平均 nDCG@10 为 0.8
- 检索器 B 的平均 nDCG@10 为 0.7
- 检索器 C 的平均 nDCG@10 为 0.9
- 排序结果为:C > A > B
-
使用伪参考排序列表:
- 检索器 A 的平均 RBO 为 0.85
- 检索器 B 的平均 RBO 为 0.9
- 检索器 C 的平均 RBO 为 0.8
- 排序结果为:B > A > C
-
融合结果:最终排序可能是:A > C > B
这个例子展示了 LARMOR 如何综合考虑不同的评估信号,得出一个全面的密集检索器排序结果。
LARMOR 方法的创新之处在于,它完全不依赖目标语料库的真实查询和相关性判断,而是巧妙地利用 LLM 生成所需的评估信号。这使得它能够在零样本场景下,为各种领域的语料库选择最合适的密集检索器。
直觉上,LARMOR 的工作原理类似于模拟考试。我们可以把 LLM 看作是一个经验丰富的教师,它根据目标领域的特点出题(生成伪查询),然后为学生(密集检索器)的答卷(检索结果)打分(生成相关性判断和理想排序)。最后,我们根据这些'模拟考试'的结果来评估哪个'学生'(密集检索器)最适合这个特定的'学科'(目标语料库)。
总的来说,LARMOR 为解决密集检索器选择这一关键问题提供了一种创新且有效的方法,尤其是在缺乏目标语料库标注数据的情况下。这种方法不仅适用于学术研究,也有很大的实际应用价值,可以帮助各种领域的信息检索系统选择最合适的密集检索器,从而提高检索效果。
3 实验
3.1 实验场景介绍
该论文提出了一种名为 LARMOR 的方法,用于在零样本场景下选择最适合目标集合的密集检索器(Dense Retriever, DR)。实验主要验证 LARMOR 在各种数据集上的性能,并与现有方法进行对比。此外,还探究了 LARMOR 各组件的作用以及不同 LLM 配置对性能的影响。
3.2 实验设置
- Datasets:使用 BEIR 基准测试中的 13 个语料库,涵盖 9 个不同任务,包括 Natural Questions、FiQA、ArguAna 等。
- Baseline:包括 MSMARCO performance、Binary Entropy、Query Alteration 等多个基线方法。
- Implementation details:
- 使用 FLAN-T5 作为主要的 LLM 模型。
- 对每个语料库随机采样 100 个文档,每个文档生成 10 个查询,共 1000 个生成查询。
- 使用 top-p 采样策略,p=0.9。
- 使用 Reciprocal Rank Fusion (RRF) 作为融合算法。
- Metric:
- Kendall Tau 相关性:评估方法生成的 DR 排名与真实排名的相似度。
- Δe:评估所选 DR 与最佳 DR 之间的性能差距。
3.3 实验结果
实验 1、主要结果实验


- 目的:评估 LARMOR 与其他基线方法在 DR 选择任务上的性能。
- 涉及图表:表 2(展示了各方法的 Kendall Tau 相关性值)、表 3(展示了各方法的 Δe 值)。
- 实验细节概述:在 13 个 BEIR 数据集上比较 LARMOR 与多个基线方法的性能。
- 结果:
- LARMOR 在 Kendall Tau 和 Δe 两个指标上都显著优于其他方法。
- LARMOR 在两个数据集上选择了最佳 DR,平均 nDCG 下降仅为 2.08%。
- 基于分数的方法(如 WIG、NQC 等)表现较差,可能是由于不同 DR 的分数分布差异。
实验 2、LARMOR 组件消融实验

- 目的:评估 LARMOR 各组件对模型性能的贡献。
- 涉及图表:表 4(展示了不同组件对 Kendall Tau 的影响)、表 5(展示了不同组件对 Δe 的影响)。
- 实验细节概述:分别测试 Query generation (Q)、Rank fusion (QF)、Pseudo-judgments (QFJ) 和 Pseudo-reference lists (QFR) 的效果。
- 结果:
- 仅使用 Q 组件就能达到优于多数基线的性能。
- QF 进一步提升性能,甚至在 Δe 上超过了使用真实查询的 QPP Fusion。
- QFJ 和 QFR 都显著提升了性能。
- 完整的 LARMOR pipeline 通过融合 QFJ 和 QFR 达到最佳性能。
实验 3、LLM 模型大小影响实验

- 目的:研究不同大小的 FlanT5 模型对 LARMOR 及其组件性能的影响。
- 涉及图表:图 3(展示了不同 FlanT5 模型大小对 LARMOR 各组件 Kendall Tau 和 Δe 性能的影响)。
- 实验细节概述:比较 FLAN-T5-large (780M)、FLAN-T5-XL (3B) 和 FLAN-T5-XXL (11B) 三种模型在 LARMOR 各组件上的表现。
- 结果:
- 模型大小对性能的影响在不同 pipeline 步骤中表现不一致。
- 较大的模型不总是表现更好,传统的 LLM 缩放定律可能不适用于此任务。
- FLAN-T5-XXL 在完整 LARMOR pipeline 中表现最佳。
实验 4、LLM 骨干和生成查询数量影响实验

- 目的:分析不同 LLM 骨干和生成查询数量对伪查询生成性能的影响。
- 涉及图表:图 4(展示了不同数量的生成查询和不同 LLM 骨干对 Kendall Tau 和 Δe 性能的影响)。
- 实验细节概述:比较 FLAN-T5-XXL、GPT-3.5 和 GPT-4 在不同生成查询数量下的性能。
- 结果:
- 增加生成查询数量通常能提升性能,尤其是对 FLAN-T5-XXL。
- GPT-4 在 Kendall Tau 上整体表现较好,但 FLAN-T5-XXL 在生成 10 个查询时可以超越它。
- 在特定任务(如 Arguana)上,GPT 模型表现出色,可能是由于其生成反驳论点的能力更强。
4 总结与展望
本论文针对密集检索器 (Dense Retriever, DR) 选择问题,提出了一种名为 LARMOR (Large Language Model Assisted Retrieval Model Ranking) 的无监督方法。LARMOR 利用大语言模型 (LLM) 为目标语料生成伪相关查询、标签和参考列表,然后基于这些生成的信号对 DR 进行排序。实验结果表明,LARMOR 在 13 个 BEIR 集合上显著优于现有的 DR 选择方法,能够准确预测 DR 在零样本场景下的有效性排序。
技术思考与局限
尽管 LARMOR 展现了强大的性能,但仍有一些值得深入探讨的方向:
- 模型扩展性:LARMOR 目前只考虑了 DR,是否可以扩展到其他类型的检索模型,如稀疏检索器或混合检索模型?混合检索通常结合了 BM25 和向量检索的优势,评估其选择逻辑可能需要额外的信号。
- 提示工程优化:论文使用了特定领域的提示来生成查询,这些提示是如何设计的?是否可以进一步优化提示以提高生成质量?例如,引入思维链(Chain-of-Thought)来引导 LLM 生成更精准的查询。
- 模型选型:目前 LARMOR 使用的是 FlanT5 模型,随着更先进开源 LLM 的发布(如 Mistral、Llama3 等),如何利用这些模型来进一步提升 LARMOR 的性能?更大的参数规模是否一定能带来更好的排序准确性,还是需要权衡推理成本?
- 计算开销:LARMOR 的计算开销如何?对于大规模语料库,如何提高其效率?目前的流程涉及多次 LLM 调用,在实时系统中可能成为瓶颈。
可借鉴的方法点
- 伪信号生成思路:利用 LLM 生成伪相关信号的思路可以应用到其他信息检索任务中,如查询扩展、相关性判断等。这种'自举'方式减少了对人工标注数据的依赖。
- 模块化设计:LARMOR 的模块化设计(查询生成、伪判断生成、参考列表生成)为其他利用 LLM 的系统提供了良好范例。各模块可以独立优化和替换。
- 多信号融合:将不同组件(如 QFJ 和 QFR)的输出进行融合的方法可以借鉴到其他需要综合多个信号的任务中,提高决策的鲁棒性。
- 领域适配:论文中设计特定领域提示的方法可以推广到其他需要 LLM 生成特定类型内容的场景,特别是在垂直领域的知识库构建中。
LARMOR 代表了利用大模型赋能传统信息检索任务的一个重要方向,即通过生成式 AI 弥补判别式 AI 在数据稀缺场景下的不足。未来,随着多模态大模型的发展,检索器的评估与选择也可能进一步扩展到图文混合检索场景。