混合检索:稠密 + 稀疏

稠密检索的短板与 BM25 的互补;两路召回后如何用 RRF / 加权 / 学习排序融合,以及何时该上混合检索。

稠密检索的短板

纯向量(稠密)检索靠语义,但有几个天然弱项:

稀疏检索(BM25)的优势

传统 BM25 基于词频/逆文档频率,对关键词、专名、精确串极其敏感且确定。它正好补上稠密的短板:

互补关系:稠密管"意思像",稀疏管"词面对"。两者合起来才稳。

两路召回 + 融合

混合检索(Hybrid Search)标准做法:

  1. 同一 query 同时跑稠密路(向量召回 top-k_a)和稀疏路(BM25 召回 top-k_b)。
  2. 把两路结果归并、去重,用融合算法重新排序,得最终 top-k。
Query 稠密路(向量) 稀疏路(BM25) 融合排序 RRF / 加权 TopK
图 1:两路并行召回,融合后输出最终 TopK。

RRF:最省心的融合算法

RRF(Reciprocal Rank Fusion,倒数排名融合)不需要把两路分数归一化到同一量纲,只看"排名":

score(x) = Σ_{r in 各路} 1 / (k + rank_r(x)) ,k 常取 60

某个文档在两路里排名越靠前(rank 越小),融合分越高。优点:

另有加权求和:先把各路分数 min-max / z-score 归一化,再 w_d·s_d + w_s·s_s。需调权重,但对"某路更重要"的场景更可控。还有学习排序(Cross-Encoder / LambdaMART)做最终精排,精度最高但成本高。

稀疏表示不止 BM25

混合检索的"稀疏路"可以是 BM25,也可以是这些模型稀疏向量,后两者效果更好。

何时该上混合检索

经验法则:企业知识库 / RAG 生产环境,默认上"稠密 + BM25(RRF 融合)"。它几乎总是比纯向量稳一截,成本却只多一路关键词检索。