摘 要: 隨著系統(tǒng)規(guī)模的不斷擴(kuò)大和數(shù)據(jù)獲取量的指數(shù)級增長,在傳統(tǒng)推薦系統(tǒng)的冷啟動、精確性、擴(kuò)展性等問題嚴(yán)峻化的同時,實時性問題亦成為面向海量數(shù)據(jù)推薦系統(tǒng)新的瓶頸點(diǎn)?;趥鹘y(tǒng)推薦領(lǐng)域的主流算法,提出了一個擴(kuò)展向量推薦模型。根據(jù)擴(kuò)展模型對推薦算法中對象的向量進(jìn)行合理擴(kuò)展,通過相似度計算等過程動態(tài)選取推薦集,完成對目標(biāo)對象更精確的推薦。實驗結(jié)果表明,與傳統(tǒng)推薦算法相比,基于新模型的推薦算法可以顯著地提升推薦效果,成功克服冷啟動問題。
關(guān)鍵詞: 擴(kuò)展向量推薦模型; 協(xié)同過濾; Slope One; ALS?WR; 分布式計算
中圖分類號: TN911?34; TM417 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2016)21?0024?05
Research on resource optimization recommendation technology
in cloud computing environment
Lü Xiaoqing
(Huihua College of Hebei Normal University, Shijiazhuang 050000, China)
Abstract: With the continuously extending of the system scale and exponential order increase of data acquisition quantity, the problems of cold start?up, accuracy and scalability of the traditional recommendation system are severe, and the real?time problem becomes a new bottleneck of the massive data recommendation system. On the basis of the mainstream algorithm in the traditional recommendation field, an expand?vector recommendation model is put forward. The object vector in recommendation algorithm is expanded reasonably according to the extended model. The recommendation set is selected by means of the similarity calculation and other dynamic processes to recommend the accurate target object. The experimental results show that, in comparison with the traditional collaborative recommendation algorithm, the recommendation algorithm based on this new model can promote the recommendation effect significantly, and overcome the cold start?up successfully.
Keywords: expand?vector recommendation model; collaborative filtering; Slope One; ALS?WR; distributed computing
0 引 言
由于推薦系統(tǒng)應(yīng)用的普及,提高系統(tǒng)的用戶體驗一直是各個系統(tǒng)應(yīng)用不斷的追求。由于推薦系統(tǒng)中的推薦算法在運(yùn)行過程中涉及大量的數(shù)據(jù)計算過程,而海量數(shù)據(jù)環(huán)境下,運(yùn)算所需的時間越來越大,實時完成系統(tǒng)應(yīng)用是面向海量數(shù)據(jù)推薦系統(tǒng)的瓶頸點(diǎn)。面對海量數(shù)據(jù)的存儲,常用數(shù)據(jù)庫早已超出負(fù)荷,系統(tǒng)的可擴(kuò)展性問題也日益凸顯。針對其瓶頸點(diǎn),很多研究方案被提出,但將精度、實時性和可擴(kuò)展性同時完美的融合在一個系統(tǒng)中是該領(lǐng)域一直以來面臨的挑戰(zhàn)。
針對傳統(tǒng)推薦算法面向海量數(shù)據(jù)時的可擴(kuò)展性和數(shù)據(jù)稀疏性問題,基于分布式環(huán)境下的數(shù)據(jù)挖掘和并行處理技術(shù),本文除對推薦算法本身進(jìn)行優(yōu)化改進(jìn)外,提出了一種基于Hadoop分布式平臺完成推薦算法分布式實現(xiàn)的改進(jìn)方案,即使用對海量稀疏數(shù)據(jù)具有良好支持的HDFS來存儲用戶交互矩陣并將其作為數(shù)據(jù)源,同時基于MapReduce分布式計算框架,將推薦算法的計算任務(wù)均衡地分配給Hadoop集群內(nèi)的每臺機(jī)器,從而有效地提高推薦算法的執(zhí)行效率,同時在大規(guī)模分布式數(shù)據(jù)計算點(diǎn),再次有效地將GPU引入進(jìn)行輔助計算。
1 基于擴(kuò)展向量的推薦模型
將新模型具體應(yīng)用在基于項目的協(xié)同過濾推薦算法中,優(yōu)化后的算法流程如下:
擴(kuò)展向量:基于新模型對項目的特征向量進(jìn)行擴(kuò)展,即可得項目的擴(kuò)展特征向量表示為:
[eitemj=p(1,j),p(2,j),…,p(m,j),aitemj,1,aitemj,2,…,aitemj,q] 式中:[eitemj]表示第[j]個項目對應(yīng)的擴(kuò)展特征向量,[1≤j≤M,][M]為站點(diǎn)中的項目集合[I]的總數(shù);[p(i,j)]表示第[i]個用戶對第[j]個項目的偏好值,[l≤i≤N,][N]為站點(diǎn)中的用戶集合[U]的總數(shù);[aitemj,k]表示第[j]個項目本身具有的第[k]個屬性值,[l≤k≤Q,Q]為站點(diǎn)中項目的屬性個數(shù)。所述偏好值可以代表系統(tǒng)中用戶對項目的評分大小、評論長短、購買與否以及瀏覽次數(shù)等信息。所述項目屬性值可以是項目本身具有的項目內(nèi)容、類別、價格、年份、適用人群,產(chǎn)地等屬性信息。同理,用戶的擴(kuò)展特征向量可以表示為:
[euseri=p(i,1),p(i,2),…,p(i,n),auser(i,1),auser(i,2),…,auser(i,r)]
式中:[euseri]表示[useri]的擴(kuò)展特征向量,[l≤i≤N,][N]為站點(diǎn)中的用戶總數(shù),[p(i,j)]表示第[i]個用戶對第[j]個項目的偏好值;[auser(i,k)]表示第[i]個用戶本身具有的第[k]個屬性值,[l≤k≤R,R]為站點(diǎn)中用戶相關(guān)屬性的個數(shù)。具體的,所述用戶屬性值可以包括年齡段、性別、專業(yè)類別等。
最近鄰搜索:最近鄰搜索意味著尋找目標(biāo)項目的最相似鄰居。所有的相似度計算基于擴(kuò)展特征向量和相似性度量方法展開,優(yōu)化后的相似性度量方法具體如下所示:
基于歐式距離的相似度,如下:[sim′(j,j)=11+(pij-pij)2+(aijk-aijk)2] (1)
基于谷本相關(guān)的相似度,如下:
[sim′(j,j)=Uj?Uj+Aj?AjUj?Uj+Aj?Aj] (2)
式中:[sim′(j,j)]表示對象[j]和對象[j]的擴(kuò)展特征向量之間的相似度,其相似度計算方法基于擴(kuò)展向量展開。其中,基于項目的協(xié)同過濾算法即為計算候選被推薦項目與其他項目的相似值,[itemj]和[itemj]代表兩個不同的項目,[Uj]代表對[itemj]給出評分的用戶集合,[Uj]代表對[itemj]給出評分的用戶集合,[Aj]意味著itemj的屬性信息集合,[Aj]意味著[itemj]的屬性信息集合。由于項目的擴(kuò)展特征向量考慮了項目本身具有的屬性信息,使其參與相似度計算的向量更加精確,所以在理論上相似度是更加準(zhǔn)確的。完成所有相關(guān)的計算后可以得到項目的相似矩陣。而且基于sim,項目的最近鄰居也被獲取到。
得到預(yù)期偏好矩陣:計算候選推薦項目的預(yù)測評分值,如下:
[R′(u,j)=1Iuj∈Iusim′(j,j)p(u,j)] (3)
式中:[R′(u,j)]用來評估用戶[useru]對[itemj]的偏好值,其計算基于目標(biāo)項目的最近鄰的偏好值;[Iu]代表對用戶[u]給出過偏好值的item集合。
做出推薦:對候選推薦對象的推薦值[R′(u,j)]按照從大到小的順序進(jìn)行排序。選取前[W]個項目推薦給用戶[useru,][W]是人為設(shè)定的某一正整數(shù)。經(jīng)過上述操作步驟,即可完成新模型在基于項目的協(xié)同過濾推薦模型的應(yīng)用。
2 云計算環(huán)境下大數(shù)據(jù)的推薦系統(tǒng)設(shè)計
2.1 系統(tǒng)的體系結(jié)構(gòu)
不同時期的推薦系統(tǒng),面對的數(shù)據(jù)量也有質(zhì)的不同,從幾十條記錄到現(xiàn)在的一千萬條記錄,單機(jī)的推薦系統(tǒng)已無法滿足其處理需求。
面向海量數(shù)據(jù)的推薦系統(tǒng)的架構(gòu)如圖1所示,其構(gòu)建于物理集群之上,基于本地數(shù)據(jù)庫和推薦算法的使用,為用戶提供注冊、節(jié)目推薦和節(jié)目交互等功能,其中節(jié)目交互包括新節(jié)目的推薦榜單、熱播節(jié)目的榜單、用戶對節(jié)目評分,以及用戶可以獲取對其產(chǎn)生的推薦列表等功能。其中系統(tǒng)將服務(wù)工程中產(chǎn)生的數(shù)據(jù)存儲在文件中,并部署在HDFS上,并運(yùn)用Map?Reduce并行計算框架和CUDA并行計算框架處理系統(tǒng)運(yùn)行過程面對的海量數(shù)據(jù)處理問題,最終高性能、高質(zhì)量的完成系統(tǒng)的各個功能,提高用戶的體驗。所以,從下至上,系統(tǒng)的體系結(jié)構(gòu)分為三成:物理資源層、數(shù)據(jù)處理層(存儲和計算)和應(yīng)用層。
2.2 系統(tǒng)的數(shù)據(jù)支撐平臺的設(shè)計
系統(tǒng)的數(shù)據(jù)支撐平臺的設(shè)計如圖2所示。對于面向海量數(shù)據(jù)的推薦系統(tǒng),在用戶數(shù)量較多的情況下可以對其按照地域進(jìn)行分區(qū)存儲,將系統(tǒng)應(yīng)用層涉及的目標(biāo)用戶的最終推送數(shù)據(jù)存儲在目標(biāo)用戶對應(yīng)的地域數(shù)據(jù)庫中。本地數(shù)據(jù)庫對應(yīng)的數(shù)據(jù)庫表增加分區(qū)partition即可。這些數(shù)據(jù)庫可以部署在不同的地域。對于每一個用戶,其對電影的評分信息存儲在分布式文件系統(tǒng)中,分布在該地域的Hadoop集群上。因為大多數(shù)對數(shù)據(jù)庫的訪問操作都具有局部性,所以,通過地域進(jìn)行劃分,降低了數(shù)據(jù)傳送的代價,而且當(dāng)網(wǎng)絡(luò)出現(xiàn)故障時,仍然允許對局部數(shù)據(jù)庫的操作。
由于底層采用HDFS,所以可以存儲海量數(shù)據(jù)、也便于擴(kuò)充。利用地域進(jìn)行數(shù)據(jù)分區(qū),對用戶推薦的同時間接考慮了地域文化,一方水土孕育一方文化,一方文化造就一方人的性格,利用人性格的地域同一性使得對用戶的推薦更加準(zhǔn)確。
2.3 系統(tǒng)的智能推薦模塊設(shè)計
(1) 推薦算法的選擇
系統(tǒng)采用提出的新混合算法,即基于項目的Slope One分布式推薦算法,對應(yīng)于混合推薦算法文本框。此外,本系統(tǒng)還采用了基于雙重相似的協(xié)同過濾推薦算法、ALS?WR多種推薦算法彼此并行運(yùn)行。對于系統(tǒng)提供的功能,采用多種算法呈現(xiàn)結(jié)果,可以最大程度地消除冷啟動問題,同時可以為用戶提供更為豐富的推薦列表供其選擇,最大程度地滿足用戶的需求。
(2) 數(shù)據(jù)預(yù)處理模塊
數(shù)據(jù)預(yù)處理模塊的功能分為兩類:一種是對從系統(tǒng)功能層取得的數(shù)據(jù)進(jìn)行優(yōu)化整合并轉(zhuǎn)化成算法需要的數(shù)據(jù)源格式存儲在數(shù)據(jù)支撐平臺的HDFS上;第二種是將推薦算法所需要的數(shù)據(jù)從數(shù)據(jù)支撐平臺獲取,進(jìn)行相應(yīng)的優(yōu)化整合轉(zhuǎn)化成算法所需要的二次數(shù)據(jù)源,供算法運(yùn)行過程中使用。由于數(shù)據(jù)預(yù)處理過程中涉及的數(shù)據(jù)處理可以分為離線進(jìn)行和在線進(jìn)行兩種,所以提高數(shù)據(jù)支撐平臺利用率的同時也減小了系統(tǒng)的在線負(fù)載。其中可以離線進(jìn)行處理的數(shù)據(jù),比如對HDFS上的數(shù)據(jù)進(jìn)行定時更新、選擇性存儲并更新算法運(yùn)行過程中產(chǎn)生的臨時文件以供下次使用,比如項目與項目之間的相似性文件等。
(3) 算法運(yùn)行模塊
算法運(yùn)行模塊功能為運(yùn)行基于Hadoop的推薦算法。其中輸入為數(shù)據(jù)庫中經(jīng)過數(shù)據(jù)預(yù)處理得到的數(shù)據(jù)源,比如,系統(tǒng)指定格式的用戶對項目的評分?jǐn)?shù)據(jù)。輸出是系統(tǒng)各項功能中所需的數(shù)據(jù),比如對目標(biāo)用戶的具體的推薦項目列表。
3 推薦結(jié)果評估及系統(tǒng)實現(xiàn)
仿真實驗對三種推薦算法分布式實現(xiàn)的實驗結(jié)果進(jìn)行呈現(xiàn)和分析,具體包括評估標(biāo)準(zhǔn)的介紹、實驗數(shù)據(jù)集的選取以及不同維度推薦效果的對比。
本文取用GroupLens實驗室提供的MovieLens 100K,1M以及10M數(shù)據(jù)集,其中分別包含了十萬條,一百萬條和一千萬條用戶的偏好記錄。這些信息記錄是從1997年9月19日—1998年4月22日,7個月時間里MovieLens網(wǎng)站(movielens.umn.edu)的用戶對電影的真實評分。使用這些不同大小的數(shù)據(jù)集可以很好地測試基于新模型的三種推薦算法分布式實現(xiàn)的實際性能。
3.1 推薦結(jié)果比較
為對比不同推薦算法基于新模型的推薦結(jié)果,在一個小型HOD集群上進(jìn)行了驗證。實機(jī)配置為:Dell Power Edge SC1430,英特爾至強(qiáng)5110(1.6 GHz)CPU兩顆(雙核),4 GB物理內(nèi)存,300 GB硬盤(RAID 0模式),都處在100M局域網(wǎng)中。使用3臺實機(jī)搭建Hadoop集群,三臺實機(jī)分別作為pbs_server,namenod和datanode節(jié)點(diǎn)。在所有的節(jié)點(diǎn)上安裝Python 2.5.1以及Hadoop發(fā)行版本的可執(zhí)行程序。依次使用GroupLens三個數(shù)據(jù)集在實驗集群上進(jìn)行測試。
3.1.1 不同推薦算法使用新模型前后的比較
使用MovieLens 100K數(shù)據(jù)集,分別運(yùn)行三種推薦算法的分布式實現(xiàn),得到使用新模型前后算法的準(zhǔn)確率和召回率的對比實驗結(jié)果,如表1所示。
由表1可以看出,新模型的應(yīng)用使推薦算法的準(zhǔn)確率和召回率都得到了不同程度的提升。所以基于擴(kuò)展向量的推薦模型可以在一定程度上解決推薦算法在精度方面的問題。另外,三種推薦算法的成功應(yīng)用也說明了新模型廣泛的適用性。
3.1.2 基于新模型的不同推薦算法的比較
為了得到基于新模型的三種推薦算法的對比性能,本實驗分別使用MovieLens 100K和1M數(shù)據(jù)集來運(yùn)行三種算法的分布式實現(xiàn),將得到的關(guān)于精準(zhǔn)度和運(yùn)行速度兩方面的實驗結(jié)果直觀地呈現(xiàn)在表2~表4和圖3,圖4中。
通過圖3,圖4可以得出,基于新模型的ALS推薦算法的準(zhǔn)確率最高,基于新模型的Slope One推薦算法的召回率最高,而協(xié)同過濾推薦算法在準(zhǔn)確率和召回率兩方面都處于較低水平。綜合考慮準(zhǔn)確率和召回率兩個方面,可以得出基于新模型的ALS推薦算法的精準(zhǔn)度最好,基于新模型的Slope One推薦算法次之。同時,由表4可以得出,協(xié)同過濾推薦算法的運(yùn)行時間最短,與其他兩個算法相比,有質(zhì)的飛躍。
3.1.3 關(guān)于冷啟動的解決
針對三種推薦算法關(guān)于解決冷啟動的理論,可以采用MovieLens 100K數(shù)據(jù)集對其進(jìn)行實驗驗證。針對數(shù)據(jù)集中有歷史評分的項目對象,隨機(jī)選取20個將其評分?jǐn)?shù)據(jù)變?yōu)?。運(yùn)行三種推薦算法,得到對實驗對象的預(yù)測評分,與原始評分進(jìn)行對比,得到準(zhǔn)確率,實驗結(jié)果如表5所示。
根據(jù)實驗結(jié)果可以得出,新模型的使用使三種推薦算法都成功地解決了冷啟動問題。而且三種推薦算法對基于項目的協(xié)同過濾推薦算法的應(yīng)用最為成功。所以新模型可以在一定程度上解決傳統(tǒng)推薦算法的冷啟動問題。
3.2 推薦效果綜合總結(jié)
將推薦結(jié)果的評估和算法的復(fù)雜度以表格的形式呈現(xiàn),即可得到如表6所示的內(nèi)容。
從表6中可以得出以下結(jié)論:協(xié)同過濾推薦算法雖然在商業(yè)實際應(yīng)用中較為流行,但是其推薦精度次于其他兩種算法;ALS?WR推薦算法雖然推薦的精準(zhǔn)度較高,但是面向海量數(shù)據(jù),其分布式實現(xiàn)中涉及的[U]和[M]會非常巨大,運(yùn)行時要將它們放入內(nèi)存,極大地影響了程序的運(yùn)行效率。而且,算法中含有循環(huán),由于Hadoop在處理循環(huán)時性能不夠好,所以在運(yùn)行過程中,此算法的性能不如其他兩種算法。
Slope One推薦算法的推薦精度、冷啟動的解決、運(yùn)行速度均為三種算法的折中水平,但是其實現(xiàn)原理較為簡單,所以實現(xiàn)復(fù)雜度較低。三種推薦算法中,基于項目的協(xié)同過濾的運(yùn)行速度最優(yōu),從實驗結(jié)果中可以得出,相對于其他兩種算法,它有很大的優(yōu)勢。
4 結(jié) 論
本文通過對現(xiàn)有個性化推薦算法的研究,提出了基于擴(kuò)展向量的推薦模型,并基于Mahout中的組件對三種算法進(jìn)行模型的具體應(yīng)用和分布式實現(xiàn),三種算法具體為Slope One推薦算法、ALS推薦算法和基于項目的協(xié)同過濾推薦算法。實驗結(jié)果表明,新模型的應(yīng)用能顯著提高推薦效果,并且解決了推薦算法常有的冷啟動問題。
針對云計算環(huán)境下大數(shù)據(jù)的推薦系統(tǒng),采用分布式文件系統(tǒng)對數(shù)據(jù)進(jìn)行存儲,從而實現(xiàn)大數(shù)據(jù)負(fù)載均衡存儲的功能。另外,分?jǐn)?shù)據(jù)數(shù)據(jù)庫的設(shè)計中使用地域?qū)ζ溥M(jìn)行數(shù)據(jù)庫分區(qū),此方法間接考慮了地域文化對人的性格和品位的影響,即利用一個地區(qū)的人的性格的同一性,間接達(dá)到推薦結(jié)果更優(yōu)的效果。針對面向海量數(shù)據(jù)推薦系統(tǒng)的精確性問題,基于協(xié)同過濾算法和Slope One推薦算法,提出了一種新的混合算法,即基于項目的Slope One分布式推薦算法,并將其分布式實現(xiàn)應(yīng)用于推薦系統(tǒng)中。針對海量數(shù)據(jù)處理,使用基于Hadoop的云計算平臺的同時,針對一些巨大矩陣運(yùn)算,采用GPU計算框架完成其并行化實現(xiàn)。云計算和GPU技術(shù)的融入緩解了面向海量數(shù)據(jù)推薦系統(tǒng)面臨的擴(kuò)展性和實時性問題。
參考文獻(xiàn)
[1] 相海泉.迎接大數(shù)據(jù)時代[J].中國信息界,2013(5):38?42.
[2] 趙衛(wèi)中,馬慧芳,傅燕翔,等.基于云計算平臺Hadoop的并行k?means聚類算法設(shè)計研究[J].計算機(jī)科學(xué),2011,38(10):166?168.
[3] 曹潤濤.基于Hadoop的移動感知系統(tǒng)的設(shè)計與實現(xiàn)[D].西安:西安電子科技大學(xué),2012.
[4] SU H Y, WANG C Q, ZHU Y, et al. Distributed collaborative filtering recommendation model based on expand?vector [C]// Proceedings of 2014 International Conference on Multisensor Fusion and Information Integration for Intelligent Systems. [S.l.]: IEEE, 2014, 989?994.
[5] 朱保華,張曉濱.移動用戶餐飲個性化需求推薦研究[J].現(xiàn)代電子技術(shù),2015,38(11):13?15.
[6] 任品.基于置信用戶偏好模型的電視推薦系統(tǒng)[J].現(xiàn)代電子技術(shù),2014,37(16):30?33.
[7] OWEN S, ANIL R, DUNNING T, et al. Mahout in action [M]. US: Manning, 2011.
[8] 邵澤云,劉正岐.云計算關(guān)鍵技術(shù)研究[J].信息安全與技術(shù),2014,5(4):24?25.