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