BM25

BM25是一种经典的搜索基础相关性算法,用以计算query和doc的相关性

对于用户query $q$和doc $d$,BM25操作如下:

  • 对$q$分词,得到分词token:$t_1, t_2, …, t_k$
  • 令$R(t_i,d)$是$t_i, d$之间的相关性,$w_i$是token$t_i$的权重

则基于BM25的相关性分数为:

首先看一下$w_i$,其计算方式可以是多种多样,一般是基于idf的思想

其中$N(t_i)$表示包含$t_i$的文档数量,$N$表示所有文档的数量。

再看$R(t_i,d)$,计算方法如下:

其中$f_d(t_i)$表示$t_i$在$d$中出现的频率,$f_q(t_i)$表示$t_i$在$q$中的频率,$l_d$表示文档$d$的长度,$l_{avg}$表示文档集合的平均长度;$k_1,k_2,d$则是可以调节的参数。

参数$b$用来控制文档长度敏感度,一般有$f_q(t_i)=1$,如果取$k_2=0$则有$R(t_i,d)=(k_1+1)\frac{f_d(t_i)}{f_d(t_i)+K}$。通常会设置


分享到