1. 混合搜索(Hybrid Search)中向量相似度 + BM25 关键词 + 元数据过滤如何融合?RRF(Reciprocal Rank Fusion)的排序合并策略?
混合搜索(Hybrid Search)要把向量相似度、BM25 关键词匹配和元数据过滤三种信号融合到同一个结果列表里,如何做到?其中 RRF(Reciprocal Rank Fusion)的排序合并策略是如何工作的?
- 三类信号(向量、关键词、元数据)本质不可比的度量问题
- RRF 基于排名而非分值进行融合的原理
- 无参、鲁棒、抗分值分布差异的优点
向量分数(余弦/内积)与 BM25 分数(词频/逆文档频率)的值域、分布完全不同,无法直接加权求和,因此业界常用 RRF 这种"只看排名不看分值"的融合方法。RRF 对每个候选文档,把它在各检索结果列表中的排名 r 通过公式 score = Σ 1/(k + r) 累加(k 通常取 60),排名越靠前贡献越大,最终按累加分数排序。它不依赖各检索器的分值尺度,天然抗分值分布偏差,且无需训练权重。元数据过滤则通常在检索前(pre-filter)或检索后(post-filter)执行:pre-filter 先按过滤条件缩小候选集再做 ANN 检索,post-filter 检索后再剔除不满足条件的 hits。RRF 的不足是把各信号等权对待,无法体现某些信号更重要的先验,且对每个子列表的召回质量敏感。
融合的本质是把"异源、异尺度"的排序信号统一表达。RRF 用"排名"而非"分值"做融合,从而规避了向量分数与 BM25 分数不可比的核心难题,k 为光滑常数防止除零并压低长尾排名的贡献。企业实践中常用 RRF 作为零成本的 baseline,再根据效果用学习权重(如 weighted RRF 或 LLM rerank)微调。