我的学习笔记

土猛的员外

【翻译】RRF — 如何在 RAG 中对多种检索方法的结果进行评分

原作者:Deval Shah

原文:Reciprocal Rank Fusion (RRF) explained in 4 mins — How to score results form multiple retrieval methods in RAG

img

图:RAG 中的倒数秩融合(图片由作者提供)

检索增强生成 (RAG) 是自然语言处理中的一种强大技术,结合了基于检索的模型和生成模型的优势。
检索阶段可以成就或破坏您的 RAG 管道。
如果检索器未能从检索器中获取相关文档,则精度较低,幻觉的可能性会增加。

有些查询适合基于关键字的检索技术,如 BM25,而有些查询在密集检索方法中可能表现得更好,其中我们从语言模型嵌入了 embedding。有混合技术可以解决这两种检索方法的缺点。

在这篇博文中,我们将深入探讨 RRF、它的机制、数学直觉和在 RAG 系统中的应用。

什么是倒数秩融合?

倒数排名融合是一种排名聚合方法,它将来自多个来源的排名组合成一个统一的排名。在 RAG 的上下文中,这些源通常使用不同的检索模型或方法。

RRF 公式
RRF 的核心体现在其公式中:

RRF(d) = Σ(r ∈ R) 1 / (k + r(d))
RRF(d) = Σ(r ∈ R) 1 / (k + r(d))

Where:
- d is a document
- R is the set of rankers (retrievers)
- k is a constant (typically 60)
- r(d) is the rank of document d in ranker r

在 RAG 中的工作原理

让我们分解一下在 RAG 系统中使用 RRF 的过程:

  1. 用户查询:当用户输入问题或查询时,该过程开始。
  2. 多个检索器:查询被发送到多个检索器。这些可能是不同的检索模型(例如,密集、稀疏、混合)。
  3. 独立排名: 每个检索器都会对相关文件产生自己的排名。
  4. RRF 融合:所有检索器的排名使用 RRF 公式进行组合。
  5. 最终排名:根据 RRF 分数生成统一的排名。
  6. 生成:生成模型使用排名靠前的文档来生成最终答案。

RRF 背后的数学直觉

了解 RRF 背后的数学直觉有助于解释它为什么有效:

1. 倒数排名
使用 1/(rank + k),RRF 为更高的等级(较低的等级数字)赋予更多的权重。这可确保在最终排名中,由多个检索器排名靠前的文档会受到青睐。

2. 收益递减
随着排名的增加,对分数的贡献会非线性地减少。此模型显示了一种直觉,即排名 1 和 2 之间的相关性差异可能大于排名 100 和 101 之间的相关性差异。

3. 排名聚合
通过对所有检索器的倒数秩求和,RRF 有效地结合了来自多个来源的证据。这使得最终排名更加稳健,并且不易受到任何单个检索器的怪癖或偏见的影响。

4. 归一化
常数 k 充当平滑因子。它可以防止任何单个检索器主导结果,并有助于更优雅地处理平局,尤其是在排名较低的项目中。

k = 60 的奥秘

RRF 经常引发问题的一个方面是 k = 60 的选择。虽然此值不是一成不变的,但由于以下几个因素,它通常被使用:

1. 实证表现
研究表明,k = 60 在各种数据集和检索任务中表现良好。

2. 平衡影响力
它在排名靠前和排名较低的物品的影响之间提供了良好的平衡。例如:

- 对于排名 1:1/(1+60) ≈ 0.0164

- 对于排名 10:1/(10+60) ≈ 0.0143

- 对于排名 100: 1/(100+60) ≈ 0.00625

3. 有效的平局
k = 60 有助于有效地打破平局,特别是对于原始排名中的微小差异可能不显著的排名较低的项目。

4. 稳健性
该值已被证明在不同类型的检索系统和数据分发中是稳健的。
值得注意的是,虽然 k = 60 很常见,但最佳值可能会因特定应用程序和数据特征而异。某些系统可能会从调整此参数中受益。

RRF 的伪代码实现

以下是 RRF 的一个简单伪代码实现:

1
2
3
4
5
6
7
8
9
10
11
function calculateRRF(rankings, k):
scores = {}
for each document d:
scores[d] = 0
for each ranker r:
rank = rankings[r][d]
scores[d] += 1 / (k + rank)
return scores

function getFinalRanking(scores):
return sort documents by scores in descending order

可视化

单击图像链接以使用简单的 RRF 交互式可视化工具进行播放。

img

图:交互式 RRF 可视化(作者) [链接]

结论

Reciprocal Rank Fusion 是 RAG 系统武器库中的强大工具。它能够以数学上合理且直观吸引人的方式组合来自多个检索器的排名,这对于生成强大且相关的文档排名非常宝贵。通过了解 RRF 背后的机制和直觉,从业者可以更有效地在他们的 RAG 系统中实施并可能改进这项技术。

引用

  1. Cormack, G. V., Clarke, C. L., & Buettcher, S. (2009). Reciprocal rank fusion outperforms Condorcet and individual rank learning methods. In Proceedings of the 32nd international ACM SIGIR conference on Research and development in information retrieval (pp. 758–759). [Link]
  2. Benham, R., & Culpepper, J. S. (2017). Risk-reward trade-offs in rank fusion. In Proceedings of the 22nd Australasian Document Computing Symposium (pp. 1–8). [Link]
  3. Julian Risch, Timo Möller, Julian Gutsch, Malte Pietsch (2023). Semantic Answer Similarity for Evaluating Question Answering Models. arXiv preprint arXiv:2108.06130. [Link]
  4. Lin, J. (2019). The Neural Hype and Comparisons Against Weak Baselines. ACM SIGIR Forum, 52(2), 40–51. [Link]
  5. Zhuang, T., & Zuccon, G. (2021). Dealing with Biases in the Search Engine Evaluation. In Proceedings of the 2021 ACM SIGIR International Conference on Theory of Information Retrieval (pp. 185–193). [Link]

TorchV AI支持试用!

如您有大模型应用方面的企业需求,欢迎咨询!