1. 程式人生 > >搜尋引擎的檢索模型-查詢與文件的相關度計算

搜尋引擎的檢索模型-查詢與文件的相關度計算

1. 檢索模型概述

      搜尋結果排序時搜尋引擎最核心的部分,很大程度度上決定了搜尋引擎的質量好壞及使用者滿意度。實際搜尋結果排序的因子有很多,但最主要的兩個因素是使用者查詢和網頁內容的相關度,以及網頁連結情況。這裡我們主要總結網頁內容和使用者查詢相關的內容。

       判斷網頁內容是否與使用者査詢相關,這依賴於搜尋引擎所來用的檢索模型。檢索模型是搜尋引擎的理論基礎,為量化相關性提供了一種數學模型,是對查詢詞和文件之間進行相似度計算的框架和方法。其本質就是相關度建模。如圖所示,檢索模型所在搜尋引擎系統架構位置:

   

    當然檢索模型理論研究存在理想化的隱含假設,及即假設使用者需求已經通過查詢非常清晰明確地表達出來了,所以檢索模型的任務不涉及到對使用者需求建模。但實際上這個和實際相差較遠,即使相同的查詢詞,不同使用者的需求目的可能差異很大,而檢索模型對此無能為力。

2. 檢索模型分類

   大學學習的《數學模型》(姜啟源第三版),現在還有點印象。數學模型將現實問題歸結為相應的數學問題,並在此基礎上利用數學的概念、方法和理論進行深入的分析和研究,從而從定性或定量的角度來刻畫實際問題,併為解決現實問題提供精確的資料或可靠的指導。
    所以我們從所使用的數學方法上分:
1)基於集合論的IR模型(Set Theoretic models)      布林模型      基於模糊集的模型      擴展布爾模型 2)基於代數論的IR模型(Algebraic models)      向量空間模型      潛性語義索引模型      神經網路模型 3)基
於概率統計的IR模型(Probabilistic models)      迴歸模型 概率模型      語言模型建模IR模型      推理網路模型      信任度網路模型

此外還有基於統計的機器學習排序演算法
這裡主要介紹 布林模型,向量空間模型,概率模型,語言模型,機器學習排序演算法


3. 布林模型

布林模型:

        是最簡單的資訊檢索模型,是基於集合理論和布林代數的一種簡單的檢索模型。

基本思想:

    文件和使用者查詢由其包含的單詞集合來表示,兩者的相似性則通過布林代數運算來進行判定;

相似度計算:

         查詢布林表示式和所有文件的布林表示式進行匹配,匹配成功的文件的得分為1

,否則為0。 

         如查詢詞:

                 蘋果 and (iphone OR Ipad2)

         文件集合:

         D1:IPhone 5於9月13號問世。

         D2: 蘋果公司於9月13號釋出新一代IPhone。

         D3:Ipad2將於3月11日在美上市。

         D4:Iphone和ipad2的外觀設計精美時尚

         D5:80後90後都喜歡iphone,但不喜歡吃蘋果。

         那麼單詞與文件關係如下圖:

    

檢索結果就是D2和D5符合搜尋條件。
       這類似於傳統資料庫檢索,是精確匹。一些搜尋引擎的高階檢索往往是使用布林模型的思想。如Google的高階檢索。
優點:
      在於形式簡潔、結構簡單。

缺點:

     1)準確的匹配可能導致檢出的文件過多或過少。因為布林模型只是判斷文件要麼相關、要麼不相關,它的檢索策略基於二值判定標準,無法描述與查詢條件部分匹配的情況。因此,布林模型實際上是一個數值檢索模型而不是資訊檢索模型。

     2)儘管布林表示式有確切的語義,但通常很難將使用者的資訊需求轉換成布林表示式。如今,人們普遍認為,給索引詞加權能極大地改善檢索效果。從對索引詞加權的方法中引出了向量模型。

4. 向量空間模型(Vector Space Model,VSM)

向量空間模型:
    康奈爾大學Salton等人上世紀70年代提出並倡導,原型系統SMART

基本思想:

    把文件看成是由t維特徵組成的一個向量,特徵一般採用單詞,每個特徵會根據一定依據計算其權重,這t維帶有權重的特徵共同構成了一個文件,以此來表示文件的主題內容。

相似性計算:

    計算文件的相似性可以採用Cosine計算定義,實際上是求文件在t維空間中查詢詞向量和文件向量的夾角,越小越相似;對於特徵權重,可以採用Tf*IDF框架,Tf是詞頻,IDF是逆文件頻率因子指的是同一個單詞在文件集合範圍的出現次數,這個是一種全域性因子,其考慮的不是文件本身的特徵,而是特徵單詞之間的相對重要性,特徵詞出現在其中的文件數目越多,IDF值越低,這個詞區分不同文件的能力就越差,這個框架一般把Weight=Tf*IDF作為權重計算公式。

思路:

1)向量表示:     文件Dj的向量可以表示為Dj(w1j, w2j ,⋯,wnj ) ,其中n是系統中的單詞數目,wij 代表了標引詞i在文件Dj中的權重。     查詢Q的向量可以表示為Q(w1q, w2q ,⋯,wnq ) ,wiq代表了單詞i在查詢Q中的權重  2)文件-單詞矩陣(Doc-Term Matrix)
   n
篇文件,m個標引詞構成的矩陣Am*n,每列可以看成每篇文件的向量表示,同時,每行也可以可以看成單詞的向量表示:
   
3)權重計算:
       布林權重:標引詞i在文件j中的權重wij =0或1(出現則取1,否則取0)        TF權重:TF(Term Frequency)是單詞在文件中出現的次數。權重wij = TFij或者歸一化後的TF值        TF的歸一化(Normalization):將一篇文件中所有的標引詞的TF值歸一化到[0,1]之間。通常可以採用以下方式之一:
           1: Wtf = 1 + log(TF)
           2:Wtf = a + (1- a)*  TF /Max(TF) 其中a為調節因子,經驗取值a=0.5 最新研究表明是0.4效果更好。
   
       單詞的文件頻率DF(Document Frequency)單詞在整個文件集合中出現的文件篇數,DF反映了單詞的區分度, DF越高表示單詞越普遍,因此其區分度越低,其權重也越低。         逆文件頻率(Inverse DF ,IDF):DF的倒數,通常採用如下公式計算:(N是文件集合中所有文件的數目)          
    
3) 計算權重向量空間模型中通常採用TF* IDF的方式計算權重,即標引詞i在文件dj的權重Wij = TFij * IDFij .
4)  相似度計算:文件和查詢詞的相關程度(即相似度)可由它們各自向量在向量空問中的相對位置來決定。相似度計算函式有很多種,較常用的是兩個向量夾角的餘弦函式。

  
     由向量的數量積定義:兩個向量的數量積(又稱“內積”、“點積”,物理學上稱為“標量積”。)是一個數量,記作a·b。若ab不共線,則a·b=|a|·|b|·cos〈ab〉。
     其意義:兩向量的數量積等於其中一個向量的模與另一個向量在這個向量的方向上的投影的乘積。我們把|b|cosθ叫做向量b在向量a的方向上的投影。
     兩向量ab的數量積:a·b=|a|*|b|cosθ;其中|a|、|β|是兩向量的模,θ是兩向量之間的夾角(0≤θ≤π)。
     若有座標a(x1,y1,z1) ;b(x2,y2,z2),那麼a·b=x1x2+y1y2+z1z2; |a|=sqrt(x1^2+y1^2+z1^2);|b|=sqrt(x2^2+y2^2+z2^2)。

     依定義有:cos〈a,b〉=a·b / |a|·|b|);若a、b共線,則a·b=+-∣a∣∣b∣。
     其性質:
     1)a
·a=|a|的平方。   
     2)ab 〈=〉a·b=0。   

     於是文件和提問的相似度值由以下公式獲得:
       
        理解Cosine相似性,可以講每個文件以及查詢看做t維特徵空間的一個數值點。每個特徵形成t維空間中的一個維度,連結特徵空間原點和這個數值點形成一個向量,而Cosine相似性就是計算特徵空間中兩個向量之間的夾角。這個夾角越小,說明兩個特徵向量內容越相似。極端的情況就是兩個完全相同的文件,其在向量空間中的兩個向量是重疊的,Cosine相似性值為1. 舉例:             查詢q(<2006:1>,<世界盃:2>)        文件d1(<2006:1>,<世界盃:3>,<德國:1>,<舉行:1>)        文件d2(<2002:1>,<世界盃:2>,<韓國:1>,<日本:1> <舉行:1>)
       倒排索引列表:
      

       查詢和文件進行向量的相似度計算: 採用內積        文件d1和q的內積:1*1+3*2=7        文件d2和q的內積:2*2=4        夾角餘弦:        文件d1和q的夾角餘弦:        文件d2和q的夾角餘弦:

優點:1) 簡潔直觀,可以應用到很多其他領域(文字分類、生物資訊學),郵件過濾系統spamAssass。            3) 支援部分匹配和近似匹配,結果可以排序            4) 檢索效果不錯 缺點:1) 計算量大            2) 單詞的不同位置會代表不同的權重,而不同的關鍵詞長度也會影響權重的大小
           3) 單詞之間的獨立性假設與實際不符:實際上,單詞的出現之間是有關係的,不是完全獨立的。如:“王勵勤”“乒乓球”的出現不是獨立的

5. 概率模型

概率模型:

    是目前效果最好的模型之一,okapi BM25這一經典概率模型計算公式已經在搜尋引擎的網頁排序中廣泛使用。概率檢索模型是從概率排序原理推匯出來的。

基本假設前提和理論:
    1).相關性獨立原則:文獻對一個檢索式的相關性與文獻集合中的其他文獻是獨立的。
    2).單詞的獨立性:單詞和檢索式中詞與詞之間是相互獨立。即文件裡出現的單詞之間沒有任何關聯,任一單詞在文件的分佈概率不依賴其他單詞是否出現
    3).文獻相關性是二值的:即只有相關和不相關兩種。
    4).概率排序原則:該原則認為,檢索系統應將文件按照與查 詢的概率相關性的大小排序,那麼排在最前面的是最有可能被獲取的文件
    5).貝葉斯(Bayes)定理:用公式表示為:
      P(R|d)=(d|R)·P(R)/P(d)

基本思想是:

    是通過概率的方法將查詢和文件聯絡起來,給定一個使用者查詢,如果搜尋系統能夠在搜尋結果排序時按照文件和使用者需求的相關性由高到底排序,那麼這個搜尋系統的準確性是最優的。在文件集合的基礎上儘可能準確地對這種相關性進行估計就是其核心。

相似度計算:
    將查詢Q和文件D根據有沒有單詞表示為二值向量,Q={q1,q2,…},D={d1,d2,…},di=0或1表示文獻中沒有或有第i個單詞. 用R表示文獻相關,表示文獻不相關.
    條件概率P(R|dj )表示文件 dj與查詢qi相關的概率

    條件概率P(|dj)表示文件dj與查詢qi不相關的概率

    利用它們的比值計算文件與查詢的相似度。
    若P(R|d)> P( |d),即比值大於1,則文獻相關程度大於不相關程度,認為文獻d是相關的,否則認為文獻d不相關。在兩者相等時,人為地認為它是不相關的。

優點:
   1.採用嚴格的數學理論為依據,為人們提供了一種數學理論基礎來進行檢索決策;PubMed的related articles 。
   2.採用相關反饋原理
   3.在其中沒有使用使用者難以運用的布林邏輯方法;
   4.在操作過程中使用了詞的依賴性和相互關係。
缺點:
   1.計算複雜度大,不適合大型網路
   2.引數估計難度較大
   3.條件概率值難估計
   4.系統的檢索效能提高不明顯,需與其他檢索模型結合

6. 語言模型

語言模型:
    是借鑑了語音識別領域採用的語言模型技術,將語言模型和資訊檢索模型相互融合的結果
基本思想:
    其他的檢索模型的思考路徑是從查詢到文件,即給定使用者查詢,如何找出相關的文件,該模型的思路正好想法,是由文件到查詢這個方向,即為每個文件建立不同的語言模型,判斷由文件生成使用者查詢的可能性有多大,然後按照這種生成概率由高到低排序,作為搜尋結果。語言模型代表了單詞或者單詞序列在文件中的分佈情況;

7. 機器學習排序演算法

機器學習排序演算法
    隨著搜尋引擎的發展,對於某個網頁進行排序需要考慮的因素越來越多,這是無法根據人工經驗完成的,這時候用機器學習就是非常合適的,例如Google目前的網頁排序公式考慮了200多種因子。機器學習需要的資料來源在搜尋引擎中較好滿足,例如使用者的搜尋點選記錄。其分成人工標註訓練、文件特徵抽取、學習分類函式以及在實際搜尋系統中採用機器學習模型等4個步驟組成。人工標註訓練可由使用者點選記錄來模擬人為對文件相關打分的機制。