史艷翠,齊嘉琳
(天津科技大學(xué)人工智能學(xué)院,天津 300457)
隨著推薦系統(tǒng)技術(shù)的不斷發(fā)展,現(xiàn)已廣泛應(yīng)用于各種領(lǐng)域,如在電子商務(wù)領(lǐng)域中可根據(jù)用戶的購物記錄為用戶推薦可能需要的物品,在新聞推薦領(lǐng)域中根據(jù)用戶經(jīng)常瀏覽的內(nèi)容為其推薦相似新聞等.現(xiàn)如今,生活質(zhì)量的不斷提高使得人們在飲食方面也有著更高的要求,這給餐飲業(yè)的發(fā)展提供了良好的條件.常用的餐廳點評網(wǎng)站有大眾點評、Yelp、Foursquare等.面對海量的用戶和餐廳信息,傳統(tǒng)個性化推薦存在著計算量大等問題,為了降低計算時間和提高效率,常使用群組推薦技術(shù).
在推薦算法中,無論是個性化推薦還是群組推薦,使用原始的用戶–評分矩陣進行計算的情況占多數(shù).任志波等[1]在進行個性化推薦時,對評分信任和社交信任賦予自適應(yīng)權(quán)重,提高了推薦的效果.徐芳[2]提出一種新穎的雙自編碼器矩陣分解模型,利用評分矩陣和用戶項目評論信息提高推薦準(zhǔn)確率.這些算法中使用的矩陣均為原始的評分矩陣,雖能夠提高算法的準(zhǔn)確率,但仍存在數(shù)據(jù)稀疏的問題.
隨著社交網(wǎng)絡(luò)的出現(xiàn)和發(fā)展,研究者們將社會化關(guān)系引入到推薦系統(tǒng)中.Capuano等[3]提出根據(jù)組內(nèi)用戶的社會化關(guān)系和社交網(wǎng)絡(luò)估算等相關(guān)信息計算群組內(nèi)各個用戶之間的影響力,形成影響力網(wǎng)絡(luò),并基于這種網(wǎng)絡(luò)和現(xiàn)有的評估偏好的方法預(yù)測用戶的偏好,模擬了用戶的偏好是否受到其所處的社會化關(guān)系網(wǎng)絡(luò).鄧志彬等[4]提出了一種融合社會網(wǎng)絡(luò)用戶相似度的社會推薦算法SRSUS,利用社會關(guān)系計算用戶的社會信任度,并通過實驗表明該算法總體上優(yōu)于其他社交推薦算法.有的學(xué)者將用戶間的信任關(guān)系引入到用戶偏好獲取模型中,以獲得更準(zhǔn)確的用戶偏好.劉輝等[5]提出一種融合用戶相似度、地理位置和信任關(guān)系的混合推薦算法,在信任關(guān)系方面根據(jù)社會地位的計算方法重構(gòu)信任度,提高推薦的準(zhǔn)確性.李衛(wèi)疆等[6]提出一種融合項目流行度和用戶信任關(guān)系的矩陣分解推薦算法,通過矩陣分解同時傳遞信任和推薦項目,使覆蓋率得到了提升.上述推薦算法考慮了用戶間的信任關(guān)系,但在計算用戶間的信任度時只考慮了單一因素的影響,沒有從多角度考慮其他因素對用戶信任度的影響.
在進行偏好融合時,胡川等[7]分析了推薦模型和模型融合的群組偏好融合方法后,提出增強的群組偏好融合方法,提高了推薦的準(zhǔn)確性與多樣性.吳云昌等[8]介紹了幾種不同的融合策略,并比較了它們的優(yōu)缺點,得出策略的選擇由不同的應(yīng)用場景而定的結(jié)論.在偏好融合方法的選擇上,每一種融合策略都有其各自的優(yōu)缺點,在一些組推薦系統(tǒng)的典型應(yīng)用中,偏好融合策略一般是根據(jù)實際情況得出的.
通過分析發(fā)現(xiàn),現(xiàn)有的研究工作大多集中于個性化推薦,對群組推薦的研究偏少,在計算用戶關(guān)系時,忽略了影響信任度的因素,且存在數(shù)據(jù)稀疏的問題.因此,為了解決上述問題,更好地實現(xiàn)群組偏好融合,本文提出一種融合用戶偏好和信任關(guān)系的混合群組餐廳推薦算法,通過計算用戶對不同餐廳類別的偏好,得到用戶–餐廳類別偏好矩陣,代替原始的用戶–餐廳評分矩陣,降低數(shù)據(jù)的稀疏性;從公平性、準(zhǔn)確性、影響力三方面考慮用戶的信任度,提高準(zhǔn)確性;融合群組偏好時,采用改進比重融合策略.
獲取用戶偏好的方法主要有兩種,顯示獲取和隱式獲取.前者使用用戶對項目的評分作為依據(jù),后者需要通過分析用戶的行為特征得到用戶的偏好.通過計算用戶對不同餐廳類別的偏好程度,代替原始的用戶-餐廳評分矩陣,能更直觀地了解用戶的口味和偏好,并緩解數(shù)據(jù)的稀疏性問題.
原始的用戶-餐廳評分矩陣可以用m×n階矩陣表示為Qm,n.為了更清晰地描述用戶對餐廳的偏好程度,引用用戶偏好模型,用戶u對某一餐廳類別Si的偏好可以通過式(1)進行計算.其中:pref(u,Si)為用戶u對餐廳類別Si的偏好評分;N(u,Si)為用戶u去過餐廳類別Si的次數(shù);|Nu|為用戶u去過的所有餐廳的次數(shù).
計算出用戶對每個去過的餐廳類型的偏好后,將得到的值代替原先的用戶-餐廳評分矩陣,得到一個全新的用戶-餐廳偏好矩陣.但該矩陣中元素的值僅代表用戶對該餐廳所屬類別的偏好值,并不能代表用戶對該餐廳的實際評分.得到的新矩陣用Rm,s表示.
在新矩陣中,S表示餐廳類別的數(shù)量,在原始矩陣中,n表示所有的餐廳.比較可知,S遠小于n,這就大大降低了數(shù)據(jù)的稀疏性.
用戶選擇餐廳就餐時,不僅會受到朋友等社會關(guān)系的影響,用戶間的信任關(guān)系也是影響用戶選擇餐廳的重要因素.如果僅根據(jù)用戶間的偏好的相似度進行群組劃分,可能會導(dǎo)致推薦結(jié)果不準(zhǔn)確.在實際情況下,用戶對餐廳的選擇會因為對不同用戶的信任程度的差別而有所不同,所以用戶對其鄰居用戶的信任程度也是影響推薦質(zhì)量的重要因素.
在傳統(tǒng)的推薦算法中,對用戶評分的相似度關(guān)注較多,但前提是鄰居用戶的評分數(shù)據(jù)都是真實且可靠的,在實際生活中,這個前提很難得到保證.例如某些不良的經(jīng)營者為獲取利潤,采取一些不正當(dāng)?shù)氖侄蝹卧煸u價提高自己產(chǎn)品的好評率.如果使用這些數(shù)據(jù)進行預(yù)測評分或推薦餐廳,會嚴(yán)重影響推薦結(jié)果.因此,使用用戶間的信任度增加推薦的可靠性.本文主要從用戶的公平性、準(zhǔn)確性和影響力對信任度進行衡量.
每個用戶都有不同的打分習(xí)慣,這種習(xí)慣的差異性會直接影響到餐廳的整體評分,從而導(dǎo)致推薦質(zhì)量下降.因此,利用公平性這一指標(biāo)歸一化用戶的評分.如果該用戶的所有評分項目的差異較小,則說明該用戶的評分較為單一,對所有去過的餐廳,無論口味是否滿意,評分都沒有太大變化,這種情況下,該類用戶的評分不具有參考性;相反,如果該用戶對餐廳的評分的差異較大,則很有可能說明該用戶是按照餐廳的實際情況進行評分的.這些用戶的評分對于未去過該餐廳的用戶來說,參考價值較高.若用戶u的評分公平性記為F(u),則可通過式(2)進行計算.
其中:Eu為用戶u對所有評分的餐廳類別的集合,|Eu|為集合的大?。籖u,i為用戶u對該集合Eu中某類餐廳i的偏好評分;Ru為用戶u對集合Eu中所有類別餐廳評分偏好的平均值.
該性能用來衡量用戶對某餐廳評分的準(zhǔn)確程度,如果用戶對某類餐廳的偏好評分與該餐廳的平均評分越接近,說明該用戶的評分越準(zhǔn)確,該用戶的信任度會提高.將用戶評分的準(zhǔn)確性記為C(u),通過式(3)進行計算.
其中Ri為所有用戶對某類餐廳i的評分的平均值,即某類餐廳i的平均偏好評分.
考慮到在實際生活中,有的用戶較為主動積極,愿意對就餐的餐廳發(fā)表意見和感受,而有的用戶很少或幾乎不愿意對所就餐的餐廳進行評價,這些用戶的人氣值往往很低,并且會逐漸失去其他用戶的信任.因此,可以認為評價數(shù)量較多的用戶影響力高于評價數(shù)量少的用戶影響力.將用戶的影響力記為I(u),通過式(4)進行計算.
由于Eu為用戶u對所有評分的餐廳類別集合,在計算影響力時,如果只考慮餐廳類別不考慮其他因素,是不合理的.比如用戶A熱衷于火鍋,去了500次火鍋類的餐廳,用戶B去了5種不同類別的餐廳各1次,如果按照式(4)計算,則用戶B的影響力大于用戶A的影響力.但顯然,用戶A要比用戶B更具影響力.因此,在計算用戶影響力時還需考慮用戶對不同類別餐廳的偏好程度,改進后的用戶影響力按式(5)計算.
綜合考慮用戶去過的餐廳類別數(shù)量和用戶對不同類別餐廳的偏好程度可知,這兩者的乘積越大,說明該用戶的影響力越大,被信任的程度越高;反之,影響力越小,用戶越不被信任.
在整個推薦的過程中,用戶評分越公平、準(zhǔn)確,并且影響力高,則該用戶越值得信任,用戶的最終信任度T(u)可以由上述3個指標(biāo)表示,計算公式見式(6).
其中λ為權(quán)重值,且λ1+λ2+λ3=1.
相似度計算的準(zhǔn)確性是影響推薦質(zhì)量的重要因素.使用較多的相似度計算方法包括歐式距離相似度、Jaccard相似度、余弦相似度、Pearson相似度等.其中Pearson相似度計算方法見式(7).
其中:Ru,i為用戶u對餐廳類別i的評分;為用戶u對所去餐廳的平均評分;Iuv為用戶u和用戶v共同評分過的餐廳類別的交集;sim(u,v)為求得的用戶u與用戶v之間的相似度.
在計算用戶相似度時,考慮到用戶對相同餐廳類別的簽到時間間隔可能會影響用戶間的相似度,因此設(shè)計一種時間懲罰函數(shù)模擬這種情況.在相似度計算方法中引入了用戶評分間隔時間,用戶評分時間間隔越久,其對相似度計算結(jié)果的影響就越大,因此受到的時間懲罰就應(yīng)該越大.懲罰機制通過時間懲罰函數(shù)式(8)實現(xiàn).
在計算用戶間的相似度時,用戶對餐廳類別的偏好度將代替原始的用戶對餐廳的評分,同時考慮了時間、兩位用戶共同評分過的餐廳所屬類別的相似度對用戶相似度的影響,改進后的用戶相似度計算公式見式(9).
其中:sim(u,v)為求得的用戶u與用戶v之間的相似度;K(u)和K(v)分別為用戶u和用戶v評分過的餐廳所屬的類別.
為了同時考慮用戶信任關(guān)系與相似關(guān)系,提高用戶偏好預(yù)測及推薦的整體性能,通過調(diào)整用戶的信任度和相似度的參數(shù),控制這兩種關(guān)系在用戶的相關(guān)度評分score(u,v)中所占的比重,計算公式見式(10),其中θ為控制相似度的權(quán)重值.
通過計算n個用戶之間的相似度,得到用戶相似度矩陣.通過K-means算法對用戶進行聚類,步驟如下:
(1)在同城的n個用戶中,隨機抽取k個用戶的相關(guān)數(shù)據(jù)作為初始的聚類中心 Sλ= {s1,s2,…,sk}.
(2)計算其他用戶與這k個初始中心點的距離di,j,根據(jù)距離決定用戶所屬的初始聚類中心簇.
(3)初次距離計算完成后,得到初始用戶聚類群,計算每個群內(nèi)距離的均值點,并把新計算的均值點與上一次聚類的均值點作差.如果差值量在允許范圍內(nèi)則聚類結(jié)束,得到群組的劃分;否則,當(dāng)前均值點將作為新中心簇重復(fù)第二步與第三步.
通過比較均值融合、痛苦避免均值、最開心和最小痛苦策略發(fā)現(xiàn),這些偏好融合策略有各自的缺點.如均值策略選擇評分均值作為群組評分,會引起群組中有較高評分用戶的不滿;痛苦避免均值策略通過設(shè)置痛苦閾值過濾一部分評分,但閾值的選擇會影響結(jié)果;最開心策略和最小痛苦策略分別建立在群組成員最樂觀和最悲觀的情況下,且用戶滿意度較低.
通過占比的不同,使用不同的偏好融合策略.首先,設(shè)置一個偏好評分閥值ε,將群組中偏好評分大于ε的成員為高評分組,小于ε的為低評分組.統(tǒng)計群組g中餐廳類別i的偏好評分情況,根據(jù)餐廳類別i中高評分所占比重的不同,使用式(11)中不同的計算式作為群組g對某類餐廳i的偏好評分.
其中:rg,i為群組g對餐廳類別i的偏好評分,hi為餐廳類別i中偏好評分大于ε的高評分組成員,li為餐廳類別i中偏好評分小于ε的低評分組成員,gi為群組g中去過餐廳類別i的成員.這種融合策略通過分組和所占比重的不同,能夠較好地避免均值策略等其他策略中存在的不足,從而進行更好的偏好融合,提高推薦的準(zhǔn)確率.
使用Pearson相似度公式(式(12))計算兩兩群組間的相似度.
其中:rg,i為群組g對餐廳類別i的偏好評分,為群組g對所有餐廳類別的平均偏好評分,Iuv代表用戶u和用戶v共同評分過的餐廳類別的交集.
找到每個群組的相似度最高的群組g’,群組g對餐廳類別i的預(yù)測評分可用式(13)表示.
實驗部分使用的數(shù)據(jù)集是大眾點評數(shù)據(jù)集,包括用戶信息和商家的屬性信息.用戶信息包括用戶的ID、對餐廳的評分、評論時間等信息,商家的屬性信息包括商家的ID、餐廳名稱、位置(城市、經(jīng)緯度等)、餐館的種類以及標(biāo)簽等信息.數(shù)據(jù)集包含13218個用戶對170類餐廳的評分.實驗采取隨機劃分的方式將數(shù)據(jù)集中80%的數(shù)據(jù)作為訓(xùn)練集,20%的數(shù)據(jù)作為測試集.
準(zhǔn)確度在目前群組推薦算法中使用頻繁,但由于群組推薦與傳統(tǒng)推薦在推薦對象上有所不同,所以需改進原始的準(zhǔn)確度公式以適應(yīng)滿足群組推薦的要求.在餐廳群組推薦中,使用均方根誤差(RMSE)進行衡量.
5.3.1 K-means聚類的K值對SSE的影響
聚類中聚類數(shù)目(K)對誤差平方和(SSE)的影響如圖1所示.群組劃分的數(shù)量會影響最終推薦的效果,圖1中SSE的值隨著K的增加而下降,在K為25時,SSE的降幅逐漸趨于平穩(wěn),聚合效果達到最佳. 因此,后續(xù)實驗中將K設(shè)置為25.5.3.2 用戶信任度影響因素對RMSE的影響
圖1 聚類中K值對SSE的影響Fig. 1 Influence of K value on SSE in clustering
該實驗分別單獨考慮了用戶的公平性(λ1)、準(zhǔn)確性(λ2)和影響力(λ3)因素,并與綜合考慮這3個因素得到的實驗結(jié)果進行對比(圖2).
從圖2中可以得出,單獨考慮用戶的公平性、準(zhǔn)確性或影響力得到的實驗結(jié)果較差,綜合考慮用戶信任度的3個影響因素可以得到更優(yōu)的實驗結(jié)果.這也驗證了前面提到的從多方面考慮用戶信任度的影響因素比傳統(tǒng)的單方面考慮用戶信任度的推薦方法結(jié)果更好.綜合考慮的最優(yōu)實驗結(jié)果的λ值分別為λ1=0.4,λ2=0.4,λ3=0.2.
圖2 用戶信任度影響因素的RMSE比較Fig. 2 Comparison of RMSE values of influencing factors of user trust
5.3.3 用戶相關(guān)度中的參數(shù)θ對RMSE的影響
用戶相關(guān)度中的參數(shù)θ對RMSE的影響如圖3所示.當(dāng)θ=0.6,即相似度權(quán)重為0.6時,信任度權(quán)重為0.4時,RMSE取得最小值,此時推薦結(jié)果最準(zhǔn)確.這從側(cè)面說明在該數(shù)據(jù)集中,用戶間的相似度對推薦結(jié)果有決定性作用.
圖3 用戶相關(guān)度中的參數(shù)對RMSE的影響Fig. 3 Influence of parameters in user relevance on recommendation results
5.3.4 不同融合策略的比較
不同融合策略的RMSE比較如圖4所示.
圖4 不同融合策略的RMSE比較Fig. 4 Comparison of RMSE values of different fusion strategies
從圖4可以看出,4種融合策略的RMSE的值隨著聚類數(shù)目的增加而降低,在相同的聚類數(shù)目下,本文提出的改進比重融合策略得到的RMSE值低于其他3種常見的融合策略,并在聚類數(shù)目為25時取得最佳RMSE值,推薦結(jié)果達到最優(yōu).
5.3.5 不同推薦算法的比較
為了驗證本文提出的融合用戶偏好和信任關(guān)系的混合群組推薦算法(UPTGRR),實驗選取文獻[9]中提出的融合傳統(tǒng)信任關(guān)系的協(xié)同過濾算法(TUBCF)、傳統(tǒng)協(xié)同過濾算法(UBCF)、基于Kmeans聚類的協(xié)同過濾推薦算法(K-UBCF),以及文獻[10]提出的結(jié)合用戶特性和群組興趣變化的組推薦算法(GRAUG),比較不同算法的RMSE,結(jié)果如圖5所示.
圖5 不同算法的RMSE值比較Fig. 5 Comparison of RMSE values of different algorithms
從圖5中可以看出,這幾種算法隨著聚類數(shù)目的增加RMSE的值逐漸減小,并在聚類數(shù)目達到25時趨于穩(wěn)定.與其他算法相比,本文提出的融合用戶偏好和信任關(guān)系的混合群組推薦算法在RMSE值上更小,說明該算法可以提高推薦準(zhǔn)確性,產(chǎn)生更好的實驗結(jié)果.
本文研究了用戶對餐廳類別偏好度和用戶間信任關(guān)系的影響因素,提出了融合用戶偏好和信任關(guān)系的混合群組餐廳推薦算法.將用戶對不同餐廳類別的偏好評分代替原始的用戶對餐廳的評分,降低了數(shù)據(jù)的稀疏性;在計算用戶信任度時,從公平性、準(zhǔn)確性和影響力方面考慮其對用戶信任度的影響;計算用戶間相似度時,考慮了時間以及用戶共同評分過的餐廳所屬類別的相似度的影響;對同城的用戶進行聚類后,使用改進的比重偏好融合策略預(yù)測群組偏好,改善了群組推薦的性能.下一步的研究工作是挖掘用戶更多的信息獲取用戶偏好,提高推薦的準(zhǔn)確度.