BM25是一种广泛使用的排名函数,用于信息检索系统,特别是在全文搜索中。BM25是Okapi BM25的简称,其中“BM”代表“Best Matching”。它是基于概率检索框架的一个变体,旨在通过对给定查询中的每个词的重要性进行量化来对文档集进行排序。
BM25公式的核心是计算查询中的每个词对文档相关性的贡献,然后将这些贡献加总以获得总分数。公式如下:

其中:
- Score(D,Q) 是文档 D 对于查询 Q 的总分数。
- qi 是查询中的第 i 个词。
- n 是查询中词的数量。
- IDF(qi) 是词 qi 的逆文档频率(Inverse Document Frequency),用于衡量词的普遍重要性。
- f(qi,D) 是词 qi 在文档 D 中的频率。
- k1 和 b 是自由参数,通常通过实验调优确定。
- ∣D∣ 是文档 D 的长度(词数)。
- avgdl 是集合中所有文档的平均长度。
在这个公式中,IDF值用于降低常见词的影响并提高罕见词的权重。文档中词的频率f(qi,D))与文档长度进行了正规化,以避免偏向于较长的文档。参数 k1 和 b 用于控制文档频率和文档长度对评分的影响。
总体而言,BM25是一种有效的评分机制,能够平衡查询词的重要性、它们在文档中的出现频率以及文档的长度,从而为信息检索任务提供合理的相关性评估。
BM25 Formula