先给结论
如果业务场景的知识库包含大量专有名词和特定编号,例如商品型号、法律条文或系统报错码,必须选择混合检索方案。如果是纯开放式问答,提问偏向口语化,可以先用向量检索起步验证。如果系统对响应时间有毫秒级严格约束,或者要求零训练成本投入,单独使用 BM25 依然是合格的方案。
在实际工程落地中,混合检索通过融合两者优势成为主流选择。选型时不需要拘泥于单一路径,应根据业务对精确匹配的依赖程度、对语义泛化的需求,以及团队所能承担的工程资源约束来做综合取舍。
逐项对比
| 对比维度 | BM25(字面检索) | 向量检索(语义检索) | 混合检索 |
|---|---|---|---|
| 定位 | 词频饱和与文档长度归一的词法打分 | 基于 Embedding 的语义相似度召回 | 两路召回并集加 RRF 融合与精排 |
| 强项 | 精确词命中强、无需训练、可解释性好 | 同义改写与跨语言泛化强 | 互补两者盲区、综合召回率高 |
| 弱项 | 盲区在跨语言与同义改写、依赖分词质量 | 弱在专名与精确匹配、可解释性差 | 工程成本最高、需调校融合参数 |
| 典型场景 | 专名、编号、缩写、错纠后关键词检索 | 纯开放问答、口语化查询 | 包含大量专名与编号的复杂知识库 |
| 成本 | 零训练成本、索引维护简单 | 依赖模型质量与切分粒度、需算力 | 维护两套索引与融合参数、成本最高 |
BM25 和向量检索在能力上呈现互补关系。BM25 采用词频饱和与文档长度归一化机制,核心优势是对专有名词、特定编号、缩写及拼写纠错后的关键词有很强的精确命中能力,且词法打分过程具备完整可解释性。其局限在于无法理解语义,跨语言查询和同义词改写是天然盲区,最终效果高度依赖前置的分词质量。
向量检索通过 Embedding 模型计算语义相似度,擅长处理同义改写和跨语言泛化任务。当用户输入口语化查询时,向量检索能召回字面不一致但语义相关的文档。其劣势在于对专有名词和精确匹配的处理较弱,效果受限于模型质量与文档切分粒度,且结果缺乏可解释性。
混合检索将两路召回结果取并集,通过 RRF 融合与精排模型统一排序。在融合阶段,RRF 的 k 值是调节排序权重的常见参数,通常以默认值起步并严格按评测集调优。该方案能有效覆盖各类查询盲区,但代价是必须承担维护两套索引与融合参数的最高工程成本。
面试怎么答
在面试中遇到选型问题,不要直接给出单一结论。建议先向面试官确认具体业务场景,询问查询词特征(是否含大量专有名词或编号)、性能约束(是否有毫秒级严格延时要求)以及工程资源配置(能否支持多套索引维护)。
确认边界条件后,再给出匹配方案。对于常规知识库,回答采用混合检索,并说明用 RRF 融合与精排来互补字面和语义的盲区。常见的错误答法是盲目推崇向量检索,认为语义能完全替代字面匹配,或者在回答混合检索时忽视了维护两套索引的工程成本,显得缺乏实际落地经验。