賈俊杰 張玉超劉鵬濤 陳旺虎
(西北師范大學計算機科學與工程學院 蘭州 730070)
隨著互聯網服務的快速發展,用戶越來越難以在海量的數據中找到所需要的信息。推薦系統就是在急劇膨脹的數據中為用戶精準地提供他們所需要的信息。其中協同過濾推薦算法是推薦系統中最為廣泛應用的算法之一[1],它通過用戶購買商品的歷史信息來尋找與其興趣相似的其他用戶,并為其未進行體驗的項目進行評分預測。
盡管協同過濾推薦算法有很多的優點,但在實際應用中,用戶購買商品的歷史信息往往很少,使得協同過濾推薦算法在計算相似度時無法為用戶提供興趣最為相似的推薦用戶。即數據稀疏與冷啟動問題,導致推薦效率低下。如何解決推薦系統中的數據稀疏與冷啟動問題并且提高推薦準確率,是目前比較熱門的研究課題。
為了解決協同過濾算法中的數據稀疏與冷啟動問題,常用的解決方法有:
(1)矩陣分解法:通過數學的方法,對用戶-評分矩陣中未評分的項目進行填充。其中奇異值分解算法[2]是矩陣分解法最為經典的算法之一,通過用戶歷史行為來提取相應的偏好特征或項目特征,來補充缺省的評分矩陣值。
(2)數據填充法:利用其他有用信息對數據稀疏和冷啟動用戶信息進行補充,使得用戶更精準地找到與其興趣相似的推薦用戶,提高推薦精度。文獻[3–5]將聚類的方法應用到推薦算法,通過聚類的方法,將興趣相似的用戶放到同一聚類中,以同一類別的其他用戶的評分對缺省值進行填補。文獻[6–8]將用戶間信任關系數據與用戶項目評分信息進行結合。當遇到數據稀疏與冷啟動問題時,利用社交關系數據進行補充,一定程度上緩解了數據稀疏與冷啟動問題并提高推薦準確率。
在日常生活中,人們通常是以“人以群分”的形式存在的;人們的決策通常受到朋友的影響,而傳統協同過濾推薦算法往往認為用戶間是相互獨立的[9,10],導致推薦系統為用戶計算偏好相似性時所用的信息過少。隨著互聯網服務的快速發展,現有很多網站為用戶構建社交信息網絡,現有研究表明,融合用戶間信任信息網絡的推薦系統能夠有效地提高推薦質量并能夠有效抵御惡意影響推薦精度的行為[11]。
基于用戶信任關系的推薦系統,不僅考慮了用戶-項目之間的評分信息,而且融入了用戶間的信任關系。其中用戶間的信任關系通過社交網站的方式進行收集[12]。對于一個冷啟動用戶,則融合用戶間信任關系的推薦系統可通過分析其在信任關系數據所獲得的直接或推斷出的間接信任的用戶來為目標用戶產生推薦。其中Massa等人[6]提出的MoleTrust算法,將用戶-項目與用戶間信任關系分別進行處理,將用戶-項目評分信息與用戶信任關系作為推薦算法的輸入,有效地緩解了協同過濾算法數據稀疏與冷啟動問題。Yuan等人[7]對Mass等人對MoleTrust算法進行改進,提出用戶是以小世界的特性存在的,并為此特性進行了證明。
Amatriain等人[13]率先提出將專家概念融入協同過濾推薦算法,并有效地提高了推薦質量。Breese等人[14]提出了將用戶專家與相似度結合的方法,在不同領域擁有不同影響力的專家在評分預測時被賦予不同的權值,然后進行評分預測;賈彭慧等人[15]提出了一種為用戶動態生成專家數據集的協同過濾推薦算法,根據用戶間的交叉性、信任性、趨同性等值為用戶挖掘專家數據集,并通過計算用戶與專家數據集的相似性進行協同過濾推薦,但未考慮用戶所處社區與用戶偏置對推薦的影響;高發展等人[16]提出將用戶特征與專家概念相結合的方法進行協同過濾推薦,并證實所提算法可有效提高推薦質量;趙明等人[17]提出了一種結合用戶信任關系與興趣的核心用戶推薦方法,實驗結果證明,融合核心用戶的推薦方法可有效提升推薦質量,并證實可有效降低推薦系統中托攻擊的風險。
由以上文獻研究可知,結合專家概念的協同過濾算法可有效提高推薦質量,然而在現實推薦數據集中,用戶評分數據嚴重稀疏,無法為用戶生成高質量的專家數據集。而且在傳統專家推薦算法中,為每位用戶共享專家數據集,而未考慮到單一用戶個性化推薦的問題。并且在現實生活中,我們所看到的物品評分的高低并非只與用戶偏好有關,而且還與物品受外界評分影響高低和用戶本身特性有關;即外界對商品評分往往獲得的更高評分,積極的用戶往往對其所體驗過所有商品的評分普遍較高[18]。
針對此類問題,本文提出融合偏置的動態專家信任推薦算法(Biased Dynamic Expert Trust Algorithm,BDETA),旨在進一步解決傳統協同過濾推薦算法中數據稀疏與冷啟動問題,提高推薦精度。在本算法中,首先通過根據用戶的信任關系對用戶進行社區劃分,根據所屬社區用戶間信任關系和評分信息,結合用戶可信度、用戶顯式信任、隱式信任動態選取專家因子。進而在每個社區中選取具有代表性的用戶作為專家,最后結合用戶與所選取的專家信任因子與目標用戶評分偏置進行協同過濾評分預測。本文主要貢獻包括:
(1)提出了基于社區用戶間信任關系與用戶項目興趣偏好的專家數據集動態挖掘策略。通過用戶間的信任數據進行信任社區劃分來提升尋找目標用戶的推薦用戶與推斷出用戶間顯式信任關系的效率;并同時結合動態從目標用戶所屬社區中與其他用戶間評分數據中推斷出可信度、隱式信任關系;從推薦結果中確定可信度、顯式信任關系、隱式信任關系,與社區專家數據集聯系。
(2)通過計算目標用戶所屬社區中每個用戶的可信度、顯式信任關系、隱式信任關系,根據推薦質量來確定每個社區中專家的數量的占比,摒棄一些對推薦沒有幫助的噪聲用戶,并通過結合社區中每位用戶的不同評分標準,來提高推薦準確率。
(3)在真實數據集FilmTrust中,本文所提算法與現有相關算法進行了比較;從推薦系統為全部用戶的缺失項目評分預測中平均絕對誤差MAE與均方根誤差RMSE指標等方面對推薦結果進行了綜合的分析。
本文結構安排如下:第2節介紹本文所提BDETA算法;第3節介紹實驗結果與分析;第4節對全文進行總結與展望。
融合信任關系的推薦算法可有效緩解數據稀疏與冷啟動問題,但實際用戶的信任關系數據也十分稀疏;由相關學者研究表明,結合專家概念的推薦算法可有效提高推薦質量;但在現實推薦數據集中,用戶-項目評分數據嚴重缺失,導致無法為用戶生成高質量的專家集,以至于推薦質量不理想;同樣,在現實生活中,我們所看到的物品評分的高低并非只與用戶偏好有關,而且還與物品所受外界評分影響有關[18],即該商品受外界評分普遍較高則往往獲得更高的評分,積極的用戶往往對其所體驗過所有商品的評分普遍較高。因此本文提出BDETA算法,將信任關系融入到專家推薦中,首先根據信任關系將用戶劃分到不同社區中;然后將劃分到不同社區的用戶根據評分數據中推斷出的可信度、隱式信任值與用戶間信任關系數據中推斷出的顯式信任值動態挖掘專家數據集,進一步提高推薦質量。算法框架流程如圖1所示。

圖1 算法框架流程圖
融合用戶間信任關系的推薦算法,不僅考慮了用戶-項目評分矩陣Rm×n,還將用戶的信任關系數據融入其中;用戶間信任關系數據通常用矩陣來表示。在推薦系統中,信任是指對其他用戶所體驗過項目評分的認可,表示與其有相同的偏好。若用戶間存在信任關系則T(u i,u j)=1,表示用戶ui信任用戶uj;若T(u i,u j)=0則 表示用戶ui與uj沒有信任關系(如式(1)所示)。

為結合實際專家對人們產生的影響,本文根據信任關系數據將用戶劃分到不同社區X={X1,X2,···,X n},其中X1表示第1個社區,Xn表示第n個社區。Xi={u1,u2,···,u k}表示社區Xi中所包含的所有用戶,u1為社區Xi的第1位用戶,u k為社區Xi的第k個用戶。本文采用文獻[10]的社區劃分方法,利用SLM[19]算法來進行用戶社區的劃分;該算法既能夠保證將用戶以高準確率劃分到所屬的社區,又能保證所用時間較短。社區劃分結束后,每個社區的用戶個數不盡相同;用戶個數少的社區表示少數用戶對某一種商品有著特殊的偏好,反之則表示大眾用戶對熱門商品的偏好。
對目標用戶推薦專家集的挖掘是本文的核心,該工作關系著推薦效果優劣。為了尋找每個社區中目標用戶專家集,本文通過計算社區中用戶的可信度、顯式信任值與隱式信任值來動態確定專家因子,最后通過所設置的社區專家數量占比來確定該社區的專家集。
定義1對于任意用戶的專家因子,專家E c滿足:

其中,Qu表示用戶u從其評分數據中所獲得的專家因子,Q e表示專家用戶e從其評分數據所獲得的專家因子,U代表數據集中所有的用戶。當用戶的信任因子滿足式(1)時,該用戶被定義為專家。
定義2用戶可信度
用戶的可信度表示用戶的活躍程度,表示目標用戶與其他用戶互動次數;即兩個用戶對某一商品評分的數量越多,則表示該用戶在此社區的可信度就越高[15]。

其中,I u,Iv分別表示用戶u,v所體驗過的商品集合。分子部分|I u∩I v|表 示用戶u,v共同對相同商品評價的數量,max(N)表示用戶間最大相同商品評分數量。
定義3用戶間顯式信任
流動性是用戶間信任關系的特征之一,即朋友的朋友可能也是朋友,并有逐級遞減的特性[20]。

定義4用戶間的隱式信任
為了計算用戶間的隱式信任值,本文采用Lathia等人[21]提出的信任計算模型來計算用戶間的隱式信任值。即用戶間有相同評分項目則表示用戶互動一次,評分差異越小,表示用戶間越信任,互動次數越多反映用戶信任程度也就越高。

定義5專家因子的計算
對目標用戶而言,專家因子反映了該專家在該領域的權威,專家因子越大,則表示該專家就越可信。專家因子的計算結合了用戶可信度、用戶隱式信任、顯式信任動態選取專家因子[15]。


圖2 可求解區域
選取前θ個專家為目標用戶的專家集,因為每個社區所劃分的用戶個數不同,因此每個社區專家比例為φ,對第l個社區所選專家用戶個數為[23]

定義6用戶偏置信息
在現實生活中,我們所看到的物品評分的高低并非只與用戶偏好有關,而且還與物品受外界評分影響高低和用戶本身特性有關,因此,計算用戶評分偏置信息公式如下所示[18]:

通過找到目標用戶所在社區中的專家集,利用Breese等人[14]提出的目標用戶與專家集相似度結合的方法;先計算目標用戶與所屬社區專家集中每位專家的偏好相似度,然后進行缺失項目的預測評分。

輸出:目標用戶缺失項目的預測評分。
步驟1用社區劃分SLM算法根據輸入的用戶間信任數據,將用戶劃分到不同社區中;
步驟2據用戶-項目評分據與用戶間信任關系數據,計算社區中每位用戶的可信度、顯式信任值與隱式信任值,并根據推薦質量動態調整信任關系所占比例;
步驟3跟據推薦質量,動態選取每個社區專家所占社區用戶數量比例,根據用戶專家信任因子與專家比例,確定每個社區專家集;
步驟4計算目標用戶評分偏置、與目標用戶的相似度,為目標用戶缺失項目評分預測。
為驗證所提算法的可行性,本實驗使用文獻[22]實驗中所采用的FilmTrust真實數據集進行驗證,FilmTrust數據集具體情況如表1所示。

表1 數據集信息
評分預測準確性是衡量一個推薦算法好壞的重要標準之一,為此本文將利用平均絕對誤差(MAE)指標和均方根誤差(RMSE)指標來驗證本文所提算法推薦性能[24],推薦性能越好則MAE與RMSE的值越小。

平均絕對誤差(MAE)與均方根誤差(RMSE)指標,為推薦系統為用戶預測的所有項目評分與用戶對所有項目真實評分之差,差值越小,則表示推薦準確性越高。其中r i和rp分別表示在測試集中用戶對項目i的真實評分和推薦系統為用戶對缺失項目i的預測評分,N為在測試集中所有項目數量。
本實驗選取FilmTrust真實數據集中80%作為訓練集,20%作為測試集。用本文所提BDETA推薦算法為用戶未評分項目進行評分預測;所預測出的評分與測試集中的用戶真實評分做對比,以驗證本文所提算法的推薦質量。
圖3為本文所提算法中社區專家所占比例φ在任意給定的α=0.5,β=0.3,γ=0.2時對用戶缺失項目評分預測的影響情況。由圖3可知,在φ為0.1到0.5時,本文所提算法為目標用戶缺失項目評分預測平均絕對誤差MAE與均方根誤差RMSE一直在降低,并且MAE和RMSE指標在φ為0.5時降到最低,分別為0.439與1.225;在社區專家比例φ為0.5到0.9時,MAE指標在不斷上升,在φ為0.7到0.9時,MAE與RMSE最終趨于平緩;這是因為剛開始目標用戶所在社區中專家占比較小,導致該社區所選取的專家用戶較少,因此只有很小一部分專家用戶代表社區中全體用戶,進而導致推薦誤差較大;隨后,隨著社區中專家人數的增加,越來越多較為專業的用戶加入專家集中,即高質量專家,使得整體評價更為客觀,因此推薦精度大幅提升;最后,隨著社區專家占比φ的不斷提高,越來越多的可信度、顯式信任值與隱式信任值不高的非專業用戶加入專家集并為目標用戶進行缺失項目評分預測,直接導致推薦精度下降,即噪聲用戶。因此本文以下實驗將社區專家所占比例φ選定為0.5。

圖3 社區專家占比φ 對推薦質量的影響
如表2所示,在根據推薦質量動態選取專家因子(式(7))時,參數α和β對用戶預測評分MAE的影響;當α+β>1時,不符合本文所提算法理論,故M A E 取0;從表2 可知,當α=0.5,β=0.3和γ=0.2時,MAE最小,為0.4392。

表2 參數α 和β 對MAE的影響
圖4所示本文所提算法與傳統基于用戶的協同過濾推薦算法(BUCF)[25]、基于項目的協同過濾推薦算法(BICF)[26]、文獻[10]中一種基于社區專家信息的協同過濾推薦算法(CEFCF)與文獻[15]中基于專家動態生成的協同過濾推薦算法(DGECF)在訓練集規模為80%,60%和40%的情況下進行對比。隨著訓練集的減小,本文所提算法與對比算法中的所有算法預測評分誤差都在不斷增大;在訓練集規模為80%與60%時,本文所提算法與其他3種算法的預測誤差相差不大;但隨著訓練集的不斷縮小,本文所提算法與其他3種算法預測誤差相差明顯。

圖4 不同算法不同訓練集規模推薦質量變化
本文提出的融合偏置的動態專家信任推薦算法,首先通過用戶間的信任關系數據進行社區的劃分,根據信任關系數據計算用戶所獲得顯式信任;然后根據用戶-項目評分數據,推斷出用戶所獲得的隱式信任值、可信度與用戶評分的特性,動態結合用戶所獲顯式信任值、隱式信任值與可信度,考慮社區中每位用戶的不同評分標準,動態挖掘每個社區的專家集;利用社區專家來為數據稀疏、冷啟動用戶進行項目評分預測,通過真實數據集FilmTrust進行了具體的驗證;實驗證明,可有效提高推薦質量。但本文所提改進的專家推薦中,沒有深入研究用戶間信任傳播與項目屬性對專家集挖掘的影響,下一步工作將考慮從多個角度來研究對專家集挖掘的影響。