向量数据库

混合检索融合:RRF 与加权分数

核心混合检索与过滤约 25 分钟kp-016

前置知识

一句话定义

混合检索融合把稠密、稀疏(BM25/SPLADE)等多路召回结果合并成一个序列:工程首选 RRF(倒数排名融合)——只用排名、不碰分数,天然规避"余弦 0.83 与 BM25 12.7 不可相加"的量纲灾难;加权法作为需要精细控制的备选。

为什么重要

"稠密 + 稀疏"双腿(kp-015)必然产生两份结果,融合策略直接决定最终质量与稳定性:融合做错(直接相加原始分数)会产生系统性偏差——某个量纲占主导,另一路形同虚设。RRF 以近乎零调参的鲁棒性成为 Elasticsearch、Weaviate、Milvus 等系统的默认融合方案,是混合检索的最后一公里。

前置知识

kp-015(稀疏与稠密两路各自的产出形态);排序的概念。

核心概念

原理与机制

RRF 公式与直觉:

RRF-score(d) = Σ_路 i  1 / (k + rank_i(d))      k=60 经典值
例: 文档 d 在稠密第2、稀疏第1:
    1/(60+2) + 1/(60+1) ≈ 0.0161 + 0.0164 = 0.0325

性质分析:排名倒数把"第 1 名 vs 第 2 名"的差距压平(1/61 与 1/62 相差 1.6%),使两路的头部贡献可比;被多路同时命中的文档累加得分自然居前——"语义与词法都认可"恰是高相关信号。k=60 让排名 1~100 之间的梯度平缓,避免任何单路碾压。

加权法的正确姿势:各路分数先 min-max 或 z-score 归一到可比区间,再 α·dense + (1-α)·sparse。风险在归一化的分布漂移(不同查询的分数分布不同),生产上需要按查询统计归一,复杂度显著高于 RRF。经验法则:没有特殊理由就选 RRF;需要表达业务倾向(专名场景偏词法)时用加权并在评测集上标定 α。

公式或模型

加权: score(d) = α·norm(dense(d)) + (1-α)·norm(sparse(d)),  α∈[0,1] 评测标定
RRF:  score(d) = Σ 1/(k + rank_i(d)),  k≈60, 无需归一化

图示

稠密top5:  d1 d2 d3 d4 d5        RRF(k=60) 合并:
稀疏top5:  d2 d6 d3 d7 d1
                                    d2: 1/(60+2)+1/(60+1)=0.0325  ← 双命中
                                    d1: 1/(60+1)+1/(60+5)=0.0164+0.0154=0.0318
                                    d3: 1/(60+3)+1/(60+3)=0.0317
                                    d6: 1/(60+2)=0.0161 …

实例或案例

Elasticsearch 8.x 的 RRF 检索、Weaviate 的 hybrid search(alpha 参数控制 BM25 与向量权重)、Milvus 的多路 hybrid_search + ranker:三家的 API 形态不同,但默认策略都收敛到"多路召回 + RRF/加权合并"。企业 wiki 检索的典型提升:单稠密 recall@10 0.82 → 稠密+BM25 RRF 0.89(自建评测集数据形态,具体数字以各自评测为准)。

直观类比

两个评委(语义评委、词法评委)各给选手排名。RRF 是"名次积分制":不用统一打分表,只把名次换算成积分相加——评委打分尺度再离谱也不影响结果。加权法则是先让两个评委把分数换到同一量表再按权重求和,量表漂移就是灾难。

常见误区

  1. "直接把余弦和 BM25 分数相加"——量纲完全不同,BM25 数值大几个数量级,稠密路被彻底淹没;这是融合事故的第一名。
  2. "RRF 的 k 设为 0 更尖锐"——k=0 退化为纯排名倒数,头部排名差异被放大、对个别路的噪声敏感;k=60 的平滑正是其鲁棒性来源。
  3. "融合了就不需要过滤一致性"——两路召回必须应用同一份过滤条件,否则合并集里混入非法文档;过滤参数要下推到每一路。

自测题

  1. 为什么 RRF 不需要分数归一化?
  2. 答:它只消费各路的排名序列,排名天然无量纲;不同评分体系的尺度差异在"取排名"这一步就被消除了。

  3. d 在稠密排 1、稀疏排 50,另一文档 e 在两路都排 5,RRF(k=60) 谁高?
  4. 答:d ≈ 1/61 + 1/110 = 0.0255;e = 2×(1/65) = 0.0308,e 更高——"两路一致认可"胜过"单路第一",这是 RRF 的设计意图。

  5. 什么时候值得从 RRF 换成加权融合?
  6. 答:业务上明确某一路更可信(如法律条文号场景偏词法),且拥有评测集能标定并持续监控 α;否则 RRF 的零调参优势更大。

与其他知识点的关系

kp-015 是两路召回的来源;kp-024 提醒融合收益要用 recall/nDCG 重新评测;kp-032 的 ColBERT 是"不靠事后融合、在表示层就兼顾两者"的路线。

延伸阅读

Cormack, Clarke, Buettcher, "Reciprocal Rank Fusion Outperforms Condorcet and Individual Rank Learning Methods"(ICDE 2009)——RRF 有效性的原始实证。

相关知识点