Mahout的推荐系统
?
?
?
?
Mahout的推薦系統(tǒng)
- 什么是推薦系統(tǒng)
- 為什使用推薦系統(tǒng)
- 推薦系統(tǒng)中的算法
?
?
?
?
?
?
?
?
?
什么是推薦系統(tǒng)
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
為什么使用推薦系統(tǒng)?
促進(jìn)廠商商品銷售,幫助用戶找到想要的商品
推薦系統(tǒng)無處不在,體現(xiàn)在生活的各個(gè)方面
圖書推薦;QQ好友推薦;優(yōu)酷,愛奇藝的視頻推薦;豆瓣的音樂推薦;大從點(diǎn)評(píng)的餐飲推薦;世紀(jì)佳緣的相親推薦;智聯(lián)招聘的職業(yè)推薦。
亞馬遜的推薦系統(tǒng)深入到網(wǎng)站的各類商品,為亞馬遜帶來了至少30%的銷售額。
?
?
?
?
?
?
?
?
推薦引擎工作原理
?
?
?
?
推薦系統(tǒng)主要向用戶推薦可能感興趣商品的系統(tǒng)。系統(tǒng)會(huì)給用戶以TopN推薦給用戶商品。
系統(tǒng)主要使用的數(shù)據(jù)是用戶的歷史商品購(gòu)買記錄,這部分?jǐn)?shù)據(jù)存放在公司的數(shù)據(jù)庫(kù)中。
?
?
?
?
?
?
?
?
Mahout的推薦系統(tǒng)整體架構(gòu)
?
?
?
?
?
?
?
推薦系統(tǒng)的實(shí)現(xiàn)
推薦系統(tǒng)中的算法
- Apriori算法
- 基于用戶
- 基于內(nèi)容
- 基于協(xié)同過濾(用的最多)
?
?
?
?
Apriori算法-購(gòu)物籃分析(關(guān)聯(lián)分析)
“啤酒與尿布”的故事產(chǎn)生于20世紀(jì)90年代的美國(guó)沃爾瑪超市。沃爾瑪?shù)某泄芾砣藛T分析銷售數(shù)據(jù)時(shí)發(fā)現(xiàn)了一個(gè)令人難于理解的現(xiàn)象:在某些特定的情況下,“啤酒”與“尿布”兩件看上去毫無關(guān)系的商品會(huì)經(jīng)常出現(xiàn)在同一個(gè)購(gòu)物籃中,這種獨(dú)特的銷售現(xiàn)象引起了管理人員的注意,經(jīng)過后續(xù)調(diào)查發(fā)現(xiàn)。
原來,美國(guó)的婦女通常在家照顧孩子,所以她們經(jīng)常會(huì)囑咐丈夫在下班回家的路上為孩子買尿布,而丈夫在買尿布的同時(shí)又會(huì)順手購(gòu)買自己愛喝的啤酒。這樣就會(huì)出現(xiàn)啤酒與尿布這兩件看上去不相干的商品經(jīng)常會(huì)出現(xiàn)在同一個(gè)購(gòu)物籃的現(xiàn)象。
這個(gè)發(fā)現(xiàn)為商家?guī)砹舜罅康睦麧?rùn),但是如何從浩如煙海卻又雜亂無章的數(shù)據(jù)中,發(fā)現(xiàn)啤酒和尿布銷售之間的聯(lián)系呢?
?
?
?
?
Apriori算法的產(chǎn)生
1993年美國(guó)學(xué)者Agrawal提出通過分析購(gòu)物籃中的商品集合,從而找出商品之間關(guān)聯(lián)關(guān)系的關(guān)聯(lián)算法,并根據(jù)商品之間的關(guān)系,找出客戶的購(gòu)買行為。Agrawal從數(shù)學(xué)及計(jì)算機(jī)算法角度提出了商品關(guān)聯(lián)關(guān)系的計(jì)算方法——Apriori算法。
沃爾瑪從上個(gè)世紀(jì)90年代嘗試將Aprior算 法引入到POS機(jī)數(shù)據(jù)分析中,并獲得了成功,于是產(chǎn)生了“啤酒與尿布”的故事。
?
?
?
?
Apriori算法
如何尋找?
在歷史購(gòu)物記錄中,一些商品總是在一起購(gòu)買。但人看上去不是那么的直觀的,而是隱蔽的。讓計(jì)算機(jī)做這事,設(shè)法計(jì)算法讓計(jì)算機(jī)自動(dòng)去找,找到這樣的模式(規(guī)律)。
目標(biāo):尋找那些總是一起出現(xiàn)商品。
mahout實(shí)戰(zhàn)—>機(jī)器學(xué)習(xí)實(shí)戰(zhàn)
《mahout實(shí)戰(zhàn)》與《機(jī)器學(xué)習(xí)實(shí)戰(zhàn)》一起購(gòu)買的記錄數(shù)占所有商品記錄總數(shù)的比例——支持度(整體)
買了《mahout實(shí)戰(zhàn)》與《機(jī)器學(xué)習(xí)實(shí)戰(zhàn)》一起購(gòu)買的記錄數(shù)占所有購(gòu)買《mahout實(shí)戰(zhàn)》記錄數(shù)的比例——置信度(局部)
需要達(dá)到一定的閾值
?
?
支持度、置信度越大,商品出現(xiàn)一起購(gòu)買的次數(shù)就越多,可信度就越大。
支持度:在所有的商品記錄中有2%量是購(gòu)買《mahout實(shí)戰(zhàn)》與《機(jī)器學(xué)習(xí)實(shí)戰(zhàn)》
置信度:買《mahout實(shí)戰(zhàn)》的顧客中有60%的顧客購(gòu)買了《機(jī)器學(xué)習(xí)實(shí)戰(zhàn)》
作用:找到商品購(gòu)買記錄中反復(fù)一起出現(xiàn)的商品,幫能助營(yíng)銷人員做更好的策略,幫助顧客方便購(gòu)買。
策略:
1、同時(shí)購(gòu)買的商品放一起
2、同時(shí)購(gòu)買的商品放兩端
?
?
?
?
支持度、置信度轉(zhuǎn)化為數(shù)學(xué)語言進(jìn)行計(jì)算:
A表示《mahout實(shí)戰(zhàn)》 B表示《機(jī)器學(xué)習(xí)實(shí)戰(zhàn)》
support(A->B) = P(AB) (《mahout實(shí)戰(zhàn)》和《機(jī)器學(xué)習(xí)實(shí)戰(zhàn)》一起買占總的購(gòu)買記錄的比例)
confidence(A->B) = P(B|A) (購(gòu)買了《mahout實(shí)戰(zhàn)》后,買《機(jī)器學(xué)習(xí)實(shí)戰(zhàn)》占的比例)
項(xiàng)集:項(xiàng)的集合稱為項(xiàng)集,即商品的組合。
k項(xiàng)集:k種商品的組合,不關(guān)心商品件數(shù),僅商品的種類。
項(xiàng)集頻率:商品的購(gòu)買記錄數(shù),簡(jiǎn)稱為項(xiàng)集頻率,支持度計(jì)數(shù)。
注意,定義項(xiàng)集的支持度有時(shí)稱為相對(duì)支持度,而出現(xiàn)的頻率(比例)稱為絕對(duì)支持度。
頻繁項(xiàng)集:如果項(xiàng)集的相對(duì)支持度滿足給定的最小支持度閾值,則該項(xiàng)集是頻繁項(xiàng)集。
強(qiáng)關(guān)聯(lián)規(guī)則:滿足給定支持度和置信度閾值的關(guān)聯(lián)規(guī)則
?
?
?
?
?
?
A=>B的置信度可以由A于A U B的支持度計(jì)數(shù)計(jì)算推出。滿足最小支持度計(jì)數(shù)的項(xiàng)集為頻繁項(xiàng)集。
找關(guān)聯(lián)規(guī)則問題,歸結(jié)為找頻繁項(xiàng)集。
注意:A=>B,B=>A的不同
?
?
?
?
?
?
明確問題
1、找出總是在一起出現(xiàn)的商品組合
2、提出衡量標(biāo)準(zhǔn)支持度、置信度(達(dá)到一定的閾值)
3、給出支持度、置信度直觀計(jì)算方法
4、得出在計(jì)算方法中起決定因素的是頻繁項(xiàng)集
5、由頻繁項(xiàng)集輕松找到強(qiáng)關(guān)聯(lián)規(guī)則
?
找關(guān)聯(lián)規(guī)則--------->找頻繁項(xiàng)集
步驟:
1. 找出所有的頻繁項(xiàng)集;這個(gè)項(xiàng)集出現(xiàn)的次數(shù)至少與要求的最小計(jì)數(shù)一樣。如在100次購(gòu)買記錄中,至少一起出現(xiàn)30次。
2. 由頻繁項(xiàng)集產(chǎn)生強(qiáng)關(guān)聯(lián)規(guī)則;這些關(guān)聯(lián)規(guī)則滿足最小支持度與最小置信度。
?
?
?
?
Apriori算法
先驗(yàn)性質(zhì):頻繁項(xiàng)集的所有非空子集也一定是頻繁的。
逆否命題:若一個(gè)項(xiàng)集是非頻繁的,則它的任何超集也是非頻繁的
?
?
?
?
?
?
?
?
?
?
?
?
?
Apriori挑戰(zhàn)
挑戰(zhàn)
多次數(shù)據(jù)庫(kù)掃描
巨大數(shù)量的候補(bǔ)項(xiàng)集
繁瑣的支持度計(jì)算
改善Apriori: 基本想法
?減少掃描數(shù)據(jù)庫(kù)的次數(shù)
減少候選項(xiàng)集的數(shù)量
?簡(jiǎn)化候選項(xiàng)集的支持度計(jì)算
FPGROWTH算法(有名)
?
?
?
?
?
?
基于用戶的推薦技術(shù)
?
?
?
?
?
?
基于內(nèi)容(物品)的推薦技術(shù)
?
?
?
?
?
?
?
?
?
?
?協(xié)同過濾推薦技術(shù)
協(xié)同
指協(xié)調(diào)兩個(gè)或者兩個(gè)以上的不同資源或者個(gè)體,協(xié)同一致地完成某一目標(biāo)的過程或能力。
原理
協(xié)同過濾技術(shù)是基于用戶對(duì)項(xiàng)目的歷史偏好,發(fā)掘項(xiàng)目之間的相關(guān)性,或者是發(fā)掘用戶間的相關(guān)性,根據(jù)這些相關(guān)性進(jìn)行推薦。
類別
基于用戶的協(xié)同過濾推薦 Uesr_CF
基于物品的協(xié)同過濾推薦 Item_CF
?
?
?
?
?
?
基于用戶的協(xié)同過濾推薦技術(shù)
?
?
?
?
?
?基于物品的協(xié)同過濾推薦技術(shù)(評(píng)分)
?
?
?
?
?
?實(shí)現(xiàn)協(xié)同過濾的步驟
1、收集用戶偏好
2、找到相似的用戶或物品
3、計(jì)算推薦
?
?
?
?
?
?
?
收集用戶偏好的方法(評(píng)分)
?
?
?
?每行3個(gè)字段,依次是用戶ID,物品ID,用戶對(duì)物品的評(píng)分(0-5分,每0.5分為一個(gè)評(píng)分點(diǎn)!)
?
?
?
?
?
?
?計(jì)算相似性
用戶,物品,評(píng)分
什么人喜歡什么,以及程度
相似性的度量
歐氏距離相似度
皮爾森相似度
余弦相似度
秩相關(guān)系數(shù)相似度
曼哈頓距離相似度
對(duì)數(shù)似然相似度
?
?
?
?
?
歐氏距離相似度計(jì)算
?
?
?
?
?
?
?
?
?
?
?
?
協(xié)同過濾推薦,一般要做好以下幾個(gè)步驟:
1)收集用戶偏好
通過用戶的行為諸如評(píng)分,投票,轉(zhuǎn)發(fā),保存,書簽,標(biāo)記,評(píng)論,點(diǎn)擊流,頁(yè)面停留時(shí)間,是否購(gòu)買等獲得。所有這些信息都數(shù)字化,用一個(gè)二維矩陣表示出來。
2)數(shù)據(jù)減噪與歸一化操作
用戶偏好的二維矩陣,一維是用戶列表,另一維是物品列表,值是用戶對(duì)物品的偏好,一般是 [0,1] 或者 [-1, 1] 的浮點(diǎn)數(shù)值。
3)找相似的用戶和物品,計(jì)算相似用戶或相似物品的相似度。
4)根據(jù)相似度作為用戶、物品的協(xié)同過濾推薦。
?
?
?
?
?
?
總結(jié)
?
?
?
?
?
?
?
Apriori
?
?
?
?
?
?
?
協(xié)同過濾
?
總結(jié)
以上是生活随笔為你收集整理的Mahout的推荐系统的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oled屏幕
- 下一篇: 《金蝶ERP—K/3标准财务模拟实训(1