文本相似度-BM25算法


BM25 is a bag-of-words retrieval function that ranks a set of documents based on the query terms appearing in each document, regardless of the inter-relationship between the query terms within a document (e.g., their relative proximity). It is not a single function, but actually a whole family of scoring functions, with slightly different components and parameters. One of the most prominent instantiations of the function is as follows.

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

 

原文地址:http://ipie.blogbus.com/logs/104136815.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM