Sunday面试指南

RRF 融合排序是什么?为什么混合检索不能直接相加 BM25 和向量分数?

下面是一段教学模拟,不是真实面试记录。

🧑‍💻 面试官:BM25 和向量检索各返回一批结果,你怎么合并?

🙋‍♂️ 我:把同一篇文档的两个分数相加,再从高到低排序。

🧑‍💻 面试官:一边分数是 12,另一边只有 0.8,你确定它们可以直接比较吗?

🙋‍♂️ 我:那先做归一化。

🧑‍💻 面试官:如果我们暂时不依赖原始分数,RRF 是怎么排序的?公式里的常数和检索 Top-k 是一回事吗?

RRF 换了一种比较方法:不直接问“得了多少分”,而是问「在每一路排第几名」。

面试速答(60 秒版)

RRF 是倒数排名融合。它按照文档在各路检索中的名次计算贡献,再把贡献相加。常见形式是每一路贡献 1 除以“排名常数加名次”。

这样就不需要直接比较 BM25 和向量相似度的原始分数,适合融合不同量纲的排序结果。一篇文档如果在两路都靠前,通常会得到较高的融合分。

需要分清两个参数:排名常数控制头部名次之间的差距,候选窗口决定每一路有多少结果参与融合,它们都不等于最终返回条数。

RRF 只负责融合已有候选,不能找回两路都没检索到的资料,也不会判断资料本身是否正确。还要单独检查候选覆盖、重复文档和最终排序效果。

RRF:用名次融合检索:比较名次,不直接加异类分数

知识点详解:从两张排名表,算出一张融合表

为什么相加原始分数不稳妥?

BM25 分数来自词项匹配等计算,向量分数则取决于模型、向量度量和检索系统的返回约定。它们没有天然统一的刻度。

简单相加会让数值范围较大的一路占优势。归一化是一类方案,但还需要考虑分布变化和权重选择。

RRF 选择绕开原始分数,只使用各路排名。代价是它也舍弃了“第一名比第二名好多少”的原始分数信息。所以它容易使用,不代表任何场景下都最好。RRF 官方说明

用四篇文档手算一次

下面是假设的检索结果,名次从 1 开始:

  • BM25:A、B、C。
  • 向量检索:B、D、A。

采用排名常数 k = 60。文档 d 的分数为:

RRF(d) = 各路 1 / (k + rank(d)) 的总和。

某篇文档不在某一路候选里,那一路就不给它贡献,不是随便补一个“最后名次”。

文档BM25 贡献向量贡献融合分,约值
A1/611/630.032266
B1/621/610.032522
C1/6300.015873
D01/620.016129

因此,这个算例的结果是 B、A、D、C。

B 虽然没有拿到 BM25 第一名,但两路排名都是前两名;A 的向量排名稍低,融合后排在 B 后面。这里没有使用原来的 BM25 分数或向量分数。

三个数量,控制的是三件事

先说排名常数。k 越大,同一路相邻名次之间的贡献差距越小;k 越小,头部名次的优势越明显。它不是要检索多少篇文档。

再说候选窗口。如果每一路只拿前三名,排在第四名的文档就无法参与这一轮融合。扩大窗口可能提高覆盖,也会增加后续处理量,不能只改公式就认为召回已经提高。

最后才是返回条数。融合了两百个候选,完全可以只把前十个交给重排器,或选出少量片段进入模型上下文。

在 Elasticsearch 中,这些概念对应具体实现参数,但默认值和参数限制要按照使用版本确认,不能把本文的教学值直接当成生产配置。版本化实现说明

三个参数,不是三个同义词:窗口、排名差距、返回数

融合前,先统一“同一篇文档”的身份

两路结果如果使用不同 ID,明明是同一个片段,也可能被当成两个候选。

反过来,若把同一文件所有片段都按文件 ID 合成一个,某个片段在一路的名次可能被错误地加到另一个片段上。

因此,参与融合的单位要一致:按文档排序,就统一文档 ID;按 Chunk 排序,就统一 Chunk ID。最终拼上下文时是否再做同文件去重,是后面的事情。

还要注意,各路候选如果来自同一种高度相似的方法,多路“投票”未必提供多少新信息。评测时既看排序,也看资料覆盖和答案证据,不能只看融合分变高了。

面试官继续追问

两路都没找到正确片段,调小 k 有用吗?

没有。k 只改变已有候选之间的分差。需要先检查查询、索引、过滤条件和召回窗口,解决正确资料没有进入候选的问题。

某一路比其他路可靠,可以加权吗?

可以设计加权融合,但那是带权变体,需要说明权重含义并做评测,不能把所有带权公式都说成最基本的等权 RRF。

RRF 排第一,能说明答案有依据吗?

不能。它说明候选在多路排名融合中占优,不证明内容准确或足以回答问题。还需要查看资料来源、适用条件和与问题的对应关系。

面试速记卡

  • 基本计算:同一文档各路 1 / (排名常数 + 名次) 相加。
  • 名次:通常从 1 开始;没有进入某一路候选,那一路贡献为 0。
  • 排名常数:控制头部名次之间的贡献差距,不是 Top-k。
  • 候选窗口:控制哪些结果有资格参与融合。
  • 能力边界:RRF 不能补回漏检资料,也不负责验证资料真实性。

公司面试真题

这道题暂未收录可核验的公司真题来源。你可以先阅读本文解析,或浏览已收录的公司面试真题。

浏览公司面试真题 →
简历汪永久免费在线制作简历,模板直接套用、导出无水印,永久免费、下载免费,不需要付费解锁任何功能。去写简历