倒数排名融合(Reciprocal Rank Fusion,RRF)
- 一种简单有效的多检索结果聚合方法,效果始终优于单一系统
- RRF 常用于混合检索的场景,比如关键词检索和向量检索的混合
RRF 的核心公式: $$ RRFscore(d\in D) = \Sigma_{r\in R}\frac{1}{k+r(d)} $$
- 其中 $D$ 表示文档集合,$R$ 是不同检索后的文档排序结果
- $k$ 是常量,默认为 60;用于减轻异常检索结果中的高排名影响
RRF 的简单示例:
- 假设文档
docA在三次不同的检索策略中出现,检索排名分别 1、2、1 - 则文档
docA的最终 RRF 得分为:1/(1+60) + 1/(2+60) + 1/(1+60) = 0.049
ElasticSearch 和很多向量数据库都原生支持混合检索与 RRF
RRF 算法的分析:
- RRF 是一种零样本检索结果融合方法,适合排名分布未知的情况
- RRF 只考虑不同检索策略的结果排名,限制条件少,实际应用广泛