推薦系統學習筆記之四——相似度計算以及權重的重要性

教材:《推薦系統 技術、評估及高效算法》

上一小節:推薦系統學習筆記之三——(基於鄰域的)協同過濾算法的公式化、標準化

上一小節我們跳過了 用戶之間、物品之間 相似度計算的方法,在這一小節,我們詳細敘述常見常用的集中相似度計算方法以及 相似度用戶(物品)權重的重要性。

目錄:   1、相似度

                       ---(1)、cosine(餘弦相似度)

                       ---(2)、Pearson Correlation(皮爾遜相關係數)

                       ---(3)、Adjusted Cosine(改良的餘弦相似度)

                      ---(4)、Spearman Rank Correlation(斯皮爾曼等級關聯)

                 2、權重的重要性

 

相似度

   ML/DM領域常常用到距離和相似度的概念,在kmeans等聚類算法中,一般都是使用曼哈頓距離、歐氏距離等距離公式,這裏我們要了解的是另一種——相似度。

  區分一下距離和相似度,在一個高維空間,兩個點之間的距離就是距離。而兩個向量是否平行、夾角多少,這就是相似度。

1、cosine(餘弦相似度)

    我們高中的時候都學過餘弦公式: cos(x_a,x_b) =\frac{x_a^Tx_b}{||x_a|| ||x_b||}

    並且知道它的意義:它不在乎兩個向量之間的距離,只在乎兩個向量之間的角度,角度越小值越大,相似度越高。    

    在協同過濾中,它被用來計算用戶的相似度:

                                CV(u,v)=cos(x_v,x_u)=\frac{\sum _{i\in J_{uv}}r_{ui}r_{vi}}{\sqrt{\sum_{i\in J_u r_{ui}^2} \sum_{j\in J_v r_{vj}^2})}}

 然而在這種情況下存在一個問題,它沒有考慮用戶u和v的評分均值以及方差之間的差異(也就是我們前一小節的標準化)

 於是Pearson Correlation出場了。

 

2、Pearson Correlation(皮爾遜係數)

  基於用戶的PC值計算 用戶u和v之間的相似度,r_u^-依然代表用戶u的所有評分的平均分:

     PC(u,v)=\frac{\sum _{i\in J_{uv}}(r_{ui}-r_u^-)(r_{vi}-r_v^-)}{\sqrt{\sum_{i\in J_{uv} (r_{ui}-r_u^-)^2} \sum_{j\in J_{uv} (r_{vj}-r_v^-)^2})}}

  同樣的,物品i和j之間的相似度計算:

PC(i,j)=\frac{\sum _{u\in U_{ij}}(r_{ui}-r_i^-)(r_{uj}-r_j^-)}{\sqrt{\sum_{u\in U_{ij} (r_{ui}-r_i^-)^2} \sum_{u\in U_{ij} (r_{uj}-r_j^-)^2})}}

 

3、Adjusted Cosine(改良的餘弦相似度)

  在一些基於物品的例子中,用戶間評分的方差明顯要大於物品間評分的方差,而PC(i,j)更關注於物品間的方差,這時候我們使用更關注用戶間方差的Adjusted Cosine能夠取得更好的效果。

  AC(i,j)=\frac{\sum _{u\in U_{ij}}(r_{ui}-r_u^-)(r_{uj}-r_u^-)}{\sqrt{\sum_{u\in U_{ij} (r_{ui}-r_u^-)^2} \sum_{u\in U_{ij} (r_{uj}-r_u^-)^2})}}

 

4、Spearman Rank Correlation(斯皮爾曼等級關聯)

   SRC與PC直接使用評分值來計算不同,它是根據這些評分的排名來進行相似度計算的。

  設k_{ui}爲物品i在用戶u的所有評分物品中的排名(評分重複的取中間值),以用戶相似度爲例:

  SRC(u,v)=\frac{\sum _{i\in J_{uv}}(k_{ui}-k_u^-)(k_{vi}-k_v^-)}{\sqrt{\sum_{i\in J_{uv} (k_{ui}-k_u^-)^2} \sum_{j\in J_{uv} (k_{vj}-k_v^-)^2})}}

  公式體現上唯一的區別,就是k代替了r。一般SRC的效果不如PC。

 

權重的重要性

  當用於計算相似度的評分數據比較少的時候,相似度的精準度就會降低,這是顯而易見的事情。

  所以我們提出權重:當只有少量評分用於計算時,就會降低相似度重要性的權重

  給出公式:w_{uv}^{'} =\frac{min(|J_{uv}|,\gamma )}{\gamma} * w_{uv}

  gamma是個超參數,gamma越大,代表要求評分矩陣越寬越稠密。

  在文獻中發現,一般gamma>=25會顯著得提高預測評分的準確性,到50的時候可能得到最好的結果。當然,具體問題需要交叉驗證來確定這個最優參數。

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