機器學習(二十九)— 推薦算法(協調過濾)

  

  協同過濾的模型通常爲m個物品,m個用戶的數據,只有部分用戶和部分數據之間是有評分數據的,其它部分評分是空白,此時咱們要用已有的部分稀疏數據來預測那些空白的物品和數據之間的評分關係,找到最高評分的物品推薦給用戶。html

  通常來講,協同過濾推薦分爲三種類型。第一種是基於用戶(user-based)的協同過濾,第二種是基於項目(item-based)的協同過濾,第三種是基於模型(model based)的協同過濾算法

一、基於用戶(user-based)的協同過濾網絡

  主要考慮的是用戶和用戶之間的類似度,只要找出類似用戶喜歡的物品,並預測目標用戶對對應物品的評分,就能夠找到評分最高的若干個物品推薦給用戶。機器學習

  基於用戶的CF原理以下:學習

  • 一、分析各個用戶對item的評價(經過瀏覽記錄、購買記錄等);
  • 二、依據用戶對item的評價計算得出全部用戶之間的類似度
  • 三、選出與當前用戶最類似的N個用戶;
  • 四、將這N個用戶評價最高而且當前用戶又沒有瀏覽過的item推薦給當前用戶。

  舉個栗子,基於用戶的CF算法大體的計算流程以下:大數據

  (1)根據網站的記錄計算出一個用戶與item的關聯矩陣,即每一個用戶對商品的評分網站

  (2)計算用戶與用戶之間的類似度,使用餘弦距離,值越大說明越類似。spa

  (3)咱們要爲用戶1推薦物品,則找出與用戶1類似度最高的N名用戶(設N=2)評價的物品,去掉用戶1評價過的物品,則是推薦結果。3d

優缺點:orm

  • 優勢: 在數據集完善、內容豐富的條件下,可以得到較高的準確率,並且能避開Item Profile上的挖掘進行推薦,可以對物品的關聯性、用戶的偏好進行隱式透明的挖掘。

  • 缺點: 隨着系統用戶數量的增大,計算Top-K Relevance User的時間會顯著增加,使得該方法難以勝任用戶量變化巨大的系統;新用戶加入,打分記錄不多,難以準確計算Top-K Relevance User.

  1. 適用用戶較少的場合,不然用戶類似度矩陣計算代價很大。
  2. 適合時效性較強,用戶個性化興趣不太明顯的領域。
  3. 用戶有新行爲,不必定形成推薦結果的當即變化。
  4. 對新用戶不友好,對新物品友好,由於用戶類似度矩陣須要離線計算.
  5. 很難提供令用戶信服的推薦解釋。

二、基於項目(item-based)的協同過濾

  找到物品和物品之間的類似度,只有找到了目標用戶對某些物品的評分,那麼咱們就能夠對類似度高的相似物品進行預測,將評分最高的若干個類似物品推薦給用戶。好比,你在網上買了一本機器學習相關的書,網站立刻會推薦一堆機器學習,大數據相關的書給你,這裏就明顯用到了基於項目的協同過濾思想。

  基於物品的CF原理大同小異,只是主體在於物品:

  • 一、分析各個用戶對item的瀏覽記錄。
  • 二、依據瀏覽記錄分析得出全部item之間的類似度;
  • 三、對於當前用戶評價高的item,找出與之類似度最高的N個item;
  • 四、將這N個item推薦給用戶。

  優缺點:

  • 優勢:
    • 爲特殊興趣愛好的用戶進行推薦
    • 經過列出推薦項目的內容特徵,能夠解釋爲何推薦那些項目
    • 能推薦新的或不是很流行的項目,沒有新項目問題。
    • 不須要其它用戶的數據,沒有冷開始問題和稀疏問題。
    • 已有比較好的技術,如關於分類學習方面的技術已至關成熟。
  • 缺點:是要求內容能容易抽取成有意義的特徵,要求特徵內容有良好的結構性,而且用戶的口味必須可以用內容特徵形式來表達,不能顯式地獲得其它用戶的判斷狀況
  • 優勢: 計算簡單,容易實現實時響應。因爲Item被打分的變化劇烈程度低,,所以 Item 類似度的計算通常能夠採用離線完成、按期更新的方式,從而減小了線上計算;可解釋性好。

  • 缺點: :以物品爲基礎的系統過濾較少考慮用戶之間的差異,所以精
    度較 User-Based 方法稍微遜色一點;還有數據稀疏性(Sparsity)和冷啓動(Cold-Start)的問題。

  1. 適用於物品數明顯小於用戶數的場合,不然物品類似度矩陣計算代價很大。
  2. 適合長尾物品豐富,用戶個性化需求強的領域。
  3. 用戶有新行爲,必定致使推薦結果的實時變化。
  4. 對新用戶友好,對新物品不友好,由於物品類似度矩陣須要離線計算。
  5. 用用戶歷史行爲作推薦解釋,比較令用戶信服。

三、協同過濾(CF)算法確實簡單,並且不少時候推薦也是很準確的。然而它也存在一些問題:

  • 一、依賴於準確的用戶評分;
  • 二、在計算的過程當中,那些大熱的物品會有更大的概率被推薦給用戶;
  • 三、冷啓動問題。當有一名新用戶或者新物品進入系統時,推薦將無從依據;
  • 四、在一些item生存週期短(如新聞、廣告)的系統中,因爲更新速度快,大量item不會有用戶評分,形成評分矩陣稀疏,不利於這些內容的推薦。

優勢:

  1. 可以過濾難以進行機器自動內容分析的信息,如藝術品,音樂等。
  2. 可以發掘用戶的潛在興趣。
  3. 過濾掉一些複雜、難以表述的概念。

缺點:

  1. 不能實時推薦,必須有用戶行爲後(最初評價問題)。
  2. 用戶對商品的評價很是稀疏,這樣基於用戶的評價所獲得的用戶間的類似性可能不許確(即稀疏性問題)
  3. 冷啓動問題。

四、基於模型的協同過濾

  咱們的問題是這樣的m個物品,m個用戶的數據,只有部分用戶和部分數據之間是有評分數據的,其它部分評分是空白,此時咱們要用已有的部分稀疏數據來預測那些空白的物品和數據之間的評分關係,找到最高評分的物品推薦給用戶。

  對於這個問題,用機器學習的思想來建模解決,主流的方法能夠分爲:用關聯算法,聚類算法,分類算法,迴歸算法,矩陣分解,神經網絡,圖模型以及隱語義模型來解決。

(1)經常使用的關聯推薦算法有Apriori,FP Tree和PrefixSpan。

  通常咱們能夠找出用戶購買的全部物品數據裏頻繁出現的項集活序列,來作頻繁集挖掘,找到知足支持度閾值的關聯物品的頻繁N項集或者序列。若是用戶購買了頻繁N項集或者序列裏的部分物品,那麼咱們能夠將頻繁項集或序列裏的其餘物品按必定的評分準則推薦給用戶,這個評分準則能夠包括支持度,置信度和提高度等。

(2)經常使用的聚類推薦算法有K-Means, BIRCH, DBSCAN和譜聚類。

  用聚類算法作協同過濾就和前面的基於用戶或者項目的協同過濾有些相似了。咱們能夠按照用戶或者按照物品基於必定的距離度量來進行聚類。若是基於用戶聚類,則能夠將用戶按照必定距離度量方式分紅不一樣的目標人羣,將一樣目標人羣評分高的物品推薦給目標用戶。基於物品聚類的話,則是將用戶評分高物品的類似同類物品推薦給用戶。

(3)常見的分類推薦算法有邏輯迴歸和樸素貝葉斯,二者的特色是解釋性很強。

  若是咱們根據用戶評分的高低,將分數分紅幾段的話,則這個問題變成分類問題。好比最直接的,設置一份評分閾值,評分高於閾值的就是推薦,評分低於閾值就是不推薦,咱們將問題變成了一個二分類問題。雖然分類問題的算法多如牛毛,可是目前使用最普遍的是邏輯迴歸。爲啥是邏輯迴歸而不是看起來更加高大上的好比支持向量機呢?由於邏輯迴歸的解釋性比較強,每一個物品是否推薦咱們都有一個明確的機率放在這,同時能夠對數據的特徵作工程化,獲得調優的目的。目前邏輯迴歸作協同過濾在BAT等大廠已經很是成熟了。

(4)經常使用的迴歸推薦算法有Ridge迴歸,迴歸樹和支持向量迴歸。

  用迴歸算法作協同過濾比分類算法看起來更加的天然。咱們的評分能夠是一個連續的值而不是離散的值,經過迴歸模型咱們能夠獲得目標用戶對某商品的預測打分。

(5)矩陣分解

  用矩陣分解作協同過濾是目前使用也很普遍的一種方法。因爲傳統的奇異值分解SVD要求矩陣不能有缺失數據,必須是稠密的,而咱們的用戶物品評分矩陣是一個很典型的稀疏矩陣,直接使用傳統的SVD到協同過濾是比較複雜的。

  目前主流的矩陣分解推薦算法主要是SVD的一些變種,好比FunkSVD,BiasSVD和SVD++。這些算法和傳統SVD的最大區別是再也不要求將矩陣分解爲UΣVTUΣVT的形式,而變是兩個低秩矩陣PTQPTQ的乘積形式。

(6)用神經網絡乃至深度學習作協同過濾應該是之後的一個趨勢。目前比較主流的用兩層神經網絡來作推薦算法的是限制玻爾茲曼機(RBM)。在目前的Netflix算法比賽中, RBM算法的表現很牛。固然若是用深層的神經網絡來作協同過濾應該會更好,大廠商用深度學習的方法來作協同過濾應該是未來的一個趨勢。後續我會專門開篇來說講RBM。

(7)推薦系統新方向

  a) 基於集成學習的方法和混合推薦:這個和混合推薦也靠在一塊兒了。因爲集成學習的成熟,在推薦算法上也有較好的表現。一個可能取代邏輯迴歸的算法是GBDT。目前GBDT在不少算法比賽都有好的表現,而有工業級的並行化實現類庫。

  b)基於矩陣分解的方法:矩陣分解,因爲方法簡單,一直受到青睞。目前開始漸漸流行的矩陣分解方法有分解機(Factorization Machine)和張量分解(Tensor Factorization)。

  c) 基於深度學習的方法:目前兩層的神經網絡RBM都已經有很是好的推薦算法效果,而隨着深度學習和多層神經網絡的興起,之後可能推薦算法就是深度學習的天下了?目前看最火爆的是基於CNN和RNN的推薦算法。

 

 

參考:https://www.cnblogs.com/pinard/p/6349233.html

相關文章
相關標籤/搜索