国产传媒在线视频丨亚洲精品入口a级丨青草青草久热丨精品美女久久久久丨亚洲不卡影院丨欧美裸体xxxx丨久久全国免费视频丨亚洲好看站丨久久亚洲人成综合网丨hs网站在线观看丨国产做爰xxxⅹ高潮视频在线丨131美女爱做视频国产福利丨在线观看免费www丨香蕉视频久久久丨亚洲精品永久www嫩草丨亚洲aⅴ综合av国产八av丨国产高清无码在线com丨国产成人精品自在线拍丨毛片在线看片丨91丨九色丨丰满人妖丨免费看h网站丨毛片的视频丨瑟瑟av丨欧美激情在线播放丨一本一久本久a久久精品综合

您當前的位置:首頁 > 新聞資訊 > 公司動態 > 正文

【東網技術大咖帶您走進大數據】大數據挖掘技術分享-APP推薦模型應用

發布時間: 2016-12-23 15:49:49  
分享到:

 

 

 

 
專欄介紹

新東網自2001年成立以來,掌握大數據、云計算、通信、物聯網及區塊鏈等信息技術,擁有一支逾16年經驗的強大IT團隊。為沉淀企業技術實力,繼續發揮行業優勢,《東網快訊》特邀新東網技術大咖帶您走進這些先進信息技術,揭秘新東網16年來的技術成果,每周五發布

 

 

新東網已經開發并運營智慧福州、智慧倉山、智慧中山、流流順、中山好生活、派金寶等平臺和App。接下來就為大家揭秘APP推薦模型應用。

 

模型設計思路
 

 

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

 

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

 

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

 

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

 

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

 

基于用戶的協同過濾算法(偏好度)

 

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

 

基于關聯規則的推薦算法(1-0)

 

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

 

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

 

模型實施
 

 

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

 

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

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

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

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

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

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

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

 

基于Popular、UBCF、IBCF偏好度的協同過濾算法

 

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

 

使用recmomenderlab包對Popular、UBCF、IBCF三種算法進行訓練:

 

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

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

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

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

 

3、基于關聯規則的推薦算法

 

使用arules包對客戶APP使用數據進行規則發現:

 

1)讀入數據:user_id,app_id;

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

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

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

5)得到規則列表。

 

模型輸出
 

 

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

 

對基于偏好度的IBCF協同過濾、UBCF、流行度算法對樣本數據(客戶數4.5萬,APP數100)實施效果評估:

 

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

 

從以上的誤差率來看,IBCF,UBCF算法的誤差率最小。

 

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

運行細節如下:

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是按照客戶規模排名選取的前100個,而流行度的推薦算法也是根據APP的客戶規模進行推薦的,因此在這里,流行度的topNList的推薦效果作為IBCF、UBCF算法的參考值;

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

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

 

關聯規則算法得到的規則效果:

 

最終以30%的支持度,90%的置信度得到關聯規則的1500條規則,如下形式(詳細規則可見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

 

規則解釋:

 

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

 

結論
 

 

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

 

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

 

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

 

 

分享到:
地址:福建省福州市銅盤路軟件大道89號軟件園A區26號樓 電話:0591-83519233 傳真:0591-87882335 E-mail:doone@doone.com.cn
版權所有 新東網科技有限公司 閩ICP備07052074號-1 閩公網安備 35010202001006號