国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Hadoop云平臺的社交大數(shù)據(jù)協(xié)同過濾個性化推薦的研究與實現(xiàn)

2016-12-22 06:40劉壽強祁明
現(xiàn)代計算機 2016年32期
關(guān)鍵詞:引擎個性化協(xié)同

劉壽強,祁明

(1.華南理工大學(xué)經(jīng)濟與貿(mào)易學(xué)院,廣州 510006;2.華南師范大學(xué)物理與電信工程學(xué)院,廣州 510006)

基于Hadoop云平臺的社交大數(shù)據(jù)協(xié)同過濾個性化推薦的研究與實現(xiàn)

劉壽強1,2,祁明2

(1.華南理工大學(xué)經(jīng)濟與貿(mào)易學(xué)院,廣州510006;2.華南師范大學(xué)物理與電信工程學(xué)院,廣州510006)

云計算的出現(xiàn),有效地解決大數(shù)據(jù)時代的數(shù)據(jù)冗余、處理速度慢、空間不足等難題,滿足信息化社會快速發(fā)展的數(shù)據(jù)需求。首先簡介云計算,大數(shù)據(jù),幾種經(jīng)典的推薦算法和個性化推薦。然后把云平臺與推薦系統(tǒng)的推薦引擎結(jié)合起來,利用協(xié)同過濾算法結(jié)合MapReduce框架模式進行計算,分別基于共同好友和共同興趣對一個微博大數(shù)據(jù)集進行處理并得出推薦結(jié)果,給用戶推薦潛在關(guān)注者和關(guān)鍵字,并對實驗結(jié)果進行分析得出結(jié)論,驗證云計算能有效并且快速處理大數(shù)據(jù),提高計算機大規(guī)模數(shù)據(jù)計算處理能力。

云計算;Hadoop;大數(shù)據(jù);協(xié)同過濾;個性化推薦

廣東省公益研究與能力建設(shè)專項資金項目(No.2016A020223012、No.2015A020217011)、廣東省交通科技計劃項目(No.2015-02-064)、廣東省本科高校教學(xué)質(zhì)量與教學(xué)改革工程項目(粵教高函[2015]133號)、廣東外語外貿(mào)大學(xué)南國商學(xué)院2016年教改重大項目、廣州大學(xué)華軟軟件學(xué)院重大科研培育項目20000104與教研項目KY201412

1 大數(shù)據(jù)的協(xié)同過濾算法

云計算的出現(xiàn),有效地解決了大數(shù)據(jù)時代,數(shù)據(jù)冗余、處理速度慢、空間不足等難題,滿足了信息化社會發(fā)展的數(shù)據(jù)需求。Hadoop是當(dāng)今主流應(yīng)用最廣的云計算平臺,Google的MapReduce算法也能在Hadoop中實現(xiàn),而且提供一個文件系統(tǒng)HDFS用來存儲各個計算節(jié)點上數(shù)據(jù),使得Hadoop框架具有高容錯性,能夠處理失敗節(jié)點[1-2]。

與傳統(tǒng)的基于內(nèi)容過濾直接分析內(nèi)容進行推薦不同,協(xié)同過濾分析用戶興趣,在用戶群中找到指定用戶的相似(興趣)用戶,綜合這些相似用戶對某一信息的評價,形成系統(tǒng)對該指定用戶對此信息的喜好程度預(yù)測。大致過程是這樣的:首先,通過分析用戶的偏好行為,來挖掘出里面物品與物品、或人與人之間的關(guān)聯(lián)。其次,通過對這些關(guān)聯(lián)的關(guān)系做一定的運算,得出人與物品間喜歡程度的猜測,即推薦值。最后,將推薦值高的物品推送給特定的人,以完成一次推薦。協(xié)同過濾算法大致可分為兩類:基于物品的協(xié)同過濾算法;基于用戶的協(xié)同過濾算法。

2 個性化推薦

用戶特征種類非常多,主要包括:人口統(tǒng)計學(xué)特征,用戶的行為特征,用戶的話題特征,給用戶推薦不同種類的物品,就需要多種推薦引擎來進行個性化推薦[3]。個性化推薦有兩個好處:可以方便地增刪引擎,控制不同引擎對推薦結(jié)果的影響。對于絕大多數(shù)需求,只需要通過不同的引擎組合實現(xiàn)??梢詫崿F(xiàn)推薦引擎級別的用戶反饋。每一個推薦引擎其實代表了一種推薦策略,可以將每一種策略都設(shè)計成一個推薦引擎然后通過分析用戶對推薦結(jié)果的反饋了解用戶比較喜歡哪些引擎推薦出來的結(jié)果,從而對不同的用戶給出不同的引擎組合權(quán)重[4]。在下文的實驗中,使用協(xié)同過濾算法構(gòu)造兩個個性化推薦引擎——分別是基于共同好友和共同興趣。

3 協(xié)同過濾算法在Hadoop平臺實現(xiàn)

3.1協(xié)同過濾算法

Apache Mahout提供的一個協(xié)同過濾算法的高效實現(xiàn),基于Java實現(xiàn)的可擴展的高效推薦引擎。通過對源代碼的分析,該推薦引擎是用這樣簡單的數(shù)據(jù)格式表達用戶對物品的偏好。以此為輸入數(shù)據(jù),計算后就可以得到為每個user推薦的items列表[5]。主要步驟如下:

(1)把輸入數(shù)據(jù)的每個用戶的信息整合,得出用戶相似度;

(2)輸入數(shù)據(jù)為MR(1),不管用戶ID,對后面的所有項目進行拆分;

(3)含有兩個Mapper,第一個MR(31)把MR(2)的輸出的格式轉(zhuǎn)為VectorOrPrefWritable;

MR(32)針對MR(1)的輸出把每一個項目ID和用戶ID作為一對,進行輸出,輸出格式也為VectorOrPrefWritable;

(4)MR4的map不做任何事情;MR4的reduce輸出就是把MR(31)和MR(32)的相同的itemID整合在一起;

(5)map:針對MR4的輸出的每一行中的每一個用戶,用這個用戶的評分值(preference)去乘以項目之間的相似度向量,在Reducer的setup函數(shù)中讀取SequenceFile的數(shù)據(jù),這個數(shù)據(jù)是MR1的輸出數(shù)據(jù),用來排除用戶已經(jīng)評價過的項目。

3.2協(xié)同過濾算法核心代碼

輸入的數(shù)據(jù)格式是這樣的:

需要整合成如下:

第一個MR:就是把輸入數(shù)據(jù)的每個用戶的信息整合。

第二個MR:輸入數(shù)據(jù)為MR(1)的輸出只是項目的相似度,先不管用戶ID,對后面的所有項目進行拆分。輸出應(yīng)該類似下面:

第三個MR:含有兩個Mapper,第一個MR(31)把MR(2)的輸出的格式轉(zhuǎn)為VectorOrPrefWritable;MR (32)針對MR(1)的輸出把每一個項目ID和用戶ID作為一對進行輸出,輸出格式也為VectorOrPrefWritable; WiKiReducer32.java其實和WiKiReducer31.java一模一樣的,此處不再給出;

第四個MR:MR4的map不做任何事情;MR4的reduce輸出就是把MR(31)和MR(32)的相同的itemID整合一下,此處的輸入為兩個路徑:如下:

第五個MR:map:針對MR4的輸出的每一行中的每一個用戶,用這個用戶的評分值(preference)去乘以項目之間的相似度向量,例如針對第一條記錄中的用戶3,則有

Vectorforuser3=[1.0 2.0 2.0 4.0 4.0 3.0 5.0]*2.5

則map的輸出為key:3。

4 個性化推薦系統(tǒng)實驗

4.1實驗數(shù)據(jù)集介紹

本次實驗?zāi)康氖墙o微博用戶推薦潛在關(guān)注者和推薦。該數(shù)據(jù)集是KDD CUP 2012的比賽數(shù)據(jù)集,任務(wù)是預(yù)測微博推薦結(jié)果[6-7],是騰訊微博的一個快照,為用戶推薦的內(nèi)容及其關(guān)注的歷史信息。該數(shù)據(jù)集較之以往的公開數(shù)據(jù)集規(guī)模更大,并且包含豐富的輔助信息,例如用戶的Profile(檔案資料),社會關(guān)系圖,對象目錄等,可以有效的啟發(fā)開發(fā)者的思路。

該數(shù)據(jù)集合包含上百萬個用戶,包含豐富的信息(用戶基本資料、、關(guān)注歷史等),可以幫助你建立更好的預(yù)測模型。為了保護隱私,所有的用戶ID采用隨機數(shù)代替。同時,所有中文內(nèi)容都用隨機字符串和數(shù)字進行了編碼,用戶的關(guān)注歷史具有時間戳以方便全話分析[4,8]。

所使用的數(shù)據(jù)集文件有兩個:

用戶文件(182MB)——User key worddata: user_key_word.txt

格式:(UserId) (Keywords)

用戶社會關(guān)系數(shù)據(jù)(740MB)User sns data:user_sns.txt

格式:(Follower-userid) (Followee-userid)。

4.2數(shù)據(jù)集處理

(1)數(shù)據(jù)預(yù)處理

通過預(yù)處理程序?qū)?shù)據(jù)集文件的格式變成這樣;

再使用-copyFromLocal/.文件路徑,命令將數(shù)據(jù)集上傳到文件系統(tǒng),結(jié)果如圖2:

圖2 源數(shù)據(jù)集上傳到文件系統(tǒng)

(2)基于共同好友

輸入以下命令:

得出的結(jié)果如圖3:

圖3 基于共同好友協(xié)同過濾處理結(jié)果

節(jié)選一部分來解讀,圖4:

圖4 基于共同好友協(xié)同過濾處理結(jié)果(節(jié)選)

100001表示的是用戶ID,代表了用戶名。后面,1760320表示的是給用戶100001推薦的潛在關(guān)注者,接著的47.0是對潛在關(guān)注者的評分,即權(quán)重。以此類推,每個用戶大約推薦十個潛在關(guān)注者,每個潛在關(guān)注者都有評分和排序的。權(quán)重越大,表示推薦的用戶越重要。

(3)基于共同興趣

執(zhí)行命令得出的結(jié)果如下圖5:

結(jié)果節(jié)選:

圖5 基于共同興趣協(xié)同過濾處理結(jié)果(節(jié)選)

4.3實驗結(jié)果分析

在Hadoop云計算平臺上得出了相關(guān)數(shù)據(jù)。下表1為總體實驗結(jié)果:

表1 協(xié)同過濾實驗結(jié)果

由表1可以看出,總體效果。對于兩個不同的數(shù)據(jù)集,用同一集群進行處理:

(1)源數(shù)據(jù)越小,處理時間越短;

(2)基于好友比基于興趣處理速度慢的原因在于,數(shù)據(jù)實例數(shù)量越大,運算復(fù)雜度越高。

下表2為抽取一部分數(shù)據(jù)進行實驗對比的結(jié)果:

下圖6為同一數(shù)據(jù)集,在不同集群上運行的情況對比:

表2 協(xié)同過濾實驗結(jié)果(抽取一部分數(shù)據(jù))

圖5 同一數(shù)據(jù)集,在不同集群上運行的情況對比圖

由圖5可以看出:

(1)當(dāng)集群數(shù)量越大,處理時間越短;

(2)分布式云計算(兩臺設(shè)備,5個節(jié)點)比單機(一臺設(shè)備,3個節(jié)點)的運算速率提高了2到3倍。

5 結(jié)語

此次實驗只是做出了兩個個性化推薦引擎——基于共同好友的協(xié)同過濾,基于共同興趣的協(xié)同過濾,并不是一個完整的推薦系統(tǒng),只是得出推薦的結(jié)果。雖然在Hadoop云平臺上實現(xiàn)并得出實驗結(jié)果,但離實際應(yīng)用還遠。單仍能驗證處云計算平臺具有足夠大的能力,能有效并且快速處理大數(shù)據(jù)。

現(xiàn)實中,個性化推薦系統(tǒng)需要很多個不同的推薦引擎,使用的算法有關(guān)聯(lián)規(guī)則,Pagerank、Edgerank,K均值、網(wǎng)絡(luò)圖譜、混合算法等,這些推薦引擎組合起來的推薦系統(tǒng)才能適應(yīng)有各種各樣喜好的人們,從而達到個性化推薦[4-6]。

利用云平臺和大數(shù)據(jù),我們可以繼續(xù)在如下領(lǐng)域深入研究:社交網(wǎng)絡(luò)大數(shù)據(jù)人類行為模式預(yù)測與個性化推薦、信息流的個性化推薦算法研究、基于時間上下文的用戶行為預(yù)測研究、社交網(wǎng)絡(luò)大數(shù)據(jù)鏈路預(yù)測問題、社交網(wǎng)絡(luò)的信任挖掘與信任推理等[1,2,9,10]。

[1]羅軍舟,金嘉暉,宋愛波,東方.云計算:體系架構(gòu)與關(guān)鍵技術(shù)[M].南京:通信學(xué)報,2011

[2]王珊,王會舉,覃雄派.架構(gòu)大數(shù)據(jù):挑戰(zhàn)、現(xiàn)狀與展望[J].北京:計算機學(xué)報,2011

[3]Ai-Xiang Cui,Zi-Ke Zhang,Ming Tang,Pak Ming Hui,Yan Fu.Emergence of Scale-Free Close-Knit Friendship Structure in Online Social Networks[M].PLOSONE.2012

[4]汪永強.社會化網(wǎng)絡(luò)中的推薦算法及其應(yīng)用[J].上海:上海交通大學(xué),2012

[5]Sean Owen,Robin Anil,Ted Dunning,Ellen Friedman.Mahout In Action.Manning Publications,2010.

[6]KDD Cup.KDD Cup2012 Predict Which Users(or Information Sources)one User Might Follow in Tencent Weibo.http://www.kddcup2012.org/c/kddcup2012-track1.

[7]KDD Cup2012數(shù)據(jù)挖掘競賽主題一:預(yù)測圍脖的推薦結(jié)果.http://blog.csdn.net/yumengkk/article/details/7293638.

[8]李宇,李秦.對K均值算法和硬C-均值算法的對比分析[J].蘭州交通大學(xué),2012.

[9]周?;?,華薇娜.國內(nèi)外云計算研究的現(xiàn)狀與發(fā)展——基于INSPEC數(shù)據(jù)庫的分析[J].南京:現(xiàn)代情報,2012.

[10]巴拉巴西.爆發(fā):大數(shù)據(jù)時代遇見未來的新思維[M].中國人民大學(xué)出版,2012-6.

Cloud Computing;Hadoop;Big Data;Collaborative Filtering(CF)Algorithm;Personalized Recommendation

Research and Implementation of Hadoop-Based Social Big Data Collaborative Filtering Personalized Recommendation

LIU Shou-qiang1,2,QI Min1

(1.School of Economics and Commerce,South China University of Technology,Guangzhou 510006;2.School of Physics and Telecommunication Engineering,South China Normal University,Guangzhou 510006)

Emergence of cloud computing,effectively solves the era of big data,data redundancy,processing speed,lack of space and other problems,to meet the data needs of the information society rapid development.Firstly,introduces cloud computing,big data,several classic recommendation algorithm and personalized recommendations.Puts forward the collaborative filtering algorithm and MapReduce framework based on common friend and common interest,deals with a big data set and outputting the result,recommending the potential followers and keywords to users.Puts forward the conclusion and outlook are,and analyzes the experimental results to conclude that cloud computing can effectively verify and rapid processing of large data,large-scale data to improve computer processing capabilities.

1007-1423(2016)32-0074-05

10.3969/j.issn.1007-1423.2016.32.018

劉壽強(1974-),男,湖北人,講師,博士(計算機),研究方向為云計算、大數(shù)據(jù)、電子商務(wù)、機器學(xué)習(xí)

2016-11-08

2016-11-10

猜你喜歡
引擎個性化協(xié)同
輸入受限下多無人機三維協(xié)同路徑跟蹤控制
家校社協(xié)同育人 共贏美好未來
一種融合PageRank和PersonalRank的多層個性化推薦算法
新海珠,新引擎,新活力!
堅持個性化的寫作
車壇往事4:引擎進化之屢次失敗的蒸汽機車
“四化”協(xié)同才有出路
藍谷: “涉藍”新引擎
京津冀協(xié)同發(fā)展
上汽大通:C2B個性化定制未來
奉贤区| 德江县| 石景山区| 明水县| 大名县| 江川县| 河西区| 乐平市| 长沙市| 迭部县| 和平县| 平利县| 都匀市| 永顺县| 沁阳市| 诏安县| 广灵县| 重庆市| 泗洪县| 巩留县| 枣庄市| 宁安市| 青川县| 台东市| 舞钢市| 波密县| 通化县| 长寿区| 特克斯县| 湛江市| 凤庆县| 邯郸县| 金坛市| 穆棱市| 诏安县| 建昌县| 大洼县| 宜兰市| 东乡族自治县| 娄烦县| 吉木萨尔县|