GEO

混合检索

混合检索是一种检索技术,它并行运行稠密向量检索(语义)和稀疏关键词检索(BM25),然后将结果融合成单一的排序列表。它在一次查询中同时捕捉“语义相似”和“精确 token 匹配”。

混合检索是一种检索技术,它并行运行稠密向量检索(语义)和稀疏关键词检索(BM25),然后将结果融合成单一的排序列表。它在一次查询中同时捕捉“语义相似”和“精确 token 匹配”。

为什么重要

稠密向量检索擅长语义匹配(“实惠的笔记本电脑”≈“预算型笔记本”),但在产品代码、SKU 和专有名词等罕见 token 上会失效。关键词检索能精准命中确切 token,却会漏掉同义改写。混合检索两者兼得,Anthropic、OpenAI 和 Elastic 的生产级 RAG 系统都报告称,混合检索的表现持续优于任一单独方法,在真实世界的检索基准上通常带来 10–30% 的召回率提升。

工作原理

1. 双路检索:同一查询同时通过两个索引运行,即向量索引(稠密嵌入)和倒排索引(BM25 或 TF-IDF)。

2. 分数归一化:稠密分数和稀疏分数处于不同的量纲上。需要对它们进行归一化,可采用 min-max、z-score 或基于排名的方式。

3. 融合:将分数合并为单一排序。最常用的方法有:

  • 倒数排名融合(RRF)score = Σ 1/(k + rank_i),基于排名,无需调参,极其稳健。
  • 加权求和α * dense + (1-α) * sparse,需要为每个领域调节 α。
  • 学习式融合:用一个小模型为每个查询预测最优权重。

4. 可选的重排序:用一个 cross-encoder 对融合后的 top-k 候选重排序,以获得最终精度。

何时使用

领域特定词汇:医学代码、法律引文、零件编号。

混合查询类型:当用户既用自然语言又用精确字符串进行搜索时。

长尾召回很重要:BM25 仍能大放异彩的罕见查询。

仅靠向量得到零结果时:这往往是精确匹配的失败,混合检索可以修复它。

权衡取舍

延迟:两个索引意味着两次查询。可通过并行执行来缓解。

索引存储:你需要同时维护向量索引和倒排索引。

调参复杂度:加权融合需要带标注的数据来调节。RRF 则绕开了这一点。

并非总是更优:在嵌入表现非常强的领域(纯同义改写任务)中,仅用稠密检索即可与混合检索持平。

混合检索 vs 纯向量检索

维度纯向量混合
语义匹配
精确 token 匹配
罕见 token、SKU
基础设施简单两个索引
典型召回提升基准+10–30%

现代向量数据库(Pinecone、Weaviate、Qdrant、Elasticsearch)都将混合检索作为一等功能提供,因此运维成本很低。

Sources: