向量空間模型(Vector Space Model)

搜索結果排序是搜索引擎最核心的構成部分,很大程度上決定了搜索引擎的質量好壞。雖然搜索引擎在實際結果排序時考慮了上百個相關因子,但最重要的因素仍是用戶查詢與網頁內容的相關性。(ps:百度最臭名朝著的「競價排名」策略,就是在搜索結果排序時,把廣告客戶給錢最多的排在前列,而不是從內容質量考慮,從而嚴重影響了用戶體驗)。這裏要講的就是:給定用戶搜索詞,如何從內容相關性的角度對網頁進行排序。判斷網頁內容是否與用戶查詢相關,這依賴於搜索引擎所採用的檢索模型,常見的檢索模型有:布爾模型、向量空間模型、機率模型和機器學習排序算法等。在個人項目中,使用了向量空間模型(Vector Space Model,VSM),所以這篇文章主要總結一下向量空間模型相關的內容。html

向量空間模型是一種文檔表示和類似性計算的工具,不只在搜索領域,在天然語言處理、文本挖掘等領域也是廣泛採用的工具。算法

1. 文檔表示

做爲表示文檔的工具,向量空間模型把每一個文檔看作是由 t 維特徵組成的一個向量,特徵的定義能夠採起不一樣方式,最多見的是以單詞做爲特徵,就是從一篇文檔中抽取出 t 個關鍵詞,其中每一個特徵會根據某種算法計算其權重,這 t 維帶有權重的特徵向量就用來表示這一篇文檔。機器學習

下圖展現了4個文檔在3維向量空間中如何表示,好比對於文檔2,它由3個帶有權重的特徵組成{w21, w22, w23}。在實際應用中,維度一般是很是高的,達成千上萬維,這裏只是爲了簡化說明。用戶查詢也被當作是一個特殊的文檔,也將其轉換成 t 維的特徵向量,之因此也將其轉化爲一個 t 維向量,是爲了計算文檔類似性,後面會說的。工具

 下面是一個文檔表示的實例,對於文檔D四、D5及用戶查詢,經過提取關鍵詞進行特徵轉換,可表示以下。學習

2. 特徵向量和特徵權重計算

對於初次接觸該問題的人,確定會疑惑,對於一篇幾百字幾千字的文章,如何生成足以準確表示該文章的特徵向量呢?就像論文同樣,摘要、關鍵詞毫無疑問就是全篇最核心的內容,所以,咱們要設法提取一篇文檔的關鍵詞,並對每一個關鍵詞計算其對應的特徵權值,從而造成特徵向量。這裏涉及一個很是簡單但又至關強大的算法,即TF-IDF算法搜索引擎

TF-IDF算法涉及兩個最重要的概念,即詞頻(Term Frequency,TF)逆文檔頻率(Inversed Document Frequency,IDF)url

詞頻因子即一個單詞在一篇文檔中出現的次數,通常來講,在一篇文檔中反覆出現的詞,每每可以表示文檔的主題信息。spa

逆文檔頻率因子表明的是文檔集合範圍內的一種全局因子,給定一個文檔集合,那麼每一個單詞的IDF值就是惟一肯定的,與具體的文檔無關。IDF考慮的不是文檔自己的特徵,而是特徵單詞在整個文檔集合範圍內的相對重要性。這與詞頻因子有很大的不用,TF只反映了某個單詞在具體某篇文檔中的重要性程度。.net

在計算獲得TF和IDF值以後,就能夠計算一個關鍵詞對應的權重了,即 weight = TF * IDF。htm

 上面說的比較簡略,回看TF-IDF算法之關鍵詞提取 這篇文章。

3. 類似性計算

將文檔轉換爲特徵向量以後,就能夠計算文檔之間或者查詢關鍵詞與文檔之間的類似性了。關於餘弦類似性的計算方法和原理,在TF-IDF算法與餘弦類似性這篇文章中已經詳細說明了,稍微有區別的是,在那篇文章中只是簡單的用詞頻向量進行類似性計算,而如今咱們已經計算出了用於表示一篇文章的特徵向量,就應該使用特徵向量來計算不一樣文章之間的相關性。

總結:

向量空間模型的核心就是TF-IDF算法,這篇文章主要也只是對以前兩篇文章的回顧和彙總。

參考:

1. 《這就是搜索引擎》 張俊林著 (本文主要是該書的讀書筆記,算不上原創)

2. 阮一峯老師的博客

相關文章
相關標籤/搜索