1. 程式人生 > >什麼是推薦演算法和主要方法

什麼是推薦演算法和主要方法

在現今的推薦技術和演算法中,最被大家廣泛認可和採用的就是基於協同過濾的推薦方法。

標題 ##1. 什麼是推薦演算法

推薦演算法最早在1992年就提出來了,但是火起來實際上是最近這些年的事情,因為網際網路的爆發,有了更大的資料量可以供我們使用,推薦演算法才有了很大的用武之地。

最開始,所以我們在網上找資料,都是進yahoo,然後分門別類的點進去,找到你想要的東西,這是一個人工過程,到後來,我們用google,直接搜尋自己需要的內容,這些都可以比較精準的找到你想要的東西,但是,如果我自己都不知道自己要找什麼腫麼辦?最典型的例子就是,如果我開啟豆瓣找電影,或者我去買說,我實際上不知道我想要買什麼或者看什麼,這時候推薦系統就可以派上用場了。

2. 推薦演算法的條件

現在的各種各樣的推薦演算法,但是不管怎麼樣,都繞不開幾個條件,這是推薦的基本條件

1.根據和你共同喜好的人來給你推薦
2.根據你喜歡的物品找出和它相似的來給你推薦
3.根據你給出的關鍵字來給你推薦,這實際上就退化成搜尋演算法了
4.根據上面的幾種條件組合起來給你推薦

3. 推薦演算法分類

推薦演算法大致可以分為三類:

3.1 基於內容的推薦演算法

基於內容的推薦演算法,原理是使用者喜歡和自己關注過的Item在內容上類似的Item,比如你看了哈利波特I,基於內容的推薦演算法發現哈利波特II-VI,與你以前觀看的在內容上面(共有很多關鍵詞)有很大關聯性,就把後者推薦給你,這種方法可以避免Item的冷啟動問題(冷啟動:如果一個Item從沒有被關注過,其他推薦演算法則很少會去推薦,但是基於內容的推薦演算法可以分析Item之間的關係,實現推薦),弊端在於推薦的Item可能會重複,典型的就是新聞推薦,如果你看了一則關於MH370的新聞,很可能推薦的新聞和你瀏覽過的,內容一致;另外一個弊端則是對於一些多媒體的推薦(比如音樂、電影、圖片等)由於很難提內容特徵,則很難進行推薦,一種解決方式則是人工給這些Item打標籤。

3.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.3基於知識的推薦演算法。
最後一種方法是基於知識的推薦演算法,也有人將這種方法歸為基於內容的推薦,這種方法比較典型的是構建領域本體,或者是建立一定的規則,進行推薦。 混合推薦演算法,則會融合以上方法,以加權或者串聯、並聯等方式盡心融合。 當然,推薦系統還包括很多方法,其實機器學習或者資料探勘裡面的方法,很多都可以應用在推薦系統中,比如說LR、GBDT、RF(這三種方法在一些電商推薦裡面經常用到),社交網路裡面的圖結構等,都可以說是推薦方法。