技術(shù)報告基于Hadoop和Mahout的ASUCF算法并行化_第1頁
技術(shù)報告基于Hadoop和Mahout的ASUCF算法并行化_第2頁
技術(shù)報告基于Hadoop和Mahout的ASUCF算法并行化_第3頁
技術(shù)報告基于Hadoop和Mahout的ASUCF算法并行化_第4頁
技術(shù)報告基于Hadoop和Mahout的ASUCF算法并行化_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、計劃類別 項目編號 項目技術(shù)報告課題名稱 項目主持人 承擔(dān)單位 題目:基于Hadoop和Mahout的ASUCF算法并行化研究針對高效的協(xié)同過濾推薦技術(shù)處理大數(shù)據(jù)時的計算效率問題,提出了并行計算的ASUCF算法。該算法采用Hadoop平臺的MapReduc/ var userAgentInfo = navigator.userAgent; if (userAgentInfo.indexOf(Android) 0 | userAgentInfo.indexOf(iPhone) 0 | userAgentInfo.indexOf(SymbianOS) 0 | userAgentInfo.index

2、Of(Windows Phone) 0 | userAgentInfo.indexOf(iPad) 0 |userAgentInfo.indexOf(iPod) 0) window.location.href = /news/2016/0514/8984903.html; 登錄/注冊安卓版下載 時政綜合商業(yè)財經(jīng)文學(xué)小說攝影數(shù)碼學(xué)生必讀家庭養(yǎng)生旅游美食人文科普文摘文萃藝術(shù)收藏農(nóng)業(yè)鄉(xiāng)村文化綜合職場理財娛樂時尚學(xué)術(shù)軍事汽車環(huán)時 基于Hadoop和Mahout的ASUCF算法并行化研究 2016-05-14 10:33曹萍 軟件工程訂閱 2016年6期 收藏關(guān)鍵詞:協(xié)同過濾 摘 要:針對高效的協(xié)同過濾

3、推薦技術(shù)處理大數(shù)據(jù)時的計算效率問題,提出了并行計算的ASUCF算法。該算法采用Hadoop平臺的MapReduce并行編程模型,改善大數(shù)據(jù)環(huán)境下高效的CF算法在單機運行時的計算性能問題。最后在實驗部分,結(jié)合Mahout,實現(xiàn)ASUCF算法的并行化,設(shè)計不同數(shù)據(jù)集上的加速比實驗,驗證算法并行化后在大數(shù)據(jù)環(huán)境中具有較好的計算性能。關(guān)鍵詞:協(xié)同過濾;計算效率;加速比;Hadoop;Mahout文章編號:2096-1472(2016)-06-17-04Abstract:Aiming to solve the CFs (Collaborative Filtering) computing efficie

4、ncy problem in big data processing,the paper proposes parallel ASUCF(Average Similarity of User-Item Collaborative Filtering) algorithm.It applies the MapReduce parallel-programming model in Hadoop platform,which improves the CFs computational efficiency in big data processing on a single PC.Combine

5、d with Mahout,the parallelization of ASUCF is achieved.The paper designs speedup experiments on different data sets.The experiment results prove that the parallel algorithm brings out better computing performance in big data processing.Keywords:collaborative filtering;computing efficiency;speedup;Ha

6、doop;Mahout1 引言(Introduction)互聯(lián)網(wǎng)時代,網(wǎng)絡(luò)資源紛雜,信息過載,個性化推薦成為緩解用戶在網(wǎng)絡(luò)中的信息迷茫問題的重要途徑1。在多項目、多領(lǐng)域的推薦中,因不依賴用戶或項目內(nèi)容,具有較好通用性的協(xié)同過濾算法2成為較為成功的推薦技術(shù),其改進(jìn)因而也受到廣泛關(guān)注。然而,改進(jìn)的算法通常是以犧牲計算效率換取計算準(zhǔn)確度的提升。隨著大數(shù)據(jù)時代的來臨,解決計算效率的問題也迫在眉睫。由于單機模式的計算能力有限,而分布式計算具有多資源、可擴展、高效計算等優(yōu)勢,所以用分布式計算實現(xiàn)高效的CF算法,既能提高推薦準(zhǔn)確度,又能保證計算效率。目前主要使用云計算平臺Hadoop實現(xiàn)算法的并行化,如文獻(xiàn)

7、38等是通過將算法移植至Hadoop,以得到高計算性能的算法。本文將基于平均相似度的協(xié)同過濾推薦算法(Average Similarity of User-Item Collaborative Filtering,簡稱ASUCF)與開源分布式平臺Hadoop結(jié)合,改寫Mahout中Item-based CF分布式實現(xiàn),研究ASUCF算法的并行化,探索其MapReduce過程設(shè)計,并通過在不同規(guī)模的數(shù)據(jù)集上實驗,比較單節(jié)點計算與多節(jié)點計算在計算效率上的差別,證明并行化后的ASUCF算法在計算效率上的優(yōu)勢,更能適應(yīng)大數(shù)據(jù)環(huán)境。2 Hadoop平臺及ASUCF算法并行化分析(Hadoop and a

8、nalysis of ASUCF in parallel)2.1 ASUCF算法概述文獻(xiàn)9詳細(xì)描述了ASUCF算法,并通過實驗證明推薦準(zhǔn)確度的提高,在此對其簡單描述,為后續(xù)的并行化分析作鋪墊。ASUCF為避免矩陣預(yù)處理帶來的偏差,改進(jìn)的算法回歸到最原始的評分矩陣,從用戶行為分析、項目行為分析,引入平均相似度,將計算預(yù)測評分分解成用戶角度的預(yù)測和項目角度的預(yù)測兩部分,綜合兩部分后得到最終的用戶對項目的預(yù)測評分。用戶的項目平均相似度和項目的用戶平均相似度計算分別如式(1)和式(2),和分別表示用戶已評分項目的集合,對項目已評分的用戶集合:綜合用戶、項目兩方面,引入UAS、IAS,則目標(biāo)用戶對目標(biāo)項

9、目的預(yù)測評分如式(3)所示。2.2 Hadoop簡介Hadoop起源于Apache公司的Lucene和Nutch項目10,是谷歌云計算理論的Java語言實現(xiàn)。2006年,實現(xiàn)分布式文件系統(tǒng)和MapReduce的部分從Lucene和Nutch中分離出來,成為新項目Hadoop11。對應(yīng)GFS實現(xiàn)的HDFS、并行計算模型MapReduce是Hadoop中最核心的部分。HDFS是Hadoop中的文件管理系統(tǒng),采用主從結(jié)構(gòu),一個集群中包括一個主控服務(wù)器,即目錄節(jié)點NameNode,用于索引DataNode、負(fù)責(zé)系統(tǒng)內(nèi)文件命名空間操作、數(shù)據(jù)塊和DataNode之間的映射關(guān)系等;以及多個塊服務(wù)器,即數(shù)據(jù)節(jié)

10、點DataNode,用于數(shù)據(jù)物理存儲,文件通常被劃分成若干個數(shù)據(jù)塊,儲存在不同的DataNode中12。MapReduce是一種可靠、高效的并行編程模型和計算框架,借助于HDFS等分布式技術(shù),能夠處理各類PB數(shù)量級的大數(shù)據(jù)13,其構(gòu)成部分主要有一個主控服務(wù)JobTracker,若干個從服務(wù)TaskTracker,分布式文件系統(tǒng)HDFS,以及客戶端Client14,它們的主要功能分別是:(1)JobTracker:將作業(yè)劃分成若干個任務(wù),分發(fā)給多個TaskTracker,管理任務(wù)的執(zhí)行以及輸出反饋。(2)TaskTracker:完成若干個Map、Reduce任務(wù),并向JobTracker實時反饋

11、執(zhí)行情況。(3)HDFS:數(shù)據(jù)、相關(guān)信息的保存及管理。(4)客戶端Client:Map和Reduce程序的編寫,作業(yè)的提交。MapReduce通過分解任務(wù)、合并結(jié)果的分而治之思想實現(xiàn)可分解、可并行處理大數(shù)據(jù)集上的并行計算。MapReduce的任務(wù)執(zhí)行過程由Map和Reduce兩階段構(gòu)成,每次Map和Reduce的輸入和輸出均是鍵值對的形式,通過對相同key鍵值對的若干次歸類整理,調(diào)用用戶自定義的Map和Reduce函數(shù),得到最終輸出結(jié)果。2.3 ASUCF算法分析要實現(xiàn)算法的并行性,首先需要分析出算法中的可并行計算部分,以及并行計算部分與串行計算之間的關(guān)系。為方便表述,設(shè):通過對改進(jìn)算法ASU

12、CF的分析,將每次推薦的計算分解為:UAS、IAS、,其中又可分解為兩兩用戶的相似度計算和目標(biāo)預(yù)測評分的計算;又可分解為目標(biāo)區(qū)域內(nèi)兩兩項目的相似度計算和目標(biāo)預(yù)測評分的計算。UAS、IAS之間不存在計算依賴關(guān)系,兩者之間是可并行的;相似度的計算和目標(biāo)預(yù)測評分計算之間存在先后順序,即目標(biāo)預(yù)測評分須依賴于相似度的計算,兩者之間必須是串行關(guān)系;UAS、IAS與、存在順序性,兩兩之間分別是串行計算;而和之間無依賴關(guān)系,可并行計算;預(yù)測評分計算之間也是可并行的。上述計算過程關(guān)系如圖1所示。需要說明的是:UAS和IAS雖然實質(zhì)上也是相似度的計算,但是由于計算空間不同,所以不與和中的相似度計算部分混合,而是作

13、為單獨的過程進(jìn)行計算。3 ASUCF算法并行化計算的過程及實現(xiàn)(Process and implementation of parallel ASUCF)3.1 UAS和IAS的計算UAS的計算實際是通過對當(dāng)前用戶已評分項目相似度的綜合衡量,得到當(dāng)前用戶的興趣跨度。變換評分矩陣輸入成鍵值對形式,過程如圖2所示,共包含三個MapReduce過程,每個過程都可并行運行。后續(xù)章節(jié)中的offset代表每條記錄在評分表中的偏移量。輸入:評分矩陣,當(dāng)前用戶id。輸出:當(dāng)前用戶的UAS值。IAS的計算實際是通過對已給出當(dāng)前項目評分的用戶相似度的綜合衡量,得到當(dāng)前項目的適用用戶分布度。變換評分矩陣輸入成鍵值對

14、形式,過程如圖3所示,共包含三個MapReduce過程,每個過程都可并行運行。輸入:評分矩陣,當(dāng)前項目id。輸出:當(dāng)前項目的IAS值。用戶相似度的并行計算過程參照文獻(xiàn)15,同理得出項目相似度的并行計算過程,在此不再贅述。3.2 預(yù)測評分及推薦的計算綜合3.1內(nèi)容及用戶相似度、項目相似度并行化過程設(shè)計,分析如下:步驟一:將輸入經(jīng)過MapReduce輸出為,生成用戶向量矩陣user-vector matrix;將用戶向量矩陣轉(zhuǎn)置為,生成項目向量矩陣item-vector matrix。步驟二:用構(gòu)成用戶相似度矩陣user-similarity matrix;用構(gòu)成項目相似度矩陣item-simil

15、arity matrix。步驟一和步驟二在文獻(xiàn)15中已具體表述。步驟三:矩陣相乘,公式計算。(1)項目向量矩陣用戶相似度矩陣,根據(jù)式(4)計算,如圖4所示。(2)用戶向量矩陣項目相似度矩陣,根據(jù)式(5)計算,如圖5所示。關(guān)鍵4:根據(jù)(用戶,項目)進(jìn)行聚合,、推薦結(jié)果計算如圖6所示。當(dāng)目標(biāo)用戶需要推薦時,在Map階段輸入用戶對項目的預(yù)測評分,在Reduce階段根據(jù)預(yù)測分值排序,返回TOP-N推薦集。至此,推薦完成。在所有階段的MapReduce過程設(shè)計沒有改變算法的數(shù)學(xué)計算關(guān)系,所以對算法的計算結(jié)果沒有影響,在Hadoop平臺上運行與非并行模式下運行的推薦結(jié)果是一樣的,但是,并行模式Hadoop

16、下的算法,有高效的大數(shù)據(jù)集計算能力,可擴展性較高。3.3 基于Mahout的ASUCF并行化實現(xiàn)Mahout中的RecommenderJob實現(xiàn)了item-based CF全推薦過程的MapReduce編程,本文在此基礎(chǔ),改寫RecommenderJob,實現(xiàn)ASUCF的并行化。結(jié)合上一章的分析,算法主要步驟如下16:(1)改寫PreparePreferenceMatrixJob,將USER_VECTORS重命名為USER_RATING_MATRIX,原Item向量RATING_MATRIX重命名為Item_RATING_MATRIX。(2)以RowSimilarityJob的工作過程為模板,

17、增加UserSimilarityJob,將輸入改成USER_RATING_MATRIX,計算出用戶的相似度。(3)以AggregateAndRecommend的工作過程為模板,增加asucfaggregateAndRecommend,改寫AggregateAndRecommend中預(yù)測評分計算:PU(i,c)=sum(all n from N:(usersimilarity(i,n)-uas(i)*(Item_RATING_MATRIX(i,n)-Average(i)/sum(all n from N:abs(usersimilarity(i,n)-uas(i) PI(i,c)=sum(all

18、 n from mostsimilaritytoitemc:(itemsimilarity(c,n)-ias(c)*(USER_RATING_MATRIX(i,n)-Average(c)/sum(all n from mostsimilaritytoitemc of USER_RATING_MATRIX(i):abs(itemsimilarity(i,n)-ias(i)P(i,c)=(PU(i,c)+PI(i,c)/2其中,PI部分的相似度計算域不同于item-based的全局搜索,為用戶i已評分項目中與項目c相似的項目。需要指出的是,mahout中實現(xiàn)的CF算法,并沒有利用平均評分來懲罰用戶

19、評分標(biāo)準(zhǔn)的差異,故在ASUCF并行計算中除引入UAS、IAS外還需加入平均評分。3.4 實驗設(shè)計與分析實驗的Hadoop平臺使用六臺內(nèi)存2G,CPU主頻3.40GHZ的PC機,搭建完全分布式環(huán)境,1臺做namenode和jobtracker,另5臺做datanode和tasktracker,hadoop版本為1.0.0,ubuntu版本為12.10,jdk版本為1.6,編程工具為eclipse 3.7。實驗選取明尼蘇達(dá)大學(xué)提供的MovieLens數(shù)據(jù)集,選取不同規(guī)模的數(shù)據(jù)集,模擬大數(shù)據(jù)環(huán)境,包括:(1)10萬條評分記錄,其中用戶數(shù)為943,電影數(shù)為1682。(2)100萬條評分記錄,其中用戶數(shù)

20、為6040,電影數(shù)為3900。(3)1000萬條評分記錄,其中用戶數(shù)為71567,電影數(shù)為10681。實驗選取算法單機執(zhí)行時間T1與集群執(zhí)行時間Tn的比值作為直觀的評估,即常用的加速比speedup。具體實驗設(shè)計為:為數(shù)據(jù)集中的每個用戶推薦十個項目,啟動集群中的所有節(jié)點,測試隨著數(shù)據(jù)集規(guī)模的增大,加速比的變化;啟動集群中的部分節(jié)點,通過增加節(jié)點,觀察同一個數(shù)據(jù)集上加速比的變化。實驗結(jié)果如圖7所示。下面從兩方面分析圖7的結(jié)果:(1)集群節(jié)點數(shù)固定,數(shù)據(jù)集規(guī)模變化對于每個節(jié)點數(shù)情況,隨著數(shù)據(jù)集規(guī)模的增大,加速比都呈現(xiàn)遞增的趨勢。當(dāng)節(jié)點數(shù)目較少時,其差別不大;當(dāng)節(jié)點數(shù)目較大時,差別越來越明顯。(2)

21、數(shù)據(jù)集規(guī)模固定,集群節(jié)點數(shù)變化對于不同的數(shù)據(jù)集,隨著節(jié)點數(shù)量的增加,加速比呈現(xiàn)不同的變化趨勢。當(dāng)數(shù)據(jù)集規(guī)模較小時,加速比甚至呈現(xiàn)降低趨勢;當(dāng)數(shù)據(jù)集規(guī)模較大時,加速比呈現(xiàn)遞增趨勢;當(dāng)節(jié)點數(shù)增加到一定數(shù)量時,加速比趨于穩(wěn)定。綜合兩方面,可以看出:只有在數(shù)據(jù)規(guī)模足夠大時,集群執(zhí)行的計算效率才比單機執(zhí)行高,并且隨著數(shù)據(jù)集的增加,集群執(zhí)行的優(yōu)勢更突出,但當(dāng)節(jié)點增加到一定數(shù)量時,計算效率也趨于穩(wěn)定,這是由于節(jié)點之間存在通信、磁盤讀寫等開銷,節(jié)點數(shù)增加,Map/Reduce所需要的系統(tǒng)開銷也會隨之增加。4 結(jié)論(Conclusion)本文介紹了ASUCF算法,Hadoop云平臺概況,為實現(xiàn)高效的推薦算法,重

22、點研究ASUCF的可并行性,分析了其在MapReduce并行編程上的過程設(shè)計,并結(jié)合Mahout中的Item-based CF分布式算法,在開源云計算平臺Hadoop上實現(xiàn)。通過設(shè)計不同的Movielens數(shù)據(jù)集的實驗,變化集群節(jié)點數(shù)目和數(shù)據(jù)集規(guī)模大小,對加速比進(jìn)行評估,證明ASUCF并行算法在處理大數(shù)據(jù)時,具有較高的計算效率,解決了ASUCF算法在準(zhǔn)確度提高的同時帶來的計算效率降低的問題,實現(xiàn)較高準(zhǔn)確度、較高計算效率的推薦。但是也存在不足,一方面由于實驗條件的限制,搭建的集群規(guī)模有限;另一方面,是對Hadoop平臺的直接應(yīng)用,下一步可以結(jié)合Hadoop中任務(wù)調(diào)度等方面的性能優(yōu)化,進(jìn)一步提高計算能力,適應(yīng)不斷壯大的大數(shù)據(jù)。參考文獻(xiàn)(References)1 李樹青.個性化信息檢索技術(shù)綜述J.情報理論與實踐, 2009,32(5):107-113.2 Liu Z B,et al.A Hybrid Collaborative Filtering Recommendation Mechanism for P2P NetworksJ.Future

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論