Mahout的推薦系統


 

 

 

 

Mahout的推薦系統

  • 什么是推薦系統
  • 為什使用推薦系統
  • 推薦系統中的算法

 

 

 

 

 

 

 

 

 

什么是推薦系統

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

為什么使用推薦系統?

  促進廠商商品銷售,幫助用戶找到想要的商品

  推薦系統無處不在,體現在生活的各個方面

  圖書推薦;QQ好友推薦;優酷,愛奇藝的視頻推薦;豆瓣的音樂推薦;大從點評的餐飲推薦;世紀佳緣的相親推薦;智聯招聘的職業推薦。

  亞馬遜的推薦系統深入到網站的各類商品,為亞馬遜帶來了至少30%的銷售額。

 

 

 

 

 

 

 

 

推薦引擎工作原理

 

 

 

 


  推薦系統主要向用戶推薦可能感興趣商品的系統。系統會給用戶以TopN推薦給用戶商品。

  系統主要使用的數據是用戶的歷史商品購買記錄,這部分數據存放在公司的數據庫中。

 

 

 

 

 

 

 

 

Mahout的推薦系統整體架構

      

 

 

 

 

 

 

 


推薦系統的實現

 推薦系統中的算法

  • Apriori算法
  • 基於用戶
  • 基於內容
  • 基於協同過濾(用的最多

 

 

 

 

Apriori算法-購物籃分析(關聯分析)

  “啤酒與尿布”的故事產生於20世紀90年代的美國沃爾瑪超市。沃爾瑪的超市管理人員分析銷售數據時發現了一個令人難於理解的現象:在某些特定的情況下,“啤酒”與“尿布”兩件看上去毫無關系的商品會經常出現在同一個購物籃中,這種獨特的銷售現象引起了管理人員的注意,經過后續調查發現。
  原來,美國的婦女通常在家照顧孩子,所以她們經常會囑咐丈夫在下班回家的路上為孩子買尿布,而丈夫在買尿布的同時又會順手購買自己愛喝的啤酒。這樣就會出現啤酒與尿布這兩件看上去不相干的商品經常會出現在同一個購物籃的現象。
  這個發現為商家帶來了大量的利潤,但是如何從浩如煙海卻又雜亂無章的數據中,發現啤酒和尿布銷售之間的聯系呢?

 

 

 

 

Apriori算法的產生

  1993年美國學者Agrawal提出通過分析購物籃中的商品集合,從而找出商品之間關聯關系的關聯算法,並根據商品之間的關系,找出客戶的購買行為。Agrawal從數學及計算機算法角度提出了商品關聯關系的計算方法——Apriori算法。
  沃爾瑪從上個世紀90年代嘗試將Aprior算 法引入到POS機數據分析中,並獲得了成功,於是產生了“啤酒與尿布”的故事。

 

 

 

 


Apriori算法

如何尋找?
  在歷史購物記錄中,一些商品總是在一起購買。但人看上去不是那么的直觀的,而是隱蔽的。讓計算機做這事,設法計算法讓計算機自動去找,找到這樣的模式(規律)。

目標:尋找那些總是一起出現商品。
  mahout實戰—>機器學習實戰

  mahout實戰》與《機器學習實戰》一起購買的記錄數占所有商品記錄總數的比例——支持度(整體)
  買了《mahout實戰》與《機器學習實戰》一起購買的記錄數占所有購買《mahout實戰》記錄數的比例——置信度(局部)
需要達到一定的閾值

 

 

  支持度、置信度越大,商品出現一起購買的次數就越多,可信度就越大。

支持度:在所有的商品記錄中有2%量是購買《mahout實戰》與《機器學習實戰》
置信度:買《mahout實戰》的顧客中有60%的顧客購買了《機器學習實戰》

  作用:找到商品購買記錄中反復一起出現的商品,幫能助營銷人員做更好的策略,幫助顧客方便購買。

  策略:
    1、同時購買的商品放一起
    2、同時購買的商品放兩端

 

 

 

 

支持度、置信度轉化為數學語言進行計算:
  A表示《mahout實戰》 B表示《機器學習實戰》

support(A->B) = P(AB) (《mahout實戰》和《機器學習實戰》一起買占總的購買記錄的比例)
confidence(A->B) = P(B|A) (購買了《mahout實戰》后,買《機器學習實戰》占的比例)

項集:項的集合稱為項集,即商品的組合。
k項集:k種商品的組合,不關心商品件數,僅商品的種類。
項集頻率:商品的購買記錄數,簡稱為項集頻率,支持度計數。
注意,定義項集的支持度有時稱為相對支持度,而出現的頻率(比例)稱為絕對支持度。
頻繁項集:如果項集的相對支持度滿足給定的最小支持度閾值,則該項集是頻繁項集。
強關聯規則:滿足給定支持度和置信度閾值的關聯規則

 

 

 

 

 

 

A=>B的置信度可以由A於A U B的支持度計數計算推出。滿足最小支持度計數的項集為頻繁項集。
找關聯規則問題,歸結為找頻繁項集。
注意:A=>B,B=>A的不同

 

 

 

 

 

 

明確問題

  1、找出總是在一起出現的商品組合
  2、提出衡量標准支持度、置信度(達到一定的閾值)
  3、給出支持度、置信度直觀計算方法
  4、得出在計算方法中起決定因素的是頻繁項集
  5、由頻繁項集輕松找到強關聯規則

 

找關聯規則--------->找頻繁項集
  步驟:
    1. 找出所有的頻繁項集;這個項集出現的次數至少與要求的最小計數一樣。如在100次購買記錄中,至少一起出現30次。
    2. 由頻繁項集產生強關聯規則;這些關聯規則滿足最小支持度與最小置信度。

 

 

 

 

Apriori算法

  先驗性質:頻繁項集的所有非空子集也一定是頻繁的。

  逆否命題:若一個項集是非頻繁的,則它的任何超集也是非頻繁的

 

 

 

 

 

 

 

 

 

 

 

 

 


Apriori挑戰

挑戰
  多次數據庫掃描
  巨大數量的候補項集
  繁瑣的支持度計算

改善Apriori: 基本想法
   減少掃描數據庫的次數
  減少候選項集的數量
   簡化候選項集的支持度計算
FPGROWTH算法(有名)

 

 

 

 

 

 

基於用戶的推薦技術

 

 

 

 

 

 

基於內容(物品)的推薦技術

 

 

 

 

 

 

 

 

 

 

 協同過濾推薦技術

  協同
    指協調兩個或者兩個以上的不同資源或者個體,協同一致地完成某一目標的過程或能力。

  原理
    協同過濾技術是基於用戶對項目的歷史偏好,發掘項目之間的相關性,或者是發掘用戶間的相關性,根據這些相關性進行推薦。

  類別
    基於用戶的協同過濾推薦 Uesr_CF
    基於物品的協同過濾推薦 Item_CF

 

 

 

 

 

 

基於用戶的協同過濾推薦技術

 

 

 

 

 

 基於物品的協同過濾推薦技術(評分)

 

 

 

 

 

 實現協同過濾的步驟

  1、收集用戶偏好

  2、找到相似的用戶或物品

  3、計算推薦

 

 

 

 

 

 

 

收集用戶偏好的方法(評分)

 

 

 

 每行3個字段,依次是用戶ID,物品ID,用戶對物品的評分(0-5分,每0.5分為一個評分點!)

 

 

 

 

 

 

 計算相似性

用戶,物品,評分
  什么人喜歡什么,以及程度

相似性的度量

  歐氏距離相似度
  皮爾森相似度
  余弦相似度
  秩相關系數相似度
  曼哈頓距離相似度
  對數似然相似度

 

 

 

 

 

歐氏距離相似度計算

 

 

 

 

 

 

 

 

 

 

 

 

協同過濾推薦,一般要做好以下幾個步驟:

  1)收集用戶偏好
  通過用戶的行為諸如評分,投票,轉發,保存,書簽,標記,評論,點擊流,頁面停留時間,是否購買等獲得。所有這些信息都數字化,用一個二維矩陣表示出來。

  2)數據減噪與歸一化操作
  用戶偏好的二維矩陣,一維是用戶列表,另一維是物品列表,值是用戶對物品的偏好,一般是 [0,1] 或者 [-1, 1] 的浮點數值。

  3)找相似的用戶和物品,計算相似用戶或相似物品的相似度。

  4)根據相似度作為用戶、物品的協同過濾推薦。

 

 

 

 

 

 


總結

 

 

 

 

 

 

 

Apriori

      

 

 

 

 

 

 

 

協同過濾

          

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM