以往的向量空間模型
是將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
爲了可以使得上述兩個計算因子可行,二元獨立模型作出了兩個假設:xml
1. 二元假設blog
相似於布爾模型中的文檔表示方法,一篇文檔在由特徵(或者單詞)進行表示的時候,以特徵(或者單詞)出現和不出現兩種狀況來表示,不考慮詞頻等其餘因素。排序
2. 詞彙獨立性假設文檔
指文檔裏出現的單詞之間沒有任何關聯,任意一個單詞在文檔的分佈機率不依賴於其餘單詞是否出現。由於詞彙之間沒有關聯,因此能夠將文檔機率轉換爲單詞機率的乘積。class
上述提到的文檔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因子。
BIM模型基於二元獨立假設推導而出,即對於單詞特徵,只考慮是否在文檔中出現過,而不考慮單詞的權值。BM25模型在BIM模型的基礎上,考慮了單詞在查詢中的權值及單詞在文檔中的權值,擬合出綜合上述考慮因素的公式,並經過實驗引入一些經驗參數。
BM25模型的具體計算公式以下所示:
上面的式子中:
0~1000。
綜合來看,BM25模型計算公式其實融合了4個考慮因素:IDF因子,文檔長度因子,文檔詞頻,和查詢詞頻。並對3個自由調節因子(k1,k2,b)進行權值的調整。
例子:
假設當前以「喬布斯 IPAD2」
這個查詢詞爲例,來計算在某文檔D中BM25相關性
的值,因爲不知道文檔集中相關與不相關的分類,因此這裏直接將相關文檔個數r置爲0,則將獲得的BIM
因子爲:
其餘數值假定以下:
喬布斯
的文檔個數爲:n喬布斯=1000IPAD2
的文檔個數爲:nIPAD2=100喬布斯
的詞頻爲:f喬布斯=8IPAD2
的詞頻爲:fIPAD2=8則最終能夠計算到的BM25
結果爲:
每一個文檔按上述公式計算獲得相關性排序便可。
在BM25
模型中,文檔被當作一個總體進行進行詞頻的統計,而忽視了不一樣區域的重要性,BM25F
模型正是抓住了這點進行了相應的改進。
BM25F
模型在計算相關性時候,會對文檔分割成不一樣的域來進行加權統計,很是適用於網頁搜索,由於在一個網頁有標題信息
、meta信息
、頁面內容信息
等,而標題信息
無疑是最重要的,其次是meta信息
,最後纔是網頁內容
,BM25F
在計算相關性的,會將網頁分爲不用的區域,在各個區域分別統計本身的詞頻。
因此BM25F
模型的計算公式爲:
BM25F
的第1部分仍是BIM
的值。
其中與BM25
主要的差異體如今因子上,它是單詞i在各個區域不一樣的得分,計算公式以下:
上面的公式表示: