《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于Spark的分層協同過濾推薦算法
基于Spark的分層協同過濾推薦算法
2015年電子技術應用第9期
車晉強,謝紅薇
(太原理工大學 計算機科學與技術學院,山西 太原030024)
摘要: 協同過濾是推薦系統中最廣泛使用的推薦算法。針對單機模型已經不能滿足推薦系統的實時性與擴展性,提出一種基于Spark的分層協同過濾推薦算法。算法首先基于用戶時間行為序列構建用戶興趣模型;其次基于RDD實現了并行化EM聚類算法,將用戶劃分為不同的用戶簇;最后基于不同的用戶簇實現了并行化Item-based協同過濾推薦算法。通過阿里巴巴天池數據集實驗表明,該算法可明顯減少推薦時間并提高了推薦準確度,具有良好的可擴展性。
中圖分類號: TP3
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2015.09.037

中文引用格式: 車晉強,謝紅薇. 基于Spark的分層協同過濾推薦算法[J].電子技術應用,2015,41(9):135-138.
英文引用格式: Che Jinqiang,Xie Hongwei. Hierarchical collaborative filtering algorithm based on Spark[J].Application of Electronic Technique,2015,41(9):135-138.
Hierarchical collaborative filtering algorithm based on Spark
Che Jinqiang,Xie Hongwei
College of Compute Science and Technology,Taiyuan University of Technology,Taiyuan 030024,China
Abstract: Collaborative filtering is the most widely used method in recommendation system. As the single computer is not suitable for the real-time and scalability of the recommendation system, a hierarchical collaborative filtering algorithm based on spark is proposed. First, according to user action sequences,a user interest model is created in the algorithm. Then, the parallelized Expectation-maximization(EM) clustering algorithm based on Resilient Distributed Datasets(RDD) is realized,and as a result, users is divided into different user cluster model. Last, the parallelized item-based collaborative filtering is achieved based on different user cluster. The experiments in Alibaba tianchi datasets show that the algorithm can significantly reduce the time, improve the accuracy of recommentation,and it has good scalability at the same time.
Key words : collaborative filtering;Spark;EM;recommendation algorithm

  

0 引言

  互聯網和電子商務的迅猛發展已經把人們帶入了一個信息爆炸的時代,商品種類和數量的快速增長,使得顧客花費了大量的時間瀏覽無關的信息,個性化推薦系統作為解決信息過載的方法應運而生,被廣泛的應用到了當前的電子商務系統[1]。而基于協同過濾推薦算法無疑是最廣泛使用的算法[2],其主要分為基于用戶(User-based)和基于商品(Item-based)的推薦算法[3]?;谟脩舻膮f同過濾算法主要通過計算用戶之間的相似性,通過對與目標用戶相似性較高的用戶對商品的評價信息從而推薦給目標用戶?;陧椖康膮f同過濾算法則是查找項目之間的相關性。但是在電子商務網站當中,用戶評分數據不會超過項目總數的百分之一[4],稀疏性以及實時性都是急需解決的問題。

  針對推薦實時性問題,文獻[5]在Hadoop平臺上實現了User-based并行協同過濾推薦算法;文獻[6]在Hadoop平臺上實現了Item-based協同過濾推薦算法,其時間復雜度為O(n2m2);燕存[7]針對其時間復雜度過高的問題,提出了一種改進的Item-based協同過濾推薦算法。針對數據稀疏性問題,王雪蓉[8]研究了將用戶行為關聯聚類以實現更好的推薦效果,任帥[9]基于用戶行為模型和蟻群聚類以實現更合理的推薦。Spark作為一個新的開源集群計算框架,其基于內存計算以及粗粒度的RDD機制非常適合于迭代型的計算。本文針對推薦實時性以及數據稀疏性問題,基于Spark平臺,提出一個分層的協同過濾推薦算法。

1 Spark相關技術

  Spark作為一個分布式框架,它支持內存計算、多迭代處理、流處理與圖計算多種范式,非常適合于各種迭代算法和交互式數據分析,Spark的核心抽象模型是RDD(彈性分布式數據集),基于RDD,Spark提供了一個非常容易使用的編程接口。

  1.1 彈性分布式數據集

  RDD是不可變的,RDD一旦創建就沒有辦法對其進行更改,但是卻能創建出新的RDD。其次,RDD的不可變性使得Spark提供了高效的容錯機制,由于每個RDD都保留有計算至當前數值的全部歷史記錄,而且其他進程無法對其作出更改。因此,當某個節點丟失數據時,只需要對該節點的RDD重新計算即可,并不影響其他節點的運行。RDD機制如圖1所示。

001.jpg

  1.2 Spark應用程序框架

  Spark Application的運行架構由兩部分組成:driver program(SparkContext)和executor。Spark Application一般都是在集群中運行,如standalone、yarn、mesos等。在這些集群當中提供了計算資源和資源管理,這些資源即可以給executor執行,也可以給driver program運行。根據driver program 是否在集群中,SparkContext又可以分為cluster與client模式。Spark應用程序框架如圖2所示。

002.jpg

  2 用戶偏好模型

  定義1(用戶偏好集合)將用戶在網站瀏覽行為中的平均訪問時間、點擊數目、購買數目、點擊收藏比、點擊加入購物車、平均收藏與購買間隔以及平均點擊與購買間隔7種特征構成用戶偏好集和:IA={A1,A2,A3,…,A7}。

  為了構建用戶偏好模型,需要為用戶偏好集合中不同的特征賦予不同的權值,以便區分不同特征對模型的貢獻程度,如表1。

004.jpg

  表1中的7種偏好特征從不同程度上代表了用戶的行為習慣,為每一種偏好特征賦予一個權值,從而得出的用戶偏好模型如下:

  1.png

  使用熵權法[10]來確定每一個偏好特征的權值,它通過統計的方法處理后獲得權重。將用戶ui的偏好特征表示成n×7階矩陣B=(bij)n×7,其中bij表示用戶i第j個特征的值。熵權法的計算過程如下:

  (1)標準化數據處理,如式(2)、式(3):

  25.jpg

  通過以上方法便可計算出用戶偏好模型中每一種偏好特征的權值。

  3 并行化EM算法

  期望最大化(EM)算法是在模型中尋找參數的最大似然估計或者最大后驗估計的算法,它從一個最初的假設開始,迭代計算隱藏變量的期望值。再重新計算極大似然估計,直到收斂于一個局部最大似然估計。算法的實現過程如下:

  (1)估計參數:利用式(5)將每個對象xi指派到對應的用戶簇中。

  6.png

  其中,p(xi|Ck)=N(k,E(xi))服從方差為E(xi)、期望為k的正態分布,參數估計是對每一個用戶簇計算對象的隸屬概率。

  (2)最大化:利用上一步驟的結果重新估計參數以使針對給定數據的分布似然最大化。

  7.png

  (3)重復以上步驟直到參數收斂,聚類過程完成。

  為了實現EM算法的并行化,首先將用戶偏好模型數據劃分到集群上的每一個節點,即將用戶劃分成 M個組:U1,… UM,每一組用戶為一張二維關系表,行為用戶實例,列為偏好特征值,并行化算法如下:

  (1)Combine users,分別在不同的結點計算任意兩個用戶的相似度,并將相似度高的兩個類別合并成一個類別;

  (2)Compute similarity,根據式(6)計算每一個類別的相似性;

  (3)Shufflle,全局hash劃分類別;

  (4)Checkpoint,將不同類別緩存到內存中;

  (5)Recycle ,根據式(7)對參數求精,并重復此過程,直到完成聚類;

  (6)Clean,清除中間數據,并將結果按類別存儲在不同計算節點上。

4 并行化協同過濾算法

  Item-based協同過濾將一個用戶所購買的商品推薦其匹配的相似商品,即將所有用戶對購買的商品的評價作為一個向量,通過向量計算物品之間的相似度。用U對商品i與商品j共同評價的用戶集合,則它們之間的相似度sim(i,j)可通過Pearson相關系數計算:

  8.png

  將用戶評分數據文件存放在HDFS上,每一行數據代表一個用戶的歷史購買項目記錄,詳細算法如下:

  (1)data=sc.textFile(“hdfs://”),加載數據,每行數據代表一個用戶的歷史購買項目記錄;

  (2)getItemsAndRatings(data,items,ratings,len),劃分數據,獲取到所有項目及評分存入items數組與ratings數組中;

  (3)(item_a,item_b)=zip(items 1 to len),將項目兩兩組成對;

  (4)(ratings_a,ratings_b)=zip(ratings 1 to len);

  (5)shuffle ,全局hash劃分數據,將相同項目對劃分到同一個結點;

  (6)Compute Pearson(),由式(8)計算兩項目之間的相似度;

  (7)readItem(key,item1,item2),從項目對中解析出兩個項目;

  (8)Shuffle,將包含某一項目的所有項目劃分到同一個結點中;

  (9)Cache(key,value),緩存項目及其相似度列表;

  (10)Prediction(),預測未購買商品的評分;

  (11)saveAsTextFile(),輸出并存儲用戶推薦商品列表。

5 基于Spark分層協同過濾推薦算法

  在執行算法之前,首先需要將數據集加載到HDFS文件系統中,首先Spark會生成一個SparkContext全局常量,將基于SparkContext從HDFS上讀取數據,textFile()這個函數有助于從HDFS上讀取數據并形成一行一行為基礎的RDD。可以使用cache將數據加載到內存以便重復使用。詳細算法實現如下:

  (1)準備:搭建Hadoop與Spark集群,并將數據存放到HDFS;

  (2)由用戶行為計算偏好特征權值;

  (3)存儲用戶偏好特征數據;

  (4)并行EM算法對用戶聚類;

  (5)將不同用戶簇存放不同結點;

  (6)將用戶-評分數據存入相同用戶結點,數據本地性;

  (7)并行運行協同過濾算法;

  (8)預測用戶-商品評分;

  (9)形成推薦列表并保存。

6 實驗及分析

  在實驗集群當中,有一個master節點、3個slaves節點,每個節點的內存為8 GB,2核。集群當中安裝的是Hadoop2.4.1與Spark1.3.0版本。程序采用IntelliJ集成開發環境完成,本實驗主要實現了基于Spark的分層協同過濾算法并與基于MapReduce的并行算法的對比。

  (1)準確率、時間復雜度分析

  實驗一數據采用阿里巴巴云平臺的天池數據,總共十萬多條行為記錄,MapReduce使用并行Item-based協同過濾算法,Spark使用分層協同過濾推薦算法,實驗結果如表2所示。

005.jpg

  從表1可以看出,基于Spark的分層協同過濾算法在準確率上比普通的協同過濾算法更高,并且大大節約了時間,提高了性能。

  (2)性能表現

  實驗二測試Spark實現的分層協同過濾算法的擴展性,分析了在不同節點個數上的性能表現,如圖3所示。

003.jpg

  從圖中可以看到,當節點數量達到一定程度以后,其所消耗的時間并沒有減小得太厲害。接下來將會測試在不同大小的數據集上算法所表現出來的性能。

7 結束語

  協同過濾是推薦算法中最為廣泛使用的推薦算法,研究協同過濾的并行化算法也非常多。本文在前人的基礎上,提出一種基于Spark的分層協同過濾推薦算法,其核心是把用戶按不同的偏好特征劃分不同的用戶簇,之后針對不同的用戶簇作協同過濾推薦。另外,在Spark平臺上實現該算法并與MapReduce的算法比較。實驗結果表明,算法提高了推薦準確率與時間性能,并具有一定的拓展性。

參考文獻

  [1] MALTONI D,MAIO D,JAIN.A handbook of fingerprint recognication[M].Berlin,Springer,2009.

  [2] LINDEN G,SMITH B,YORK J.Amazeon.com recommenda-tions:item-to-item collaborative filtering[J].IEEE Internet Computing,2003,7(1):76-80.

  [3] SCHAFER J B,FRANKOWSKI D,HERLOCKER J,et al.Collaborative filtering recommender systems[M].Berlin Heidelberg:Springer,2007:291-324.

  [4] SUN X H,KONG F S,YE S.A comparison of several algorithms for collaborative filtering in startup stage[C].Proceedings of the 2006 IEEE International Conference on Networking,Sensing and Controlling.Washington,DC:IEEE  Computer Society,2006:25-28.

  [5] ZHAO Z D,SHANG M S.User-based collaborative-filteringrecommendation algorithms on hadoop[C].Third International

  Conference on Knowledge Discovery and Data Mining.Thailang:IEEE,2010:478-481.

  [6] JIANG J,LU J,ZHANG G,et al.Scaling-up item-based collaborative filtering recommendation algorithm based on hadoop[C].2011 IEEE World Congress on Services(SER-VICES).Washington:IEEE,2011:490-497.

  [7] 燕存,吉根林.Item-Based并行協同過濾推薦算法的設計與實現[J].南京師大學報(自然科學版),2014,37(1): 71-76.

  [8] 王雪蓉,萬年紅.云模式用戶行為關聯聚類的協同過濾推薦算法[J].計算機應用,2011,31(9):2421-2426.

  [9] 任帥,王浙明,王明敏.基于用戶行為模型和蟻群聚類的協同過濾推薦算法[J].微型電腦應用,2014,30(3):5-9.

  [10] COVER T M,THOMAS J A.Elements of information theory[M].[S.1.]:Wiley-Interscience,2006.


此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美国产高潮xxxx1819| 国产在线视频欧美| 国产综合视频在线观看| 国产美女精品免费电影| 精品成人在线观看| 国产一区二区三区在线免费观看| 欧美久久99| 亚洲精品自在在线观看| 亚洲精品美女久久久久| 在线日韩电影| 亚洲欧美视频在线观看| 久久亚洲国产成人| 欧美高清视频一区| 亚洲一卡二卡三卡四卡五卡| 欧美亚洲系列| 欧美激情a∨在线视频播放| 欧美亚洲三级| 欧美午夜宅男影院在线观看| 亚洲永久免费视频| 久久综合久久综合这里只有精品| 国产精品影音先锋| 欧美午夜理伦三级在线观看| 欧美高清视频在线观看| 国产精品igao视频网网址不卡日韩| 激情久久综艺| 国产免费成人av| 欧美日韩国产精品自在自线| 亚洲一区二区视频在线观看| 一区二区三区视频观看| 久久久精品欧美丰满| 午夜精品久久久久影视| 欧美黄色精品| 亚洲女性裸体视频| 99视频热这里只有精品免费| 国产日韩欧美黄色| 美女诱惑一区| 国产精品羞羞答答xxdd| 一区二区三区欧美激情| 亚洲一区二区日本| 国产精品久久久爽爽爽麻豆色哟哟| 欧美资源在线| 欧美激情小视频| 一区二区久久| 国产欧美视频一区二区| 亚洲男人的天堂在线aⅴ视频| 另类欧美日韩国产在线| 欧美激情自拍| 欧美成人午夜视频| 欧美小视频在线观看| 性欧美大战久久久久久久免费观看| 欧美三级视频在线播放| 国产日产高清欧美一区二区三区| 欲香欲色天天天综合和网| 欧美亚洲综合久久| 欧美在线电影| 日韩视频在线一区| 国产有码在线一区二区视频| 欧美一级黄色录像| 亚洲欧美日韩精品久久奇米色影视| 99视频热这里只有精品免费| 国产精品久久久一区二区| 一本色道久久综合一区| 一区二区国产在线观看| 亚洲精品久久在线| 久久激情五月丁香伊人| 洋洋av久久久久久久一区| 亚洲毛片在线| 欧美片在线播放| 99v久久综合狠狠综合久久| 欧美在线播放一区二区| 欧美日韩在线一二三| 麻豆成人综合网| 国产综合色在线视频区| 亚洲欧美日韩一区二区三区在线观看| 亚洲欧美日韩综合aⅴ视频| 国产一区观看| 伊人狠狠色j香婷婷综合| 国产欧美视频在线观看| 久热精品视频在线| 国产欧美短视频| 国产亚洲永久域名| 欧美日韩一区二区视频在线观看| 欧美日韩免费观看中文| 欧美jizzhd精品欧美巨大免费| 亚洲一区在线免费观看| 国产精品自拍在线| 欧美色欧美亚洲另类二区| 免费日韩精品中文字幕视频在线| 99精品视频免费| 巨胸喷奶水www久久久免费动漫| 欧美日韩免费观看一区三区| 国产精品区二区三区日本| 亚洲精品韩国| 久久精品欧美日韩精品| 国产精品h在线观看| 国产香蕉97碰碰久久人人| 激情久久久久| 国产精品美女久久福利网站| 今天的高清视频免费播放成人| 亚洲美女在线看| 国产欧美午夜| 999在线观看精品免费不卡网站| 亚洲性视频网站| 欧美一区二区三区免费在线看| 久久国产精品一区二区| 一区二区高清| 国内精品久久久久久| 欧美一区=区| 欧美成人一区在线| 国产精品丝袜xxxxxxx| 久久精品一二三区| 久久精品99国产精品酒店日本| 国产亚洲一区在线播放| 极品中文字幕一区| 久久亚裔精品欧美| 欧美中在线观看| 国产精品视频久久| 欧美 日韩 国产一区二区在线视频| 午夜精品一区二区在线观看| 欧美国产极速在线| 欧美一区免费| 欧美国产在线观看| 亚洲欧美综合一区| 亚洲精品国产视频| 欧美激情视频一区二区三区不卡| 樱桃视频在线观看一区| 欧美一区二区精品| 国产视频精品xxxx| 激情伊人五月天久久综合| 欧美一级一区| 国产精品成人一区二区艾草| 欧美aaaaaaaa牛牛影院| 国产精品一区二区久久久久| 国产一区二区精品久久| 国产精品v亚洲精品v日韩精品| 午夜久久影院| 久久久久欧美精品| 欧美日韩国产大片| 男人天堂欧美日韩| 欧美一区二区三区喷汁尤物| 亚洲专区欧美专区| 在线观看日韩www视频免费| 一区二区三区四区国产精品| 国产精品久久久久久亚洲毛片| 羞羞答答国产精品www一本| 欧美精品日韩精品| 午夜精品久久久99热福利| 欧美精品1区2区| 免费在线一区二区| 欧美一区二区免费视频| 欧美日本精品一区二区三区| 一区二区三区毛片| 一区二区三区四区国产精品| 国产精品自拍视频| 亚洲一区成人| 这里是久久伊人| 欧美三级视频在线| 欧美日韩综合不卡| 国产欧美精品在线观看| 日韩午夜视频在线观看| 欧美色视频一区| 久久精品综合一区| 欧美香蕉大胸在线视频观看| 欧美丰满高潮xxxx喷水动漫| 久久久久久久网站| 一本大道av伊人久久综合| 在线观看亚洲专区| 国产视频一区二区在线观看| 性刺激综合网| 在线视频日本亚洲性| 久久精品国产第一区二区三区最新章节| 亚洲成人在线观看视频| 亚洲国产精品一区制服丝袜| 国产精品海角社区在线观看| 一区二区欧美在线| 国产精品青草久久久久福利99| 久久久综合网站| 久久欧美中文字幕| 日韩视频免费观看| 欧美激情在线狂野欧美精品| 亚洲一区二区三区四区视频| 在线综合+亚洲+欧美中文字幕| 日韩视频国产视频| 欧美日韩美女一区二区| 久久青草久久| 欧美一区二区三区久久精品| 亚洲黄色一区二区三区| 一本色道久久综合亚洲精品不| 亚洲第一久久影院| 亚洲第一网站| 国产精品一区二区久久| 国产精品久久久久久久久久直播| 欧美一区在线看| 精品盗摄一区二区三区| 好吊妞这里只有精品| 亚洲美女在线国产| 午夜日韩在线观看| 国产欧美一区二区精品性色| 久久影视三级福利片| 极品尤物一区二区三区| 国产精品久久久久999| 国产免费观看久久| 美玉足脚交一区二区三区图片| 亚洲一线二线三线久久久| 国产欧美日韩麻豆91| 亚洲你懂的在线视频| 亚洲欧美在线免费| 国产日韩精品综合网站| 欧美日韩另类国产亚洲欧美一级| 在线不卡欧美| 亚洲精品国产精品国自产观看浪潮| 伊人婷婷欧美激情| 欧美激情一区二区三区蜜桃视频| 亚洲视频电影图片偷拍一区| 欧美日韩国产在线播放网站| 一二三四社区欧美黄| 国产精品一级二级三级| 亚洲第一主播视频| 欧美激情在线狂野欧美精品| 国产精品久久久久久久久| 亚洲精品美女久久久久| 亚洲电影第1页| 国产精品自在欧美一区| 欧美日韩国产经典色站一区二区三区| 美女视频一区免费观看| 免费久久精品视频| 欧美午夜精品一区二区三区| 日韩视频国产视频| 亚洲一区二区三区影院| 亚洲高清自拍| 欧美激情一区二区三级高清视频| 99视频日韩| 亚洲老板91色精品久久| 免费在线国产精品| 亚洲欧美日本国产有色| 亚洲国产综合视频在线观看| 亚洲欧洲在线一区| 久久亚洲精品伦理| 国产婷婷色综合av蜜臀av| 含羞草久久爱69一区| 国产精品一区二区三区观看| 欧美日韩国产123区| 欧美视频免费在线观看| 夜夜爽av福利精品导航| 91久久精品视频| 国产一区二区三区在线观看网站| 伊人精品在线| 欧美色欧美亚洲高清在线视频| 国产精品久久久一本精品| 欧美日韩免费一区二区三区视频| 国产亚洲永久域名| 国产午夜亚洲精品羞羞网站| 亚洲午夜精品视频| 久久五月激情| 亚洲欧洲av一区二区三区久久| 亚洲欧美激情视频在线观看一区二区三区| 欧美一区二区三区视频免费| 亚洲韩日在线| 亚洲免费一区二区| 最新中文字幕一区二区三区| 亚洲电影有码| 欧美亚洲视频一区二区| 亚洲国产乱码最新视频| 久久九九有精品国产23| 欧美在线观看网站| 久久在线视频在线| 欧美成人综合网站| 亚洲精品中文字幕在线观看| 榴莲视频成人在线观看| 一区二区欧美在线| 国产色婷婷国产综合在线理论片a| 激情综合色丁香一区二区| 亚洲伊人观看| 久久影院午夜片一区| 狠狠做深爱婷婷久久综合一区| 国产精品久久久久久久久久三级| 一本色道久久综合亚洲91| 久久av一区二区三区漫画| 国产精品午夜在线观看| 欧美 日韩 国产一区二区在线视频| 狠狠色狠狠色综合| 国产精品视频一| 久久久久久尹人网香蕉| 欧美日韩综合久久| 欧美在线精品免播放器视频| 美乳少妇欧美精品| 国产精品免费在线| 国产乱肥老妇国产一区二| 欧美天堂亚洲电影院在线观看| 欧美亚洲视频在线看网址| 欧美色大人视频| 另类天堂av| 亚洲欧美视频一区二区三区| 激情亚洲一区二区三区四区| 亚洲愉拍自拍另类高清精品| 好吊成人免视频| 亚洲一区二区在线免费观看视频| 欧美成人免费全部观看天天性色| 国内精品视频在线观看| 久久在线观看视频| 欧美精品在线一区二区三区| 欧美日韩麻豆| 免费在线日韩av| 亚洲国产精品第一区二区三区| 这里只有精品视频| 国产精品二区三区四区| 国产精品成人免费视频| 欧美一区二区三区免费大片| 国产麻豆日韩| 99精品国产热久久91蜜凸| 欧美高清不卡在线| 久久婷婷人人澡人人喊人人爽| 日韩视频久久| 亚洲激情二区| 亚洲国产成人在线播放| 136国产福利精品导航网址应用| 欧美一级午夜免费电影| 亚洲免费网站| 亚洲免费精彩视频| 欧美一区二区久久久| 亚洲美女网站| 亚洲综合精品四区| 欧美成人自拍| 欧美午夜片在线免费观看| 亚洲欧美在线播放| 亚洲欧美一区二区原创| 久久久精品午夜少妇| 国产老女人精品毛片久久|