陳君同,古天龍,常亮,賓辰忠,梁聰
隨著信息技術(shù)和互聯(lián)網(wǎng)的發(fā)展,網(wǎng)絡(luò)正成為人們規(guī)劃旅游的重要信息來源[1]。人們逐漸從信息匱乏的時(shí)代走入了大數(shù)據(jù)的時(shí)代,在海量數(shù)據(jù)的背景下,如何快速找到對(duì)用戶最有價(jià)值的信息,顯得越來越重要,推薦系統(tǒng)便應(yīng)運(yùn)而生[2]。
以往的推薦系統(tǒng)主要關(guān)注于單個(gè)用戶,在電視節(jié)目[3]、音樂、電影、新聞等方面取得了很好的效果,但是對(duì)于旅游領(lǐng)域還沒有給出完善的推薦方案[4]。首先,和電影的數(shù)據(jù)相比,旅游評(píng)分的數(shù)據(jù)難以獲得;其次,用戶的評(píng)分矩陣比較稀疏;最后,旅游通常是多個(gè)用戶以群組的形式參與的,因此,結(jié)合所有成員偏好的組推薦系統(tǒng)將成為旅游推薦領(lǐng)域的一個(gè)研究熱點(diǎn)[5]?;趨f(xié)同過濾的組推薦系統(tǒng)中,在對(duì)單個(gè)用戶的預(yù)測(cè)階段,使用傳統(tǒng)的協(xié)同過濾算法計(jì)算用戶(項(xiàng)目)之間的相似度時(shí),沒有考慮用戶共同評(píng)分的項(xiàng)目數(shù)和評(píng)分關(guān)聯(lián)程度對(duì)相似性造成的影響,例如,兩個(gè)興趣差別較大的游客,可能同時(shí)感興趣的景點(diǎn)比較少,當(dāng)用戶的共同評(píng)分比較少時(shí),傳統(tǒng)的協(xié)同過濾算法便無法準(zhǔn)確地度量用戶之間相似性[6];在群組成員預(yù)測(cè)結(jié)果的融合階段,效果比較好的偏好融合策略中有均值策略和最小痛苦策略[7],均值策略把成員對(duì)項(xiàng)目的平均評(píng)分作為群組的得分,然而沒有考慮少數(shù)成員的不滿意度,最小痛苦策略選擇成員對(duì)項(xiàng)目最小的評(píng)分作為群組的得分,卻忽略了多數(shù)成員的偏好。
本文在組推薦過程中,首先改進(jìn)了協(xié)同過濾算法,它結(jié)合相似性影響因子和關(guān)聯(lián)性因子,以解決旅游推薦中面臨的數(shù)據(jù)稀疏性問題;其次在組偏好建模階段,提出了一種新的融合策略——滿意度平衡策略,它同時(shí)考慮了組內(nèi)成員的局部滿意度和整體滿意度;最后,通過在旅游數(shù)據(jù)集上的實(shí)驗(yàn)分析,驗(yàn)證了所改進(jìn)的方法能夠有效地提高推薦的質(zhì)量。
協(xié)同過濾算法是電子商務(wù)推薦領(lǐng)域中一種最為成功的推薦算法[8]。它不需要用戶主動(dòng)提供個(gè)人需求信息,而是根據(jù)他們已有的評(píng)分記錄,獲得用戶的潛在偏好。這種推薦算法能否取得良好的效果,很大程度上取決于用戶的評(píng)分?jǐn)?shù)據(jù)。
組推薦關(guān)鍵技術(shù)包括融合方法和融合策略。融合方法分為模型融合和推薦融合。模型融合根據(jù)群組成員的用戶偏好模型融合成群組偏好模型,然后基于群組偏好模型生成組推薦;推薦融合先根據(jù)傳統(tǒng)算法獲得每個(gè)用戶的預(yù)測(cè)評(píng)分后,再根據(jù)預(yù)測(cè)評(píng)分進(jìn)行融合,也可以融合推薦項(xiàng)目列表得到群組的推薦列表[5,7]。兩種融合方法各有自己的不足:模型融合易受到評(píng)分稀疏性的影響,推薦融合忽略了群組成員之間的交互[5]。
組推薦系統(tǒng)中常用的融合策略有均值策略、最小痛苦策略、最開心策略[9]。文獻(xiàn)[10]通過一系列實(shí)驗(yàn)評(píng)估,指出乘法策略、均值策略、最小痛苦策略以及痛苦避免均值策略較好。文獻(xiàn)[7]通過對(duì)組推薦系統(tǒng)的文獻(xiàn)研究分析,發(fā)現(xiàn)使用最普遍的策略有均值策略、痛苦避免均值策略及最小痛苦策略,但這些策略對(duì)于不同特征的群組適用性也不盡相同。
協(xié)同過濾算法作為一種基本的方法常常被應(yīng)用于組推薦系統(tǒng)中?;趨f(xié)同過濾的組推薦包括4個(gè)階段:相似性度量、選擇鄰居、預(yù)測(cè)評(píng)分、確定推薦項(xiàng)目[11]。
首先通過評(píng)分矩陣中用戶的評(píng)分計(jì)算兩兩用戶(項(xiàng)目)的相似度,然后根據(jù)K近鄰的方法預(yù)測(cè)當(dāng)前用戶對(duì)未知項(xiàng)目的評(píng)分,最后通過融合策略結(jié)合所有組內(nèi)成員的偏好生成組推薦列表。圖1為本文中用到的基于協(xié)同過濾的組推薦整體框架。
圖1 基于協(xié)同過濾的組推薦整體框架Fig. 1 The whole framework of group recommendation based on collaborative filtering
其中,協(xié)同過濾算法可以分為基于用戶的最近鄰?fù)扑](user-based nearest neighbor recommendation)和基于項(xiàng)目的最近鄰?fù)扑](item-based nearest neighbor recommendation)。
基于用戶的最近鄰?fù)扑]假設(shè)當(dāng)前用戶會(huì)喜歡與之有相似偏好的用戶喜歡的項(xiàng)目。目前比較常用的相似度計(jì)算方法有余弦相似度(cosine similarity)、皮爾森相關(guān)相似度(Pearson correlation coefficient)等[12-13]。本文主要選用相似度定義如式(1)所示。
基于項(xiàng)目的最近鄰利用用戶對(duì)項(xiàng)目的評(píng)分來計(jì)算相似度。本文選用的相似度如式(3)所示。
相似度是協(xié)同過濾中的重要指標(biāo),決定著預(yù)測(cè)評(píng)分的好壞,同時(shí)由于在旅游領(lǐng)域,存在用戶自身的綜合因素使得旅游推薦不同于以往電子商務(wù)領(lǐng)域的推薦。例如,用戶可以每月看一場(chǎng)電影,但卻很少有人每年旅行很多次。因此在旅游推薦中,不可避免地會(huì)存在數(shù)據(jù)的稀疏性問題。傳統(tǒng)的相似度計(jì)算方法在評(píng)分?jǐn)?shù)據(jù)豐富的情況下可以給出很好的效果,但是在旅游推薦中,傳統(tǒng)的推薦方法在計(jì)算用戶(項(xiàng)目)間的相似度時(shí),可能會(huì)忽略用戶評(píng)分?jǐn)?shù)據(jù)的稀疏程度對(duì)相似度計(jì)算結(jié)果造成的影響。如表1所示(0表示沒有評(píng)分),以基于用戶的相似度為例:
1)用戶A和用戶B共同評(píng)分的景點(diǎn)數(shù)量多于用戶C和D共同評(píng)分的景點(diǎn)數(shù)量,所以用戶A和用戶B的相似度應(yīng)該比用戶C和用戶D的相似度更高。然而,用戶A和B的余弦相似度計(jì)算結(jié)果為0.838 1,用戶C和D的相似度結(jié)果為0.910 4(余弦相似度的范圍為[0,1])。顯然,傳統(tǒng)的相似度不能很好地計(jì)算他們之間的相似度。為了解決這一問題,本文利用用戶對(duì)景點(diǎn)共同評(píng)分的數(shù)目與用戶對(duì)景點(diǎn)評(píng)分總數(shù)目的關(guān)系來調(diào)整用戶之間的相似性,本文稱之為相似性影響因子,定義為
表 1 用戶評(píng)分矩陣Table 1 User rating matrix
2)用戶E和用戶F根據(jù)余弦相似度計(jì)算結(jié)果為0.854 2,表示他們的偏好很相似;根據(jù)皮爾森和修正余弦相似度計(jì)算結(jié)果為?1,表示他們的偏好完全相反(相似度的范圍為[?1,1])。實(shí)際上他們的相似度不應(yīng)該完全相反,也不應(yīng)該很相似,而是介于兩者之間。隨著用戶和評(píng)分矩陣規(guī)模的增加,類似這種情況也會(huì)影響推薦結(jié)果的準(zhǔn)確性。為解決此類問題,本文利用用戶評(píng)分的關(guān)聯(lián)性來調(diào)整用戶之間的相似性,用戶的共同評(píng)分向量越接近,相似度的值可能越大,反之相似度的值可能越小。本文稱之為關(guān)聯(lián)性因子,定義為
相似度的計(jì)算是協(xié)同過濾中最重要的一步。旅游領(lǐng)域面臨的數(shù)據(jù)稀疏性問題,使得原有的相似度方法很難準(zhǔn)確度量用戶之間的相似性。這是因?yàn)樵谟脩粼u(píng)分?jǐn)?shù)據(jù)稀疏的情況下,傳統(tǒng)的方法主要考慮用戶共同評(píng)分之間的相似性,卻忽略了用戶在個(gè)別項(xiàng)目上的評(píng)分是相似的而在其他項(xiàng)目上不一定相似的現(xiàn)象,用戶只有在比較多的項(xiàng)目上評(píng)分相似時(shí),他們的偏好才能認(rèn)為是相似的;此外,傳統(tǒng)的相似度無法準(zhǔn)確區(qū)分某些相似度相同但偏好差別很大的用戶之間的相似性。
同理,基于項(xiàng)目相似度的情況類似。
在個(gè)人用戶對(duì)項(xiàng)目預(yù)測(cè)評(píng)分的基礎(chǔ)上,融合策略可以將組內(nèi)成員的偏好進(jìn)行融合,從而得到整個(gè)組對(duì)于項(xiàng)目的得分,根據(jù)得分的大小生成最終的推薦列表。由于群組中成員的偏好可能相同,也可能不同,此時(shí)單個(gè)成員的偏好不能作為整個(gè)組的偏好,因此如何獲取群組成員的共同偏好,緩解各成員間的偏好沖突,也是組推薦要解決的問題[7]。目前效果比較好的偏好融合策略有均值策略(average)和最小痛苦策略(least misery)。均值策略選擇成員對(duì)項(xiàng)目評(píng)分的平均值作為群組對(duì)于項(xiàng)目的得分,可以表示為
最小痛苦策略選擇成員對(duì)項(xiàng)目最小的評(píng)分作為群組對(duì)于項(xiàng)目的得分,可以表示為
均值策略只考慮群組成員的平均偏好程度,但可能忽略了少數(shù)成員的不滿意度;最小痛苦策略根據(jù)組內(nèi)成員對(duì)項(xiàng)目的最小評(píng)分做參考,卻可能會(huì)忽略多數(shù)人的感受。如表2所示,根據(jù)均值策略,景點(diǎn)1和景點(diǎn)3對(duì)于包含用戶1、2、3和用戶4的群組是等價(jià)的,但對(duì)于景點(diǎn)1而言,均值策略顯然沒有考慮用戶4的感受,相比較來說,選擇景點(diǎn)3可能比景點(diǎn)1更好一些;根據(jù)最小痛苦策略,景點(diǎn)3、4和景點(diǎn)5對(duì)于群組是等價(jià)的,相對(duì)于景點(diǎn)3而言,組內(nèi)成員對(duì)景點(diǎn)4或景點(diǎn)5更感興趣,此時(shí)少數(shù)人可能服從多數(shù),組成員很可能會(huì)優(yōu)先選擇景點(diǎn)5,最小痛苦策略只考慮了成員的最小滿意度卻忽略了大多數(shù)人的偏好。
為此,本文考慮了以上兩種策略的不足之處,定義一種修正的方法來平衡組成員局部滿意度與整體滿意度之間的關(guān)系,本文稱之為滿意度平衡策略(satisfaction balance),群組對(duì)景點(diǎn)i的得分用滿意度平衡策略表示為,定義如式(11)所示。
表 2 不同融合策略示例Table 2 Different aggregation strategies examples
目前旅游推薦領(lǐng)域還沒有公開實(shí)驗(yàn)數(shù)據(jù)集,國(guó)內(nèi)外學(xué)術(shù)研究使用的數(shù)據(jù)主要來自旅游網(wǎng)站或問卷的方式。采用調(diào)查問卷的方式獲取數(shù)據(jù)可能會(huì)存在一些不可避免的缺點(diǎn):如果設(shè)計(jì)的問題太多往往會(huì)讓用戶失去耐心,太少反而不會(huì)獲取足夠的信息;可能會(huì)涉及到用戶隱私問題;用戶還可能會(huì)存在回憶誤差。本文數(shù)據(jù)集由攜程網(wǎng)(http://www.ctrip.com/)爬取桂林市的景點(diǎn)信息整理獲得,包括用戶ID,景點(diǎn)ID及用戶對(duì)景點(diǎn)的評(píng)分。最初獲取的數(shù)據(jù)集包括18 354個(gè)用戶對(duì)255個(gè)景點(diǎn)的48 473條評(píng)分,評(píng)分范圍為1~5分。
為了方便實(shí)驗(yàn),對(duì)獲取的數(shù)據(jù)進(jìn)行以下處理:
刪除用戶重復(fù)的評(píng)分記錄;刪除沒有用戶評(píng)分的景點(diǎn);刪除評(píng)分記錄小于3條的用戶。最終得到的旅游數(shù)據(jù)集如表3所示。
表 3 實(shí)驗(yàn)數(shù)據(jù)Table 3 Experimental dataset
實(shí)驗(yàn)中除了旅游數(shù)據(jù)集之外,還采用了目前在衡量推薦算法中常用的由美國(guó)Minnesota大學(xué)Grouplens項(xiàng)目提供的Movielens數(shù)據(jù)集。如表4所示,該數(shù)據(jù)集由943個(gè)用戶對(duì)1 682部電影的100 000條評(píng)分組成,每個(gè)用戶的評(píng)分記錄不少于20條,評(píng)分范圍為1~5分。
表 4 實(shí)驗(yàn)數(shù)據(jù)Table 4 Experimental dataset
平均絕對(duì)誤差[16](mean absolute error,MAE)和均方根誤差[8](root-mean-square error,RMSE)是衡量預(yù)測(cè)評(píng)分和真實(shí)評(píng)分之間相近程度的評(píng)價(jià)標(biāo)準(zhǔn),本文使用MAE和RMSE對(duì)個(gè)人預(yù)測(cè)結(jié)果的準(zhǔn)確性進(jìn)行檢驗(yàn)。如式(12)、(13)所示。
歸一化折損累計(jì)增益(normalized discounted cumulative gain,nDCG)是信息檢索中一種衡量推薦列表準(zhǔn)確率的評(píng)價(jià)指標(biāo)[5,17],本文使用nDCG對(duì)組推薦的結(jié)果進(jìn)行檢驗(yàn)。設(shè)為群組推薦項(xiàng)目的排名列表,則用戶的DCG和nDCG定義如式(14)、(15)所示:
圖2和圖3分別給出了2.1節(jié)中介紹的基于用戶的協(xié)同過濾(UBCF)和2.2節(jié)中介紹的基于項(xiàng)目的協(xié)同過濾(IBCF)、通過引入相似性影響因子與關(guān)聯(lián)性因子改進(jìn)的基于用戶的協(xié)同過濾(imp-UBCF)和改進(jìn)的基于項(xiàng)目的協(xié)同過濾(imp-IBCF)的折線圖。隨機(jī)選擇旅游數(shù)據(jù)集中80%的評(píng)分記錄作為訓(xùn)練集,20%的評(píng)分記錄作為測(cè)試集,經(jīng)多次實(shí)驗(yàn),取=0,觀察鄰居數(shù)目K從5~30每次增加5時(shí),各個(gè)推薦算法的性能。圖2、3中可以看出,在相同鄰居數(shù)目的情況下,無論是使用基于用戶的協(xié)同過濾還是基于項(xiàng)目的協(xié)同過濾預(yù)測(cè)評(píng)分,基于改進(jìn)方法的MAE和RMSE均低于傳統(tǒng)的方法,表明改進(jìn)的方法在計(jì)算用戶或項(xiàng)目之間的相似性時(shí)可以起到更好的效果,進(jìn)而提高用戶對(duì)項(xiàng)目預(yù)測(cè)評(píng)分的準(zhǔn)確性。這是因?yàn)閭鹘y(tǒng)的相似度方法(比如基于用戶的相似度)在評(píng)分矩陣稀疏的情況下,無法準(zhǔn)確度量用戶共同評(píng)分的景點(diǎn)數(shù)量與用戶之間相似度的關(guān)系,而且在一定程度上也忽略了用戶對(duì)于不同景點(diǎn)的興趣差異。
圖2 不同推薦方法下的MAEFig. 2 MAE for different recommended methods
圖3 不同推薦方法下的RMSEFig. 3 RMSE for different recommended methods
為了驗(yàn)證改進(jìn)的協(xié)同過濾方法在群組中的有效性,隨機(jī)選擇旅游數(shù)據(jù)集中的3人、4人、6人組成3類群組,重復(fù)進(jìn)行10次實(shí)驗(yàn),取鄰居數(shù)目K=30。本節(jié)使用基于用戶的協(xié)同過濾和改進(jìn)的基于用戶的協(xié)同過濾方法對(duì)每一個(gè)群組中所有用戶的預(yù)測(cè)評(píng)分進(jìn)行檢驗(yàn),取10次實(shí)驗(yàn)的平均值為最后結(jié)果,如圖4所示,群組中整體的MAE低于傳統(tǒng)的方法,表明改進(jìn)的方法在給群組中所有成員對(duì)項(xiàng)目進(jìn)行預(yù)測(cè)評(píng)分時(shí),計(jì)算結(jié)果更加準(zhǔn)確。
圖4 不同推薦方法下的MAEFig. 4 MAE for different recommended methods
4.3.1 偏好融合策略
在組偏好融合階段,常見的融合策略有均值策略(average)、最小痛苦策略(least misery)、乘法策略(multiplicative)[10]、最開心策略(most pleasure)[5]、痛苦避免均值策略(average without misery)[1]。其中,乘法策略通過將成員對(duì)項(xiàng)目的評(píng)分做乘法得到的結(jié)果作為整個(gè)組的得分,然后根據(jù)得分按照大小排序生成推薦列表;最開心策略選擇成員對(duì)項(xiàng)目的最高評(píng)分作為群組的得分;痛苦避免均值策略在排除單個(gè)成員評(píng)分低于某個(gè)閾值的項(xiàng)目后再根據(jù)成員對(duì)項(xiàng)目的平均評(píng)分作為群組的得分。
4.3.2 偏好融合策略對(duì)比與分析
在使用改進(jìn)的協(xié)同過濾方法對(duì)群組成員預(yù)測(cè)評(píng)分的基礎(chǔ)上,本節(jié)實(shí)驗(yàn)在旅游數(shù)據(jù)集上比較了本文提出的滿意度平衡策略(satisfaction balance)與常用的融合策略的實(shí)驗(yàn)結(jié)果。由圖5可以看出,在群組的規(guī)模不同時(shí),修正的偏好融合策略(satisfaction balance)表現(xiàn)的效果比較好。這是因?yàn)閘east misery是用少數(shù)成員的意見決定整個(gè)組的選擇,推薦的項(xiàng)目可能不是群組中所有用戶最喜歡的;average在給群組推薦項(xiàng)目時(shí),只考慮了所有成員的整體滿意度,卻忽略了組內(nèi)不同成員的感受;multiplicative是用所有成員的評(píng)分乘積作為群組結(jié)果,當(dāng)某些成員之間的偏好差別較大時(shí),群組的得分也可能比較高;most pleasure只考慮了成員的最大滿意度;而average without misery雖然排除了成員評(píng)分較小的項(xiàng)目,但在其他項(xiàng)目的推薦上仍然存在因少數(shù)成員的相對(duì)不滿意度使得群組得分較高的情況;而本文修正的融合策略考慮了用戶的整體滿意度和局部滿意度之間的關(guān)系,使得推薦的項(xiàng)目能夠更好地反應(yīng)出整個(gè)群組的偏好,推薦結(jié)果更加準(zhǔn)確。
圖5 不同融合策略下的nDCGFig. 5 nDCG for different aggregation strategies
圖6 為在Movielens數(shù)據(jù)集上,UBCF、IBCF、imp-UBCF和imp-IBCF的折線圖??梢钥闯觯琲mp-IBCF在Movielens數(shù)據(jù)集上提高的效果最為明顯,和UBCF、IBCF相比,分別提高了5%和6.7%,同樣驗(yàn)證了本文所提方法的有效性。
圖6 不同推薦方法下的MAEFig. 6 MAE for different recommended methods
本文針對(duì)組推薦系統(tǒng)在旅游推薦領(lǐng)域面臨的數(shù)據(jù)稀疏性問題,提出一種改進(jìn)的協(xié)同過濾方法來提高對(duì)單個(gè)用戶預(yù)測(cè)評(píng)分的準(zhǔn)確性;然后針對(duì)現(xiàn)有的融合策略——均值策略和最小痛苦策略忽略了局部滿意度或整體滿意度的問題進(jìn)行了修正,修正的偏好融合策略同時(shí)考慮了兩者的不足之處。通過不同的實(shí)驗(yàn)證明,本文提出的方法在一定程度上提高了預(yù)測(cè)的準(zhǔn)確性和推薦的準(zhǔn)確率。未來的工作是收集旅游領(lǐng)域的文本信息,對(duì)用戶進(jìn)行廣度的偏好分析,進(jìn)一步提高推薦的效率。