BM25 与向量检索结果如何融合?
未标记
询问 AI
考查重点:候选去重与分数、排名融合。两路按同一块 ID 去重,用 RRF 融合排名;若加权原始分数须先校准量纲和方向,再重排
本题目录
参考答案
核心回答
BM25 与向量检索的原始分数含义和尺度不同,通常先分别召回,再以同一知识块 ID 合并,用 RRF 按排名融合;需要保留分数差异时,也可以在校准后加权。实现主线是:
- 两路使用一致的业务范围、权限和版本条件,各自返回候选、分数与排名。
- 按稳定的
chunk_id对齐同一知识块,保留它在每一路的排名,避免重复文本占满候选池。 - 用融合规则计算统一排序。RRF 让在多路靠前的候选累积贡献,无需直接比较 BM25 分数和余弦相似度。
- 对融合后的候选按预算截取,再按需要交给 Reranker 精排,最后组装回答上下文。
例如用户查询带错误码的故障处理方法,关键词通道可以补充准确命中错误码的手册,向量通道可以补充不同措辞的处理说明。融合负责把这些候选排到一个列表里,是否真正改进回答还要用问题集评估。
RRF 具体怎么算
采用从 1 开始的排名,等权 RRF 可以写成:
融合分数(d) = 各路中 1 / (c + 该路排名(d)) 的总和
c 是正的平滑常数;某一路没有召回该候选,该路就不贡献分数。下面只做算术示例,取 c = 10:
- A 在 BM25 第 1、向量第 10:
1/11 + 1/20 ≈ 0.14091。 - B 在两路都排第 2:
1/12 + 1/12 ≈ 0.16667。 - C 只在向量排第 1:
1/11 ≈ 0.09091。
融合后是 B、A、C。它体现的是“多路共同靠前”能够累积优势,并不证明 B 在业务上一定比 A 正确。
c 控制排名差异的衰减:较小时更强调头部名次;较大时,前后名次贡献更接近。它不是两路各自的权重,也不是每路取多少候选的 Top-K。需要偏向某个通道时,可以显式设计通道权重;具体产品可能采用不同的加权公式、排名起点和默认值,接入时应按对应实现计算。
合并时保留什么,在哪里去重
先明确排序单元。如果两路都检索知识块,同一个 chunk_id 应归为一个候选,并保留 BM25 排名、向量排名及各自分数,再计算融合贡献。不能先把它当重复项删到只剩某一路,否则会丢掉共同命中的信息。不同索引中的 ID 若不一致,需要先映射到同一份文档版本与知识块。
相同知识块去重和近似文本去重也不同。不同文档可能包含近似内容,却有不同版本、适用对象或出处;不宜仅凭文字相似就合成一条。重排后还可以控制同一文档的片段数量,并在上下文构建时补充必要邻块,减少重复内容挤占预算。
各路召回数、融合后交给重排的数量、最终进入上下文的数量分别配置。融合前就把每路截得很小,可能让原本有用的候选没有机会参与比较;把全部候选都交给重排,则可能增加延迟与成本。
什么时候用分数加权
如果分数大小本身具有稳定的区分信息,可以先把两路分数变换到可比较的尺度,再计算类似下面的组合:
融合分数 = w × 词项分数 + (1 - w) × 向量分数
这里的“词项分数”和“向量分数”指变换后的值;若接口返回距离,还需先统一越大越相关的方向。简单 Min-Max 受候选中的极值影响,相同原始分数在不同查询下可能对应不同归一化值;候选分数全相等时也要单独处理。Qdrant 的 DBSF 则根据每次候选分布变换后合并,不等于任何输入都会被截到 0~1。
RRF 比较容易作为起点,但会丢弃原始分数差距;分数融合保留的信息更多,也更依赖校准。选择哪种、权重多少,应在独立评估问题上比较,不能把某个固定比例作为通用答案。
常见追问
融合后还要重排吗? 根据任务和预算决定。融合利用各路已经给出的排名或分数;Cross-Encoder 则把问题和候选正文一起读,重新判断相关性。两者作用不同,但重排只能处理进入其输入的候选。
一条通道超时怎么办? 可以按产品要求降级使用成功通道,同时记录缺失通道和耗时,避免把单路结果计成完整混合检索实验。权限等必要条件在降级时仍需保持。
怎样说明融合带来了收益? 对比候选召回、融合后排序和最终回答,具体见混合检索比单路检索在哪个环节获得收益。
对应教程
- 向量数据库与 Embedding 实战:§6.4 区分元数据过滤、混合检索与重排序;本文进一步展开候选对齐、RRF 计算及分数融合的取舍。
参考资料
- 国内:JavaGuide:RAG 检索优化:借鉴混合检索的阶段候选预算,说明正文中召回、融合后重排与最终上下文数量应独立设置。
- 国内:Datawhale:第八章 记忆与检索:扩展检索的合并实现展示怎样按知识块标识汇总多次召回;这里借鉴候选身份的组织方式,异构通道的分数融合另按 RRF 等规则处理。
- 国内:Onefly / zero2Agent:RAG 与检索:参考精确术语与语义查询的不同收益,说明正文中融合应保留两路有效候选并按问题类型评估。
- 国外:Microsoft:Hybrid search ranking:依据 RRF 计算过程,解释正文中排名贡献和平滑常数、每路 Top-K 的区别。
- 国外:Qdrant:Hybrid and Multi-Stage Queries:依据 RRF 与 DBSF 的融合机制,说明正文中按排名与按分数分布融合的取舍及具体实现边界。


