本次查询:BM25
中文解释:BM25算法
常见场景:搜索引擎排序 / 文本检索推荐 / 问答系统 / RAG(检索增强生成)中的检索阶段
一句话解释
BM25是评估文档与搜索查询匹配程度的算法,通过统计词频、文档频率和文档长度来计算相关性分数,是TF-IDF的现代化替代方案。
它在概率检索模型基础上引入饱和函数和长度归一化,避免高频词过度影响分数,同时适应不同长度的文档,有效提升排序质量。
为什么会被关注
BM25在众多检索评测基准上表现稳定且高效,被Elasticsearch、Lucene等主流搜索引擎作为默认相关性算法,是工业界最广泛使用的排序函数之一。
随着RAG(检索增强生成)在大模型应用中的普及,BM25作为经典的稀疏检索方法,与向量检索形成互补。它不需要训练语料且计算快速,在冷启动和长尾查询场景中优势明显。
核心逻辑
BM25基于概率检索模型。对于查询中的每个词,计算其在该文档中的重要性:词频越高、包含该词的文档越少、文档长度越短,得分越高。
公式包含两个关键参数k1和b。k1控制词频饱和效应,防止单个词重复出现时分数无限增长;b控制文档长度归一化程度,平衡长文档与短文档的得分可比性。
常见场景
搜索引擎底层排序组件,包括百度、Google等传统搜索引擎的核心模块之一,也用于企业级搜索平台如Elasticsearch的默认相关性排序。
问答系统中的候选答案匹配、RAG系统的检索器(常与向量检索组成混合检索,提升召回率)、文本相似度计算以及推荐系统的候选集召回。
容易混淆的点
很多人将BM25等同于TF-IDF,实际上BM25引入了饱和函数和文档长度归一化,避免高频词分数过高,同时长文档不会因词数多而天然得高分。
BM25与向量空间模型(如余弦相似度)不同,前者依赖词汇匹配,后者基于向量空间。两者可互补使用,例如先BM25粗排再用向量精排。BM25不处理语义相似度,仅依靠精确匹配。
