1. BM25 (Best Matching 25)
BM25 是一种基于概率模型的文档排序算法,属于经典的 信息检索(Information Retrieval, IR)领域的技术。它是 Okapi BM25 算法的改进版本,是搜索引擎中常用的排序算法之一,广泛应用于基于关键词的文档检索中。
核心思想:
BM25 基于每个词的出现频率(TF)和逆文档频率(IDF)来为文档中的每个词打分。它的目标是计算查询与文档之间的相似度,帮助排序最相关的文档。具体来说,BM25 的得分函数考虑了以下几个因素:
- 词频(TF):词在文档中出现的次数。通常词频越高,表明该文档与查询更相关。
- 逆文档频率(IDF):某个词在所有文档中出现的频率的倒数。出现频率低的词能更好地区分文档的相关性。
- 文档长度归一化:为了避免长文档由于包含更多的词而获得过高的分数,BM25 会进行文档长度归一化。
公式:
BM25 的得分公式为:
[
\text{score}(D, Q) = \sum_{i=1}^{|Q|} \text{IDF}(q_i) \cdot \frac{f(q_i, D) \cdot (k_1 + 1)}{f(q_i, D) + k_1 \cdot (1 - b + b \cdot \frac