擴充套件閱讀
**這篇**是07年的,是傳統的方法中比較經典的**了.他論述了現在推薦的問題,評分矩陣的稀疏性,以及資料量的逐漸增加,最好的總結請看pmf,這位博主總結的比較全面,該博文從問題定義,以及問題解決思路都進行了很好地說明。了解**中公式的解釋請參考原理,**中詳細的推導過程可以參考pmf推導。
這些總結的都很好,因此對本**的解讀的話參考以上博主即可。
首先對最大似然估計和最大後驗概率,
由於該**提到了svd,在這裡把svd和pmf做乙個簡單的對比:
使用相鄰使用者來**評分:
使用相鄰物品來**評分則與使用相鄰使用者類似。不再贅述當要**的使用者-物品評分項在訓練集中時,使用 svd 降維後的使用者特徵集計算得到最相似的使用者,得到評分。
當要**的使用者-物品評分項不在訓練集中時,需要先對使用者的特徵向量進行維度變換 ,變換到使用 svd 降維
後的空間中去,然後再計算得到最相似的使用者,得到評分。
之前的svd存在乙個問題,即在矩陣分解的時候需要先對原始評分矩陣進行補全,補全方法有很多選擇,比如平均值什麼的。問題是當使用者數與物品數比較大後,補全後的矩陣的svd分解複雜度是驚人的。因而才有了現在的新的new -svd方法,new-svd將使用者和物品都在乙個k維的隱式特徵空間表示。顯式特徵空間則是對使用者來說,是使用者對每個物品的評分組成的評分向量;對物品來說,其顯式特徵空間則是每個使用者對它的評分組成的向量。顯然,k應該比物品數和使用者數的最小值還要小很多,從而才能達到降維的效果。
使用者對物品的評分就可以表示成使用者的隱式特徵向量與物品的隱式特徵向量的內積:
r i,
j^=u
utvi
\hat}=u^t_uv_i
ri,j^
=uu
tvi
該方法可以使用隨機梯度下降演算法求解,大大降低了計算量與計算難度。其實與之前的svd並沒有太大區別,即使用隱式特徵向量計算使用者或物品的相似度進行評分**;對於新使用者或新物品,要先降維到隱式空間再進行計算。
其實對於svd本質上來說是它一種特殊的pmf。pmf其實是在new -svd上新增了概率分布。其假設使用者和物品的latent factor vector服從高斯先驗分布,還假設已觀測到的評分資料條件概率也服從高斯先驗分布。
關於pmf和svd的聯絡,下面總結的很到位(個人意見):
pmf 是從概率生成過程的角度來解釋 user 和 item 的 latent factor,svd 是從優化目標出發,如何確定 user 和 item 的 latent factor 可以使得 loss 最少。兩者解釋的方式不一樣,但 pmf 的 mle(極大似然估計) 與優化帶正則項的 svd 的 loss function 是等價的。如果從優化和實現的角度來講,兩者木有什麼區別。
bpmf
dpmf
還未總結過幾天更新!!!!
推薦系統學習筆記
完整的資訊流推薦系統 到業務前台的推薦系統的召回 粗排以及精排等推薦環節,召回層面,目前已實現大規模fm統一召回模型,正逐步替代傳統的多路召回模型,並在各項指標取得了非常明顯的業務效果。召回階段,採用模型統一召回代替傳統的多路召回是個比較明顯的趨勢。四個環節分別是 召回 粗排 精排和重排。模型召回 ...
推薦系統學習筆記 推薦系統現存問題
單純以使用者和專案為驅動的推薦引擎並不能滿足相關使用者的實際需要,使用者在實際購買之中往往會結合自己的實際需要以及社交網路的推薦來做選擇 傳統的推薦演算法往往帶有很嚴重的 馬太效應 推薦的商品往往是熱門的商品,導致熱門的商品更加熱門,而處在 長尾分布 上的商品仍然得不到重視。因此,將社交網路與個性化...
推薦系統學習之評測指標
1.處理資料集 將使用者行為資料集按照均勻分布隨機分成m份,挑選乙份作為測試集,剩下的m 1份作為訓練集 import random def splitdata data,m,k,seed test train random.seed seed for user,item in data if ra...