BM25 和词汇检索
BM25 是经典的基于关键字的排名函数,它根据查询术语出现的频率对文档进行评分,并根据术语稀有度和文档长度进行调整。
概述
几十年来,它依然是一个极为强大且普遍存在的搜索基线。
深入探讨
BM25(最佳匹配 25)是来自 20 世纪 90 年代概率性 Okapi 框架的词袋排序函数。对于每个查询术语,它结合了三个信号:术语频率(单词在文档中出现的频率,由参数 k1 控制收益递减)、逆文档频率(集合中越稀有的单词计数越多)和文档长度标准化(参数 b,因此长文档不会受到不公平的青睐)。将这些每学期的分数相加,即可得出文档的排名。它不需要训练,并且通过倒排索引运行得非常快,这就是 Elasticsearch 和 Lucene 等搜索引擎默认使用它的原因。尽管神经检索兴起,BM25 仍然在许多基准测试中获胜或平局,特别是对于罕见术语、精确标识符和域外查询。
技术洞察
BM25 的术语频率分量饱和:k1 参数限制了重复单词对分数的提升程度,因此出现 50 次的术语并不比出现一次的相关性高 50 倍。 b 参数混合了原始频率和长度归一化频率。 IDF 降低了“the”等常见单词的权重,并奖励独特的单词。由于它使用将每个单词映射到其文档列表的倒排索引进行操作,因此评分仅涉及包含查询术语的文档,从而使其非常高效。
战略影响
速度与规模
语言工作流程可以在不牺牲一致性的情况下更快地移动。
交通与覆盖范围
它扩展了跨语言和沟通方式的访问。
更清晰的判决
团队可以花更多时间进行判断,而自动化则可以处理重复。
BM25 和词汇检索的未来
BM25不太可能消失;相反,它越来越多地与混合检索中的神经方法配对,其中词汇和密集分数被融合(通常通过倒数排名融合)。像 SPLADE 这样的学习稀疏模型将 BM25 式的稀疏性与神经术语权重相结合,并且 BM25 经常充当神经重新排序器之前的第一阶段检索器。它的速度、可解释性和零培训成本保证了它在生产搜索中的持久作用。
现实世界的实施
Elasticsearch、OpenSearch 和 Apache Lucene/Solr 中的默认相关性排名
第一阶段候选检索在两阶段搜索中提供较慢的神经重新排序器
代码和日志搜索,其中确切的标识符和错误代码必须精确匹配
挖掘困难的负面例子来训练 DPR 等密集检索器
风险与防护栏
幻觉的事实可以悄悄地进入报告、支持流程或研究成果。
及时的敏感性可能会在类似的请求中产生不一致的结果。
如果访问控制薄弱,敏感文本数据可能会暴露。
实施路线图
在推出之前定义输出格式、语气和质量标准。
当准确性很重要时,请使用可信来源进行地面响应。
为高风险输出保留人工审查检查点。
跟踪故障模式并定期重新训练提示或工作流程。
不断探索
Free newsletter
Get the daily AI briefing
Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.
One email each weekday. Unsubscribe in one click. We never sell or share your address.
Test yourself
Take the BM25 and Lexical Retrieval quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
常见问题
什么是BM25和词汇检索?
BM25 是经典的基于关键字的排名函数,它根据查询术语出现的频率对文档进行评分,并根据术语稀有度和文档长度进行调整。已有数十年历史,它仍然是一个非常强大且无处不在的搜索基线。
BM25 主要使用什么来对文档进行排名?
BM25 将术语频率、逆文档频率(术语稀有度)和文档长度归一化组合成相关性得分。
逆文档频率 (IDF) 在 BM25 中扮演什么角色?
IDF 奖励在集合中罕见的术语,并降低常见单词的权重,因为罕见的匹配信息更丰富。
为什么 BM25 应用文档长度标准化(b 参数)?
如果没有标准化,较长的文档将积累更多的术语匹配; b 参数根据长度进行调整,因此比较是公平的。
什么数据结构使 BM25 能够大规模快速运行?
倒排索引让 BM25 仅对包含查询词的文档进行评分,从而使检索非常高效。