为什么选择 RRF,而不采用简单加权?

考查重点:名次融合与分数标定。BM25与向量分数尺度不同,RRF按名次贡献融合无需直接校准;代价是丢掉分差,已有可靠校准和标注时加权也可能更合适

本题目录

参考答案

核心回答

选择RRF,主要因为BM25与稠密向量的原始分数尺度、分布和含义不同,直接加权难以稳定表达两路的重要性。RRF先使用各路排名,再把同一候选的名次贡献相加,不需要先把BM25分和向量相似度校准到同一尺度,适合缺少标注数据时建立简单稳健的融合基线。

它的代价是丢掉了分数间距:第一名比第二名只高一点,和高出很多,在普通RRF中贡献差异相同。若已有可靠标注、可校准的分数或明确的通道偏好,归一化加权或学习排序也可能更合适,应在相同候选和预算下比较。

原始分数直接相加有什么问题

BM25受词频、逆文档频率、文档长度和查询词影响;向量分数取决于模型及所用距离。即便都叫“相关性分数”,数值也不天然可比,距离还可能是越小越好。

假设保持BM25路的文档顺序不变,只将它的所有分数乘以10,直接加权的融合排名就可能改变,而这一路自身并没有增加新的排序信息。此时权重既承担“重要性”,又承担“单位换算”,不便解释和迁移。

做归一化能缓解这个问题,但还需考虑每个查询的分布、异常值以及候选窗口。它不是不可用,只是需要明确校准方法和验证数据,不能看到两个数字就默认直接相加合理。

RRF怎样融合

普通RRF可写成:

score(d) = Σ 1 / (c + rank_i(d))

排名从1开始,候选未出现在某路结果中,该路贡献为0;通过稳定文档或片段ID识别同一个候选。c平滑名次差异,与各路召回条数、最终返回数量是不同参数。

例如c=60,A在两路分别排第1和第5,得分为 1/61+1/65≈0.03178;B分别排第3和第1,得分为 1/63+1/61≈0.03227,B略高。两路都支持一个候选时,贡献能够累加;不需要知道两路原始分数是多少。

实际系统可能扩展通道权重或采用不同名次起点,接入时按实现约定计算。c不是两路权重,也不存在所有项目都最优的统一常数。

什么时候值得改用加权或学习排序

某类查询明显更依赖精确关键词、不同通道质量差异较大,或者模型分数经过可靠校准时,可以比较查询路由、带权融合与排序模型。拥有足够标注数据后,也可以学习多种检索信号及业务特征之间的关系。

对比时固定两路候选、去重方式、权限过滤和上下文预算,按错误码、自然语言、实体与版本等查询类型分别检查排序指标、证据覆盖和最终答案。融合不能补回两路都没召回的内容,也不能代替权限与时效过滤。

常见追问

RRF之后还需要重排吗? RRF组合多个检索器的意见,重排则重新判断查询与候选是否匹配,解决的问题不同。是否增加重排取决于质量增益和延迟成本。

RRF一定比加权好? 不是。它减少了分数校准负担,但也忽略分数间距,应作为可解释基线而不是预设结论。

参考资料

相关面经

5 篇

公司未注明

面经合集
查看原面经 →
多路召回如何融合,RRF 为什么不直接比较原始分数?(5篇)

字节跳动

Agent 开发后端实习生
日常实习一面
查看原面经 →
RRF 的原理是什么?为什么不直接融合两种检索的原始分数?

快手

前端开发工程师
一面
查看原面经 →
为什么选RRF

百度

Agent 应用开发工程师
秋招一面
查看原面经 →
追问
为什么不直接加权?

美团

大模型应用算法工程师
日常实习一面
查看原面经 →
为什么选择rrf混合检索,而不是简单的加权?

相关题目

4 题