借助三維坐標系來看下歐氏距離和余弦相似度的區別
從圖上可以看出歐式距離衡量的是空間中各點之間的絕對距離,和點所在的位置坐標(即個體各維度的特征數值)直接相關,距離越小,兩向量之間越相似;而余弦相似度衡量的是空間中兩向量之間的夾角,體現的是方向上的差異,夾角越小(余弦相似度越大),兩向量之間越相似。如果保持A點的位置不變,B點朝原方向延伸,那么這個時候余弦相似度cosθ是保持不變的,因為夾角不變,而A、B兩點間的距離顯然在發生改變,這就是歐氏距離和余弦相似度的不同之處。
那么歐式距離和余弦相似度的應用場景是什么呢?
歐氏距離能夠體現個體數值特征的絕對差異,所以更多的用於需要從維度的數值大小中體現差異的分析,比如使用用戶行為作為指標分析用戶價值的相似情況(比較不同用戶的消費能力),這屬於價值度量;而余弦相似度對絕對數值不敏感,更多的用於使用用戶對內容的評分來分析用戶興趣的相似程度(用戶是否喜歡某商品),這屬於定性度量。
基於歐幾里得距離的相似度計算
歐幾里得距離是常用的計算距離的公式,它表示三維空間的兩個點的真實距離。歐幾里得相似度計算是一種基於用戶之間直線距離的計算方式,在計算時,不同的物品或者用戶可以將其定義為不同的坐標點,而特定的目標定位為坐標原點,歐幾里得計算兩個點之間的距離公式如下:
知道了兩個坐標之間的直線距離,歐幾里得相似度也就很好計算了,與d成反比,即其相似度公式如下:
從公式可以看出兩個物品或者用戶之間的距離越大,則其相似度越小,距離越小則相似度越大。
下表用戶與物品評分對應表
物品1 | 物品2 | 物品3 | 物品4 | |
用戶1 | 1 | 1 | 3 | 1 |
用戶2 | 1 | 2 | 3 | 2 |
用戶3 | 2 | 2 | 1 | 1 |
下面分別計算用戶1和用戶2之間的相似度,通過歐幾里得距離公式可得:
從計算結果可以看出,d12的分值大於d13的分值,因此可以得出結論,用戶2比用戶3更與用戶1具有相似性。
基於余弦角度相似度計算
與歐幾里得距離相似,余弦相似度也特定目標,即物品或者用戶作為坐標上的點,但不是坐標原點。基於此與特定的被計算的目標進行夾角計算。
由上圖可以看出,如果兩個目標較為相似,則其射線形成的夾角較小。如果兩個用戶不相近,則兩條射線形成的夾角較大,因此在使用余弦度量的相似度計算中,可以用夾角的大小來反映目標之間的相似性。計算公式如下:
在上面用戶與物品評分對應表中用戶1和用戶2之間的相似性,結果如下:
而用戶1和用戶3的相似性結果為:
從計算可得,相對於用戶3,用戶2與用戶1更為相似。