混合检索为什么比纯向量检索更稳:关键词与向量的分工

人工智能 · 2026-10-07

纯向量检索擅长语义相近,但对精确术语、编号、罕见词容易漏;关键词检索(BM25)恰好相反。把两路结果合并再重排,能同时覆盖这两类查询。本文讲清分工、合并方式与常见坑。


两种检索各自擅长什么

向量检索把文本压成向量,比的是**语义距离**:问「怎么压缩图片体积」,它能召回讲「减小图片文件大小」的段落,即使两者没有一个字相同。

代价是:它对**精确字面**不敏感。查产品编号、错误码、罕见专有名词时,向量可能把「长得像」的内容排在前面,而把真正包含那个编号的段落漏在后面。

关键词检索(BM25 一类)恰好相反:它统计词频与逆文档频率,**字面命中权重高**,查编号、查术语一次就中;但它不理解同义改写,问「减小文件大小」就找不到只写「压缩图片体积」的段落。

混合检索的做法

1. **两路召回**:同一个查询分别走向量与关键词检索,各取前 N 条(例如各 50 条);

2. **分数归一化**:两路分数量纲不同,必须先归一化(或改用排名倒数 RRF),否则一路会凭数值大小压倒另一路;

3. **合并去重**:按文档 ID 合并,同一篇被两路都召回的,通常更可信;

4. **重排(可选)**:用更贵的模型对合并后的候选做精排,取最终前 K 条。

三种合并方式的取舍

  • **加权求和**:实现最简单,但权重需要按语料调,换一个语料往往要重调;
  • **RRF(排名倒数融合)**:只用排名不用分数,跨路可比、免调参,工程上最省心,缺点是丢掉了分数强弱信息;
  • **学习式融合**:效果上限更高,但需要标注数据与持续维护,小团队往往不划算。
  • 常见坑

  • **只调一路**:把权重压到 0.9 以上,等于退化成单路检索,混合的意义就没了;
  • **忘了归一化**:向量余弦相似度多在 0.7~0.9,BM25 分数动辄几十,直接相加等于只看 BM25;
  • **切分粒度不一致**:两路用不同切分,合并时对不上同一段落,去重会失效;
  • **把重排当召回**:重排只能在候选里选,候选阶段漏掉的文档,后面再贵也找不回来。
  • 什么时候不必上混合

    如果查询几乎都是自然语言长问句、语料里也少有编号与专有名词,纯向量检索通常够用。**先看真实查询日志再决定**,不要因为「混合听起来更强」就默认加上——多一路就多一份索引维护与延迟成本。

    想要你的品牌在AI回答里被推荐?

    免费诊断 →