概述
几十年来,它依然是一个极为强大且普遍存在的搜索基线。
深入探讨
BM25(最佳匹配 25)是来自 20 世纪 90 年代概率性 Okapi 框架的词袋排序函数。对于每个查询术语,它结合了三个信号:术语频率(单词在文档中出现的频率,由参数 k1 控制收益递减)、逆文档频率(集合中越稀有的单词计数越多)和文档长度标准化(参数 b,因此长文档不会受到不公平的青睐)。将这些每学期的分数相加,即可得出文档的排名。它不需要训练,并且通过倒排索引运行得非常快,这就是 Elasticsearch 和 Lucene 等搜索引擎默认使用它的原因。尽管神经检索兴起,BM25 仍然在许多基准测试中获胜或平局,特别是对于罕见术语、精确标识符和域外查询。
现实世界的实施
Elasticsearch、OpenSearch 和 Apache Lucene/Solr 中的默认相关性排名
第一阶段候选检索在两阶段搜索中提供较慢的神经重新排序器
代码和日志搜索,其中确切的标识符和错误代码必须精确匹配
挖掘困难的负面例子来训练 DPR 等密集检索器
BM25 和词汇检索的未来
BM25不太可能消失;相反,它越来越多地与混合检索中的神经方法配对,其中词汇和密集分数被融合(通常通过倒数排名融合)。像 SPLADE 这样的学习稀疏模型将 BM25 式的稀疏性与神经术语权重相结合,并且 BM25 经常充当神经重新排序器之前的第一阶段检索器。它的速度、可解释性和零培训成本保证了它在生产搜索中的持久作用。
付诸实践
为什么这很重要
- 速度与规模. 语言工作流程可以在不牺牲一致性的情况下更快地移动。
- 交通与覆盖范围. 它扩展了跨语言和沟通方式的访问。
- 更清晰的判决. 团队可以花更多时间进行判断,而自动化则可以处理重复。
留意
- 幻觉的事实可以悄悄地进入报告、支持流程或研究成果。
- 及时的敏感性可能会在类似的请求中产生不一致的结果。
- 如果访问控制薄弱,敏感文本数据可能会暴露。
后续步骤
- 在推出之前定义输出格式、语气和质量标准。
- 当准确性很重要时,请使用可信来源进行地面响应。
- 为高风险输出保留人工审查检查点。
- 跟踪故障模式并定期重新训练提示或工作流程。
不断探索
常见问题
什么是BM25和词汇检索?
BM25 是经典的基于关键字的排名函数,它根据查询术语出现的频率对文档进行评分,并根据术语稀有度和文档长度进行调整。已有数十年历史,它仍然是一个非常强大且无处不在的搜索基线。
BM25 主要使用什么来对文档进行排名?
BM25 将术语频率、逆文档频率(术语稀有度)和文档长度归一化组合成相关性得分。
逆文档频率 (IDF) 在 BM25 中扮演什么角色?
IDF 奖励在集合中罕见的术语,并降低常见单词的权重,因为罕见的匹配信息更丰富。
为什么 BM25 应用文档长度标准化(b 参数)?
如果没有标准化,较长的文档将积累更多的术语匹配; b 参数根据长度进行调整,因此比较是公平的。
什么数据结构使 BM25 能够大规模快速运行?
倒排索引让 BM25 仅对包含查询词的文档进行评分,从而使检索非常高效。
在标准BM25公式中,将b设置为零有什么影响?
b 控制长度归一化的强度;零会删除该调整,而其他评分组件仍然保留。