惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
量子位
D
DataBreaches.Net
博客园 - 司徒正美
J
Java Code Geeks
博客园 - 【当耐特】
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
aimingoo的专栏
aimingoo的专栏
B
Blog
The Cloudflare Blog
D
Docker
I
InfoQ
爱范儿
爱范儿
MongoDB | Blog
MongoDB | Blog
腾讯CDC
月光博客
月光博客
Hugging Face - Blog
Hugging Face - Blog
Microsoft Azure Blog
Microsoft Azure Blog
Vercel News
Vercel News
阮一峰的网络日志
阮一峰的网络日志
小众软件
小众软件
S
SegmentFault 最新的问题
GbyAI
GbyAI
有赞技术团队
有赞技术团队

博客园 - 洛晨随风

openclaw云端部署踩坑(持续更新) openspec的project.md要求模板 AI编程的残酷真相:为什么说Spec Coding是2026年最大的趋势? 🐳 Docker 核心实战与进阶笔记 在 AI 编程狂热之后:为什么“文档与原理”才是开发者的真正护城河 python代码:ffmpeg.probe(视频路径) 出现系统找不到指定文件的问题处理办法 JS队列之双端队列介绍 hugging face 在windows 上的使用办法 大屏上cesium可能出现放大缩小后的坐标偏移问题采坑 windows 端使用gemini cli的办法 记一次插件发布的采坑经历 提示词记录 混合开发的一些小tips(uniapp+hbuilder x+vue3+vite+ 5+APP) AI的规则设置 项目打包时跳过TS类型检查的办法 cursor 配置MCP模式,以读取figma原型为例说明开发的便捷性 pnpm workspace 采坑 一些AI工具整理 解决谷歌翻译导致的HTML多加入<font style=“vertical-align:inherit;“>的问题
浅显易懂的解释一下RRF加权算法的意思
洛晨随风 · 2025-11-18 · via 博客园 - 洛晨随风

想象一下,你想找一部“最好看的科幻电影”。你没法自己看完所有电影,于是你问了三位你非常信任的朋友(我们叫他们小A、小B、小C),让他们每人给你一个前5名的推荐名单。

现在你拿到了三个不同的名单:

  • 小A的名单 (偏爱经典)

    1. 《银翼杀手》

    2. 《2001太空漫游》

    3. 《星际穿越》

    4. 《黑客帝国》

    5. 《阿凡达》

  • 小B的名单 (偏爱新片)

    1. 《流浪地球2》

    2. 《星际穿越》

    3. 《沙丘》

    4. 《降临》

    5. 《银翼杀手2049》

  • 小C的名单 (偏爱视觉)

    1. 《阿凡达》

    2. 《黑客帝国》

    3. 《星际穿越》

    4. 《银翼杀手》

    5. 《沙丘》

现在问题来了:如何综合这三个名单,得出一个最终的、最靠谱的推荐榜单? 这就是 RRF 算法要解决的问题。


RRF算法的核心思想

RRF 的全称是 Reciprocal Rank Fusion,中文叫 “倒数排名融合”

它的核心思想非常简单,可以总结为两句话:

  1. 排名越靠前,价值越大。 (被任何一个朋友排在第1名,远比被排在第10名要有分量得多)。

  2. 综合所有人的意见。 (一部电影在多个名单里都出现,即使排名不都是第一,也说明它很不错)。

RRF具体是怎么做的?

RRF 用一个非常巧妙的数学方法来实现这个思想——“排名的倒数”

我们给每部电影在每个名单里的排名算一个分数:分数 = 1 / 排名

  • 排名第 1 -> 分数 = 1/1 = 1 分

  • 排名第 2 -> 分数 = 1/2 = 0.5 分

  • 排名第 3 -> 分数 = 1/3 ≈ 0.33 分

  • ...

  • 排名第 10 -> 分数 = 1/10 = 0.1 分

  • 如果没出现在名单里 -> 分数 = 0 分

你看,这个分数完美体现了“排名越靠前,价值越大”的思想。从第1名掉到第2名,分数直接砍半(少了0.5分),而从第9名掉到第10名,分数只少了一点点(约0.01分)。

接下来,我们把每部电影在 所有名单里 的分数加起来,得到一个总分。

我们来算一下几部热门电影的总分:

  • 《星际穿越》

    • 在小A名单排第3名 -> 0.33分

    • 在小B名单排第2名 -> 0.5分

    • 在小C名单排第3名 -> 0.33分

    • 总分 = 0.33 + 0.5 + 0.33 = 1.16 分

  • 《银翼杀手》

    • 在小A名单排第1名 -> 1分

    • 在小B名单没出现 -> 0分

    • 在小C名单排第4名 -> 0.25分

    • 总分 = 1 + 0 + 0.25 = 1.25 分

  • 《阿凡达》

    • 在小A名单排第5名 -> 0.2分

    • 在小B名单没出现 -> 0分

    • 在小C名单排第1名 -> 1分

    • 总分 = 0.2 + 0 + 1 = 1.2 分

  • 《流浪地球2》

    • 在小A名单没出现 -> 0分

    • 在小B名单排第1名 -> 1分

    • 在小C名单没出现 -> 0分

    • 总分 = 1 分

最后,我们根据这个总分从高到低排序,就得到了最终的融合榜单:

  1. 《银翼杀手》 (1.25分)

  2. 《阿凡达》 (1.2分)

  3. 《星际穿越》 (1.16分)

  4. 《流浪地球2》 (1分)

  5. ...

总结一下

RRF加权算法,就是一种用来合并多个排名列表的方法。 它通过计算 “排名的倒数” 来给每个项目打分,然后把各个列表的分数加起来,最终根据总分得出一个更可靠、更全面的新排名。

它在现代搜索引擎(特别是混合搜索)中非常流行,因为搜索引擎也需要综合“关键词匹配结果”、“语义理解结果”等多个来源的排名,RRF提供了一种简单、高效且无需复杂训练的融合方法。