1. 程式人生 > >【搜索引擎(三)】檢索模型

【搜索引擎(三)】檢索模型

局限 樸素 貝葉斯 匹配 分析 部分匹配 tro 還需要 不同

檢索模型的目的

  現實中搜索引擎的檢索策略復雜多變,但是分析起來,核心的目的就兩個,為了:

  1. 越相關的結果越靠前;

  2. 查詢的結果是完整的。

經典檢索模型

經典信息檢索模型有三類:

    1.布爾模型

    2.向量模型

    3.概率

    不看內部, 查詢的模型是:查詢->查詢模型->返回結果,一個查詢是一組關鍵字,返回結果是一組文檔

  1.布爾模型:

    返回包含一個查詢中的n個關鍵字的文檔, 即包含w1,w2,w3的文檔的交集

  2.向量模型:

    考慮到布爾匹配的局限性太強,而提出的一個部分匹配的方法。通過對查詢和文檔中的索引賦予非布爾權重,最後用來計算文檔和用戶查詢之間的相似度。

    向量d表示文本,向量q表示查詢,它們的長度是一樣的,d.length = q.length = 索引項總個數。

    當然可以用類似cosine,Jaccard的方法來計算相似度,並對結果進行排序。

    盡管它並不是最好的,但是在評測檢索策略的時候經常作為baseline(基準)

  3.概率模型:

    這個概念有些復雜,其實看起來就好像是潛在語義的分析,對用戶的輸入進行一些分析,推測潛在屬性,最後給出一個在假設下為,給出最大概率是用戶想要文檔的文檔(拗口)。

    同時有一個虛擬的概念叫理想文檔,就是恰好只包含用戶想要的結果的文檔。

    實現的方法:用樸素貝葉斯推斷。可以想象在A屬性下用戶給出Q查詢的概率,以及目前已有的過往查詢中某個屬性A下最終得到的概率,就應該知道它跟貝葉斯方法的推導有一些關系了。

    這個模型的缺陷在於幾乎沒有辦法給定樣本集。評測它的準確度也不是那麽容易。

集合論模型

  1.基於集合的模型

    基於集合的模型是一種較新的方法,結合了集合論與向量空間模型的排序。它包含了布爾模型的特征(布爾=集合,向量=代數)。,我們把它看成布爾模型。主要的特點是利用項集建立索引,而非普通的索引。

    所謂項集,是文檔中索引項的子集。一個集合可以有2^t個項集,但是實際用到的不會這麽多。同時,項集也不是兩兩不相交的。

    頻繁項集是項集的一種。設定一個閾值,當項集中的索引出現文檔次數超過它的時候,這個項集就是頻繁項集。頻繁項集還有跟它相關的項集 Apriori算法,在關聯規則的時候會用到它。

    用頻繁項集來設計索引,可以在一些場景下減少搜索時間,提高檢索效率。

  2.擴展布爾模型

    是一種將布爾模型和向量模型統一化的方法(布爾=集合,向量=代數)。用p範數泛化形式的析取、合取,統一了布爾模型和向量模型,並且還有一些中間的形態。目前不清楚它的應用,具體的數學形式不給了。

  3.模糊集模型

    為了處理布爾模型的突變問題而設計的模型。該模型中新增了同義詞辭典,並且自然而然地采用了相似度的計算。

其他模型

模型分類具體模型
代數模型 廣義向量模型、潛在語義索引、神經網絡
其他概率模型 BM25模型, 語言模型, 隨機差異模型, 貝葉斯網絡

結語

  檢索的模型有很多種,並不能說哪一種更好,因為判定的標準不是唯一的。

  盡管如此,檢索模型仍然沒有達到完美的終點,還需要更多的研究。在為了得到良好結果而做的努力中,檢索模型是一個基礎,為了面對不同的文檔集和不同的查詢需求,模型是可能被同時結合到搜索引擎中並且由搜索引擎所調度的。

【搜索引擎(三)】檢索模型