【搜索引擎(三)】檢索模型
檢索模型的目的
現實中搜索引擎的檢索策略復雜多變,但是分析起來,核心的目的就兩個,為了:
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模型, 語言模型, 隨機差異模型, 貝葉斯網絡 |
結語
檢索的模型有很多種,並不能說哪一種更好,因為判定的標準不是唯一的。
盡管如此,檢索模型仍然沒有達到完美的終點,還需要更多的研究。在為了得到良好結果而做的努力中,檢索模型是一個基礎,為了面對不同的文檔集和不同的查詢需求,模型是可能被同時結合到搜索引擎中並且由搜索引擎所調度的。
【搜索引擎(三)】檢索模型