李廣麗 朱 濤 袁 天 滑 瑾 張紅斌
(1.華東交通大學(xué)信息工程學(xué)院,南昌,330013;2.華東交通大學(xué)軟件學(xué)院,南昌,330013;3.武漢大學(xué)計(jì)算機(jī)學(xué)院,武漢,430072)
隨著互聯(lián)網(wǎng)的不斷發(fā)展,網(wǎng)絡(luò)上的數(shù)據(jù)快速增長(zhǎng),人們正逐漸從信息匱乏的時(shí)代步入“信息過(guò)載”時(shí)代,此時(shí),無(wú)論是信息消費(fèi)者(網(wǎng)站用戶)還是信息生產(chǎn)者(網(wǎng)站管理者)都面臨很大的挑戰(zhàn)?;诨ヂ?lián)網(wǎng)搜索旅游信息已成為人們?cè)诔鲇吻矮@取信息的最主要渠道之一。然而,伴隨大量旅游網(wǎng)站的出現(xiàn),人們常常被淹沒(méi)于海量信息的搜索之中,卻無(wú)法獲取有價(jià)值的信息。推薦模型(系統(tǒng))是解決“信息過(guò)載”問(wèn)題,進(jìn)而提升信息價(jià)值的有效方法。據(jù)統(tǒng)計(jì),約有四分之三的旅游者在出游前都會(huì)搜索并查看旅游評(píng)論信息,以更好地規(guī)劃他們的行程。
推薦模型可追溯到認(rèn)知科學(xué)[1]、近似理論[2]以及信息檢索[3]等領(lǐng)域的擴(kuò)展研究。在20世紀(jì)90年代中期,推薦模型作為一門(mén)獨(dú)立的學(xué)科被廣泛關(guān)注,研究者主要從事具有顯式評(píng)分的推薦問(wèn)題研究,而推薦問(wèn)題則轉(zhuǎn)化為用戶對(duì)未知物品的評(píng)分預(yù)測(cè)問(wèn)題:基于用戶歷史評(píng)分,獲取對(duì)物品的預(yù)測(cè)評(píng)分,進(jìn)而向用戶推薦評(píng)分最高的物品。目前,常用的推薦模型分三類(lèi):基于內(nèi)容的推薦、協(xié)同過(guò)濾推薦和融合過(guò)濾。其中,協(xié)同過(guò)濾推薦的優(yōu)勢(shì)主要在于其能處理復(fù)雜的非結(jié)構(gòu)化對(duì)象,且不需要領(lǐng)域知識(shí)就可以發(fā)現(xiàn)用戶的新興趣,同時(shí)推薦的個(gè)性化程度也較高。
“協(xié)同過(guò)濾”的概念由Goldberg等[4]提出,并應(yīng)用于Tapestry系統(tǒng),該系統(tǒng)僅適用于較小用戶群,且對(duì)用戶有較高要求(如用戶要顯式地給出評(píng)價(jià))。作為協(xié)同過(guò)濾推薦模型的雛形,Tapestry展示了一種新的推薦思想,但它并不適合Internet環(huán)境。此后,出現(xiàn)了基于評(píng)分的協(xié)同過(guò)濾推薦模型。Resnick等[5]提出基于評(píng)分的協(xié)同過(guò)濾推薦模型GroupLens,向用戶推薦新聞和電影。GroupLens的基本思想:分析用戶偏好以形成推薦。它采集用戶評(píng)分,評(píng)分值為1~5的整數(shù),分值越大表明用戶的偏好度越高。它通過(guò)計(jì)算用戶間的評(píng)分相似性,選出相似性較高的一組用戶來(lái)預(yù)測(cè)新用戶對(duì)新物品的偏好。Konstan[6],Miller等[7]擴(kuò)展GroupLens,使其成為一個(gè)基于開(kāi)放式架構(gòu)的分布式系統(tǒng)。自GroupLens之后,協(xié)同過(guò)濾理論取得較快發(fā)展,國(guó)際頂級(jí)會(huì)議、期刊發(fā)表的相關(guān)論文也逐年增加:Kim等[8]將社會(huì)網(wǎng)絡(luò)分析(Social network analysis,SNA)與聚類(lèi)技術(shù)相結(jié)合,通過(guò)反射隱藏的、用戶社會(huì)群體的信息來(lái)提高推薦模型的預(yù)測(cè)精度;Nilashi等[9]利用分類(lèi)與回歸樹(shù)(Classfication and regression tree,CART)和期望最大化(Expectation maximum,EM)等算法提出一種新的推薦方法。目前,大量Web網(wǎng)站也開(kāi)始應(yīng)用協(xié)同過(guò)濾算法向用戶推薦個(gè)性化信息,如Amazon,Netflix和Last.Fm等,其中,Amazon對(duì)協(xié)同過(guò)濾推薦模型的研究已有十余年,借助推薦模型,Amazon收獲了巨大的經(jīng)濟(jì)效益。此外,Video Recommender[10]和Ringo[11]也被認(rèn)為是第一批能夠進(jìn)行自動(dòng)預(yù)測(cè)的協(xié)同過(guò)濾推薦模型。
本文圍繞旅游景點(diǎn)推薦這一熱點(diǎn)問(wèn)題展開(kāi)研究,采用問(wèn)卷調(diào)查與自動(dòng)抓取相結(jié)合的方式,采集并制作涵蓋若干屬性維度的、全新的“智慧旅游”數(shù)據(jù)集。繼而對(duì)其作分層抽樣統(tǒng)計(jì),獲取用戶的旅游喜好信息。最后,根據(jù)用戶評(píng)分,設(shè)計(jì)基于用戶聚類(lèi)的協(xié)同過(guò)濾推薦算法,并融合旅游喜好信息,生成高質(zhì)量的混合推薦結(jié)果。本文模型簡(jiǎn)單、有效,具備較高實(shí)用價(jià)值,它對(duì)于旅游景點(diǎn)推薦模型的開(kāi)發(fā)與應(yīng)用具有重要的借鑒意義。
協(xié)同過(guò)濾推薦模型指:分析其他用戶已評(píng)分的物品(本文指旅游景點(diǎn))來(lái)預(yù)測(cè)目標(biāo)用戶對(duì)某類(lèi)物品的偏好程度(興趣)。因此,景點(diǎn)z對(duì)用戶u的效用ef(u,z)取決于景點(diǎn)z對(duì)與u評(píng)分行為相似的其他用戶ui∈U(用戶集合)的相關(guān)效用ef(ui,z)。在旅游景點(diǎn)推薦過(guò)程中,協(xié)同過(guò)濾算法先要找出那些與用戶u在旅游景點(diǎn)上興趣相同的用戶(即對(duì)同一旅游景點(diǎn)評(píng)分相似的用戶)。然后,將這些用戶喜好的景點(diǎn)推薦給用戶u。故用戶相似性度量是協(xié)同過(guò)濾算法的關(guān)鍵所在。綜上分析,混合分層抽樣與協(xié)同過(guò)濾的旅游景點(diǎn)推薦模型包括用戶數(shù)據(jù)采集、分層抽樣、用戶聚類(lèi)以及協(xié)同過(guò)濾并產(chǎn)生推薦等幾大核心部件,系統(tǒng)框架如圖1所示。
圖1 混合分層抽樣與協(xié)同過(guò)濾的旅游景點(diǎn)推薦模型Fig.1 Recommendation model of tourist attractions based on hierarchical sampling and collaborative filtering
首先,設(shè)計(jì)調(diào)查問(wèn)卷以收集人們的旅游喜好信息,并對(duì)其做分層抽樣統(tǒng)計(jì);其次,設(shè)計(jì)抓取規(guī)則,在“攜程網(wǎng)”自動(dòng)采集用戶對(duì)不同旅游景點(diǎn)的評(píng)分,并對(duì)數(shù)據(jù)做預(yù)處理:用0~5表示用戶對(duì)旅游景點(diǎn)的滿意度(0分最低,5分最高);再次,采用K-means聚類(lèi)算法處理用戶數(shù)據(jù),產(chǎn)生k個(gè)聚類(lèi)中心,以刻畫(huà)用戶興趣所屬類(lèi)別;基于協(xié)同過(guò)濾算法計(jì)算目標(biāo)用戶與各聚類(lèi)中心的語(yǔ)義相似性,預(yù)測(cè)用戶評(píng)分,形成預(yù)推薦列表LA。最后,混合分層抽樣結(jié)果輸出的預(yù)推薦列表LB,生成旅游景點(diǎn)的混合推薦列表“LA+LB”。
“智慧旅游”數(shù)據(jù)集的建立分3步:?jiǎn)柧碚{(diào)查、自動(dòng)抓取和數(shù)據(jù)匯總。問(wèn)卷采用“問(wèn)卷星網(wǎng)”[12]制作,主要用于收集用戶的旅游喜好信息,問(wèn)卷中包括:用戶性別、地區(qū)、年齡、學(xué)歷、工作性質(zhì)和月收入等基本信息及“出游季節(jié)”“興趣類(lèi)別”“出游方式”等旅游喜好信息;自動(dòng)抓取通過(guò)規(guī)則抓取“攜程網(wǎng)”上的景點(diǎn)圖像、用戶評(píng)分等信息:進(jìn)入旅游景點(diǎn)用戶點(diǎn)評(píng)頁(yè)面,抓取用戶對(duì)旅游景點(diǎn)的評(píng)分及景點(diǎn)圖像,制作出涵蓋“用戶評(píng)分”“用戶統(tǒng)計(jì)信息”“景點(diǎn)圖像”等在內(nèi)的數(shù)據(jù)集。最后,匯總調(diào)查問(wèn)卷結(jié)果與自動(dòng)抓取的數(shù)據(jù),生成“智慧旅游”數(shù)據(jù)集。
分層抽樣模型按規(guī)定比例從不同層中隨機(jī)抽取樣品。它按照一定規(guī)則將目標(biāo)分成num個(gè)互不相交的子集。然后,在每個(gè)子集中獨(dú)立抽樣。每個(gè)子集稱為層(E1,E2,…,Enum),num個(gè)層合起來(lái)就是總體分布
第1步:引入目標(biāo)隨機(jī)變量,以反映不同人群旅游興趣的差異,目標(biāo)隨機(jī)變量有多個(gè),如“出游季節(jié)”、“出游目的地”和“出游方式”等;
第2步:目標(biāo)總體分層,把影響因素λ(如性別、地區(qū)等)作為分層原則,將旅游人群E根據(jù)其屬性分為num層,第i(i=1,2,…,num)層中有Ei個(gè)人;
第3步:確定各層人數(shù),若總體抽樣人數(shù)為M,分num層抽樣,第i層的人數(shù)為Ei,對(duì)于第i層的抽樣人數(shù):Xi=M*Ei/E,其中i=0,1,2,…,num。
分層抽樣模型根據(jù)目標(biāo)總體的特征分布對(duì)其作層次化分類(lèi),以降低層內(nèi)差異并增大層間差異,從而提高分類(lèi)精度,更準(zhǔn)確、客觀地捕獲用戶的喜好信息。
聚類(lèi)分析是把數(shù)據(jù)對(duì)象劃分成若干子集的過(guò)程。每個(gè)子集是一個(gè)簇,簇中對(duì)象彼此相似,而與其他簇中對(duì)象不相似。簇的集合稱作一個(gè)聚類(lèi)。常用聚類(lèi)算法可分為層次聚類(lèi)和非層次聚類(lèi)。K-means算法屬于非層次聚類(lèi),它給定一組觀測(cè)值(a1,a2,…,an),每個(gè)觀測(cè)值是一個(gè)d維向量,聚類(lèi)算法將n個(gè)觀測(cè)值劃分成t(≤n)個(gè)集合S=(S1,S2,…,St),以減少集合內(nèi)的平方和(方差),即
式中:μi是Si中點(diǎn)的平均值,VarSi表示Si的方差。
令用戶集合是U=(u1,u2,…,um)的矩陣,評(píng)分景點(diǎn)集合是Z=(z1,z2,…,zn)的矩陣,用戶-景點(diǎn)評(píng)分矩陣是G,G中dij表示用戶集合U中第i個(gè)用戶對(duì)景點(diǎn)集合Z中第j個(gè)景點(diǎn)的評(píng)分,故用戶基本信息矩陣為S=(U,Z,G)。執(zhí)行K-means聚類(lèi)的前提:確定聚類(lèi)數(shù)k和選定初始聚類(lèi)中心。在收集用戶數(shù)據(jù)時(shí),根據(jù)景點(diǎn)性質(zhì)將60個(gè)評(píng)分景點(diǎn)劃分為k(5≤k≤10)個(gè)類(lèi)別,每種類(lèi)別各選1個(gè)典型用戶(共k個(gè))作為初始聚類(lèi)中心,以完成K-means聚類(lèi)。
算法1基于K-means算法的用戶聚類(lèi)
輸入:用戶聚類(lèi)數(shù)目k、用戶基本信息數(shù)據(jù)源S=(U,Z,G)、迭代次數(shù)iter_num
輸出:用戶聚類(lèi)中心矩陣D
用戶聚類(lèi)中心D是k行n列的矩陣,k代表k個(gè)用戶聚類(lèi)中心,n表示景點(diǎn)數(shù)。故D中第i行、第j列元素Dij表示第i個(gè)聚類(lèi)中心中所有用戶對(duì)景點(diǎn)j的評(píng)分均值。
采用式(3)計(jì)算用戶之間的相似性。即基于皮爾遜相關(guān)系數(shù)度量用戶之間的語(yǔ)義相關(guān)性
式中:r表示用戶評(píng)分;分別表示用戶x和用戶y對(duì)景點(diǎn)的平均評(píng)分;Sxy表示用戶x和y共同評(píng)分的景點(diǎn)集合,即
聚類(lèi)算法輸出用戶聚類(lèi)中心,即可計(jì)算目標(biāo)用戶與各聚類(lèi)中心的相似性,從而得出目標(biāo)用戶的最近鄰居,并對(duì)景點(diǎn)進(jìn)行評(píng)分預(yù)測(cè),最終輸出預(yù)推薦列表。令給定目標(biāo)用戶c及最近鄰居集合KSc時(shí),對(duì)新旅游景點(diǎn)的評(píng)分預(yù)測(cè)[13]計(jì)算公式為
算法2基于用戶聚類(lèi)的協(xié)同過(guò)濾推薦算法
輸入:目標(biāo)用戶的景點(diǎn)評(píng)分矩陣R,用戶聚類(lèi)中心矩陣D
輸出:用戶預(yù)測(cè)評(píng)分矩陣D′、預(yù)推薦列表LA
1.根據(jù)目標(biāo)用戶的景點(diǎn)評(píng)分R和用戶聚類(lèi)中心矩陣D,采用式(3)計(jì)算目標(biāo)用戶與各聚類(lèi)中心的相似性
2.假設(shè)當(dāng)前用戶為u,初始化使其最近鄰集合為空,即KS(u)=?
3.選擇聚類(lèi)中心內(nèi)與用戶u相似性最高的用戶,并放入最近鄰集合KS(u)中,此時(shí)KS(u)≠?
4.重復(fù)第3步,直到所有的相關(guān)用戶都被加入到KS(u)中
5.根據(jù)KS(u)中用戶相似性大小,對(duì)集合中所有用戶作降序排序,并將排序中的前l(fā)項(xiàng)作為用戶u的最近鄰KS(u)
6.根據(jù)式(5)計(jì)算評(píng)分預(yù)測(cè)矩陣D′,并按照降序排列,取前v項(xiàng)生成預(yù)推薦列表LA
7.計(jì)算模型的RMSE值和MAE值,以評(píng)估推薦性能
“智慧旅游”數(shù)據(jù)集中的評(píng)論信息采集自“攜程網(wǎng)”,共抓取了60個(gè)景點(diǎn)、5 000個(gè)用戶的評(píng)分?jǐn)?shù)據(jù),可將60個(gè)景點(diǎn)分為8個(gè)類(lèi)別(實(shí)驗(yàn)中也進(jìn)行了驗(yàn)證),分別是:海濱海島、世界遺產(chǎn)、祈福拜佛、郵輪之旅、古鎮(zhèn)游玩、親子游、養(yǎng)生休閑和民俗體驗(yàn)。隨機(jī)選取4 000個(gè)用戶(80%)數(shù)據(jù)作為訓(xùn)練集,剩余1 000個(gè)用戶(20%)數(shù)據(jù)作為測(cè)試集。數(shù)據(jù)集詳見(jiàn)網(wǎng)址:https://drive.google.com/drive/mydrive?tdsourcetag=s_pctim_aiomsg。此外,編寫(xiě)調(diào)查問(wèn)卷,基于Web吸引2 170位游客隨機(jī)完成調(diào)查,收集用戶基本信息,以完善“智慧旅游”數(shù)據(jù)集。最后,對(duì)評(píng)分?jǐn)?shù)據(jù)進(jìn)行預(yù)處理:將用戶評(píng)分中的“很滿意”“滿意”“一般”“不滿意”“很不滿意”分別用“5”“4”“3”“2”“1”5 個(gè)離散值表示。此外,用戶的性別、地區(qū)、年齡、學(xué)歷、工作性質(zhì)和月收入等基本屬性(詳見(jiàn)表1)也進(jìn)行相似的數(shù)字化處理,以便于后續(xù)實(shí)驗(yàn)。
采用1.3節(jié)的分層抽樣模型對(duì)2 170位游客的調(diào)查答卷進(jìn)行統(tǒng)計(jì)分析:從游客的性別、地區(qū)、年齡、學(xué)歷、工作性質(zhì)和月收入等方面對(duì)游客旅游興趣進(jìn)行分層抽樣,各用戶屬性中隨機(jī)抽出1 000名游客作為抽樣代表,得到游客旅游興趣的分層抽樣統(tǒng)計(jì)表,如表1所示(用戶偏好最大值用黑體加下劃線給出),同時(shí)根據(jù)表中結(jié)果生成預(yù)推薦列表LB。
表1 游客的旅游興趣分層抽樣統(tǒng)計(jì)表Tab.1Hierarchical sampling statistics of tourist interest%
由表1可以發(fā)現(xiàn)很多有趣的結(jié)論,這些結(jié)論與人們的客觀認(rèn)知較吻合:
(1)大部分受訪人群更偏愛(ài)于春、秋季出行,這應(yīng)該緣于中國(guó)大部分地區(qū)在春、秋兩季的風(fēng)景非常吸引人;
(2)大部分人群更注重于“家庭或組團(tuán)出游”,這源于中國(guó)人強(qiáng)烈的家庭觀念,即以家庭為單位出行,其樂(lè)融融;
(3)中老年人更偏愛(ài)于“養(yǎng)生休閑”類(lèi)景點(diǎn),這類(lèi)景點(diǎn)對(duì)個(gè)人體力沒(méi)有過(guò)高要求,即休閑、旅游兩不誤,非常適合中老年人;
(4)學(xué)生團(tuán)體更愿意夏季出游,因?yàn)椋袊?guó)的7,8月份是暑假,故各類(lèi)圍繞大、中、小學(xué)生的旅游活動(dòng)、暑期項(xiàng)目非常普遍;
(5)中、東部地區(qū)游客更喜歡“海濱海島”,南方地區(qū)游客更青睞“郵輪之旅”,西部地區(qū)游客樂(lè)于“民俗體驗(yàn)”,而北方游客則傾向于“古鎮(zhèn)游玩”,這與各地區(qū)游客的生活習(xí)慣、地理環(huán)境等都密不可分;
(6)男性受訪者傾向于“個(gè)人出游”,而女性受訪者則更喜歡“家庭或組團(tuán)出游”。
用戶聚類(lèi)是本文模型的核心,故需先評(píng)判聚類(lèi)算法對(duì)推薦性能的影響。人們常通過(guò)預(yù)測(cè)用戶對(duì)被推薦物品的評(píng)分來(lái)評(píng)判推薦性能。均方根誤差(Root mean square error,RMSE)、平均絕對(duì)誤差(Mean absolute error,MAE)是目前應(yīng)用最廣泛的評(píng)判評(píng)分精度的指標(biāo)。本文利用RMSE,MAE對(duì)推薦模型作評(píng)測(cè)。若給定測(cè)試數(shù)據(jù)集T、用戶-景點(diǎn)組合(u,z)、用戶真實(shí)評(píng)分ruz及推薦模型的預(yù)測(cè)評(píng)分。預(yù)測(cè)評(píng)分和真實(shí)評(píng)分之間的RMSE和MAE分別為
由式(6,7)可知:RMSE,MAE分別計(jì)算預(yù)測(cè)評(píng)分和真實(shí)評(píng)分之間的均方根誤差、平均絕對(duì)誤差。RMSE、MAE值越小,推薦性能越好。實(shí)驗(yàn)時(shí)把60個(gè)旅游景點(diǎn)劃分成k(5≤k≤10)類(lèi),然后分別執(zhí)行K-means聚類(lèi)、層次聚類(lèi)和模糊聚類(lèi)等多種算法。接著,結(jié)合協(xié)同過(guò)濾算法完成旅游景點(diǎn)推薦,計(jì)算各算法在選取不同k值時(shí)所獲取的RMSE和MAE值,實(shí)驗(yàn)結(jié)果如圖2所示。
由圖2可知:RMSE和MAE的變化趨勢(shì)非常相似,這表明RMSE,MAE的評(píng)判本質(zhì)很接近,它們可以同時(shí)使用,以綜合評(píng)判推薦性能。然而,由于懲罰力度更大,RMSE結(jié)果的震蕩幅度相對(duì)也更大;顯然,K-means算法的性能優(yōu)于其他兩類(lèi)算法。綜合RMSE和MAE值,當(dāng)聚類(lèi)數(shù)目k=8時(shí),K-means算法的推薦效果最好(這與人工設(shè)置吻合)。故選取K-means算法并設(shè)置聚類(lèi)數(shù)k=8完成后續(xù)實(shí)驗(yàn)。
圖2 各聚類(lèi)算法在選取不同聚類(lèi)數(shù)時(shí)的RMSE和MAE值比較Fig.2 RMSE and MAE values of each cluster algorithm by setting different clustering numbers
本文選取基于模糊聚類(lèi)的協(xié)同過(guò)濾算法、基于層次聚類(lèi)的協(xié)同過(guò)濾算法實(shí)驗(yàn),同時(shí)與基于用戶的協(xié)同過(guò)濾(User-based collaborative filtering,UBCF)算法[14]、基于項(xiàng)目的協(xié)同過(guò)濾(Item-based collaborative filtering,IBCF)算法[15]以及基于杰卡德相似系數(shù)的推薦算法(LBCF)[16]等基線進(jìn)行RMSE,MAE值比較,其中最近鄰居值l=10。實(shí)驗(yàn)結(jié)果如圖3所示。
由圖3可知:本文算法的RMSE值與UBCF,IBCF和LBCF相比分別降低了61.0%,64.9%和59.4%,而與模糊聚類(lèi)和層次聚類(lèi)兩算法相比分別降低11.5%和47.3%;其次,本文算法的MAE值與UBCF,IBCF和LBCF相比分別降低47.7%,34.1%和28.3%,與模糊聚類(lèi)和層次聚類(lèi)兩算法相比也分別降低18.8%和37.9%。這表明:本文提出的協(xié)同過(guò)濾推薦算法能在一定程度上提高評(píng)分預(yù)測(cè)的精度,這有利于更好地生成旅游景點(diǎn)推薦列表,進(jìn)而準(zhǔn)確擬合用戶的旅游偏好(興趣)。主要原因分析:(1)“智慧旅游”數(shù)據(jù)集中良好的景點(diǎn)分類(lèi)機(jī)制:8個(gè)類(lèi)別、60個(gè)景點(diǎn),聚類(lèi)算法實(shí)驗(yàn)中也較好地驗(yàn)證了這一機(jī)制;(2)合理地選擇聚類(lèi)數(shù)(8個(gè))及初始聚類(lèi)中心(典型用戶),并完成基于K-means的用戶聚類(lèi)。在聚類(lèi)結(jié)果中,類(lèi)內(nèi)相似度較高,而類(lèi)之間相似度較低;(3)皮爾遜相關(guān)系數(shù)(式(3))能較好地刻劃用戶之間的語(yǔ)義相關(guān)性。
圖3 不同算法的RMSE和MAE值Fig.3 RMSE and MAE values of different algorithms
1.3節(jié)提出應(yīng)用分層抽樣模型獲取用戶的旅游喜好信息,將該算法命名為Our_HS。根據(jù)專(zhuān)家經(jīng)驗(yàn)及交叉驗(yàn)證,設(shè)置各用戶屬性指標(biāo)的相對(duì)重要性,即利用主觀賦權(quán)評(píng)價(jià)法[17]對(duì)分層抽樣結(jié)果設(shè)定權(quán)重。其中性別:5.1%;地區(qū):13.75%;年齡:19.44%;學(xué)歷:13.75%;工作性質(zhì):10.91%;月收入:37.06%,各項(xiàng)之和為100%,以建立Our_HS。此外,1.4節(jié)、1.5節(jié)提出基于用戶聚類(lèi)的協(xié)同過(guò)濾算法,該算法命名為Our_CF。由分層抽樣結(jié)果可知(表1),用戶屬性不同,其旅游興趣會(huì)有較大差異,而這些興趣是提升推薦性能的重要依據(jù)。因此,本節(jié)混合協(xié)同過(guò)濾算法(Our_CF)輸出的預(yù)推薦列表LA與分層抽樣模型(Our_HS)輸出的預(yù)推薦列表LB,生成混合推薦列表,該算法命名為Our_Mixed。
準(zhǔn)確率(Precision)和召回率(Recall)這兩個(gè)指標(biāo)常被用來(lái)全面地評(píng)測(cè)推薦性能。而要計(jì)算這兩個(gè)指標(biāo),先要確定被推薦的景點(diǎn)屬于表2中的哪種情況。在表2中,“True-positive(tp)”表示被推薦且用戶喜好的景點(diǎn);“False-positive(fp)”表示被推薦用戶卻不喜好的景點(diǎn);“False-negative(fn)”表示未被推薦且用戶喜好的景點(diǎn);“True-negative(tn)”表示未被推薦且用戶不喜好的景點(diǎn)。
表2 被推薦景點(diǎn)的分類(lèi)情況Tab.2 Classification resultsofeach recommended item
基于表2的定義,可得到準(zhǔn)確率和召回率的計(jì)算公式為
式中:#tp表示被推薦且用戶喜好的景點(diǎn)總數(shù);#fp表示被推薦且用戶不喜好的景點(diǎn)總數(shù);#fn表示未被推薦且用戶喜好的景點(diǎn)總數(shù)。假設(shè)給用戶推薦N′個(gè)旅游景點(diǎn),本節(jié)比較IBCF,UBCF,LBCF和Our_CF(協(xié)同過(guò)濾算法)、Our_HS(分層抽樣模型)、模糊聚類(lèi)、層次聚類(lèi)以及Our_Mixed(混合推薦)等算法的準(zhǔn)確率與召回率,并引入AP指標(biāo)綜合度量各算法優(yōu)劣,即有
式中:index表示準(zhǔn)確率/召回率值,N′=10。具體實(shí)驗(yàn)結(jié)果如表3和表4所示,每行最優(yōu)值用黑體標(biāo)出。
由表3可知:N′=1時(shí),UBCF的準(zhǔn)確率最高,即推薦少量旅游景點(diǎn)時(shí),UBCF的效果較好。但推薦更多旅游景點(diǎn)時(shí),由于用戶評(píng)分的稀疏性越來(lái)越高,UBCF的效果逐漸降低。相反,Our_Mixed充分利用用戶的旅游喜好信息,當(dāng)N′≥2時(shí),其推薦性能較優(yōu),且準(zhǔn)確率穩(wěn)步提高。Our_Mixed的AP值較同行的次優(yōu)指標(biāo)提升(9.678-8.461)/8.461≈14.38%,即在混合推薦時(shí),LA與LB這兩個(gè)推薦列表有良好的互補(bǔ)性?;贏P值,所有模型的推薦性能(準(zhǔn)確率)降序排列:Our_Mixed> Our_CF>Our_HS>模糊聚類(lèi)>層次聚類(lèi)>UBCF> LBCF>IBCF,Our_CF優(yōu)于Our_HS,這說(shuō)明:Our_HS、Our_CF算法的性能優(yōu)于傳統(tǒng)方法,而分層抽樣模型輸出的用戶喜好信息在旅游景點(diǎn)推薦中發(fā)揮了重要作用。
表3 各算法在不同N′下的Precision值Tab.3 Precision values of different algorithms under different N′ %
表4 各算法在不同N′下的Recall值Tab.4 Recall values of different algorithms under different N′%
由表4可知:當(dāng)推薦更多旅游景點(diǎn)時(shí),用戶之間單一的相似性度量不能完全代表用戶喜好,這迫切需要融入用戶的旅游喜好信息?;旌贤扑]的效果表現(xiàn)更佳,且召回率穩(wěn)步提高。Our_Mixed的AP值較同行的次優(yōu)指標(biāo)提升(3.958-2.989)/2.544≈32.4%,這進(jìn)一步說(shuō)明LA與LB之間具有良好的互補(bǔ)性?;贏P值,所有模型的推薦性能(召回率)降序排列:Our_Mixed>Our_CF>Our_HS>模糊聚類(lèi)>層次聚類(lèi)>LBCF>UBCF>IBCF,Our_HS優(yōu)于傳統(tǒng)算法,這也表明分層抽樣模型輸出的用戶喜好信息在推薦中的重要性?;旌戏謱映闃优c協(xié)同過(guò)濾的旅游景點(diǎn)推薦模型能獲取更優(yōu)的推薦性能,這有助于提升旅游網(wǎng)站的影響力與競(jìng)爭(zhēng)力。
除上述評(píng)測(cè)方式外,時(shí)間復(fù)雜度也是評(píng)價(jià)推薦模型優(yōu)劣的一個(gè)重要指標(biāo)。本節(jié)分析基于用戶聚類(lèi)的協(xié)同過(guò)濾算法的時(shí)間復(fù)雜度,并與傳統(tǒng)算法進(jìn)行比較。
傳統(tǒng)的UBCF算法需要查找用戶共同評(píng)分的景點(diǎn),假設(shè)用戶u1偏好景點(diǎn)z1和景點(diǎn)z2,用戶u2偏好景點(diǎn)z1,則算法可能會(huì)將景點(diǎn)z2推薦給用戶u2。若用戶數(shù)量多,需逐個(gè)查找用戶共同評(píng)分的景點(diǎn)。若有m個(gè)用戶、y個(gè)景點(diǎn),該算法時(shí)間復(fù)雜度為O(m×y),m和y屬于同一數(shù)量級(jí)且m>y,則該算法的時(shí)間復(fù)雜度近似是O(m2)。
傳統(tǒng)的 IBCF 算法中,令用戶集合是U=(u1,u2,…,um)的矩陣,評(píng)分景點(diǎn)集合是Z=(z1,z2,…,zn)的矩陣,計(jì)算景點(diǎn)相似矩陣時(shí),任意兩個(gè)景點(diǎn)都要計(jì)算其相似性,其時(shí)間復(fù)雜度為O(mn2)。向目標(biāo)用戶推薦時(shí),先根據(jù)景點(diǎn)相似矩陣對(duì)景點(diǎn)的n個(gè)相似度排序,找出最近鄰,故其時(shí)間復(fù)雜度為O(nlogn),然后通過(guò)景點(diǎn)的l個(gè)最近鄰產(chǎn)生推薦,其時(shí)間復(fù)雜度是O(mn2)+O(nlogn)+O(l)。
而基于用戶聚類(lèi)的協(xié)同過(guò)濾算法僅需計(jì)算用戶與各聚類(lèi)中心的語(yǔ)義相似性。若有k個(gè)聚類(lèi)中心,m個(gè)用戶,該算法的時(shí)間復(fù)雜度是O(k×m)。由于k?m,它們不屬于同一數(shù)量級(jí),則該算法的時(shí)間復(fù)雜度近似是O(m)。從時(shí)間復(fù)雜度衡量,本文算法優(yōu)于UBCF及IBCF。
在旅游網(wǎng)站上,人們常常無(wú)法快速地找到感興趣的旅游信息。因此,本文圍繞推薦模型在旅游網(wǎng)站中的應(yīng)用這一熱點(diǎn)問(wèn)題建立全新的“智慧旅游”數(shù)據(jù)集。提出混合分層抽樣與協(xié)同過(guò)濾的推薦模型,其中,設(shè)計(jì)基于用戶聚類(lèi)的協(xié)同過(guò)濾算法,以計(jì)算目標(biāo)用戶與聚類(lèi)中心的相似性,完成高質(zhì)量的旅游景點(diǎn)推薦。實(shí)驗(yàn)表明:混合分層抽樣與協(xié)同過(guò)濾的旅游景點(diǎn)推薦模型能夠有效地提升推薦精度,并降低算法時(shí)間復(fù)雜度。這對(duì)于面向旅游景點(diǎn)的推薦模型的設(shè)計(jì)及應(yīng)用都具有重要的借鑒意義。
未來(lái)主要工作:(1)結(jié)合景點(diǎn)的圖像內(nèi)容對(duì)用戶建模,以彌補(bǔ)僅依賴用戶評(píng)分的聚類(lèi)方法;(2)運(yùn)用Relative Attribute模型[18]進(jìn)一步分析用戶旅游興趣的程度變化,更有針對(duì)性地推送景點(diǎn)信息;(3)運(yùn)用深度學(xué)習(xí)模型[19]抽取圖像、文本特征,并刻劃用戶特性,以改善推薦性能。