諶 頏
(廣東技術師范學院天河學院,廣東 廣州 510540)
隨著云計算和互聯(lián)網(wǎng)+時代的到來,信息呈爆炸式增長,信息超載問題越來越突出,用戶從海量數(shù)據(jù)中獲取感興趣的信息越來越困難,大大降低了信息的使用效率。個性化推薦技術作為一種重要的信息過濾手段,能有效地為用戶推薦感興趣的資源,協(xié)同過濾推薦雖然是迄今為止最為成功的個性化推薦技術之一,但因其不能準確理解用戶的喜好,從而影響到推薦的準確率及推薦效果。本文研究的標簽推薦技術是基于用戶、資源和標簽三者建立動態(tài)關系,從而可以實現(xiàn)對用戶喜好的標注和理解。
由于傳統(tǒng)推薦技術在處理大數(shù)據(jù)量甚至海量信息時計算性能表現(xiàn)差,而云計算具有超大規(guī)模以及分布式處理架構(gòu)等特點,適合大數(shù)據(jù)量計算處理,基于此提出了一種基于Hadoop的標簽推薦系統(tǒng):我們將大數(shù)據(jù)集和推薦計算功能分布到多臺計算機上并行處理,可大大提高推薦系統(tǒng)的處理性能和可伸縮性。
對標簽的語義分析可以提高資源推薦的準確性,該系統(tǒng)框架可對標簽的含義進行處理,其過程包括標簽整理、建立標簽庫以及標簽選擇,最后建立起基于標簽的用戶喜好模型。系統(tǒng)框架圖如圖1所示,其中最重要的是組件是推薦引擎和用戶喜好模型兩部分。
圖1 基于語義的標簽推薦系統(tǒng)框架
(1)標簽結(jié)構(gòu)分析
標簽是一種由用戶支配的目錄內(nèi)容管理方式,用戶不受外部系統(tǒng)的影響,可自由標注任何標簽,但這種自由也帶來了諸多問題:
第一,不同的標簽可能具有相同含義。
第二,近義詞或是同義詞的存在。
第三,單詞拼寫錯誤。
第四,不同語境單詞含義不同。例如標簽“蘋果”,可能是水果中的蘋果也可能“蘋果”設備。
第五,標簽可能是單詞、詞組或句子。從現(xiàn)有MovieLens中的數(shù)據(jù)可知有超過一半的標簽是句子或短語。
(2)標簽整理
首先要對無效的標簽進行清理,識別并過濾掉因惡意用戶或惡意行為而產(chǎn)生的標簽,以建立規(guī)范的標簽庫。針對上述五個問題需要做以下針對性的整理工作:
第一個問題的處理:針對于詞的不同形式,如名詞的單復數(shù)形式,動詞時態(tài)問題等同根詞匯,采用Porter算法合并具有同根的單詞;
第二個問題的處理:查近義詞詞典,對詞義類似的單詞進行合并;
第三個問題的處理:采用Santanjeev Banerjee算法,根據(jù)上下文含義對同名標簽進行消歧處理;
第四個問題的處理:采用有效的單詞檢查算法,糾正單詞拼寫錯誤;
第五個問題的處理:增加句子的相似度算法,以滿足不同長度標簽的計算需要。
(3)標簽選擇
一種是隱式標簽選擇算法,即用戶無需關心哪些標簽重要哪些不重要,系統(tǒng)會根據(jù)對標簽的觀察來決定,此方法依賴于系統(tǒng)。
另一種是顯性的標簽選擇算法。標簽的重要性由用戶來決定,此方法依賴于用戶。
本設計中使用的是標簽數(shù)量方法,即某一標簽被使用次數(shù)越多,我們就認為這個標簽越重要。MovieLens實驗數(shù)據(jù)也證明了此方法具有較高的推薦準確度。
(4)基于標簽推薦系統(tǒng)用戶喜好模型
經(jīng)過標簽整理和選擇流程后,系統(tǒng)獲得了一組質(zhì)量較好的標簽,系統(tǒng)對這組標簽進行組合后建立起用戶喜好模型。
用戶喜好模型的數(shù)據(jù)源來源于用戶與標簽之間的交互行為,一般包括添加、瀏覽和搜索等三種。
第1步,按照一定比重選擇與這三種交互行為有關聯(lián)的標簽,得到一組候選標簽向量,記為VC={C1,C2,….,Cm},該比重可根據(jù)實際情況做出調(diào)整;
第2步,使用標簽數(shù)量法,從候選標簽向量VC的m個元素中選出n個最重要質(zhì)量最高的標簽,作為用戶喜好標簽向量V={T1,T2,…,Tn};
第3步,定期對用戶喜好標簽向量進行更新,重復前面兩步。
推薦算法的核心工作就是找到準確的相似對象,而查找準確的相似對象依賴于計算相似對象所用的相似算法。目前基于標簽的推薦系統(tǒng)多是采用傳統(tǒng)協(xié)同過濾推薦算法,如Cosine相似度算法,Pearson相似度算法,然而這些算法僅僅計算兩個空間向量的相似度。
標簽本身具有豐富的語義信息,本設計采用基于語義相似度的算法,以此來理解用戶行為含義,不僅有利于項目資源的推薦,也有利于增強用戶對系統(tǒng)的信任。取用戶u喜好的標簽集合u-pref-tags和與項目資源最相關的標簽集合i-reltags之間的相似度值算法如下:
ss-rec(u,i)=sim-sentences(u-pref-tags,i-reltags)
其值即為用戶u未購買項目i的預測評分。
云計算是一種能提供動態(tài)資源共享池、虛擬化和高可用性的計算平臺,具有數(shù)據(jù)高可靠性、可擴展性和經(jīng)濟性等特點。Hadoop是一種基于批處理技術的開源云計算平臺,主要由存儲基礎Hadoop分布式文件系統(tǒng)HDFS(Hadoop Distrubuted File System)和核心計算基礎Map/Reduce兩個主要子項目構(gòu)成。本研究利用本學院網(wǎng)絡中心提供的計算機網(wǎng)絡環(huán)境搭建云計算平臺,其框架如圖2所示,其計算模型如圖3所示。
圖2 Hadoop云計算框架
圖3 基于Hadoop的云計算模型
以Hadoop云計算平臺為基礎,設計了基于Hadoop的標簽推薦系統(tǒng),系統(tǒng)結(jié)構(gòu)如圖4所示。根據(jù)Hadoop框架體系,集群可以分成兩大類角色:主節(jié)點(MasterNode)和從節(jié)點(SlaveNode)。其中主節(jié)點由JobTracker、NameNode、推薦算法引擎庫、JavaApplication等組成;從節(jié)點由DataNode、Task-Tracker組成。其中主節(jié)點負責算法實現(xiàn)、作業(yè)調(diào)度,從節(jié)點負責實際的計算和存儲工作,主節(jié)點一個,從節(jié)點可以多個。
圖4 基于Hadoop的標簽推薦系統(tǒng)
NameNode負責將文件系統(tǒng)的Metadata存儲到內(nèi)存中,主要存儲了每一個文件塊到DataNode的映射信息。DataNode是文件實際存儲的基本單元,它將文件塊存儲在本地系統(tǒng)中,并保存文件塊的Metadata。推薦算法引擎庫包含了標簽推薦算法和批處理算法,基于云計算的分布式特點,對需要并行執(zhí)行的算法采用MapReduce編程模型進行重新設計,并將其存入MasterNode的算法庫中然后JobTracker會自動將這些分布式算法分發(fā)至各SlaveNode,供TaskTracker執(zhí)行時調(diào)用。設計批處理算法時采用Java語言實現(xiàn),該算法負責從數(shù)據(jù)庫服務器中抽取用戶行為數(shù)據(jù),形成HDFS文件,交給分布式推薦算法引擎處理,最后再將推薦結(jié)果回寫到數(shù)據(jù)庫服務器的相關表中。JobTracker和TaskTracker采用主-從工作模式,JobTracker負責啟動、跟蹤和調(diào)度各個SlaveNode的任務執(zhí)行;TaskTracker負責在SlaveNode上對本地數(shù)據(jù)進行處理,并將狀態(tài)和結(jié)果報告給JobTracker。
因此,從功能上看,NameNode、DataNode、DBServer屬于系統(tǒng)存儲部件,JobTracker、推薦引擎算法庫、TaskTracker、Java Application則構(gòu)成了系統(tǒng)計算部件。整個系統(tǒng)使用普通PC作為硬件設備,內(nèi)部的節(jié)點之間使用千兆以太網(wǎng)交換機連接,以Hadoop 1.0.2作為基礎,搭建在CentOS 5.5之上。
(1)Hadoop集群配置
基于以上要求,在本研究實驗中,將分別對1臺Master+3臺Slave、1臺Master+4臺Slave和1臺Master+5臺Slave三種Hadoop集群組合進行實驗對比。
(2)實驗數(shù)據(jù)集
語義相似度算法實驗數(shù)據(jù)集擬采用Rubenstein和Goodenough的“上下文相似和同義相似的關系”調(diào)查項目中的65對單詞數(shù)據(jù)集,語義詞典軟件則使用基于WordNet2.1軟件包。
推薦系統(tǒng)驗證實驗中可以采用MovieLens的數(shù)據(jù)集,該數(shù)據(jù)集是美國明尼蘇達大學開發(fā)的一個基于Web的研究型推薦系統(tǒng),通過用戶對電影的評分進行電影推薦,網(wǎng)站公布了三個很有價值的數(shù)據(jù)集;也可以采用Netflix對外發(fā)布的電影評分數(shù)據(jù)集;還可以采用HP/Compaq的DEC研究中心對外發(fā)布的EachMovie數(shù)據(jù)集等。
與傳統(tǒng)推薦算法相比,本研究提出的基于Hadoop的標簽推薦算法的具有更高的推薦準確度,系統(tǒng)具有較高的伸縮性和性能。
本文提出了基于Hadoop的標簽推薦系統(tǒng)的設計方案,重點介紹了用戶喜好模型的建立,設計了基于Hadoop的標簽推薦算法的系統(tǒng)結(jié)構(gòu)。標簽語義相似度的計算較好地解決了系統(tǒng)對用戶喜好的理解問題,Hadoop平臺使系統(tǒng)具有了較高的伸縮性,并解決了傳統(tǒng)推薦技術在大數(shù)環(huán)境下計算性能不足的問題。
[1]李玉林.基于Hadoop的MapReduce模型的研究與改進[J].計算機工程與設計,2012,8:3112-3114.
[2]崔林,宋瀚濤,陸玉昌.基于語義相似性的資源協(xié)同過濾技術研究.北京理工大學學報,2005,25(5):402-405.
[3]諶頏.使用分類改進標簽推薦系統(tǒng)準確度的研究[J].微電子學與計算機,2011,5:96?93.
[4]劉建國,周濤,汪秉宏.個性化推薦系統(tǒng)的研究進展[J].自然科學進展,2009,19(1).
[5]李文海,許舒人.基于Hadoop的電子商務推薦系統(tǒng)的設計與實現(xiàn)[J].計算機工程與設計,2014,1:130-134.