1. 機率排序原理
以往的
向量空間模型
是将
query
和文檔使用向量表示然後計算其内容相似性來進行相關性估計的,而
機率檢索模型
是一種直接對使用者需求進行相關性的模組化方法,一個
query
進來,将所有的文檔分為兩類 --
相關文檔
、
不相關文檔,
這樣就轉為了一個相關性的分類問題。
對于某個文檔D來說,P(R|D)表示該文檔資料相關文檔的機率,則P(NR|D)表示該文檔屬于不相關文檔的機率,如果
query
屬于相關文檔的機率大于不相關文檔P(R|D)>P(NR|D),則認為這個文檔是與使用者查詢相關相關的。
現在使用貝葉斯公式将其轉一下:

在搜尋排序過程中不需要真正的分類,隻需要保證相關性由高到底排序即可,是以隻需要P(D|R) / P(D|NR)降序即可,
這樣就最終轉為計算P(D|R),P(D|NR)的值即可。
2. 二進制獨立模型(BIM)
為了能夠使得上述兩個計算因子可行,二進制獨立模型做出了兩個假設:
1. 二進制假設
類似于布爾模型中的文檔表示方法,一篇文檔在由特征(或者單詞)進行表示的時候,以特征(或者單詞)出現和不出現兩種情況來表示,不考慮詞頻等其他因素。
2. 詞彙獨立性假設
指文檔裡出現的單詞之間沒有任何關聯,任意一個單詞在文檔的分布機率不依賴于其他單詞是否出現。因為詞彙之間沒有關聯,是以可以将文檔機率轉換為單詞機率的乘積。
上述提到的文檔D表示為
{1,0,1,0,1}
,用pi來表示第i個單詞在相關文檔出現的機率,則在已知
相關文檔
集合的情況下,觀察到D的機率為:
第
1,3,5
表示這個單詞在D中出現,是以其貢獻機率為pi,而第
2,4
這兩個單詞并沒有在D中出現,是以其貢獻的機率為1−pi。
同理在
不相關文檔
中觀察到的機率為:
最終得到的相關性機率估算為:
現在将其推廣之後可以有通用的式子:
di=1表示在文檔中出現的單詞,di=0表示沒在文檔中出現的單詞。
在這裡進一步對上述公式進行等價變換之後有:
其中上面式子第三步的第二部分
表示各個單詞在所有文檔中出現的機率,是以這個式子的值和具體文檔并沒有什麼關系,在排序中不起作用,才可以簡化到第4步。
為了友善計算,将上述連乘公式取log:
有了上述最終可計算的式子之後,我們就隻需要統計文檔D中的各個單詞在
相關文檔
/
不相關文檔
中出現的機率即可:
上面的表格表示各個單詞在文檔集合中的
相關文檔
不相關文檔
出現數量,同時為了避免log(0)出現,加上平滑之後可以計算得到:
則最終可以得到如下公式:
其代表的含義是:對于同時出現在使用者查詢Q和文檔D中的單詞,累加每個單詞的估值,其和就是文檔D和查詢的相關性度量。
在不确定哪些文檔是相關的,哪些文檔是不相關的的時候,可以給公式的估算因子直接賦予固定值,則該公式将會退化為IDF因子。
3. BM25模型
BIM模型基于二進制獨立假設推導而出,即對于單詞特征,隻考慮是否在文檔中出現過,而不考慮單詞的權值。BM25模型在BIM模型的基礎上,考慮了單詞在查詢中的權值及單詞在文檔中的權值,拟合出綜合上述考慮因素的公式,并通過實驗引入一些經驗參數。
BM25模型的具體計算公式如下所示:
上面的式子中:
- 第1個組成部分即為上一小節的二進制獨立模型BIM計算得分,如果賦予一些預設值的話,等價于IDF因子的作用。
- 第2個組成部分是查詢詞在文檔D中的權值,其中fi代表了單詞在文檔D中的詞頻,K因子代表了對文檔長度的考慮,其計算公式為
機率檢索模型:BIM+BM25+BM25F - k1為經驗參數,作用是對查詢詞在文檔中的詞頻進行調節。如果設為0,則第2部分整體變為1,即不考慮詞頻的因素,退化成了BIM模型;如果設為較大值,則第2部分計算因子基本與詞頻fi保持線性增長,即放大了詞頻的權值。根據經驗,一般講k1設定為1.2。
- b為調節因子,将b設為0時,文檔長度因素将不起作用,經驗表明一般b=0.75。
- dl代表目前文檔D的長度。
- avdl代表文檔集合中所有文檔的平均長度。
- 第3個組成部分是查詢詞自身的權值,qfi表示查詢詞在使用者查詢中的詞頻,如果查詢較短小的話,這個值一般是1,k2也為調節因子,是針對查詢中的詞頻進行調節,因為查詢往往很短,是以不同查詢詞的詞頻都很小,詞頻之間差異不大,為了放大這部分的差異,k2一般取值為
0~1000。
綜合來看,BM25模型計算公式其實融合了4個考慮因素:IDF因子,文檔長度因子,文檔詞頻,和查詢詞頻。并對3個自由調節因子(k1,k2,b)進行權值的調整。
例子:
假設目前以“
喬布斯 IPAD2”
這個查詢詞為例,來計算在某文檔D中
BM25相關性
的值,由于不知道文檔集中相關與不相關的分類,是以這裡直接将相關文檔個數r置為0,則将得到的
BIM
因子為:
其他數值假定如下:
- 文檔的集合總數:N=100000
- 包含
的文檔個數為:n喬布斯=1000喬布斯
-
的文檔個數為:nIPAD2=100IPAD2
- 文檔D中出現
的詞頻為:f喬布斯=8喬布斯
- 文檔DD中出現
的詞頻為:fIPAD2=8IPAD2
- 查詢詞頻均為:qfi=1
- 調節因子k1=1.2k
- 調節因子k2=200
- 調節因子b=0.75
- 設文檔D的長度為平均長度的1.5倍(dl/avdl=1.5),即K=1.2×(0.25+0.75×1.5)=1.65
則最終可以計算到的
BM25
結果為:
每個文檔按上述公式計算得到相關性排序即可。
4. BM25F模型
在
BM25
模型中,文檔被當做一個整體進行進行詞頻的統計,而忽視了不同區域的重要性,
BM25F
模型正是抓住了這點進行了相應的改進。
BM25F
模型在計算相關性時候,會對文檔分割成不同的域來進行權重統計,非常适用于網頁搜尋,因為在一個網頁有
标題資訊
meta資訊
頁面内容資訊
等,而
标題資訊
無疑是最重要的,其次是
meta資訊
,最後才是
網頁内容
,
BM25F
在計算相關性的,會将網頁分為不用的區域,在各個區域分别統計自己的詞頻。
是以
BM25F
模型的計算公式為:
BM25F
的第1部分還是
BIM
的值。
其中與
BM25
主要的差别展現在
因子上,它是單詞i在各個區域不同的得分,計算公式如下:
上面的公式表示:
- 文檔D來個不同的u個域
- 各個域對應的權重為Wk
- fui為第i個單詞在各個域中的 fui / Bu 的權重和
- fui表示詞頻
- Bu表示各個域的長度情況
- ulu為實際域的實際長度,uvulu表示域的平均長度
- bu則為各個域長度的調節因子