參考:http://blog.csdn.net/wangjian1204/article/details/50490108
一、概述:
基於近鄰的推薦算法在推薦系統中佔有重要的地位,是學術界的一個重點研究方向,在產業界也得到了廣泛的應用。基於近鄰的推薦算法大致可以分爲user-based和item-based兩類,關於近鄰推薦算法的基礎性介紹,請參見博文: “推薦系統筆記一、基於近鄰的推薦系統(基礎篇)”。由於user-based方法和item-based方法的相似性,本文主要討論item-based方法上的一些技術,這些技術可以被直接套用到user-based方法上。本文主要介紹五種近鄰模型。
二、符號定義:
- U:用戶集合;I:item集合;
- R:評分集合,
rui 表示用戶u∈U 對itemi∈I 的評分; Ui :已經給item i打分的用戶集合;Iu :已經被用戶u打分的item集合;Iuv :Iu∩Iv ,同時被用戶u和用戶v打過分的item集合;Uij :同時對item i和j打過分的用戶集合;wuv :用戶u和v之間的相似度;wij :item i和j之間的相似度;
三、相似權值計算:
兩個用戶或者item間的近鄰關係是由他們之間的相似度來判斷的,與一個用戶(或item)相似度最大的k個用戶(或item)稱爲他的k近鄰。
cosine相似度是其中一種常用的度量方法:
即
如果考慮均值和方差,則得到Pearson相關係數:
Pearson Correlation是在集合
相似權值改進:
在實際中,不同用戶或者item的評分往往是帶偏差的,例如A和B兩個用戶的偏好類似,但是A比較容易滿足,傾向於給item打高分;而B傾向於給item打低分(Item 上也有類似的情況)。爲了解決這個問題,需要爲每個用戶和item增加一個偏置項。在前面的式子中,用均值
其中
把這個偏置代入Pearson Correlation,得到:
當使用Pearson Correlation方法時,如果item i和j只被一個用戶同時評分過,並且恰好在這兩個item上的評分相同,那麼根據Pearson公式他們之間的相似度等於1,這顯然不大合理。可以用以下方法對權值進行收縮:
四、相似度插值:
Similarity-Based Interpolation:定義
這可以看做一個插值函數,
- 可解釋性。通過用戶對item的歷史評分(喜好)推薦新的item。
- 實時性。一旦用戶給出新的評分,item-based模型可以立即提供新的推薦,而不需要重新訓練模型或計算參數(通常認爲item間的相似度在短時間內是恆定的,只需每隔較長一段時間重新計算)。
五、聯合派生插值權重:
Jointly Derived Interpolation Weights:相似度插值方法直接使用item間的相似度作爲插值權重(係數),忽略了近鄰間的相互關係,爲了更好的預測評分,需要重新學習插值權重
插值權重通過求解一個最小二乘問題得到:
如果寫成
由於評分矩陣是稀疏的,很少有用戶v對
六、全局近鄰模型:
前面介紹的近鄰模型都是局部的(k近鄰),全局近鄰模型吸取了矩陣分解模型的優點,從而可以得到更優的結果。這種模型可以使用隱式反饋,並且具有較好的實時性。重新定義預測函數:
七、因子分解近鄰模型:
可以對全局近鄰模進行因子分解以減少時間和空間複雜度,提高準確率:
可以發現最後的表示和SVD++很相似。
八、近鄰模型添加時間信息:
用戶的偏好是隨着時間不斷髮生變化的,\emph{如一個人喜歡的電影在2年前和2年後很可能是不同的}。在全局近鄰模型中可以很容易加入時間信息:
九、參考資料
Recommender Systems Handbook