文本向量的距離測度——歐氏距離、曼哈頓距離、餘弦相似度


在NLP中文本均會被表示爲向量的形式,爲了給出任何兩個文本之間的相似程度,則可以利用各類的距離進行表示,其中最爲著名的兩種距離就是歐式距離和宇軒相似度,此外還有曼哈頓距離也被廣泛使用。而這三個測度方式均是在歐式空間下進行的。

本文以如下的兩個向量作爲例子進行具體的闡述:

	vec1=[x1,x2,x3...xn]
	vec2=[y1,y2,y3...yn]

歐氏距離

歐式距離就是最簡單最直觀的測度方式,兩點之間連線最短,把這兩個點的連線的距離計算出來就可以得到歐氏距離的結果了。也就是利用如下的公式可以計算出來。

Euclidean_Distance(vec1,vec2)=i=1n(xiyi)2Euclidean\_Distance(vec1,vec2)=\sqrt{\sum_{i=1}^n(x_i-y_i)^2}

曼哈頓距離

曼哈頓距離作爲向量距離的另一種測度方式,是將某一向量在絕對值方向上進行移動,最終變爲另一向量的總體變動的距離之和。具體的公式可以表示爲如下形式。
Manhattan_Distance(vec1,vec2)=i=1nxiyiManhattan\_Distance(vec1,vec2)=\sum_{i=1}^n|x_i-y_i|

曼哈頓距離和歐氏距離的區別

在這裏插入圖片描述
引用最經典的一個圖,上圖可以認爲是兩點之間的4個路徑。其中綠色路徑的距離是歐式距離,而剩下的三條均是曼哈頓距離。

可以直觀的理解,歐式距離與平方相關,曼哈頓距離與絕對值相關。

餘弦相似度

本質上餘弦相似度並不是一種距離的測度,當然可以利用1-餘弦相似度的方法來定義餘弦距離。但是餘弦相似度與歐氏距離經常一起出現。所以本文也一併將其列出來進行簡單的介紹。
cosinesimilarity(vec1,vec2)=vec1vec2vec1×vec2=i=1n(xi×yi)i=1nxi×i=1nyicosine_similarity(vec1,vec2)=\frac{vec1\cdot vec2}{|vec1|\times |vec2|}=\frac{\sum_{i=1}^n(x_i\times y_i)}{\sum_{i=1}^nx_i \times \sum_{i=1}^ny_i}

餘弦相似度和歐氏距離的區別

在這裏插入圖片描述
上圖較爲清晰的表示出歐氏距離與餘弦相似度的本質內容,一個是真實在數值上的差異,另一個是在方向與趨勢上的差異。

不同的使用場景需要選擇不同的度量方式。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章