機率檢索模型:BIM+BM25+BM25F

1. 機率排序原理

以往的向量空間模型是將query和文檔使用向量表示而後計算其內容類似性來進行相關性估計的,而機率檢索模型是一種直接對用戶需求進行相關性的建模方法,一個query進來,將全部的文檔分爲兩類 -- 相關文檔不相關文檔,這樣就轉爲了一個相關性的分類問題。atom

對於某個文檔D來講,P(R|D)表示該文檔數據相關文檔的機率,則P(NR|D)表示該文檔屬於不相關文檔的機率,若是query屬於相關文檔的機率大於不相關文檔P(R|D)>P(NR|D),則認爲這個文檔是與用戶查詢相關相關的。spa

如今使用貝葉斯公式將其轉一下:3d

在搜索排序過程當中不須要真正的分類,只須要保證相關性由高到底排序便可,因此只須要P(D|R) / P(D|NR)降序便可,
這樣就最終轉爲計算P(D|R),P(D|NR)的值便可。
code

 

2. 二元獨立模型(BIM)

爲了可以使得上述兩個計算因子可行,二元獨立模型作出了兩個假設:xml

1. 二元假設blog

相似於布爾模型中的文檔表示方法,一篇文檔在由特徵(或者單詞)進行表示的時候,以特徵(或者單詞)出現和不出現兩種狀況來表示,不考慮詞頻等其餘因素。排序

2. 詞彙獨立性假設文檔

指文檔裏出現的單詞之間沒有任何關聯,任意一個單詞在文檔的分佈機率不依賴於其餘單詞是否出現。由於詞彙之間沒有關聯,因此能夠將文檔機率轉換爲單詞機率的乘積。class

上述提到的文檔D表示爲{1,0,1,0,1},用pi來表示第i個單詞在相關文檔出現的機率,則在已知相關文檔集合的狀況下,觀察到D的機率爲:基礎

1,3,5表示這個單詞在D中出現,因此其貢獻機率爲pi,而第2,4這兩個單詞並無在D中出現,因此其貢獻的機率爲1pi。

同理在不相關文檔中觀察到的機率爲:

最終獲得的相關性機率估算爲:

如今將其推廣以後能夠有通用的式子:

di=1表示在文檔中出現的單詞,di=0表示沒在文檔中出現的單詞。

在這裏進一步對上述公式進行等價變換以後有:

其中上面式子第三步的第二部分表示各個單詞在全部文檔中出現的機率,因此這個式子的值和具體文檔並無什麼關係,在排序中不起做用,才能夠簡化到第4步。

爲了方便計算,將上述連乘公式取log:

有了上述最終可計算的式子以後,咱們就只須要統計文檔D中的各個單詞在相關文檔/不相關文檔中出現的機率便可:

上面的表格表示各個單詞在文檔集合中的相關文檔/不相關文檔出現數量,同時爲了不log(0)出現,加上平滑以後能夠計算獲得:

則最終能夠獲得以下公式:

其表明的含義是:對於同時出如今用戶查詢Q和文檔D中的單詞,累加每一個單詞的估值,其和就是文檔D和查詢的相關性度量。

在不肯定哪些文檔是相關的,哪些文檔是不相關的的時候,能夠給公式的估算因子直接賦予固定值,則該公式將會退化爲IDF因子。

 

3. BM25模型

BIM模型基於二元獨立假設推導而出,即對於單詞特徵,只考慮是否在文檔中出現過,而不考慮單詞的權值。BM25模型在BIM模型的基礎上,考慮了單詞在查詢中的權值及單詞在文檔中的權值,擬合出綜合上述考慮因素的公式,並經過實驗引入一些經驗參數。

BM25模型的具體計算公式以下所示:

上面的式子中:

  1. 第1個組成部分即爲上一小節的二元獨立模型BIM計算得分,若是賦予一些默認值的話,等價於IDF因子的做用。
  2. 第2個組成部分是查詢詞在文檔D中的權值,其中fi表明了單詞在文檔D中的詞頻,K因子表明了對文檔長度的考慮,其計算公式爲
    1. k1爲經驗參數,做用是對查詢詞在文檔中的詞頻進行調節。若是設爲0,則第2部分總體變爲1,即不考慮詞頻的因素,退化成了BIM模型;若是設爲較大值,則第2部分計算因子基本與詞頻fi保持線性增加,即放大了詞頻的權值。根據經驗,通常講k1設置爲1.2。
    2. b爲調節因子,將b設爲0時,文檔長度因素將不起做用,經驗代表通常b=0.75。
    3. dl表明當前文檔D的長度。
    4. avdl表明文檔集合中全部文檔的平均長度。
  3. 第3個組成部分是查詢詞自身的權值,qfi表示查詢詞在用戶查詢中的詞頻,若是查詢較短小的話,這個值通常是1,k2也爲調節因子,是針對查詢中的詞頻進行調節,由於查詢每每很短,因此不一樣查詢詞的詞頻都很小,詞頻之間差別不大,爲了放大這部分的差別,k2通常取值爲0~1000。

綜合來看,BM25模型計算公式其實融合了4個考慮因素:IDF因子,文檔長度因子,文檔詞頻,和查詢詞頻。並對3個自由調節因子(k1,k2,b)進行權值的調整。

例子:

假設當前以「喬布斯 IPAD2」這個查詢詞爲例,來計算在某文檔DBM25相關性的值,因爲不知道文檔集中相關與不相關的分類,因此這裏直接將相關文檔個數r置爲0,則將獲得的BIM因子爲:

其餘數值假定以下:

  1. 文檔的集合總數:N=100000
  2. 包含喬布斯的文檔個數爲:n=1000
  3. 包含IPAD2的文檔個數爲:nIPAD2=100
  4. 文檔D中出現喬布斯的詞頻爲:f=8
  5. 文檔DD中出現IPAD2的詞頻爲:fIPAD2=8
  6. 查詢詞頻均爲:qfi=1
  7. 調節因子k1=1.2k
  8. 調節因子k2=200
  9. 調節因子b=0.75
  10. 設文檔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在各個區域不一樣的得分,計算公式以下:

 

上面的公式表示:

  1. 文檔D來個不一樣的u個域
  2. 各個域對應的權重爲Wk
  3. fui爲第i個單詞在各個域中的 fui / Bu 的加權和
  4. fui表示詞頻
  5. Bu表示各個域的長度狀況
  6. ulu爲實際域的實際長度,uvulu表示域的平均長度
  7. bu則爲各個域長度的調節因子
相關文章
相關標籤/搜索