機器學習實戰項目- 推薦系統

背景與挖掘目標

隨著互聯網的快速發展,用戶很難快速從海量信息中尋找到自己感興趣的信息。因此誕生了:搜索引擎+推薦系統

本章節-推薦系統:

  1. 幫助用戶發現其感興趣和可能感興趣的信息。
  2. 讓網站價值信息脫穎而出,得到廣大用戶的認可。
  3. 提高用戶對網站的忠誠度和關注度,建立穩固用戶群體。

分析方法與過程

本案例的目標是對用戶進行推薦,即以一定的方式將用戶與物品(本次指網頁)之間建立聯繫。

由於用戶訪問網站的數據記錄很多,如果不對數據進行分類處理,對所有的記錄直接採用推薦系統進行推薦,這樣會存在一下問題。

  1. 數據量太大意味著物品數與用戶數很多,在模型構建用戶與物品稀疏矩陣時,出現設備內存空間不夠的情況,並且模型計算需要消耗大量的時間。
  2. 用戶區別很大,不同的用戶關注的信息不一樣,因此,即使能夠得到推薦結果,其效果也會不好。

為了避免出現上述問題,需要進行分類處理與分析。

正常的情況下,需要對用戶的興趣愛好以及需求進行分類。 因為在用戶訪問記錄中,沒有記錄用戶訪問頁面時間的長短,因此不容易判斷用戶興趣愛好。 因此,本文根據用戶瀏覽的網頁信息進行分析處理,主要採用以下方法處理:以用戶瀏覽網頁的類型進行分類,然後對每個類型中的內容進行推薦。

分析過程如下:

  • 從系統中獲取用戶訪問網站的原始記錄。
  • 對數據進行多維分析,包括用戶訪問內容,流失用戶分析以及用戶分類等分析。
  • 對數據進行預處理,包含數據去重、數據變換和數據分類鞥處理過程。
  • 以用戶訪問html後綴的頁面為關鍵條件,對數據進行處理。
  • 對比多種推薦算法進行推薦,通過模型評價,得到比較好的智能推薦模型。通過模型對樣本數據進行預測,獲得推薦結果。

主流推薦算法

推薦方法描述基於內容推薦協同過濾推薦基於規則推薦基於效用推薦基於知識推薦組合推薦

機器學習實戰項目- 推薦系統

基於知識推薦

基於知識的推薦(Knowledge-based Recommendation)在某種程度是可以看成是一種推理(Inference)技術,它不是建立在用戶需要和偏好基礎上推薦的。基於知識的方法因它們所用的功能知識不同而有明顯區別。效用知識(Functional Knowledge)是一種關於一個項目如何滿足某一特定用戶的知識,因此能解釋需要和推薦的關係,所以用戶資料可以是任何能支持推理的知識結構,它可以是用戶已經規範化的查詢,也可以是一個更詳細的用戶需要的表示。

機器學習實戰項目- 推薦系統

協同過濾推薦

  • memory-based推薦
  • Item-based方法
  • User-based方法
  • Memory-based推薦方法通過執行最近鄰搜索,把每一個Item或者User看成一個向量,計算其他所有Item或者User與它的相似度。有了Item或者User之間的兩兩相似度之後,就可以進行預測與推薦了。
  • model-based推薦
  • Model-based推薦最常見的方法為Matrix factorization.
  • 矩陣分解通過把原始的評分矩陣R分解為兩個矩陣相乘,並且只考慮有評分的值,訓練時不考慮missing項的值。R矩陣分解成為U與V兩個矩陣後,評分矩陣R中missing的值就可以通過U矩陣中的某列和V矩陣的某行相乘得到
  • 矩陣分解的目標函數: U矩陣與V矩陣的可以通過梯度下降(gradient descent)算法求得,通過交替更新u與v多次迭代收斂之後可求出U與V。
  • 矩陣分解背後的核心思想,找到兩個矩陣,它們相乘之後得到的那個矩陣的值,與評分矩陣R中有值的位置中的值儘可能接近。這樣一來,分解出來的兩個矩陣相乘就儘可能還原了評分矩陣R,因為有值的地方,值都相差得儘可能地小,那麼missing的值通過這樣的方式計算得到,比較符合趨勢。
  • 協同過濾中主要存在如下兩個問題:稀疏性與冷啟動問題。已有的方案通常會通過引入多個不同的數據源或者輔助信息(Side information)來解決這些問題,用戶的Side information可以是用戶的基本個人信息、用戶畫像信息等,而Item的Side information可以是物品的content信息等。

效果評估

  1. 召回率和準確率 【人為統計分析】
  2. F值(P-R曲線) 【偏重:非均衡問題】
  3. ROC和AUC 【偏重:不同結果的對比】

來源:片刻 / ApacheCN ,只作分享,不作任何商業用途,版權歸原作者所有


分享到:


相關文章: