让 AI 合并两份检索榜:RRF看名次,重复一份榜单也会改变结果

前天 3阅读

关键词搜索给文档打12分,向量搜索给它0.82分,直接相加未必有意义:两个分数来自不同尺度。可以让AI准备一份倒数排名融合账本,只使用文档在各榜中的名次,先把“怎样合并”说清楚。

让 AI 合并两份检索榜:RRF看名次,重复一份榜单也会改变结果

AI模型生成的概念插图:两组资料汇入一个候选列表;不是检索软件截图、真实资料或按本文得分比例制作的图。

给每份资料一个稳定编号

以下是原创教学记录。A为快速入门,B为常见问题,C为离线功能说明,D为更新记录。假设同一查询的关键词榜为A、B、C,语义榜为C、B、D,各取前三名。两份榜里的B指同一个文档版本;不能只凭标题相似就合并身份。

采用等权RRF,名次从1开始,常数k固定为10。文档出现在某榜第r名,就从该榜获得1/(10+r);没有出现则贡献0。Elastic官方文档给出了这一按名次累计的公式。k=10是本文的演示选择,不是给所有检索任务的最优参数建议。

先保留分数,再排总榜

A只有关键词第一名,得1/11,约0.090909。B在两榜都是第二,得1/12+1/12=1/6,约0.166667。C分别是第三与第一,得1/13+1/11=24/143,约0.167832。D只有语义第三,得1/13,约0.076923。

总榜因此为C、B、A、D。C只比B高1/858,约0.001166;不要先把两者都四舍五入成0.17再随意交换。保留分数或足够精度,最后才格式化显示。本文用精确分数独立核对了排序。

缺席不是“排在第四”。若给A在语义榜补一个虚构第四名,就会额外加1/14,变成另一种计分规则。榜单截断只能说明这次返回范围内没见到它,不能补造名次,也不能断言它在全文库里不相关。

同一榜单复制两次,会悄悄改权重

再把关键词榜原样加入一次,模拟配置里重复接入同一路结果。此时B变成3/12=0.25;C变成2/13+1/11=35/143,约0.244755,第一名改为B。A为2/11,D仍为1/13。

这个变化不是新增证据让B更可信,而是关键词排序得到了两次投票。合并之前应登记每路结果的查询、配置和来源,确认重复是否有意;同一路内也应先明确同一文档重复出现怎样去重。

一份可直接使用的提示词

“建立RRF核算账本:关键词榜[A,B,C],语义榜[C,B,D],k=10,各榜等权,排名从1开始,未出现贡献0。列每路贡献、精确总分、最终顺序和C与B差值。再追加一次关键词榜,解释哪项权重改变。禁止补缺席名次、直接相加原始检索分数,或把融合分数叫作答案正确率。”

实际接到AI问答前,可用这份账本检查实现是否遵守规则,再拿有相关性标注的查询评估检索质量。RRF只能重新排列已经找出的候选,无法召回两路都遗漏的关键资料;排在最前也不证明文档内容支持最终回答。

资料核对日期:2026年10月2日。文中为原创教学设定,计算核验不代表真实模型测试。

参考资料

Elastic:Reciprocal rank fusion

文章版权声明:除非注明,否则均为云鹊BLOG原创文章,转载或复制请以超链接形式并注明出处。