当前位置: 首页 > news >正文

RAG文档明明检索到了,为什么还是排不到前面?RRF 排名算法一次讲清楚

RRF 倒数排名融合算法

在 RAG 系统中,我们通常不会只使用一种检索方式。

为了尽可能找到正确文档,很多系统会同时使用:

  • BM25 关键词检索
  • 向量语义检索

BM25 擅长匹配关键词、产品型号和专业术语;向量检索更擅长理解语义,找到表达方式不同但含义相近的内容。

两种检索方式结合,确实能够召回更多相关文档。

但新的问题也随之出现:

两路检索都返回了一批文档,最终应该按照什么顺序排列?

这正是 RRF 要解决的问题。


一、为什么不能直接合并检索分数?

假设用户搜索:

手机无法充电怎么办?

BM25 检索后,文档 A 的相关性分数是12.6;向量检索后,文档 B 的相似度是0.86

那么,12.6 和 0.86 哪个更高?

从数字上看,12.6 显然更大,但这并不代表文档 A 一定更加相关。

因为这两个分数来自完全不同的计算方式:

  • • BM25 分数衡量关键词匹配程度
  • • 向量相似度衡量语义相似程度
  • • 两者的取值范围和计算标准并不一样

这就像两场考试:

  • • 第一场满分是 100 分
  • • 第二场满分是 10 分

一个人考了 80 分,另一个人考了 9 分。只看数字大小,80 大于 9,但不能因此判断前者表现一定更好。

同样,BM25 的 12.6 分和向量检索的 0.86,也不能直接比较或相加。

于是,多路检索面临一个关键问题:

不同检索器的原始分数没有统一标准,应该怎么融合?

RRF 给出了一种非常直接的解决思路。


二、RRF 是什么?

RRF 的全称是Reciprocal Rank Fusion,中文通常叫作倒数排名融合

它是一种用于融合多个检索结果的排序算法。

RRF 的核心思想只有一句话:

不比较不同检索器给出的原始分数,只比较文档在每一路检索结果中排第几。

也就是说,RRF 不关心:

  • • BM25 到底给了多少分
  • • 向量相似度具体是多少
  • • 不同检索器的分数范围是否一致

它只看文档的名次

例如,同一篇文档:

  • • 在 BM25 中排第 1
  • • 在向量检索中排第 3

RRF 会根据这两个排名分别给文档加分,再把分数累加起来。

可以把多路检索理解成多位评委给文档排名:

  • • BM25 是评委一
  • • 向量检索是评委二
  • • 每位评委都会给出一份榜单
  • • RRF 根据文档在不同榜单中的名次综合计分

计分规则也很简单:

    1. 排名越靠前,获得的分数越高
    1. 排名越靠后,获得的分数越低
    1. 同一篇文档出现在多路结果中,分数可以累加

因此,一篇文档如果在多个检索结果中都排名靠前,最终通常也会排在前面。

RRF 寻找的并不是某一路检索中分数最高的文档,而是:

被多路检索共同认可的文档。


三、RRF 是怎么计算的?

RRF 的计算公式如下:

其中:

  • • 表示某一篇文档
  • • 表示文档在第 路检索结果中的排名
  • • 是平滑参数
  • • 同一篇文档在多路检索中的得分会累加

公式看起来有些抽象,但整个过程只有四步:

假设参数 。

如果文档 A:

  • • 在 BM25 中排第 1
  • • 在向量检索中排第 3

那么它的 RRF 分数就是:

也就是:

如果文档 B:

  • • 在 BM25 中排第 2
  • • 在向量检索中排第 1

那么它的 RRF 分数就是:

也就是:

最后,将每篇文档在所有检索结果中的得分相加,再按照总分从高到低重新排序。


四、用一个完整案例讲清楚

假设用户搜索:

手机无法充电怎么办?

BM25 关键词检索返回:

排名文档
1文档 A:充电接口故障排查
2文档 B:手机无法充电处理方法
3文档 C:电池保养说明

向量语义检索返回:

排名文档
1文档 B:手机无法充电处理方法
2文档 D:设备无法正常供电
3文档 A:充电接口故障排查

可以看到:

  • • 文档 A 在两路检索中分别排第 1 和第 3
  • • 文档 B 在两路检索中分别排第 2 和第 1
  • • 文档 C 只出现在 BM25 结果中
  • • 文档 D 只出现在向量检索结果中

假设 ,分别计算每篇文档的 RRF 分数。

文档 A

文档 B

文档 C

文档 C 只出现在 BM25 结果中,并且排第 3:

文档 D

文档 D 只出现在向量检索结果中,并且排第 2:

最终融合排序为:

最终排名文档RRF 分数
1文档 B0.03252
2文档 A0.03227
3文档 D0.01613
4文档 C0.01587

为什么文档 B 排到了第一?

因为它在两路检索中分别排第 2 和第 1,两边的排名都很靠前。

文档 A 虽然在 BM25 中排第一,但它在向量检索中只排第三,所以融合总分略低于文档 B。

文档 C 和文档 D 只出现在一路检索结果中,只能获得一次加分,因此最终得分相对较低。

这就是 RRF 的排序逻辑:

一篇文档不一定要在某一路检索中排第一,只要它在多路检索中都表现稳定,最终就可能排到前面。


五、参数 有什么作用?

RRF 公式中还有一个参数 ,常见设置是:

它的作用,是让不同排名之间的分数变化更加平缓。

假设公式中没有 ,直接计算排名的倒数:

排名得分
第 1 名1
第 2 名0.5
第 3 名0.333

可以看到,第 1 名和第 2 名之间的分数差距非常大。

这意味着,只要某篇文档在某一路检索中排第一,就可能对最终结果产生过大的影响。

加入 后:

排名得分
第 1 名
第 2 名
第 3 名

此时,不同名次之间的分数差距明显变小。

可以简单理解为:

  • • 越小,越强调前几名的优势
  • • 越大,不同名次之间的得分越接近

因此,加入 后,可以避免某一路检索中的第一名过度主导最终结果,让融合排序更关注一篇文档是否被多路检索共同认可。

需要注意的是, 是常见设置,并不代表所有场景都必须固定使用 60。


六、RRF 的完整执行过程

把前面的内容连起来,RRF 的执行过程就是:

BM25 返回一份文档榜单 +向量检索返回一份文档榜单 ↓记录每篇文档在各个榜单中的排名 ↓使用 1 ÷(k + 排名)计算单路得分 ↓累加同一篇文档的多路得分 ↓按照总分从高到低重新排序

RRF 不需要比较 BM25 分数和向量相似度,也不需要先把两种分数强行调整到同一个范围。

只要每一路检索能够给出文档排名,RRF 就可以完成融合。


总结

多路检索融合最麻烦的问题,是不同检索器的原始分数通常不在同一套标准下。

BM25 的 12.6 分和向量检索的 0.86,并不能直接比较。

RRF 的解决办法很直接:

既然分数不好比较,那就不比较分数,只比较排名。

它会把文档在每一路检索中的排名转换成倒数分数,再累加多路得分,最终得到统一排序。

排名越靠前,获得的分数越高;被多路检索同时召回,并且在多个榜单中都排名靠前的文档,最终更容易排在前面。

学AI大模型的正确顺序,千万不要搞错了

🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!

有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!

就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇

学习路线:

✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经

以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!

我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

http://www.jsqmd.com/news/1391604/

相关文章:

  • 2026年上海软件定制开发公司推荐:本地企业选择软件定制开发公司的关键参考
  • AI-RAN 不是单一的软件或硬件产品,而是一套完整的端到端技术体系
  • Windows掌机终极伴侣:Handheld Companion新手指南,解锁体感操控与智能调校
  • 高校线上评选怎么做?零基础微信小程序快速发起校园投票 - 投票评选活动
  • 从Naive RAG到Agentic RAG:智能检索增强生成的演进与实战
  • 157、Zephyr RTOS安全基础:安全启动与固件验证
  • 想让Windows电脑跑macOS?OpenCore启动U盘制作完整实战指南
  • m4s转mp4到底难不难?m4s-converter帮你3分钟搞定B站缓存视频
  • 河源龙川黄金奢侈品回收避坑指南:正规门店龙川源奢汇实测 - 行走在冷风中。
  • 东北高寒环境专网通信:DMR 公专融合项目实战与故障排坑
  • 2026无人机维修培训甄选:靠谱办学单位里,这家32年老校把芯片级技术焊死在车间 - 湖南阳光技术
  • Python进阶 - 正则表达式的分组 提取匹配的子字符串
  • B站缓存视频打不开?用m4s-converter快速完成m4s转MP4的完整指南
  • 10分钟学会Rufus制作USB启动盘:重装系统不求人的实用教程
  • 跨平台轻量级RTSP技术设计和使用场景探讨
  • 2026年口碑好靠谱的高压风机公司品牌推荐** - 资讯综合
  • 185、LLC谐振变换器的样机调试实战(效率测试)
  • 老iPhone卡成PPT?用Legacy-iOS-Kit一键降级,让旧设备重获新生
  • Rhino许可证管理适合做月度治理,而不是临时清理,为什么
  • 打造高转化率的包包网站建设策划书:从视觉美学到营销落地的全方位指南
  • 2026年不锈钢型钢实力厂家与品牌服务商解析 - 卓企推荐
  • EinkBro 上手实测:5 个设置把墨水屏浏览器调成趁手阅读器
  • 从零训练语言模型:小模型跑通全流程再说大的
  • 3步上手番茄小说下载工具:从安装到批量囤书的完整路线图
  • 网站建设的毕业设计选题管理系统如何帮助学生避开选方向误区并提升效率
  • 网盘下载慢到怀疑人生?这款开源脚本让九大网盘的直链下载一步到位
  • 老板键为什么不一定来得及?从手动快捷键到事件驱动保护
  • BT下载总卡在99%?trackerslist的公共Tracker清单是怎么帮我解决的
  • libipc: 一款轻量级、跨平台的 C++ 进程间通信(IPC)库
  • 破解矿山工业网络痛点:矿山工业交换机厂家海硕RCE三维适配法如何实现稳定运行? - 全域品牌推荐