推薦算法總結

一、什麼是推薦算法

所謂推薦算法就是利用用戶的一些行爲,通過一些數學算法,推測出用戶可能喜歡的東西。
個性化推薦概念的首次出現是在1995年3月的美國人工智能協會上,由卡耐基梅隆大學的 Robert Armstrong
等提出了個性化導航系統 Web Watcher。同時,斯坦福大學的Marko balabanovic等也推出了LIRA——一個個性化推薦系統。自此之後,個性化推薦的研究開始蓬勃發展。

二、推薦算法的幾個條件

現在的各種各樣的推薦算法,但是不管怎麼樣,都繞不開幾個條件,這是推薦的基本條件:
1.根據和你共同喜好的人來給你推薦
2.根據你喜歡的物品找出和它相似的來給你推薦
3.根據你給出的關鍵字來給你推薦,這實際上就退化成搜索算法了
4.根據上面的幾種條件組合起來給你推薦

三、推薦算法的分類

推薦算法大致可以分爲三類:基於內容的推薦算法、協同過濾推薦算法和基於知識的推薦算法。
1、基於內容的推薦算法,原理是用戶喜歡和自己關注過的Item在內容上類似的Item,比如你看了哈利波特I,基於內容的推薦算法發現哈利波特II-VI,與你以前觀看的在內容上面(共有很多關鍵詞)有很大關聯性,就把後者推薦給你,這種方法可以避免Item的冷啓動問題(冷啓動:如果一個Item從沒有被關注過,其他推薦算法則很少會去推薦,但是基於內容的推薦算法可以分析Item之間的關係,實現推薦),弊端在於推薦的Item可能會重複,典型的就是新聞推薦,如果你看了一則關於MH370的新聞,很可能推薦的新聞和你瀏覽過的,內容一致;另外一個弊端則是對於一些多媒體的推薦(比如音樂、電影、圖片等)由於很難提內容特徵,則很難進行推薦,一種解決方式則是人工給這些Item打標籤。
2、基於協同過濾的推薦算法
協同過濾是一種在推薦系統中廣泛採用的推薦方法。這種算法基於一個“物以類聚,人以羣分”的假設,喜歡相同物品的用戶更有可能具有相同的興趣。基於協同過濾的推薦系統一般應用於有用戶評分的系統之中,通過分數去刻畫用戶對於物品的喜好。協同過濾被視爲利用集體智慧的典範,不需要對項目進行特殊處理,而是通過用戶建立物品與物品之間的聯繫。 目前,協同過濾推薦系統被分化爲兩種類型:基於用戶(User-based)的推薦和基於物品(Item-based)的推薦。
a.基於用戶(User-based)的推薦
基於用戶的協同過濾推薦的基本原理是,根據所有用戶對物品或者信息偏好(評分),發現與當前用戶口味和偏好相似的“鄰居”用戶羣,在一般應用中是採用計算K近鄰的算法;基於這 K個鄰居的歷史偏好信息,爲當前用戶進行推薦。 這種推薦系統的優點在於推薦物品之間在內容上可能完全不相關,因此可以發現用戶的潛在興趣,並且針對每個用戶生成其個性化的推薦結果。缺點在於一般的Web系統中,用戶的增長速度都遠遠大於物品的增長速度,因此其計算量的增長巨大,系統性能容易成爲瓶頸。因此在業界中單純的使用基於用戶的協同過濾系統較少。
在這裏插入圖片描述
b.基於物品(Item-based)的推薦
基於物品的協同過濾和基於用戶的協同過濾相似,它使用所有用戶對物品或者信息的偏好(評分),發現物品和物品之間的相似度,然後根據用戶的歷史偏好信息,將類似的物品推薦給用戶。基於物品的協同過濾可以看作是關聯規則推薦的一種退化,但由於協同過濾更多考慮了用戶的實際評分,並且只是計算相似度而非尋找頻繁集,因此可以認爲基於物品的協同過濾準確率較高並且覆蓋率更高。 同基於用戶的推薦相比,基於物品的推薦應用更爲廣泛,擴展性和算法性能更好。由於項目的增長速度一般較爲平緩,因此性能變化不大。缺點就是無法提供個性化的推薦結果。
在這裏插入圖片描述
兩種協同過濾:基於用戶和基於物品兩個策略中應該如何選擇呢?其實基於物品的協同過濾推薦機制是Amazon 在基於用戶的機制上改良的一種策略,因爲在大部分的Web 站點中,物品的個數是遠遠小於用戶的數量的,而且物品的個數和相似度相對比較穩定;同時基於物品的機制比基於用戶的實時性更好。但也不是所有的場景都是這樣的情況,在一些新聞推薦系統中,也許物品,也就是新聞的個數可能大於用戶的個數,而且新聞的更新程度也有很快,所以它的相似度依然不穩定。所以,推薦策略的選擇其實也和具體的應用場景有很大的關係。
基於協同過濾的推薦機制是現今應用最爲廣泛的推薦機制,它有以下幾個顯著的優點:
它不需要對物品或者用戶進行嚴格的建模,而且不要求物品的描述是機器可以理解的,所以這種方法也是領域無關的。
這種方法計算出來的推薦是開放的,可以共用他人的經驗,很好的支持用戶發現潛在的興趣偏好。
然後而它也存在以下幾個缺點:
a、方法的核心是基於歷史數據,所以對新物品和新用戶都有“冷啓動”的問題。
b、推薦的效果依賴於用戶歷史偏好數據的多少和準確性。
c、在大部分的實現中,用戶歷史偏好是用稀疏矩陣進行存儲的,而稀疏矩陣上的計算有些明顯的問題,包括可能少部分人的錯誤偏好會對推薦的準確度有很大的影響等等。
d、對於一些特殊品味的用戶不能給予很好的推薦。
e、由於以歷史數據爲基礎,抓取和建模用戶的偏好後,很難利用獲取的用戶偏好演變,從而導致這個方法不夠靈活。
3、 基於關聯規則的推薦算法
基於關聯規則的推薦更常見於電子商務系統中,並且也被證明行之有效。其實際的意義爲購買了一些物品的用戶更傾向於購買另一些物品。基於關聯規則的推薦系統的首要目標是挖掘出關聯規則,也就是那些同時被很多用戶購買的物品集合,這些集合內的物品可以相互進行推薦。目前關聯規則挖掘算法主要從Apriori和FP-Growth兩個算法發展演變而來。 基於關聯規則的推薦系統一般轉化率較高,因爲當用戶已經購買了頻繁集合中的若干項目後,購買該頻繁集合中其他項目的可能性更高。
該機制的缺點如下:
1.計算量較大,但是可以離線計算,因此影響不大。 2.由於採用用戶數據,不可避免的存在冷啓動和稀疏性問題。 3.存在熱門項目容易被過度推薦的問題。
4、基於模型的推薦算法
基於模型的方法有很多,主要是使用常用的機器學習算法對目標用戶建立推薦算法模型,然後對用戶的愛好進行預測推薦以及對推薦的結果打分排序等。 常用的模型包括Aspect Model,pLSA,LDA,聚類,SVD,Matrix Factorization,LR,GBDT等,這種方法訓練過程比較長,但是訓練完成後,推薦過程比較快且準確。因此它比較適用於實時性比較高的業務如新聞、廣告等。當然,而若是需要這種算法達到更好的效果,則需要人工干預反覆的進行屬性的組合和篩選,也就是我們常說的 特徵工程。而由於新聞的時效性,系統也需要反覆更新線上的數學模型,以適應變化。

5、 混合推薦算法
真正的現實應用中,其實基本上很少會使用單一的推薦算法去實現推薦任務。因此,大型成熟網站的推薦系統都是基於各種推薦算法的優缺點以及適合場景分析的情況下的組合使用的“混合算法”。當然,混合策略也會是十分豐富的,例如不同策略的算法加權、不同場景和階段使用不同的算法等等。具體的怎麼混合需要結合實際的應用場景進行分析與應用。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章