這是我學習推薦系統的筆記,主要參考的是51cto的一系列文章和人們郵電出版的《推薦系統實踐》。
首先說一下什麼是協同過濾。假如某寶要向你推薦一些商品,當然這些商品不是隨隨便便推薦的,推給你了就是引誘你去買,咱能賺到錢。那麼什麼樣的商品你有可能去買呢?系統或演算法怎麼找到這些商品呢?
協同過濾就是幹這個的。協同過濾的思想是:利用已有的使用者的歷史的行為或意見,**當前使用者最可能喜歡哪些東西。
純粹的協同方法的資料是給定的user-item評分矩陣,輸出(1)使用者對某物品的喜歡程度評分**值,或(2)topn推薦物品list。
來看例子:
主要思想:首先,給定乙個評分資料集和當前(活躍)使用者的id作為輸入,找出與當前使用者過去有相似偏好的其他使用者,這些使用者有時也被稱為對等使用者或最近鄰;然後,對當前使用者沒有見過的每個產品p,利用其近鄰對p的評分計算**值。這種方法的潛在假設是:(1) 如果使用者過去有相似的偏好,那麼他們未來也會有相似的偏好;(2) 使用者偏好不會隨時間而變化。
現有評分資料如下:
\item 1
item 2
item 3
item 4
item5
alice53
44?user 131
233user 243
435user 333
154user 415
521
現在來**alice對item5的評分。
1.計算使用者間的相似度,使用pearson相關係數。
一般來說,最基礎的相似度大多用的是類似余弦計算的。pearson相關係數,只是把各使用者的評分習慣考慮進去了–有人習慣給高分,有人習慣給低分。pearson通過減去各人的平均均值降低了使用者的評分習慣差異。
pearson相關係數取值從+1(強正相關)到 1(強負相關)。alice和其他使用者,即使用者2使用者3和使用者4的相似度分別為0.70、0.00和-0.79。
2.計算**評分
從使用者相似度可以看出,user1和user2的偏好與alice相近(knn,k=2),所以我們用這兩個使用者對item5的評分**alice對item5的評分。
這個公式也很巧妙,首先是可考慮了使用者自身的評分習慣;然後對最近林使用者的評分既有加權處理,又有歸一化處理!
這樣得來alice對item5的評分:
這裡的演算法很基本,不可避免的存在一些問題,最重要的就是相似度計算時的問題。用user-item評分直接計算使用者相似度,簡化和忽略了一些情況,比如:使用者對熱門物品的評分一般都比較高,然而這並不能代表使用者間具有較高相似性;再有k的選擇問題,例子中比較簡單,因為alice與其它三個使用者的相似度很低甚至是負,直接沒有考慮,這是比較特殊的情況,在實際中k的選擇也是值得研究的。
這裡同樣有一些問題:首先,熱門物品會與所有物品有較高的相似度;最近鄰k的選擇。
推薦系統 協同過濾演算法
協同過濾,collaborative filtering,簡稱cf,廣泛應用於如今的推薦系統中。通過協同過濾演算法,可以算出兩個相似度 user user相似度矩陣 item item相似度矩陣。為什麼叫做協同過濾?是因為這兩個相似度矩陣是通過對方來計算出來的。舉個栗子 100個使用者同時購買了兩種...
推薦系統之協同過濾
協同過濾 collaborative filtering,簡稱cf 是目前最為流行的推薦演算法,它是根據具有相同興趣與生活經驗的群體的共同愛好推薦與使用者需求相符合的商品。在推薦過程中 cf演算法首先將使用者對於專案的評分矩陣作為輸入,輸入資料通過 cf 演算法計算出使用者或者專案的相似度,生成推薦...
推薦系統 協同過濾演算法
推薦系統構建三大方法 基於內容的推薦content based,協同過濾collaborative filtering,隱語義模型 lfm,latent factor model 推薦。這篇部落格主要講協同過濾。推薦系統 協同過濾collaborative filtering 協同過濾 collab...