
RRF —— 倒数排序融合算法
RRF
- Reciprocal Rank Fusion(RRF)是一种简单有效的数据融合算法,是一种将具有不同相关性指标的多个结果集组合成单个结果集的方法。
痛点
- 对于复杂一点的检索系统来说,一般最好的排名是通过综合多路召回结果来实现的,例如将向量搜索的结果和标量搜索的结果进行合并。而在实践中,将多路召回综合成最终排名结果是比较具有挑战性的,难点在于每路召回的评分标准不一样(特别是来自不同数据源的召回结果),很难对每路score进行简单的加和计算来形成最终的排名。RRF算法的优势在于不利用相关分数,而仅靠排名计算,简单有效。
算法

- D —— 文档集
- R —— 一组排名从(1 – d)的排列(即初始排名)
- k —— 大于等于1的常数
如上图,计算方式很简单,常数k加上文档在结果集中的排名的倒数,求和
优势
- RRF算法的优势在于不利用相关分数,而是仅靠排名
本质
- RRF本质上是将多路召回的结果按照排名映射到同一值域空间,拉齐评分标准,作用类似机器学习中的softmax函数。
