連接:http://www.zhihu.com/question/20326697/answer/58148605
推薦算法大體能夠分爲三類:基於內容的推薦算法、協同過濾推薦算法和基於知識的推薦算法。
基於內容的推薦算法,原理是用戶喜歡和本身關注過的Item在內容上相似的Item,好比你看了哈利波特I,基於內容的推薦算法發現哈利波特II-VI,與你之前觀看的在內容上面(共有不少關鍵詞)有很大關聯性,就把後者推薦給你,這種方法能夠避免Item的冷啓動問題(冷啓動:若是一個Item從沒有被關注過,其餘推薦算法則不多會去推薦,可是基於內容的推薦算法能夠分析Item之間的關係,實現推薦),弊端在於推薦的Item可能會重複,典型的就是新聞推薦,若是你看了一則關於MH370的新聞,極可能推薦的新聞和你瀏覽過的,內容一致;另一個弊端則是對於一些多媒體的推薦(好比音樂、電影、圖片等)因爲很難提內容特徵,則很難進行推薦,一種解決方式則是人工給這些Item打標籤。
協同過濾算法,原理是用戶喜歡那些具備類似興趣的用戶喜歡過的商品,好比你的朋友喜歡電影哈利波特I,那麼就會推薦給你,這是最簡單的基於用戶的協同過濾算法(user-based collaboratIve filtering),還有一種是基於Item的協同過濾算法(item-based collaborative filtering),這兩種方法都是將用戶的全部數據讀入到內存中進行運算的,所以成爲Memory-based Collaborative Filtering,另外一種則是Model-based collaborative filtering,包括Aspect Model,pLSA,LDA,聚類,SVD,Matrix Factorization等,這種方法訓練過程比較長,可是訓練完成後,推薦過程比較快。
最後一種方法是基於知識的推薦算法,也有人將這種方法歸爲基於內容的推薦,這種方法比較典型的是構建領域本體,或者是創建必定的規則,進行推薦。
混合推薦算法,則會融合以上方法,以加權或者串聯、並聯等方式盡心融合。
固然,推薦系統還包括不少方法,其實機器學習或者數據挖掘裏面的方法,不少均可以應用在推薦系統中,好比說LR、GBDT、RF(這三種方法在一些電商推薦裏面常常用到),社交網絡裏面的圖結構等,均可以說是推薦方法。
備註:推薦書籍《推薦系統實踐》