核心是算法
推薦算法大致可以分為三類:基于內容的推薦算法、協同過濾推薦算法和基于知識的推薦算法。

1、基于內容的推薦算法,原理是用戶喜歡和自己關注過的Item在內容上類似的Item,比如你看了哈利波特I,基于內容的推薦算法發現哈利波特II-VI,與你以前觀看的在內容上面(共有很多關鍵詞)有很大關聯性,就把后者推薦給你,這種方法可以避免Item的冷啟動問題(冷啟動:如果一個Item從沒有被關注過,其他推薦算法則很少會去推薦,但是基于內容的推薦算法可以分析Item之間的關系,實現推薦),弊端在于推薦的Item可能會重復,典型的就是新聞推薦,如果你看了一則關于MH370的新聞,很可能推薦的新聞和你瀏覽過的,內容一致;另外一個弊端則是對于一些多媒體的推薦(比如音樂、電影、圖片等)由于很難提內容特征,則很難進行推薦,一種解決方式則是人工給這些Item打標簽。
2、協同過濾算法,原理是用戶喜歡那些具有相似興趣的用戶喜歡過的商品,比如你的朋友喜歡電影哈利波特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等,這種方法訓練過程比較長,但是訓練完成后,推薦過程比較快。
3、最后一種方法是基于知識的推薦算法,也有人將這種方法歸為基于內容的推薦,這種方法比較典型的是構建領域本體,或者是建立一定的規則,進行推薦。混合推薦算法,則會融合以上方法,以加權或者串聯、并聯等方式盡心融合。
當然,推薦系統還包括很多方法,其實機器學習或者數據挖掘里面的方法,很多都可以應用在推薦系統中,比如說LR、GBDT、RF(這三種方法在一些電商推薦里面經常用到),社交網絡里面的圖結構等,都可以說是推薦方法。