BM25(Best Match 25)是一种用于信息检索的概率相关性评分算法,结合词频(TF)、逆文档频率(IDF)和文档长度进行改进,广泛应用于搜索引擎排序。以下是其核心要点及示例说明:
BM25对查询中的每个词计算评分,最终总分是各词得分之和。公式如下:
[
\text{BM25}(D, Q) = \sum_{i=1}^{n} \text{IDF}(q_i) \cdot \frac{f(q_i, D) \cdot (k_1 + 1)}{f(q_i, D) + k_1 \cdot \left(1 - b + b \cdot \frac{|D|}{\text{avg_dl}}\right)}
]
IDF:逆文档频率计算,公式为:
[
\text{IDF}(q_i) = \log \left( \frac{N - n(q_i) + 0.5}{n(q_i) + 0.5} + 1 \right)
]
假设有一个查询 Q = “机器学习 应用”,语料库包含 3个文档,参数设为 (k_1 = 1.5),(b = 0.75)。
文档 | 内容(词频) | 长度 | 是否包含词 |
---|---|---|---|
D1 | 机器学习 是 未来 的 应用 | 5 | 机器学习(1), 应用(1) |
D2 | 机器学习 算法 的 应用 广泛 | 6 | 机器学习(1), 应用(1) |
D3 | 应用 于 自然语言处理 | 4 | 应用(1) |
词“机器学习”(TF=1):
[
\text{TF部分} = \frac{1 \cdot (1.5+1)}{1 + 1.5 \cdot \left(1 - 0.75 + 0.75 \cdot \frac{5}{5}\right)} = \frac{2.5}{1 + 1.5 \cdot 1} = 1.0
]
得分:(0.47 \times 1.0 = 0.47)。
词“应用”(TF=1):
[
\text{TF部分} = \frac{1 \cdot 2.5}{1 + 1.5 \cdot 1} = 1.0
]
得分:(0.13 \times 1.0 = 0.13)。
总分:(0.47 + 0.13 = 0.60)。
BM25通过结合词频、文档长度和IDF,平衡了关键词的重要性和文档长度的影响,是传统TF-IDF的优化版本。调整 (k_1) 和 (b) 可适应不同数据特性。