什么是 BM25?

BM25 是一种概率词法排序函数,它根据查询词匹配、词频饱和、逆文档频率和文档长度归一化为文档打分。

工作原理

BM25 是信息检索中长期有效的基线方法,因为它简单、可解释,并且在精确文本匹配上依然很强。它相比原始词频更稳健:重复词的边际收益会逐渐饱和,同时会对文档长度做归一化。在 AI 搜索和 RAG 中,BM25 常作为混合搜索里的稀疏检索分支,尤其适合查询中包含精确名称、错误码、法律短语、配置键,或其他仅靠嵌入不够可靠的 token。

主要特点

  • 使用词法词项匹配排序,而不是学习得到的语义向量
  • 利用逆文档频率奖励信息量更高的词
  • 使用词频饱和,避免重复词无限支配排序
  • 通过文档长度归一化,避免过度偏向长文档
  • 仍是 RAG 系统中强基线和混合搜索的重要组成部分

常见用途

  1. 按精确 API 名称和参数搜索开发者文档
  2. 通过错误码检索支持文章
  3. 为 RAG 评估提供词法检索基线
  4. 将 BM25 命中结果与稠密检索结果进行排名融合
  5. 服务于要求精确措辞的合规或法律搜索

示例

loading...
Loading code...

常见问题

为什么有了 LLM 还需要 BM25?

LLM 仍需要可靠检索。BM25 对字面证据、精确词和标识符很强,因此在 RAG 管线中仍然有价值。

BM25 是语义搜索吗?

不是。BM25 是词法方法:它根据词项匹配和权重为文档打分。语义搜索通常依赖嵌入。

BM25 什么时候比稠密检索更好?

它通常在精确字符串、错误码、产品名、法律短语,以及精确措辞就是信号的查询上表现更好。

BM25 在混合搜索中怎么用?

BM25 生成稀疏词法候选,稠密检索生成语义候选,然后对两类排序结果进行融合或重排。

相关工具

相关术语

相关文章