BM25 与向量检索:核心区别与混合方案
BM25 和向量检索不是二选一的关系,而是互补的两种检索方式:BM25 靠字面关键词匹配,擅长精确命中;向量检索靠语义相似度,擅长理解意思。实际系统里通常把两者结合起来做混合检索,效果比单用任何一路都好。
核心区别
-
BM25(稀疏检索):基于词频和逆文档频率的统计模型,通过倒排索引快速找到包含查询词的文档。它看的是"字面",搜"TS-8300"就精确匹配"TS-8300",对型号、编号、代码这类精确信息非常可靠。
-
向量检索(稠密检索):用 Embedding 模型把文本映射成高维向量,通过余弦相似度衡量语义距离。它看的是"意思",搜"怎么退烧"能召回"发热了怎么办",即使字面完全不重合。
各自擅长什么
| 场景 | BM25 | 向量检索 |
|---|---|---|
| 产品型号、订单号、报错码 | ✅ 精确命中 | ❌ 容易混淆相近编号 |
| 同义改写、口语化表达 | ❌ 词汇鸿沟 | ✅ 语义泛化 |
| 否定表达(如"不需要显卡") | ✅ 词项直接匹配 | ❌ 否定成分被稀释 |
| 长尾语义查询 | ❌ 基本抓瞎 | ✅ 能理解意图 |
一个经典例子:搜"JK-2048-B 型继电器",BM25 能

本文剖析BM25(稀疏检索)与向量检索(稠密检索)的核心差异:BM25基于词频-逆文档频率,依赖倒排索引实现精确关键词匹配;向量检索通过Embedding模型计算语义相似度,支持字面不匹配但语义相关的结果召回。重点介绍双路召回+融合排序的混合落地方法,包括RRF和加权归一化策略,并指出分数量纲不一致、候选池过小、查询路由缺失等关键实践陷阱。
308

被折叠的 条评论
为什么被折叠?



