BM25算法淺析

 BM25算法淺析

 
 

BM25算法,通常用來作搜索相關性平分。一句話概況其主要思想:對Query進行語素解析,生成語素qi;然後,對於每個搜索結果D,計算每個語素qi與D的相關性得分,最後,將qi相對於D的相關性得分進行加權求和,從而得到Query與D的相關性得分。

BM25算法的一般性公式如下:

其中,Q表示Query,qi表示Q解析之後的一個語素(對中文而言,我們可以把對Query的分詞作爲語素分析,每個詞看成語素qi。);d表示一個搜索結果文檔;Wi表示語素qi的權重;R(qi,d)表示語素qi與文檔d的相關性得分。

下面我們來看如何定義Wi。判斷一個詞與一個文檔的相關性的權重,方法有多種,較常用的是IDF。這裏以IDF爲例,公式如下:

其中,N爲索引中的全部文檔數,n(qi)爲包含了qi的文檔數。

根據IDF的定義可以看出,對於給定的文檔集合,包含了qi的文檔數越多,qi的權重則越低。也就是說,當很多文檔都包含了qi時,qi的區分度就不高,因此使用qi來判斷相關性時的重要度就較低。

我們再來看語素qi與文檔d的相關性得分R(qi,d)。首先來看BM25中相關性得分的一般形式:

其中,k1,k2,b爲調節因子,通常根據經驗設置,一般k1=2,b=0.75;fi爲qi在d中的出現頻率,qfi爲qi在Query中的出現頻率。dl爲文檔d的長度,avgdl爲所有文檔的平均長度。由於絕大部分情況下,qi在Query中只會出現一次,即qfi=1,因此公式可以簡化爲:

從K的定義中可以看到,參數b的作用是調整文檔長度對相關性影響的大小。b越大,文檔長度的對相關性得分的影響越大,反之越小。而文檔的相對長度越長,K值將越大,則相關性得分會越小。這可以理解爲,當文檔較長時,包含qi的機會越大,因此,同等fi的情況下,長文檔與qi的相關性應該比短文檔與qi的相關性弱。

綜上,BM25算法的相關性得分公式可總結爲:

從BM25的公式可以看到,通過使用不同的語素分析方法、語素權重判定方法,以及語素與文檔的相關性判定方法,我們可以衍生出不同的搜索相關性得分計算方法,這就爲我們設計算法提供了較大的靈活性。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章