教材:《推薦系統 技術、評估及高效算法》
上一小節:推薦系統學習筆記之三——(基於鄰域的)協同過濾算法的公式化、標準化
上一小節我們跳過了 用戶之間、物品之間 相似度計算的方法,在這一小節,我們詳細敘述常見常用的集中相似度計算方法以及 相似度用戶(物品)權重的重要性。
目錄: 1、相似度
---(1)、cosine(餘弦相似度)
---(2)、Pearson Correlation(皮爾遜相關係數)
---(3)、Adjusted Cosine(改良的餘弦相似度)
---(4)、Spearman Rank Correlation(斯皮爾曼等級關聯)
2、權重的重要性
相似度
ML/DM領域常常用到距離和相似度的概念,在kmeans等聚類算法中,一般都是使用曼哈頓距離、歐氏距離等距離公式,這裏我們要了解的是另一種——相似度。
區分一下距離和相似度,在一個高維空間,兩個點之間的距離就是距離。而兩個向量是否平行、夾角多少,這就是相似度。
1、cosine(餘弦相似度)
我們高中的時候都學過餘弦公式: 。
並且知道它的意義:它不在乎兩個向量之間的距離,只在乎兩個向量之間的角度,角度越小值越大,相似度越高。
在協同過濾中,它被用來計算用戶的相似度:
然而在這種情況下存在一個問題,它沒有考慮用戶u和v的評分均值以及方差之間的差異(也就是我們前一小節的標準化)
於是Pearson Correlation出場了。
2、Pearson Correlation(皮爾遜係數)
基於用戶的PC值計算 用戶u和v之間的相似度,依然代表用戶u的所有評分的平均分:
同樣的,物品i和j之間的相似度計算:
3、Adjusted Cosine(改良的餘弦相似度)
在一些基於物品的例子中,用戶間評分的方差明顯要大於物品間評分的方差,而PC(i,j)更關注於物品間的方差,這時候我們使用更關注用戶間方差的Adjusted Cosine能夠取得更好的效果。
4、Spearman Rank Correlation(斯皮爾曼等級關聯)
SRC與PC直接使用評分值來計算不同,它是根據這些評分的排名來進行相似度計算的。
設爲物品i在用戶u的所有評分物品中的排名(評分重複的取中間值),以用戶相似度爲例:
,
公式體現上唯一的區別,就是k代替了r。一般SRC的效果不如PC。
權重的重要性
當用於計算相似度的評分數據比較少的時候,相似度的精準度就會降低,這是顯而易見的事情。
所以我們提出權重:當只有少量評分用於計算時,就會降低相似度重要性的權重。
給出公式:
gamma是個超參數,gamma越大,代表要求評分矩陣越寬越稠密。
在文獻中發現,一般gamma>=25會顯著得提高預測評分的準確性,到50的時候可能得到最好的結果。當然,具體問題需要交叉驗證來確定這個最優參數。