← AI 术语表

AI 术语表 · 进阶 · 经典机器学习、推荐与搜索 · 语言模型

BM25

BM25 是一种关键词检索排序函数,它根据查询中的词在文档中出现得有多频繁、又有多罕见,为每篇文档打分。它长期以来一直是搜索引擎的基本方法,至今仍是 RAG 的核心组件。

关于这个术语
难度
进阶 · 需要了解内部原理的专业术语
加入时间
2026-10-08
通俗解释 这就像图书管理员用荧光笔划出问题中的词,把这些词出现较多的书先拿出来,但会忽略“和”这类到处都有的词,也会考虑到厚书不应仅因字数多而占便宜。不过,与图书管理员不同,BM25 认不出意思相同的其他词(同义词)。

工作原理

BM25 对查询中的每个词考察三点,并把得分相加。第一,这个词在文档中出现得越多,得分越高,但出现过多时,得分的增长会逐渐变缓(使得难以靠重复同一个词提高排名)。第二,在全部文档中包含这个词的文档越少,即词越罕见,权重越大。第三,将文档长度与平均长度比较并加以校正,避免长文档仅凭词数多而占优势。借助预先建立的倒排索引(记录每个词出现在哪些文档中的列表),这一计算可以非常快速地完成。

决定 BM25 得分的三个要素查询词 → 文档内词频; 查询词 → 词的罕见程度; 查询词 → 文档长度校正; 文档内词频 → 各词得分之和; 词的罕见程度 → 各词得分之和; 文档长度校正 → 各词得分之和; 各词得分之和 → 文档排名查询词文档内词频越多越↑,增长逐渐变缓词的罕见程度越罕见越↑文档长度校正削弱长文档的优势各词得分之和文档排名
决定 BM25 得分的三个要素 对查询中的每个词考察三个要素得出分数,再把各词得分相加,确定文档排名。

为什么重要

BM25 无需额外训练即可直接使用,速度快,也容易解释某篇文档为何被检索出来。尤其在产品代码、人名、错误信息、法律条款编号等需要精确用词的检索中表现突出。基于嵌入、按语义查找的语义检索容易漏掉这类特有表达,因此如今的 RAG 系统大多采用将 BM25 与语义检索结合使用的混合检索。在评估新的检索方法时,它也常被用作比较基准。

BM25 与语义检索

BM25按词语匹配查找

  • 无需训练即可使用
  • 擅长产品代码、名称检索
  • 会漏掉同义词和不同表达

语义检索按语义查找

  • 需要嵌入模型
  • 表达不同也能按意思找到
  • 在特有词语匹配上可能较弱

공통 RAG 中先找出与问题相关文档的检索阶段

两种方式擅长的查询各不相同,因此常通过混合检索一起使用。

注意事项

BM25 只看字面上的词语匹配,因此搜索“汽车”时,可能会漏掉只出现“车辆”的文档。在韩语这类词后附着助词的语言中,结果会因语素分析等预处理的质量而有很大差异。它有用于调节词频敏感度和文档长度校正程度的参数,可以根据数据进行调整。常见的做法是先用 BM25 宽松地选出候选文档,再用重排序器重新排序。

示例

Elasticsearch、OpenSearch 等搜索引擎默认使用 BM25 作为评分方式。用 RAG 构建企业内部文档聊天机器人时,也广泛采用这样的架构:将问题同时发送给 BM25 检索和向量数据库检索,合并两者结果后,用重排序器选出排名靠前的文档交给 LLM。

相关术语