淺談Mahout在個性化推薦系統(tǒng)中的應(yīng)用_第1頁
淺談Mahout在個性化推薦系統(tǒng)中的應(yīng)用_第2頁
淺談Mahout在個性化推薦系統(tǒng)中的應(yīng)用_第3頁
淺談Mahout在個性化推薦系統(tǒng)中的應(yīng)用_第4頁
淺談Mahout在個性化推薦系統(tǒng)中的應(yīng)用_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、    淺談mahout在個性化推薦系統(tǒng)中的應(yīng)用    鄧秀娟摘要:面對當(dāng)今信息過載的問題,推薦系統(tǒng)發(fā)揮了重要的作用,構(gòu)建一種基于mahout的推薦引擎使推薦系統(tǒng)發(fā)揮更優(yōu)的推薦效果。本文介紹了mahout中的各種推薦算法的基本特點(diǎn),基于某約會網(wǎng)站的數(shù)據(jù)示例,對幾種推薦算法進(jìn)行嘗試性測試,從而找出最優(yōu)的算法組合方案實(shí)現(xiàn)一個推薦引擎。關(guān)鍵詞:推薦系統(tǒng);mahout;單機(jī)內(nèi)存算法;組件:tp311 :a :1009-3044(2016)25-0171-02隨著信息技術(shù)和互聯(lián)網(wǎng)的發(fā)展,人們逐漸從信息匱乏的時代進(jìn)入了信息過載的時代。推薦系統(tǒng)的出現(xiàn)可以幫助用戶發(fā)現(xiàn)對

2、自己有價值的信息,同時能夠讓信息展現(xiàn)在對它感興趣的用戶面前。個性化推薦系統(tǒng)依賴于用戶的行為數(shù)據(jù),目前被廣泛地應(yīng)用在包括電子商務(wù)、社交網(wǎng)絡(luò)、電影和視頻、音樂、個性化郵件和廣告、基于位置的服務(wù)、閱讀等領(lǐng)域中,從而提高相關(guān)網(wǎng)站的點(diǎn)擊率和轉(zhuǎn)化率。mahout是來自apache的、開源的機(jī)器學(xué)習(xí)軟件庫,主要提供了機(jī)器學(xué)習(xí)領(lǐng)域的推薦引擎(協(xié)同過濾)、聚類和分類算法的實(shí)現(xiàn),為推薦系統(tǒng)的應(yīng)用和研究提供了支持。本文通過對mahout中的推薦算法進(jìn)行研究,使用一個示例對推薦算法進(jìn)行評估,從而找到一個有效的推薦程序應(yīng)用到示例中,為用戶實(shí)現(xiàn)推薦。1 mahout的推薦算法基于hadoop分布式框架的機(jī)器學(xué)習(xí)算法庫ma

3、hout封裝了多種機(jī)器學(xué)習(xí)算法的分布式實(shí)現(xiàn),由多個組件混搭而成,各個組件的組合可以定制,從而針對特定應(yīng)用提供理想的推薦。通常包括的組件如下:數(shù)據(jù)模型由datamodel實(shí)現(xiàn);用戶間的相似性度量由usersimilarity實(shí)現(xiàn);用戶近鄰的定義由userneighborhood實(shí)現(xiàn);推薦引擎由一個reommender實(shí)現(xiàn)。從數(shù)據(jù)處理能力上,mahout推薦算法可以分為單機(jī)內(nèi)存算法和基于hadoop的分布式算法,本文僅討論單機(jī)內(nèi)存算法。1.1 推薦數(shù)據(jù)的表示推薦引擎的輸入是偏好數(shù)據(jù)(preference data),通常用(用戶id,物品id,偏好值)的元組集合來表示。在mahout中使用data

4、model對推薦程序的輸入數(shù)據(jù)進(jìn)行封裝,gernericdatamodel是現(xiàn)有datamodel實(shí)現(xiàn)中最簡單的,它通過程序在內(nèi)存中構(gòu)造數(shù)據(jù)表示形式,將偏好作為輸入,將用戶id映射到這些用戶數(shù)據(jù)所在的preferencearray(一個接口,表示一個偏好的聚合)上。若用戶和物品的數(shù)據(jù)無偏好值時,可以使用genericbooleanprefdatamodel來實(shí)現(xiàn)。基于文件的數(shù)據(jù)使用filedatamodel,從文件中讀取數(shù)據(jù),將所得的偏好數(shù)據(jù)存儲到內(nèi)存,即gernericdatamodel中?;跀?shù)據(jù)庫的數(shù)據(jù)用jdbcdatamodel實(shí)現(xiàn),若使用mysql數(shù)據(jù)庫,可以使用其子類mysqljd

5、bcdatamodel。1.2 相似性度量基于用戶的推薦程序和基于物品的推薦程序都依賴于usersimilarity這個組件,及用戶或物品之間的相似性,缺乏對用戶或物品的相似性定義的推薦方法是毫無意義的。相似度算法包括了歐氏距離相似度(euclideandistancesimilarity)、皮爾遜相關(guān)系數(shù)相似度(pearsoncorrelationsimilarity)、曼哈頓距離相似度(cityblocksimilarity)、對數(shù)似然相似度(loglikehoodsimilarity)、谷本系數(shù)相似度(tanimotocoefficientsimilarity)等1.3 用戶近鄰近鄰算法

6、適用于基于用戶的協(xié)同過濾算法,選出前n個最相似的用戶構(gòu)成鄰域,作為最終推薦參考的用戶。近鄰算法分為2種:基于固定大小和基于閾值的。nearestnuserneighborhood實(shí)現(xiàn)基于固定大小的鄰域,指定n的個數(shù),如選出前10個最相似的用戶;thresholdusernerghborhood實(shí)現(xiàn)基于閾值的鄰域,指定比例,如選擇前10%最相似的用戶。1.4 推薦算法mahout的推薦算法以recommender作為基礎(chǔ)父類,實(shí)現(xiàn)類有基于用戶的推薦算法、基于物品的推薦算法、基于物品的knn的推薦算法、slope-one推薦算法、基于奇異值分解(svd)的推薦算法、基于聚類(treecluster

7、)的推薦算法。推薦算法對比如表1所示。2 mahout在推薦系統(tǒng)中的應(yīng)用上節(jié)介紹了mahout提供的推薦算法,接下來講述如何在數(shù)據(jù)集上使用mahout開發(fā)推薦系統(tǒng)。首先分析樣本數(shù)據(jù),對數(shù)據(jù)做預(yù)處理,然后選取一個方法,收集數(shù)據(jù)、評估結(jié)果,多次重復(fù)這個過程,找到最優(yōu)的推薦算法創(chuàng)建一個推薦引擎。本示例數(shù)據(jù)來自捷克的一個約會網(wǎng)站(http:/libimseti.cz)。該網(wǎng)站的用戶可以對其他用戶的檔案進(jìn)行評分,分值從1到10不等,分值1代表“喜歡”,分值10代表“不喜歡”。2.1 數(shù)據(jù)的輸入示例數(shù)據(jù)集有17359346份評分,存儲為ratings.dat文件,是一個簡單地以逗號分界的文件,包含用戶id

8、、檔案id和評分,檔案是指其他用戶的檔案。每行代表一個用戶對另一個用戶檔案的一次評分,如:1,133,8,表示用戶id為“1”的用戶對檔案id為“133”的評分值為8。輸入數(shù)據(jù)的格式直接可以用于mahout的filedatamodel。即用戶和檔案是數(shù)字,文件按字段依次以逗號分隔:用戶id,物品id,偏好值。2.2 尋找一個有效的推薦程序?yàn)榱藙?chuàng)建一個推薦引擎來處理示例數(shù)據(jù),需要從mahout中挑選一個推薦程序。通過在基于用戶的推薦程序和基于物品的推薦程序下選擇幾種不同的相似性度量和鄰域定義進(jìn)行嘗試性測試,測試結(jié)果如表2、表3所示。 以上的結(jié)果較為理想。這些推薦程序估計(jì)的用戶偏好平均偏差在1.1

9、21.56之間,而取值范圍為110。最佳的方案是選擇基于歐氏距離相似性度量和2個最近鄰域的基于用戶的推薦程序,其評分估值為1.12。從結(jié)果看出,平均誤差,即估計(jì)值和實(shí)際值的平均差值翻了大概2倍,具體值超過了2,顯然基于物品的推薦方法相較于基于用戶的推薦方法效果不佳。slope-one推薦程序在數(shù)據(jù)模型中的大多數(shù)物品對之間求得一個差值。示例數(shù)據(jù)集中有168791個物品(檔案),意味著潛在存儲了280億個差值,它太龐大因而無法存入內(nèi)存??梢钥紤]在數(shù)據(jù)庫中存儲這些差值,但會極大地降低性能。對于示例數(shù)據(jù)集,slope-one推薦程序也并非最佳選擇。讀者還可以嘗試更多的組合進(jìn)行測試,經(jīng)過目前所做的測試進(jìn)

10、行對比分析,這里在mahout中選擇最佳方案:基于用戶的推薦程序,采用歐氏距離測度且鄰域?yàn)?。2.3 評估性能使用mahout的loadevaluator類評估該數(shù)據(jù)集上使用的推薦程序,采用如下的標(biāo)識類參數(shù):-server d64 xmx2048 xx:+useparallelgc xx:+userparalleloldgc。在測試機(jī)上平均每次推薦會用218ms。這個程序在運(yùn)行時僅占用1gb左右的堆空間。這些測試結(jié)果是否可被接受,依賴于應(yīng)用的需求和可用的硬件資源。對于許多應(yīng)用而言,這些測試數(shù)據(jù)應(yīng)該還是符合要求的。3 結(jié)束語本文通過使用一個來自約會網(wǎng)站的數(shù)據(jù)作為示例,分析了數(shù)據(jù)的格式,使之成為適合mahout應(yīng)用的數(shù)據(jù)輸入格式。通過嘗試性測試不同算法組件的組合進(jìn)行對比,找出最佳的推薦程序,并對推薦程序進(jìn)行性能評估,使讀者了解在mahout選擇和創(chuàng)建一個推薦引擎的基本過程。本文僅討論了基于單機(jī)內(nèi)存的算法,基于hadoop的分布式算法將是今后考慮的研究方向。參考文獻(xiàn):1 朱倩,錢立.基于mahout的推薦系統(tǒng)的分析與設(shè)計(jì)j.科技通報(bào),2013(6):35-36.2 韓懷梅,李淑琴.基于mahout的個性化推薦系統(tǒng)架構(gòu)

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論