微信登录

排序 - BM25 - 基于词频和文档长度相关性评分

BM25(Best Match 25)是一种用于信息检索的概率相关性评分算法,结合词频(TF)、逆文档频率(IDF)和文档长度进行改进,广泛应用于搜索引擎排序。以下是其核心要点及示例说明:


BM25 核心公式

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)}
]

  • ( f(q_i, D) ):词 (q_i) 在文档 (D) 中的词频(TF)。
  • ( |D| ):当前文档长度(如词数)。
  • ( \text{avg_dl} ):语料库中文档的平均长度。
  • ( k_1, b ):可调参数(通常 (k_1 \in [1.2, 2.0]),(b = 0.75))。
  • IDF:逆文档频率计算,公式为:

    [
    \text{IDF}(q_i) = \log \left( \frac{N - n(q_i) + 0.5}{n(q_i) + 0.5} + 1 \right)
    ]

    • ( N ):总文档数。
    • ( n(q_i) ):包含词 (q_i) 的文档数。

关键特点

  1. 词频(TF)调节:通过参数 (k_1) 控制词频的饱和速度,避免高频词过度影响得分。
  2. 文档长度归一化:参数 (b) 调节文档长度的影响,惩罚长文档的词频权重。
  3. IDF改进:对罕见词给予更高权重,但对常见词更鲁棒(+0.5 平滑处理)。

示例计算

假设有一个查询 Q = “机器学习 应用”,语料库包含 3个文档,参数设为 (k_1 = 1.5),(b = 0.75)。

文档信息

文档 内容(词频) 长度 是否包含词
D1 机器学习 是 未来 的 应用 5 机器学习(1), 应用(1)
D2 机器学习 算法 的 应用 广泛 6 机器学习(1), 应用(1)
D3 应用 于 自然语言处理 4 应用(1)
  • 总文档数 (N = 3),平均长度 ( \text{avg_dl} = (5+6+4)/3 = 5 )。
  • 包含词的文档数
    • ( n(\text{机器学习}) = 2 )(D1、D2)。
    • ( n(\text{应用}) = 3 )(全部文档)。

步骤 1:计算 IDF

  • 机器学习
    [
    \text{IDF} = \log \left( \frac{3 - 2 + 0.5}{2 + 0.5} + 1 \right) = \log \left( \frac{1.5}{2.5} + 1 \right) \approx \log(1.6) \approx 0.47
    ]
  • 应用
    [
    \text{IDF} = \log \left( \frac{3 - 3 + 0.5}{3 + 0.5} + 1 \right) = \log \left( \frac{0.5}{3.5} + 1 \right) \approx \log(1.14) \approx 0.13
    ]

步骤 2:计算文档 D1 的 BM25 得分

  • 词“机器学习”(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)。

对比文档 D2 和 D3

  • D2(长度=6):词频相同,但长度更长,得分可能略低于D1。
  • D3(不含“机器学习”):仅“应用”得分,总分更低。

应用场景

  • 搜索引擎中排序最相关文档。
  • 问答系统、推荐系统中匹配用户查询与候选内容。

BM25通过结合词频、文档长度和IDF,平衡了关键词的重要性和文档长度的影响,是传统TF-IDF的优化版本。调整 (k_1) 和 (b) 可适应不同数据特性。

排序 - BM25 - 基于词频和文档长度相关性评分 -书闪专业知识库