推薦演算法基礎 相似度計算方法彙總

2021-08-07 18:01:13 字數 2815 閱讀 2876

推薦系統中相似度計算可以說是基礎中的基礎了,因為基本所有的推薦演算法都是在計算相似度,使用者相似度或者物品相似度,這裡羅列一下各種相似度計算方法和適用點

similarity

=cos(θ

)=a⋅

b∥a∥

∥b∥=

∑i=1

nai×

bi∑i

=1n(

ai)2

−−−−

−−−√

×∑i=

1n(b

i)2−

−−−−

−−√

這個基本上是最常用的,最初用在計算文字相似度效果很好,一般像tf-idf一下然後計算,推薦中在協同過濾以及很多演算法中都比其他相似度效果理想。

由於余弦相似度表示方向上的差異,對距離不敏感,所以有時候也關心距離上的差異會先對每個值都減去乙個均值,這樣稱為調整余弦相似度d(

x,y)

:=(x1

−y1)

2+(x

2−y2

)2+⋯

+(xn

−yn)

2−−−

−−−−

−−−−

−−−−

−−−−

−−−−

−−−−

−−−−

−√=∑

i=1n

(xi−

yi)2

−−−−

−−−−

−−√

基本上就是兩個點的空間距離,下面這個圖就能很明顯的說明他和余弦相似度區別,歐式距離更多考慮的是空間中兩條直線的距離,而余弦相似度關心的是空間夾角。所以

歐氏距離能夠體現個體數值特徵的絕對差異,所以更多的用於需要從維度的數值大小中體現差異的分析,如使用使用者行為指標分析使用者價值的相似度或差異。

余弦距離更多的是從方向上區分差異,而對絕對的數值不敏感,更多的用於使用使用者對內容評分來區分興趣的相似度和差異,同時修正了使用者間可能存在的度量標準不統一的問題(因為余弦距離對絕對數值不敏感)。

√ 其實這個就是前面講的調整的余弦相似度,因為在推薦系統中均值分為使用者的均值和物品的均值,這裡相當於是物品的均值。這個也是比較常用的。

斯皮爾曼相關係數(spearman rank correlation)被定義成 等級變數之間的皮爾遜相關係數。[1] 對於樣本容量為 n的樣本, n個 原始資料 xi

,yi 被轉換成等級資料 xi

,yi , 相關係數ρ為ρ=

∑i(x

i−x¯

)(yi

−y¯)

∑i(x

i−x¯

)2∑i

(yi−

y¯)2

−−−−

−−−−

−−−−

−−−−

−−−√

實際應用中, 變數間的鏈結是無關緊要的, 於是可以通過簡單的步驟計算 ρ.[1][2] 被觀測的兩個變數的等級的差值 di

=xi−

yi, 則 ρ 為ρ=

1−6∑

d2in

(n2−

1)看乙個維基百科的例子:

智商, xi

每週花在電視上的小時數, yi

等級 xi

等級yi

did2

i 860

1100

972026

-416

992838

-525

1002747

-3910150510

-525

1032969

-39106773

4161101785

39112692

74911312104

636根據 d2

i 計算 ∑d

2i=194

。 樣本容量n為 10。 將這些值帶入方程ρ=

1−6×

19410(10

2−1)

得 ρ = −0.175757575…

這個值很小表明上述兩個變數的關係很小。 原始資料不能用於此方程中,相應的, 應使用皮爾遜相關係數計算等級。

我們發現這個思路是不考慮資料本身,只考慮變數間的排名順序,理論上src可以避免對rating進行標準化的問題

計算兩個使用者在打分中均方差,表現比pc差,因為它沒有考慮到使用者偏好或產品的被欣賞程度之間的負相關。

有**比較過pc的mae 要優於 msd 和srcj(

x,y)

=|x∩

y||x

|u|y

| 意思是兩個集合的交集除以並集,比如文字相似度可以用出現相同詞個數進行計算。

相似度計算方法

pearson 相關係數是用協方差除以兩個變數的標準差得到的,雖然協方差能反映兩個隨機變數的相關程度 協方差大於0的時候表示兩者正相關,小於0的時候表示兩者負相關 但其數值上受量綱的影響很大,不能簡單地從協方差的數值大小給出變數相關程度的判斷。為了消除這種量綱的影響,於是就有了相關係數的概念。由上圖...

相似度計算方法

1.余弦相似度 在平面系 a向量與b向量的夾角越小,說明相似度越大,余弦值越接近1,就表明夾角越接近0度,也就是兩個向量越相似,這就叫 余弦相似性 在三維也是乙個道理 x,y,z 確定的一點與點 a,b,c 一點的夾角 高中學過向量a與向量b的乘積定義為 所以兩者的夾角為 cos a b a b 分...

mysql資料相似度演算法 相似度計算方法

相似度就是比較兩個事物的相似性。一般通過計算事物的特徵之間的距離,如果距離小,那麼相似度大 如果距離大,那麼相似度小。問題定義 有兩個物件x,y,都包含n維特徵,x x1,x2,x3,xn y y1,y2,y3,yn 計算x和y的相似性。閔可夫斯基距離 minkowski distance 曼哈頓距...