新手學信息檢索4:向量空間模型與相似度計算


相似度從字面上理解就是兩個事物的相似程度。在信息檢索中,相似度表示的是兩個文檔之間的相似程度或者查詢與文檔的相似程度。

首先回想一下檢索過程:

1:首先用戶輸入查詢詞。

2:搜索引擎根據查詢詞查找相應的文檔。

3:搜索引擎把查詢結果以一定的方式顯示給用戶。

那么一篇文檔是否滿足用戶的查詢需求可以用文本與查詢的相似程度來衡量。而相似度到最后總能夠計算成一個實數,所以可以根據文檔與查詢的相似度進行排序。與查詢相似度較高的文檔排在前面,較低的排在后面。相似度的計算方式五花八門。比如上一篇文章中,可以簡單的利用tf*idf的累加和代表文檔與查詢的相似程度。當然這種方法看上去沒什么理論深度,所以就不討論了。

對於一件事,研究者常常盡量使用數學理論去解釋它,使它模型化,使它變得有理有據。數學包含的內容博大精深,所以解釋的方法也不同。有的研究者試圖用這種數學理論去解釋,有的研究者試圖用那種數學理論解釋。有些人解釋的很成功,當然有一些則失敗了。當一個一流研究者找到一個新的解釋方法並建立一個模型后,其他的三流研究者就開始對這個模型修修補補。現在就來說說一流研究者提出的一個檢索模型:向量空間模型。該模型被用於文檔的分類,該模型最初被用於文檔的分類,通過文檔與類別的特征之間計算來實現文檔正確分類,但是該模型也可以用在信息檢索中。

向量空間模型就是把查詢和文檔想象成N維空間向量,N是詞典大小。每一維表示一個查詢詞。向量在每一個維度上的坐標可以通過計算得到。

設查詢向量表示成:

Q=[q1,q2,……,qN];

文檔向量表示成:

D=[d1,d2,……,dN];

這樣查詢Q與文檔D都能表示成兩個向量。

那么我們如何計算其相似度呢?這里常用的就是余弦相似度:

對於這種模型下的余弦相似度的計算有一個非常形象的解釋:把每一篇文檔想象成N維空間下的點。一個查詢可以想象成從原點打出的一束光刺穿了這個N維空間,離光束近的點與查詢相似度高,離光束遠的點與查詢相似度低。

那么查詢向量和文檔向量每個維度上的坐標該如何計算呢?可以利用tf*idf的值代表。因為查詢詞一般很少,所以查詢向量中大部分的坐標值都是0,與文檔向量相乘時,就會掩蓋掉文檔向量D的一些坐標,可以利用這一點加快計算速度。而向量的長度這些信息可以預先存儲在倒排表中,所以整個過程可以在倒排表中快速求得。相似度求得后,就可以根據這個值進行排序了,生成列表返回給用戶。

這就是向量空間模型以及余弦相似度計算,這個模型靠的很成功,以至於我看的每本書都會講到這個模型。對於向量中坐標應該如何計算,也有相應的人去研究,這里就不贅述了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM