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因子代表了對文檔長度的考慮,其計算公式為
- 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 - 包含
IPAD2
的文檔個數為:nIPAD2=100 - 文檔D中出現
喬布斯
的詞頻為:f喬布斯=8 - 文檔DD中出現
IPAD2
的詞頻為:fIPAD2=8 - 查詢詞頻均為: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則為各個域長度的調節因子