一、引子 BIM(二元如果模型)
近期在優化文本相關性。使用到BM25和BM25F模型。可是發現網絡上關於BM25和BM25F模型的介紹比較少,在此總結一下,方便記憶,還有一方面搜了一下相關的資料,發現比較少。寫下來歡迎大家查閱。
介紹BM25模型首先要介紹二元獨立模型BIM。
如果一:二元如果
所謂二元如果,類似於布爾模型的表示方法,一篇文章在由特征表示的時候。以特征“出現”和“不出現”兩種情況來表示,也能夠理解為相關不相關。
如果二:詞匯獨立性如果
所謂獨立性如果,是指文檔里出現的單詞之間沒有不論什么關聯。任一個單詞在文章中的分布率不依賴於還有一個單詞是否出現,這個如果明顯與事實不符,可是為了簡化計算。非常多地方須要做出獨立性如果。這樣的如果是普遍的。
在以上兩個如果的前提下,二元獨立模型即能夠對兩個因子P(D|R)和P(D|NR)進行估算(條件概率),舉個簡單的樣例。文檔D中五個單詞的出現情況例如以下:{1,0,1,0,1} 0表示不出現,1表示出現。用Pi表示第i個單詞在相關文檔中出現的概率,在已知相關文檔集合的情況下,觀察到文檔D的概率為:
對於因子P(D|NR)。我們如果用Si表示第i個單詞在在不相關文檔集合中出現的概率,於是在已知不相關文檔集合的情況下,觀察到文檔D的概率為:
於是我們能夠得到以下的估算
能夠將各個因子規划為兩個部分,一部分是在文檔D中出現的各個單詞的概率乘積,還有一部分是沒在文檔D中出現的各個單詞的概率乘積,於是公式能夠理解為以下的形式
對公式進行一下等價的變換。可得:
第一部分代表在文章中出現過的單詞所計算得到的單詞概率乘積。第二部分表示全部特征詞計算得到單詞概率乘積。它與詳細的文檔無關,全部文檔該項的得分一致,所以在排序中不起作用,能夠抹除掉。得到終於的估算公式:
為了方便計算,對上述公式兩邊取log,得到:
那么怎樣估算概率Si和Pi呢,假設給定用戶查詢。我們能確定哪些文檔集合構成了相關文檔集合,哪些文檔構成了不相關文檔集合,那么就能夠用例如以下的數據對概率進行估算:
依據上表能夠計算出Pi和Si的概率估值。為了避免log(0),對估值公式進行平滑操作,分子+0.5。分母+1.0
代入估值公式得到:
這個公式代表的含義就是。對於同一時候出如今查詢Q和文檔D中的單詞,累加每一個單詞的估值結果就是文檔D和查詢Q的相關性度量,在預先不知道哪些文檔相關哪些文檔不相關的情況下。能夠使用固定值取代,這樣的情況下該公式等價於向量空間模型(VSM)中的IDF因子,實際證明該模型的實際使用結果不好,可是它是BM25模型的基礎。
二、BM25模型
BIM(二元如果模型)對於單詞特征,僅僅考慮單詞是否在doc中出現過。並沒有考慮單詞本身的相關特征,BM25在BIM的基礎上引入單詞在查詢中的權值,單詞在doc中的權值,以及一些經驗參數。所以BM25在實際應用中效果要遠遠好於BIM模型。
BM25由3部分組成,第一部分是BIM模型得分,上面也提到了,在一定的情況下該部分等價於IDF,第二部分是查詢詞在文檔D中的權值。f是查詢詞在文檔中的頻率。K1和K是經驗參數,第三部分是查詢詞自身的特征,qf是查詢詞在用戶查詢中的頻率,但一般用戶查詢都比較短,qf通常是1,K2是經驗參數。從上面的公式能夠看出BM25是查詢中單詞的分值疊加得到,每一個單詞是一個個體,而整個文檔被作為一個總體。
在第二部分中K因子代表了文檔長度的考慮。dl是文檔的長度。avdl是文檔的平均長度。k1和b是調整參數,b為0時即不考慮文檔長度的影響,經驗表明b=0.75左右效果比較好。
可是也要依據對應的場景進行調整。
b越大對文檔長度的懲處越大,k1因子用於調整詞頻,極限情況下k1=0,則第二部分退化成1,及詞頻特征失效。能夠證明k1越大詞頻的作用越大。
在我們不知道哪些文檔相關。哪些文檔不相關的情況下。將相關文檔數R及包括查詢詞相關文檔數r設為0。那么第一部分的BIM公式退化成:
就是IDF因子的定義。N是總文檔數,n是查詢詞的tf信息,0.5是平滑因子。
以上就是BM25的定義
三、BM25F
BM25F是典型BM25的改進算法,BM25在計算相關性時把文檔當做總體來考慮,但隨着搜索技術的發展。文檔慢慢的被結構化數據所取代,沒個文檔都會被切分成多個獨立的域,尤其是垂直化的搜索。比如網頁有可能被切分成標題。內容,主題詞等域,這些域對文章主題的貢獻不能同等對待,所以權重就要有所偏重。BM25沒有考慮這點,所以BM25F在此基礎上做了一些改進,就是不再單單的將單詞作為個體考慮,並且將文檔也依照field划分為個體二考慮。所以BM25F是每一個單詞在各個field中分值的加權求和。
boost是對應域的權值,Lc是field的長度。AVLc是field的平均長度,Bc是調節因子。最后BM25F的終於值就是各個field分值的加權求和。
引用:張俊林《這就是搜索引擎》
Integrating the Probabilistic Model BM25/BM25F into Lucene.