想象一档大型选秀节目的成团夜。两位风格迥异的导师要为选手打分:一位是「语义大师」,他不拘泥于选手说了什么词,而是能听懂话里的真实意图——选手说“我想要一台能拍清月亮夜景的手机”,他立刻明白这是要长焦加防抖;另一位是「关键词考官」,他手里攥着节目组的要求清单,一个大项一个大项地打钩核对——“手机”、“拍照”、“夜景”,词出现得越频繁,他对选手的评价越高。 单独看,两位导师各有盲区。语义大师有时会把意思相近但八竿子打不着的两个词搞混;关键词考官则完全听不懂同义改写,选手换个说法他就漏判。于是节目组决定:两个人的评分融合起来,一起决定出道位。这就是我们今天要讲的故事——在搜索引擎和推荐系统里,稠密检索(语义大师) 与 稀疏检索(关键词考官) 如何融合结果,让最终排名既懂语义、又扣细节。融合的办法主要有两套:一套叫 RRF(倒数排名融合),像“按名次折算分数”,谁排名靠前就给谁高权重,全然不管原始分差有多大;另一套叫线性加权融合,像一个「话语权旋钮」,直接给两位导师的原始打分各乘一个权重再相加。故事的最后,我们还会看到节目组如何根据节目风格自动旋动这个旋钮——也就是权重自适应调节。

岗位关联

对 AI 从业者而言,这是向量检索与语义搜索模块的进阶技能:掌握稠密+稀疏融合策略,你就能在实际搜索系统中兼顾语义理解与精确匹配,显著提升召回率与精度,这是构建工业级混合检索系统的核心能力。

目录
  1. 可视化演示
  2. 融合动机
  3. 双通道召回
  4. RRF 原理
  5. 线性加权
  6. 权重自适应
  7. 融合评估
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示RRF倒数排名融合与线性加权融合策略,以及查询自适应权重调节的混合检索过程。

本节配有交互动效(进入视口后自动加载,约 3KB)。

RRF倒数排名融合 稠密检索语义匹配与稀疏检索关键词匹配结果按排名倒数融合 RRF不依赖原始分数,仅用排名避免分数尺度不一致问题 RRF(d)=Σ 1/(k+rank_i(d)), k=60常用 RRF对参数不敏感,是工业界最常用的稳健融合策略

融合动机

选秀节目组一开始其实只请了一位导师——关键词考官。他对选手的要求逐字核对,见到“手机拍照夜景”这几个词出现得足够多,就给出高分。这套打法简单高效,但当选手把“想拍清月亮”说成“想记录月面的环形山”时,考官立刻傻眼:清单里没有“环形山”,于是判了低分。这就是稀疏检索的天性:它在词的精确匹配上极强,但不懂同义改写、拼写变体和语义联想。

节目组后来补请了语义大师——稠密检索。这位大师把选手的整段自我介绍编码成一个几百维的向量,谁的意思跟自己心中“预算五千左右、长焦拍月亮、防抖”的语义向量越接近,分就越高。他不在乎选手用没用原词,甚至“想拍火山灰里的月色”这种说法他也能猜出七八分。这就是稠密检索:泛化能力极强,擅长语义匹配,但在“翻错意象”或“某个专有名词必须一字不差”时容易失手。

于是节目组明白了一件事:单一检索各有盲区,而两个盲区恰好不重叠。稀疏的盲区是语义鸿沟,稠密的盲区是精确细节——二者互补而非互斥。把两人的打分和排名融合起来,就能让最终结果既懂人话、又抠原词。这正是融合检索的第一性原理:不试图发明一个全能裁判,而是让两个擅长的裁判分管不同维度。

双通道召回

融合的第一步,是让两位导师独立工作、分别召回。语义大师这边走的是稠密向量召回通道:把用户查询编码成向量,在向量数据库里做最近邻搜索,取出 top-K 个候选。关键词考官那边走的是稀疏关键词召回通道:把查询拆成词项,用 BM25 之类的统计算法扫描倒排索引,也取出 top-K 个候选。两条通道互不干扰,各用自己的排序逻辑给出独立排名。

为什么是两条通道而不是一个通道里同时跑两套打分?因为两套算法的数据形态完全不同:稠密那边是浮点向量距离,稀疏那边是词频统计。强行让它们共用一套排序规则,等于要求两位导师用同一张打分表给舞蹈和唱歌打分,必然有一方被压制。分通道召回的好处是:每个候选都可以在它擅长的通道里获得被看见的机会——语义相似但字面无关的文档由稠密通道捞起来,字面精确匹配的文档由稀疏通道兜住底。

最后一步是合并候选集:把两条通道的 top-K 取并集并去重,得到融合候选池。注意这里不是取交集——取交集意味着两条通道都认可的文档才能入围,等于回到了单通道的盲区;取并集才会让“语义懂但字面不认识”和“字面完全命中”的文档同时站在决赛舞台上。常见的组合还有稠密+BM25、稠密+词项精确匹配等,思路都是一样的:让每个选手都有上台的机会,再在融合阶段统一排名。

RRF 原理

候选池里有了一百个选手,但两位导师各自给出了不同的名次:语义大师把“月光摄影教程”排第 2,关键词考官却因为教程里没出现“拍照”二字把它排到了第 60。现在的问题是:谁的名次更可信? 节目组采用的第一个办法非常聪明——不看分数,只看名次。它叫 RRF(Reciprocal Rank Fusion,倒数排名融合),核心思想是:一个文档如果在多条通道里名次都靠前,它就一定是好选手;至于通道里的第 2 名和第 3 名原始分差是 0.01 还是 0.5,无关紧要。

RRF 的计算公式非常简洁:

回到节目组:一个选手在语义通道排第 3、在关键词通道排第 5,他的 RRF 分是约 0.0159+0.0154;另一个选手只在语义通道排第 1、在关键词通道排第 200,他的 RRF 分是约 0.0164+0.0038。前者因为在两条通道都稳定靠前而胜出。RRF 的最大好处是完全不需要把两套分数做归一化——因为稠密相似度和 BM25 分数根本不在一个量级,硬比分数没有意义,而名次永远是公平的。

RRF(d)=∑i=1n1k+ranki(d)\displaystyle \text{RRF}(d) = \sum_{i=1}^{n} \frac{1}{k + \text{rank}_i(d)}
这个公式的通俗含义是:把文档 d 在每条通道里的名次代入,求倒数以后再求和。倒数意味着名次越靠前贡献越大,而 k 是一个平滑缓冲,防止第 1 名的权重过分碾压其他名次。
  1. 累加符号(Σ)把文档 d 在所有融合通道里的“名次贡献”逐项相加,通道数量 n 通常是 2(稠密+稀疏)。
    ∑i=1n\displaystyle \sum_{i=1}^{n}
  2. 倒数排名项(1/(k+rank))对文档在通道 i 中的名次 rank 求倒数。名次是 1 时贡献约 1/(k+1),名次是 100 时贡献约 1/(k+100)——名次差距被大大压缩了。
    1k+ranki(d)\displaystyle \frac{1}{k + \text{rank}_i(d)}
  3. 平滑参数 k通常取 60 左右。它的作用是削弱第一名对融合结果的垄断式影响。k 越大,不同名次的贡献差异越小;k 越小,越偏向头部名次。
    k=60\displaystyle k = 60
  4. 最终综合分把两条通道的名次贡献加起来,得到 RRF 分数,再按分数降序排列,得到融合后的最终排名。
    ∑i=12160+ranki(d)\displaystyle \sum_{i=1}^{2} \frac{1}{60 + \text{rank}_i(d)}

线性加权

RRF 胜在简单稳健,但它有一个“浪费”:它丢弃了分数本身的信息。语义大师给出 0.98 的超高相似度和 0.5 的勉强相似度,在 RRF 里只会体现为“第一和第二名的差别”,但直觉告诉我们,亲密好友的推荐和泛泛之交的推荐,分量应该不一样。于是节目组设计了第二个方案:线性加权融合——给两位导师打分先做归一化,再按话语权比例相加。

线性加权融合的公式是:

线性加权与 RRF 的对比很直观:RRF 是“按名次发奖”,线性加权是“按分数投票”。前者稳健、无需归一化、对分数失真不敏感;后者信息利用率高、可解释性强,但前提是必须做归一化。常用的归一化方式有 min-max 缩放(把分数压到 0-1)、最大值归一化(除以通道内最高分)等。归一化一旦没做好,比如两通道分数差异达到几千倍,加权结果就会被高量级通道完全绑架,等于没融合。

score(d)=α⋅sdense(d)+(1−α)⋅ssparse(d)\displaystyle \text{score}(d) = \alpha \cdot s_{\text{dense}}(d) + (1 - \alpha) \cdot s_{\text{sparse}}(d)
含义:α 是分配给稠密通道的权重,1-α 是分配给稀疏通道的权重。α 越大越信任语义大师,越小越信任关键词考官。前提是两路分数必须先转到同一量纲(如 0 到 1),否则高量级的通道会单方面决定结果。
  1. 稠密分数项(α·s_dense)把归一化后的稠密相似度乘上权重 α。例如 α=0.7 时,语义大师的打分在总分里占 70% 话语权。
    α⋅sdense(d)\displaystyle \alpha \cdot s_{\text{dense}}(d)
  2. 稀疏分数项((1-α)·s_sparse)稀疏通道的权重被自然定为 1-α,保证两路权重加起来为 1,便于调节时只关心 α 一个旋钮。
    (1−α)⋅ssparse(d)\displaystyle (1 - \alpha) \cdot s_{\text{sparse}}(d)
  3. 求和得总分两路加权分数相加,得到文档的融合总分,再统一排序输出。α 从 0 到 1 连续变化,对应“纯稀疏”到“纯稠密”之间的所有中间态。
    α⋅sdense(d)+(1−α)⋅ssparse(d)\displaystyle \alpha \cdot s_{\text{dense}}(d) + (1 - \alpha) \cdot s_{\text{sparse}}(d)

权重自适应

新的问题来了:α 到底该定多少?节目组发现,请观众投票选“综艺感选手”时,语义大师的方向感更准;但直播带货专场里,关键词考官对商品名、规格参数的精准把握完胜。没有万能权重——不同的查询类型、不同的业务场景,最优 α 完全不同。这就引出了权重自适应调节。

调节的思路分三路推进。第一路是离线网格搜索:拿历史查询日志,把 α 按 0.1 的粒度从 0 扫到 1,逐一评估融合结果的 NDCG 或召回率,选出整体最优值。这像录制前先在样片里试各种评委配比,挑一个平均效果最好的组合。第二路是在线反馈调节:线上系统实时看用户点击率和转化率,用梯度下降等优化算法在当前权重附近做小步探索,让权重不断微调。这像直播中根据观众弹幕实时调整机位——慢调、小幅、持续优化。第三路是查询自适应:不再追求一个全局 α,而是分析查询词本身的特征——词项少、歧义大、专有名词密集的查询给稀疏通道更多话语权;句子长、口语化、同义词多的查询给稠密通道更多话语权。实现上可以训练一个轻量分类器,输入查询特征,输出 α 值。

这三路策略不是互斥的,实践中常叠加使用:离线网格搜索定基准,在线反馈做微调,查询自适应做差异化。最终让系统在不同语义环境下,自动让更靠谱的导师掌握话语权。

融合评估

融合到底值不值?节目组开始做赛后复盘。他们先看了第一个指标——召回率:在标准检索里,召回率衡量的是“相关文档被捞上来的比例”。单一稠密检索在语义改写查询上召回高、在专有名词查询上召回低;单一稀疏检索恰好相反。融合后的系统取两条通道并集,等于在任何查询上都选用了召回更高的那条通道,召回率整体显著提升。第二个指标是精度:融合是否会因为混入文档太多而拉低顶部结果的准确率?实际数据表明,只要融合权重调得当,RRF 和线性加权都能让“两条通道都认可的文档”稳占靠前名次,顶部精度不仅不掉,反而比单一通道更稳定。

业界常用的综合指标是 NDCG(归一化折损累积增益):它同时奖励“相关文档排得靠前”和“整体排序合理”。融合后的排序集合了两个维度的证据,NDCG 通常有稳定提升。最受益的其实是长尾查询——那些写法稀奇古怪、语义漂移大的冷门搜索:语义大师负责理解变体表达,关键词考官负责抓住仅存的字面线索,二者合力让原本两边都搜不到的文档浮出水面。

故事讲到这里,选秀节目顺利收官。两位导师最终合成了一台“决策机器”:语义大师懂人心,关键词考官抠细节,RRF 和线性加权提供两套融合打法,α 旋钮自动适应现场气氛。下次当你刷到一条“搜'安静的地方'却推荐了图书馆自习室”的极致精准结果时,别忘了——那是两位导师联手为你投出的票。

AI 应用场景

场景一:电商搜索“拍照手机”——语义+属性双通道召回

阶段:召回阶段结果融合

解决的问题:用户搜“能拍清月亮的手机”,传统纯文本检索只能命中含“月亮”二字的商品,把“长焦防抖旗舰机”漏掉;纯向量检索又把“月亮”理解成“灯具”类目,召回一堆射灯。融合两路召回结果后,语义通道捞起“长焦旗舰”,关键词通道锁定“手机 月亮 拍照”命中项,加权排序后呈现给用户。

具体案例:某电商平台在搜索词“学生党 轻薄 拍照手机”上应用 RRF 融合:稠密向量通道召回“荣耀X系列评测”等语义相近内容,稀疏通道召回含完整规格词的商品页,融合后 NDCG 提升约 12%,长尾词搜索转化率明显改善。

场景二:企业知识库问答——混合检索增强生成(RAG)

阶段:检索增强生成中的检索环节

解决的问题:RAG 系统只做向量检索时,遇到合同编号“CT-2024-0891“这种精确片段容易丢;只做关键词检索时,回答不了”上季度营收下降的原因分析”这种语义问题。采用稠密+稀疏双路召回再融合,让大模型既能拿到精确引文,又能获得语义相关的背景资料。

具体案例:某金融企业客服机器人接入双路融合检索后,针对“2023年年报里关于坏账准备的段落”这类混合查询,答案引用准确率从 61% 提升到 88%,幻觉率显著下降。

Python 演示

python56 行
import math  def rrf_fuse(rankings, k=60):    """RRF(倒数排名融合): 输入多条通道的排名列表, 返回融合后的排名列表."""    scores = {}    for ranking in rankings:        for rank, doc_id in enumerate(ranking, start=1):            scores[doc_id] = scores.get(doc_id, 0.0) + 1.0 / (k + rank)    return sorted(scores.items(), key=lambda x: x[1], reverse=True)  def minmax_normalize(scores_dict):    """最小-最大归一化, 将分数线性压到 [0, 1] 区间."""    if not scores_dict:        return scores_dict    min_s = min(scores_dict.values())    max_s = max(scores_dict.values())    if max_s == min_s:        return {d: 1.0 for d in scores_dict}    return {d: (s - min_s) / (max_s - min_s) for d, s in scores_dict.items()}  def linear_fuse(dense_scores, sparse_scores, alpha=0.7):    """线性加权融合: 两路分数各自归一化后按权重相加."""    dense_norm = minmax_normalize(dense_scores)    sparse_norm = minmax_normalize(sparse_scores)    all_ids = set(dense_norm) | set(sparse_norm)    fused = {}    for d in all_ids:        fused[d] = alpha * dense_norm.get(d, 0.0) + (1 - alpha) * sparse_norm.get(d, 0.0)    return sorted(fused.items(), key=lambda x: x[1], reverse=True)  def main():    # 稠密通道: doc_id -> 余弦相似度    dense = {"doc_a": 0.92, "doc_b": 0.88, "doc_c": 0.81,             "doc_d": 0.74, "doc_e": 0.68}    # 稀疏通道: doc_id -> BM25 分数    sparse = {"doc_b": 12.5, "doc_c": 11.2, "doc_f": 9.8,              "doc_g": 8.6, "doc_a": 7.9}     dense_rank = [d for d, _ in sorted(dense.items(), key=lambda x: x[1], reverse=True)]    sparse_rank = [d for d, _ in sorted(sparse.items(), key=lambda x: x[1], reverse=True)]     print("RRF 融合排名:")    for doc_id, score in rrf_fuse([dense_rank, sparse_rank]):        print(f"  {doc_id}: {score:.4f}")     print("线性加权融合排名 (alpha=0.7):")    for doc_id, score in linear_fuse(dense, sparse, alpha=0.7):        print(f"  {doc_id}: {score:.4f}")  if __name__ == "__main__":    main()
目的:用 Python 完整实现稠密+稀疏结果融合的两种策略——RRF 倒数排名融合与线性加权融合,并对比同一份模拟数据下的融合排序结果。
  1. for rank, doc_id in enumerate(ranking, start=1)从 1 开始编号,把列表位置转成数学上的名次。
  2. scores.get(doc_id, 0.0) + 1.0 / (k + rank)逐条通道累加“倒数名次贡献”,对应 RRF 公式的求和核心。
  3. minmax_normalize(scores_dict)线性加权的前提:把两路分数统一压到 0-1,避免量级大的一方绑架结果。
  4. set(dense_norm) | set(sparse_norm)取两路候选的并集,保证每条通道独有的文档都能参与最终排序。
  5. alpha * dense_norm.get(d, 0.0) + (1 - alpha) * sparse_norm.get(d, 0.0)对不在某条通道里的文档,该通道贡献按 0 计,实现加权求总分。

常见误区

误区“RRF 融合前不是应该先做归一化吗?不然两路分数量级不一样怎么相加?”——很多初学者以为 RRF 和线性加权一样,必须先处理分数尺度。

正解RRF 的输入从头到尾都是名次而不是原始分数。它只问“文档 d 在通道 i 排第几”,完全不关心第一名和第二名之间的分差是 0.01 还是 0.5。正因为绕开了分数尺度问题,RRF 才成为多通道融合里最省心的方案。需要归一化的是线性加权法——它要直接对分数做乘法加法,量纲不一致时高量级通道会单方面决定结果。

为何常见:因为多数人在学融合时先接触线性加权,天然以为所有融合方法都要处理“分数可比性”,忽略了“名次本身就是无量纲的”这一关键点。

误区“离线网格搜索找到了 α=0.7,线上就一直用 0.7 吧!”——初学者常把权重当静态超参,调完就不再管。

正解最优 α 会随查询类型和业务阶段漂移。电商大促期间用户搜“手机”更看语义规格,换了新类目关键词后稀疏通道的精确匹配价值又会上升。所以工业界普遍用“离线定基准 + 在线反馈微调 + 查询自适应”三层策略,让权重随数据分布变化持续更新。固定权重等于锁死了一个本可以随时优化的旋钮。

为何常见:因为单次实验里确实能看到固定权重带来明显提升,用户便容易产生“最优值已找到”的错觉,忽略了系统部署后的数据分布漂移。

误区“把稠密检索的 top10 和稀疏检索的 top10 一起展示,不就算融合了吗?”

正解直接拼接会产生两个问题:一是重复文档未去重(两个列表顶部大概率有交集),二是排名标准不一致(稠密通道的第 3 名和稀疏通道的 3 名没有可比性)。真正的融合要先把候选做并集去重,再通过 RRF 或线性加权给所有文档算一个统一的融合分,这个分数才是最终排序的依据。拼接只是把盲区叠加,融合是把证据合并。

为何常见:混淆了“召回阶段候选集合并”与“排序阶段分数融合”两个环节,以为只要有多个来源就完成了融合,忽略了统一排序的必要性。

误区“向量检索是新技术,语义准,BM25 那套老掉牙了,融合收益肯定很小。”

正解在长尾查询、专有名词、合同编号、商品型号等场景,稀疏检索的精确匹配能力恰恰是稠密检索的短板——向量编码会稀释精确片段,甚至把"CT-2024-0891"这样的编号算成噪音。大量评测显示,融合方案在召回率和 NDCG 上都稳定优于单一的稠密或稀疏检索,尤其在长尾分布的数据上收益最大。这不是锦上添花,而是补齐结构性短板的刚需。

为何常见:语义检索近年的宣传热度远高于传统检索,让人误以为新方法在“全面碾压”旧方法,忽略了两者在精确匹配维度上不可替代的互补关系。

面试题

Q1. RRF 融合的核心输入是什么?

单选题 · easy

  • A.通道的原始评分分数
  • B.通道的文档排名字次← 正确答案
  • C.通道的向量维度大小
  • D.通道的索引构建时间

答案:B。RRF 全称是 Reciprocal Rank Fusion,它只看文档在各通道的排名字次——把名次带入倒数公式求和。A 是线性加权的输入;C 和 D 与融合排序无关。

Q2. 线性加权融合前,两路分数通常需要做什么预处理?

单选题 · easy

  • A.全部换算成整数
  • B.倒序排列一遍
  • C.归一化到同一量纲← 正确答案
  • D.随机打乱再排序

答案:C。线性加权是直接对分数做乘法和加法,如果稠密相似度在 0-1 而 BM25 在 0-50,高量级通道会单方面绑架结果。所以需要先归一化到同一量纲(如 0-1),再进行加权求和。

Q3. RRF 公式中平滑参数 k 的作用是什么?

单选题 · mid

  • A.调整融合后的结果数量
  • B.控制归一化的缩放范围
  • C.削弱第一名对结果的过度影响← 正确答案
  • D.决定稠密通道的向量维度

答案:C。k 加在倒数公式的分母里,使得第 1 名贡献 1/(k+1)、第 100 名贡献 1/(k+100),名次差异被大幅压缩。k 越大名次间权重差异越小,从而避免第一名垄断融合结果。A、B、D 都不是 k 的作用。

Q4. 在公式 score(d) = α·s_dense(d) + (1-α)·s_sparse(d) 中,α 越接近 1 表示:

单选题 · mid

  • A.越信任稀疏关键词通道
  • B.越信任稠密语义通道← 正确答案
  • C.两路通道权重完全相等
  • D.融合结果趋近于零

答案:B。α 是稠密通道的权重,(1-α) 是稀疏通道的权重。α 越接近 1,语义大师的话语权越大,融合结果越接近纯稠密检索。α=0.5 时两路权重相等,但题目问的是 α 接近 1 的含义。

Q5. 为什么 RRF 不需要对原始分数做归一化?

单选题 · mid

  • A.因为稠密和稀疏分数天然同量纲
  • B.因为它只用名次计算,不碰原始分数← 正确答案
  • C.因为 BM25 分数本身已标准化
  • D.因为余弦相似度已在 0 到 1 之间

答案:B。RRF 的输入是文档在各通道的排名,名次是纯序数,没有任何物理量纲。它完全不读取原始分数,因此不存在量纲不匹配的问题。A、C、D 都误解了 RRF 的输入形式。

Q6. 以下哪些属于融合检索的收益?

多选题 · mid

  • A.长尾查询的召回率提升← 正确答案
  • B.顶部结果的精度更稳定← 正确答案
  • C.索引存储空间直接减半
  • D.NDCG 综合排序指标改善← 正确答案

答案:ABD。融合取两路候选并集,在长尾和精确匹配查询上召回率显著提升;两条通道互相印证让顶部排名更稳定;NDCG 作为综合指标通常随融合改善。但索引空间不会因融合而减半——双通道意味着既要存向量又要存倒排,存储通常是增加的。

Q7. 查询自适应融合中,哪些查询特征会让系统倾向给稀疏通道更高权重?

多选题 · mid

  • A.查询包含专有名词或合同编号← 正确答案
  • B.查询是口语化长句
  • C.查询词项少且歧义大← 正确答案
  • D.查询包含精确商品型号← 正确答案

答案:ACD。专有名词、商品型号这类精确片段是稀疏通道的强项,稠密向量容易稀释它们;词项少且歧义大的查询更需要字面线索兜底。口语化长句是稠密语义通道的舒适区,应该给稠密更高权重而不是稀疏。

Q8. 关于线性加权融合,下列说法正确的是:

单选题 · hard

  • A.权重 α 与 (1-α) 之和可以大于 1
  • B.未归一化分数直接加权可能被高量级通道绑架← 正确答案
  • C.加权融合的输出不依赖任何归一化方法
  • D.RRF 与线性加权在数学上完全等价

答案:B。线性加权的前提是分数量纲一致,否则量级大的通道会单方面决定总分——这是最常见的坑。权重之和应等于 1,归一化是必需步骤,RRF 与线性加权思路完全不同,因此 A、C、D 都错。

Q9. 权重自适应调节的常见策略包括哪些?

多选题 · hard

  • A.离线网格搜索历史日志定基准← 正确答案
  • B.在线反馈用小步梯度更新权重← 正确答案
  • C.根据查询特征输出差异化 α← 正确答案
  • D.用固定随机数初始化不再调整

答案:ABC。三层策略分别是离线网格搜索定基准、在线反馈微调、查询特征动态输出 α。D 是固定权重不做自适应,正好与题目相悖。

Q10. 某双通道融合后,文档 d 在稠密通道排名第 3、稀疏通道排名第 10,设 k=60,其 RRF 分数约为:

单选题 · extreme

  • A.1/60 + 1/3
  • B.1/63 + 1/70← 正确答案
  • C.1/3 + 1/10
  • D.60/3 + 60/10

答案:B。RRF 公式是 Σ 1/(k+rank),k=60 时两项分别是 1/(60+3)=1/63 和 1/(60+10)=1/70,相加约 0.0301。A、C 忽略了 k 的平滑作用,D 把 k 放到了分子上,均不符合倒数排名公式。