











想象一下,你想找一部“最好看的科幻电影”。你没法自己看完所有电影,于是你问了三位你非常信任的朋友(我们叫他们小A、小B、小C),让他们每人给你一个前5名的推荐名单。
现在你拿到了三个不同的名单:
小A的名单 (偏爱经典)
《银翼杀手》
《2001太空漫游》
《星际穿越》
《黑客帝国》
《阿凡达》
小B的名单 (偏爱新片)
《流浪地球2》
《星际穿越》
《沙丘》
《降临》
《银翼杀手2049》
小C的名单 (偏爱视觉)
《阿凡达》
《黑客帝国》
《星际穿越》
《银翼杀手》
《沙丘》
现在问题来了:如何综合这三个名单,得出一个最终的、最靠谱的推荐榜单? 这就是 RRF 算法要解决的问题。
RRF 的全称是 Reciprocal Rank Fusion,中文叫 “倒数排名融合”。
它的核心思想非常简单,可以总结为两句话:
排名越靠前,价值越大。 (被任何一个朋友排在第1名,远比被排在第10名要有分量得多)。
综合所有人的意见。 (一部电影在多个名单里都出现,即使排名不都是第一,也说明它很不错)。
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.25分)
《阿凡达》 (1.2分)
《星际穿越》 (1.16分)
《流浪地球2》 (1分)
...
RRF加权算法,就是一种用来合并多个排名列表的方法。 它通过计算 “排名的倒数” 来给每个项目打分,然后把各个列表的分数加起来,最终根据总分得出一个更可靠、更全面的新排名。
它在现代搜索引擎(特别是混合搜索)中非常流行,因为搜索引擎也需要综合“关键词匹配结果”、“语义理解结果”等多个来源的排名,RRF提供了一种简单、高效且无需复杂训练的融合方法。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。