亚洲国产中文精品无码久久_亚洲妇女自偷自偷图片_亚洲第一国产毛片久久久_亚洲国产成人片在线观看无码_日本少妇被黑人粗大的猛激进

您當前的位置:首頁(yè) > 新聞資訊 > 公司動(dòng)態(tài) > 正文

【東網(wǎng)技術(shù)大咖帶您走進(jìn)大數據】大數據挖掘技術(shù)分享-APP推薦模型應用

發(fā)布時(shí)間: 2016-12-23 15:49:49  
分享到:

 

 

 

 
專(zhuān)欄介紹

新東網(wǎng)自2001年成立以來(lái),掌握大數據、云計算、通信、物聯(lián)網(wǎng)及區塊鏈等信息技術(shù),擁有一支逾16年經(jīng)驗的強大IT團隊。為沉淀企業(yè)技術(shù)實(shí)力,繼續發(fā)揮行業(yè)優(yōu)勢,《東網(wǎng)快訊》特邀新東網(wǎng)技術(shù)大咖帶您走進(jìn)這些先進(jìn)信息技術(shù),揭秘新東網(wǎng)16年來(lái)的技術(shù)成果,每周五發(fā)布。

 

 

新東網(wǎng)已經(jīng)開(kāi)發(fā)并運營(yíng)智慧福州、智慧倉山、智慧中山、流流順、中山好生活、派金寶等平臺和App。接下來(lái)就為大家揭秘APP推薦模型應用。

 

模型設計思路
 

 

APP推薦模型訓練時(shí),采用了以下幾種方法:

 

基于項目的協(xié)同過(guò)濾算法(1-0)

 

基于項目的協(xié)同過(guò)濾算法(1-0)與偏好的IBCF算法相似,不同的是,算法是根據客戶(hù)是否使用item來(lái)計算不同item之間的相似性矩陣(相當于使用余弦公式計算相似度)。由于計算時(shí),矩陣只有1-0兩種值,存儲較小,同時(shí)1-0矩陣的矩陣計算效率較優(yōu)(矩陣的轉置,矩陣乘法以及crossprod算法),因此該算法可方便地實(shí)現對大量客戶(hù)的APP使用做算法推薦。

 

基于項目的協(xié)同過(guò)濾算法(偏好度)

 

基于item的協(xié)同過(guò)濾算法,通過(guò)用戶(hù)對不同item的評分來(lái)評測item之間的相似性,計算形成item之間的相似性矩陣,根據客戶(hù)對item的偏好列表做出推薦。實(shí)際上是,給用戶(hù)推薦和他之前喜歡的item相似的item。

 

基于用戶(hù)的協(xié)同過(guò)濾算法(偏好度)

 

基于用戶(hù)的協(xié)同過(guò)濾算法,通過(guò)不同用戶(hù)對item的評分來(lái)評測用戶(hù)之間的相似性,計算形成用戶(hù)與用戶(hù)之間的相似性矩陣,根據最近鄰的偏好列表做出推薦。實(shí)際上是,給用戶(hù)推薦與他興趣相似的其他用戶(hù)喜歡的item。

 

基于關(guān)聯(lián)規則的推薦算法(1-0)

 

基于關(guān)聯(lián)規則的推薦Association Rule-based Recommendation)是以關(guān)聯(lián)規則為基礎,把客戶(hù)已使用過(guò)的item作為規則頭,規則體作為推薦對象。關(guān)聯(lián)規則挖掘可以發(fā)現不同item在使用過(guò)程中的相似性。關(guān)聯(lián)規則就是在一個(gè)交易類(lèi)型的數據集合中統計使用了某itemA的交易中有多大的比例客戶(hù)同時(shí)使用了某itemB,其直觀(guān)意義在于用戶(hù)在某時(shí)間周期內,使用某些item的同時(shí)有多大的傾向去使用另外一些item。

 

由于算法只對“使用過(guò)”感興趣,數據只要生成1-0(或者根據某些偏好標準判斷客戶(hù)是否使用過(guò)1-0);另外,算法只需要對樣本數據以離線(xiàn)的形式進(jìn)行分析采集、發(fā)現規則,無(wú)需對全部數據集做算法計算,因此計算效率及存儲空間較優(yōu)。發(fā)現規則后,即可定義向滿(mǎn)足規則頭的客戶(hù)推薦規則體的item。

 

模型實(shí)施
 

 

基于項目的協(xié)同過(guò)濾算法(1-0)

 

為測試該算法的計算效率,使用的數據為泉州-豐澤(595-501)的APP使用數據,整體計算約在10分鐘內完成,算法步驟如下:

1)讀入交易類(lèi)型數據,數據形式類(lèi)似user_id,app_id;

2)將數據轉換成user_id~app_id的矩陣M,其中Rij代表客戶(hù)i對APPj是否使用過(guò),未使用過(guò)的使用0進(jìn)行填充;

3)計算各APP(列)之間的模mod;

4)計算各列除以該列的模,計算各APP的向量MM;

5)使用crsooprod計算列向量的內積,得到APP之間的相似度矩陣S;

6)推薦列表:R = M %*% S%*%為矩陣乘法)。

 

基于Popular、UBCF、IBCF偏好度的協(xié)同過(guò)濾算法

 

由于APP定義為客戶(hù)規模排名前100個(gè)的APP,因此,這里同時(shí)使用了流行度的算法作為IBCF、UBCF的參考算法。

 

使用recmomenderlab包對Popular、UBCF、IBCF三種算法進(jìn)行訓練:

 

1)讀入user_id,app_id,rating的數據(實(shí)際中,Popular及IBCF算法都可對8萬(wàn)個(gè)客戶(hù)進(jìn)行推薦,而UBCF算法計算推薦時(shí)耗費大量時(shí)間,因此在測試的過(guò)程中,使用的4.5萬(wàn)客戶(hù)的APP使用數據);

2)將數據轉化為USERID~APPID的形式,值為rating,其他用0進(jìn)行填充(fill=0);

3)將數據split為兩份,80%的數據為訓練集,20%的數據為測試集,分別對三種算法的預測rating與實(shí)際rating做誤差計算;

4)對三種算法做topNList的4-折cross驗證,計算混淆矩陣的TPR、FPR。

 

3、基于關(guān)聯(lián)規則的推薦算法

 

使用arules包對客戶(hù)APP使用數據進(jìn)行規則發(fā)現:

 

1)讀入數據:user_id,app_id;

2)將數據轉換成transactions形式(交易類(lèi)型,user_id相當與訂單號,app_id相當于訂單中的一種商品,一個(gè)訂單中可以有多種商品,相當于一個(gè)客戶(hù)有多個(gè)APP使用記錄);

3)對支持度為10%,20%,30%,以及置信度為70%,80%,90%進(jìn)行規則發(fā)現;

4)對生成的規則進(jìn)行剪枝(若規則1包含著(zhù)規則2,且規則2的提升度小于等于規則1的提升度,則規則2為冗余規則,只需要保留規則1);

5)得到規則列表。

 

模型輸出
 

 

IBCF/UBCF/POPULAR算法的誤差分析

 

對基于偏好度的IBCF協(xié)同過(guò)濾、UBCF、流行度算法對樣本數據(客戶(hù)數4.5萬(wàn),APP數100)實(shí)施效果評估:

 

1)評分rating效果(80%訓練集,20%測試集,預測app數目為50):

             RMSE       MSE       MAE

POPULAR 0.5756349 0.3313555 0.3132222

IBCF    0.5347688 0.2859777 0.3108677

UBCF    0.4871018 0.2372681 0.2637091

 

從以上的誤差率來(lái)看,IBCF,UBCF算法的誤差率最小。

 

2)4-折交叉驗證topNList效果(將數據集分為4份,運行4次,每次利用其中3份作為模型的訓練集,1份作為模型的測試集,對模型的效果進(jìn)行交叉驗證):

運行細節如下:

POPULAR run

         1  [0.2sec/8.89sec]

         2  [0.19sec/8.83sec]

         3  [0.19sec/8.92sec]

         4  [0.19sec/8.82sec]

IBCF run

         1  [1.24sec/2.89sec]

         2  [1.23sec/2.88sec]

         3  [1.22sec/2.89sec]

         4  [1.26sec/2.88sec]

UBCF run

         1  [0.17sec/299.39sec]

         2  [0.16sec/299.66sec]

         3  [0.15sec/298.87sec]

         4  [0.17sec/297.14sec]

 

三種算法對各topN的真正率(TPR)、假正率(FPR)如下:

 


從上面的輸出可以看出:

 

1.1、topNList推薦效果: IBCF > UBCF > Popular;

1.2、由于我們選取的APP是按照客戶(hù)規模排名選取的前100個(gè),而流行度的推薦算法也是根據APP的客戶(hù)規模進(jìn)行推薦的,因此在這里,流行度的topNList的推薦效果作為IBCF、UBCF算法的參考值;

1.3、UBCF算法在模型預測的時(shí)候,需要耗費大量的時(shí)間計算某個(gè)客戶(hù)與其他客戶(hù)的相識度(可以從模型運行的細節上看出),在這里,使用的4.5萬(wàn)個(gè)客戶(hù)的效果。因此,若客戶(hù)量較大的話(huà),如直接對1600萬(wàn)APP使用客戶(hù)進(jìn)行UBCF計算,計算效率和存儲空間對系統都是一個(gè)很大的挑戰。

1.4、綜上所述,在本例中,以基于流行度的算法和IBCF協(xié)同過(guò)濾算法效果最優(yōu),通用情況下,應該考慮使用IBCF算法。

 

關(guān)聯(lián)規則算法得到的規則效果:

 

最終以30%的支持度,90%的置信度得到關(guān)聯(lián)規則的1500條規則,如下形式(詳細規則可見(jiàn)rulex.txt):

左件=>   右件     支持度 置信度 提升度

{815,9000382,9007654} => {9003934} 0.302 0.986 2.034

{162,20210162,700826,815,9001014,9007700} => {9008700} 0.303 0.966 1.883

 

規則解釋?zhuān)?/span>

 

在所有的客戶(hù)中,有30.2%的客戶(hù)同時(shí)使用了{815,9000382,9007654}APP,其中,98.6%的客戶(hù)同時(shí)有使用{9003934}APP,因此,可對同時(shí)使用{815,9000382,9007654}的客戶(hù)推薦{9003934}APP。

 

結論
 

 

1、由于模型訓練使用的APP為客戶(hù)規模前100個(gè)的APP,因此流行度算法的效果最好,若改變APP的選擇定義,需要重新評估該算法的RMSE;

 

2、由于在我們的模型中,客戶(hù)規模>>APP數量,根據以往的經(jīng)驗,IBCF算法比UBCF算法的效果要好;

 

3、根據上述模型效果評估及計算效率、存儲方面綜合考慮,可選擇基于關(guān)聯(lián)規則及IBCF的協(xié)同過(guò)濾算法,或者基于流行度及IBCF的協(xié)同過(guò)濾算法,實(shí)現APP的混合推薦系統。

 

 

分享到:
地址:福建省福州市銅盤(pán)路軟件大道89號軟件園A區26號樓 電話(huà):0591-83519233 傳真:0591-87882335 E-mail:doone@doone.com.cn
版權所有 新東網(wǎng)科技有限公司 閩ICP備07052074號-1 閩公網(wǎng)安備 35010202001006號
亚洲国产中文精品无码久久_亚洲妇女自偷自偷图片_亚洲第一国产毛片久久久_亚洲国产成人片在线观看无码_日本少妇被黑人粗大的猛激进