段 瓊, 虞慧群, 范貴生
(華東理工大學信息科學與工程學院,上海 200237)
在大數據時代,如何準確地推送項目或產品已經成為學術研究中的一個焦點。然而,隨著信息技術和互聯網的迅速發展,數據量呈爆炸式增長,信息超載已經成為一個日益嚴重的互聯網問題。一些冗余信息會干擾用戶做出正確的選擇,并且成為用戶的障礙。解決這些問題的有效方法之一就是個性化推薦,即根據用戶的需求為用戶推送新聞、商品和服務等。個性化推薦系統不僅可以為用戶提供個性化服務,還可以與活躍用戶建立長期的信任關系[1]。
目前協同過濾算法在推薦系統中的應用比較廣泛,但由于其依賴于用戶評分信息,數據稀疏性也是推薦系統中的一大難題[2-3]。近年來,隨著社交信任網絡的發展,信任度在推薦系統中發揮了重要作用[4-5]。最近的研究表明,通過挖掘用戶信任關系來提高推薦性能是一種有效的方法。在通過融入信任信息來緩解數據稀疏性方面,Duan等[6]通過對間接信任的計算方法進行優化,考慮服務的受歡迎程度,設計了一種動態的信任調整方法,形式化了高級信任關系,并在此基礎上設計了服務推薦機制,提出了一種新的服務推薦算法。Li 等[7]提出了一種信任擴展策略模型,通過信任擴展策略挖掘信任網絡中與目標用戶具有相似偏好的信任鄰居。此外利用用戶信任鄰居的信任評級來計算用戶之間的信任相似度,并在此基礎上采用信任加權方法生成預測結果。除了正向搜索目標用戶的信任好友外,Zhou 等[8]還提出了一種逆向搜索好友的推薦方法。該算法首先搜索目標用戶的“敵人用戶”;然后根據社會平衡理論間接推斷目標用戶可能的朋友;最后根據衍生出的目標用戶的可能好友,向目標用戶推薦最優服務。在通過融入信任值來解決冷啟動方面,何利等[9]提出了一種基于用戶多維度信任的冷啟動推薦模型。該模型利用用戶的信任信息獲取目標用戶的可信好友集合后,再利用傳統評分計算公式來衡量用戶間的評分相似度。在對于傳統的評分相似度的改進方面,陳功平等[10]考慮了傳統皮爾森系數在計算用戶評分相似度時的缺點,通過融合流行項目懲罰系數與共同評分項目占比來對皮爾森相關系數進行改進和修訂。但該方法在計算用戶間的相似度時,只考慮用戶評分的維度,相對單一。盡管上述方法使用信任關系來提高項目預測精度或針對商品流行度來提高評分相似度的準確性,但通常有以下缺點:(1)在描述用戶間的信任關系時,容易忽視信任關系的復雜性與全局性;(2)在計算用戶評分相似度時采用傳統的皮爾森相似性系數等,忽視了用戶共同評分項占比所帶來的影響;(3)只考慮用戶間的信任交互關系來提升綜合相似度精度,忽視了推薦項目熱門程度懲罰。
為了克服這些不足,本文提出了一種融合商品流行度與信任度的混合推薦算法(TPRA),重新定義了信任關系,考慮了項目的流行度,結合改進的評分相似度公式進一步提高推薦精度。
(1)通過引入信任關系數據來解決數據稀疏帶來的問題,在缺乏用戶評分數據的情況下,通過挖掘用戶的直接信任好友和間接信任好友,得到目標用戶的信任好友集;
(2)為了克服傳統推薦算法因忽視商品流行度帶來的問題,引入了基于商品流行度和用戶共同評分項占比的評分相似度計算公式,將不同流行度的項目分別設置不同的貢獻權重;
(3)將信任維度與基于流行度的商品維度相結合,從而更準確和全面地為目標用戶推薦目標項目。
圖1 示出了TPRA 算法的整體架構,圖中U代表用戶,i代表項目。該算法主要從信任度與基于商品流行度的評分相似度兩個維度衡量用戶間的綜合相似度,并在此基礎上為目標用戶預測評分和項目推薦,從而實現個性化推薦過程。
信任度是指目標用戶對其他用戶的信任程度。推薦系統中存在著用戶信任網絡,其中目標用戶與其他用戶存在一定的社會關系。圖2 示出了用戶U1的一個社交網絡圖。
在該網絡中,用戶被定義為節點,用戶之間的信任鏈接用有向邊表示。換句話說,U1對U2的信任程度與U2對U1的信任程度是不同的。有向邊箭頭所指端為此信任關系的被信者,有向邊末端的用戶為信托者。在社交關系中存在兩種信任關系,一種為直接信任,另一種為間接信任。例如,在圖2 中,U1直接信任U2,則認為U1與U2間存在直接信任關系;U2又直接信任U4,則認為U1與U4之間存在間接信任關系。

圖1 TPRA 算法框架圖Fig. 1 Framework of TPRA algorithm

圖2 用戶U1 的社交網絡圖Fig. 2 Social network diagram of user U1
1.1.1 直接信任度 在一個社交網絡中,當用戶間存在直接信任行為時,用直接信任度來衡量兩個用戶間的信任值。用直接信任度0 表示用戶間不存在直接信任關系,如圖2 中U1與U4之間不存在直接信任關系,則直接信任度Dt(u1,u4)=0 ;U1與U2之間存在直接信任關系,則Dt(u1,u2)=1 。本文中,用戶社交網絡中的信任數據轉化為用戶間關于信任度的有向鄰接矩陣,從而獲取用戶間的直接信任度取值。
1.1.2 間接信任度 在用戶信任網絡中,任何兩個社交用戶都可以通過六度分割(Six Degrees of Separation)模型進行鏈接。本文用間接信任度表示兩用戶間是否存在間接信任關系。在一個信任網絡中,若存在可達信任鏈路route=(u,n1,n2,n3,n4,···,v),其中n1,n2,n3,n4,···表示此信任鏈路的中間用戶,且鏈路長度大于1 時,稱用戶u與用戶v之間有間接信任關系。根據信任傳播機制,較短的路徑可以使間接信任估計更加準確,用戶的信任關聯性會隨著路徑的增長而減弱。在信任網絡中,可能有多個路徑將信任從同一源頭傳播到目標用戶,因此,間接信任度的計算如下:

1.1.3 直接信任概率 直接信任概率dp(u,v)是指當兩用戶間存在直接信任關系時,用戶u直接信任用戶v的概率。本文在考慮了信任雙向性的基礎上定義用戶間的直接信任概率??紤]到兩用戶的共同直接信任好友集為空、導致直接信任概率為0 的情況,定義用戶本身也是自己的一個好友。因此,直接信任概率表示如下:

其中:Fu為用戶u的直接信任好友集;Fv為用戶v的直接信任好友集;Fu∩Fv為用戶u和用戶v的共同直接信任好友集。在社交網絡中,當用戶間存在直接信任行為時,用直接信任度來衡量兩用戶間的信任值。
1.1.4 間接信任概率 間接信任概率idp(u,v)是指目標用戶u的間接信任好友在信任社交網絡中被其他用戶信任的概率。根據社會學的研究,一個用戶的信任入度(信任該用戶的用戶數目)越高,其被其他非直接信任好友信任的概率也越大。因此,本文將間接信任概率表示為

式中: |Iv| 為用戶v的信任入度;為用戶v所處信任關系網中用戶的平均信任入度;當 |Iv| ≥時,用戶v的全局可被信任概率為1。
1.1.5 綜合信任度 用直接信任概率和間接信任概率分別對目標用戶的直接信任度和間接信任度進行加權得到目標用戶的綜合信任度T(u,v),如式(4)所示。

1.2.1 改進的評分相似度 傳統的協同過濾推薦算法中常采用Jaccard 相似系數(JSC)和皮爾森相關系數(PCC)來衡量兩用戶之間的評分相似性。PCC 主要根據用戶間共同評分項目的集合來計算評分差異,從而獲得用戶的評分相似性,如式(5)所示:

然而,PCC 忽略了用戶共同評分項占比所帶來的影響。例如,用戶A 和用戶B 收聽了40 首相同的歌曲,但對歌曲的評分較少;用戶A 與用戶C 收聽了2 首相同的歌曲,且對這兩首歌曲的評價比較一致[11-12]。通過PCC 計算到的用戶A 與用戶C 之間的相似度比用戶A 與用戶B 之間的相似度要高,但在實際情況中用戶A 與B 有更高的相似性,因此PCC不適合在數據稀疏以及分布不均的情況下使用。
JSC 主要用于計算有限集合中樣本間的相似度,適用于稀疏度過高的數據集合。兩用戶共同評價的項目所占的比例越大,相似性越高。但JSC 不考慮用戶對項目的評分取值,僅關注用戶是否對該項目評過分,從而影響用戶間相似性的準確度。
本文將PCC 與JSC 融合來計算用戶間的評分相似性,融合后的評分相似性公式結合了兩種方法的優點,既考慮了用戶間重疊評分項數量對相似度的影響,又考慮了用戶對各項目評分對相似度的影響。定義用戶間的評分相似性系數如下:

其中:Nu表示用戶u評過分的項目集合;Nv表示用戶v評過分的項目集合。
1.2.2 融入熱門商品懲罰的評分相似度 除了JCS和PCC 因為過于依賴評分信息而帶來的數據稀疏難以處理和評分項占比的問題,大多數算法還忽視了一個問題,即在用戶-物品評分矩陣中,不同物品對相似度的影響不同。在生活中存在一種現象,2 個對冷門事物感興趣的人比2 個對流行事物感興趣的人更有可能成為朋友,他們的相似度也更高。例如,兩個用戶都聽過歌曲《最炫民族風》,不能據此表明他們的興趣是相近的,可能是因為該音樂的市場宣傳到位; 但如果兩個用戶都聽過歌曲《水邊的阿狄麗娜》這首冷門歌曲,則更能說明他們的品味較接近。因此,用戶間若對冷門產品有過共同的觀看(購買)行為,則更能反映其興趣偏好的趨同性。就事物本身而言,事物流行程度越低,對其感興趣的用戶的興趣權重分配值會越高。
商品流行度指的是所有用戶中有多少用戶對該商品實施了評分操作。一個項目被越多的人進行評分操作,代表該項目的流行度越高,因此本文提出了逆流行度的概念。逆流行度代表了項目的冷門程度,逆流行度越大,商品的冷門程度越高。逆流行度( u npopi)的計算公式如下:

其中:max(count)、min(count)分別代表所有物品中被評分的頻率最大值和最小值; c ounti表示項目i被評分的頻率。物品的逆流行度越大,物品的冷門程度越大,其對興趣的潛在影響也越大。
基于項目逆流行度將項目分為熱門項目集H(i)和冷門項目集C(i)兩類集合,在這兩類項目中設置不同的評分相似度貢獻權重優化評分相似度。設置流行度閾值 ψ ,當 u npopii≥ψ 時,認為該項目屬于冷門集C(i),否則認為該項目屬于熱門集H(i)。
本文在 S imuv的基礎上進一步改進用戶間的評分相似度,先將共同評分項目按照流行度劃分為熱門、冷門項目集合,再對不同項目集合在相似度衡量中的貢獻上分別設定不同的價值權重,以此優化用戶間的評分相似性。改進后的用戶間評分相似度為:

其中:δ為熱門項目對用戶評分相似性度量的貢獻權重,后續實驗將確定該參數的最優取值。
從信任度和評分相似度兩個維度來提升推薦性能,因此將用戶的信任度與商品的流行度加權從而得到用戶的綜合相似度,提高預測精度。綜合相似度CS(u,v)表示為

其中:T(u,v)表示用戶u與v的綜合信任度;表示用戶u與v間改進后的評分相似度;α和β分別表示T(u,v)和的權重,且滿足α+β=1。
建立了用戶的信任關系以及得到用戶間的評分相似度之后,就可以篩選出值得信任的用戶與評分相似的用戶,從而實現對項目評分和推薦行為的預測。由綜合相似度計算出與目標用戶相似度最高的Top-K個最近可信鄰居作為目標用戶的最近可信鄰居集,然后根據最近鄰居好友的歷史評分數據運用評分預測公式為目標用戶進行評分預測。預測用戶u對項目i的評分R(u,i)為

其中:R(u,i)表示用戶u對項目i的評分;r(v,i)表示用戶v對項目i的真實評分。
TPRA 算法描述如下:

實驗采用一個真實數據集(Epinions)來預測該模型的性能,然后采用兩個常用的評價指標,將本文方法的推薦結果與其他模型的推薦結果進行比較。
Epinions 數據集包含75 888 個用戶、29 000 個項目和681 213 個評級數據。Epinions 是一個真實的消費點評類網站,用戶可以在此對視頻、產品、音樂和服務通過評分的方式(評分為1~5 的整數)發表意見,也可以通過將其他人添加到自己的信任列表的方式與其他用戶建立信任關系,信任值是0 或1(1 表示信任,0 表示不信任)。實驗采用留一交叉驗證法進行推薦效果評價。該方法通過隱藏一項評分,利用剩余評分數據和信任數據來對這項評分進行預測,而后對隱藏的實際評分和預測評分進行比較和評價。如此循環,對所有評分項進行預測,繼而進行比較和評價。
實驗環境設置如下:操作系統為Windows10,64 位系統旗艦版,CPU 為Intel Corei7-7500U,2.70 GHz,內存為8 GB,開發語言為Python。
為了更好地評估推薦的質量,選擇了兩個度量指標:平均絕對誤差(MAE)、均方根誤差(RMSE)。
MAE 計算了所有預測評分與真實評分誤差值的絕對值和的平均值(式(11)),故它可以衡量推薦算法的預測評分與真實評分之間的平均差異,其數值越小,說明預測的準確度越高。

其中:Ru,i為用戶u對物品i的實際評分;為推薦算法給出的預測評分; |I| 為用戶進行打分物品的個數。
RMSE 計算了所有預測評分值與真實值之間誤差的平方和的均值的平方根(式(12)),其加大了對預測偏差較大的評分項的懲罰,對算法的評測要求更加苛刻,其值越小,說明算法的預測準確度越高。

針對Epinions 數據集,本文結合其數據分布不均和稀疏性問題,在交叉驗證之后,參數設置如表1所示。其中d為信任網絡中尋找間接信任好友的步長,結合計算成本和數據集中信任信息的分布情況,設置d的最大值為3; ψ 為區分項目為熱門集還是冷門集的閾值,結合數據集分布不均和稀疏性的現狀以及商品逆流行度的定義,將 ψ 的取值設置為0.9;δ為計算用戶評分相似度時對熱門項目的貢獻權重??紤]到熱門項目在計算用戶評分相似度時要比冷門項目的貢獻小,所以對熱門項目的貢獻權重從0.5 開始,以步長0.1 的速率遞減。即分別設置 δ 為0.5、0.4、0.3、0.2、···(最小值為0.1)進行實驗,對比不同取值情況下對推薦系統評價指標的影響,直到 δ 取0.4 時,該系統獲得最好的推薦性能,所以設置 δ 的取值為0.4; α 為計算用戶融合信任度與評分相似度的綜合相似度時對信任度的權重。本實驗從0.9 開始,以步長0.1 的速率遞減。即分別取 α 為0.9、0.8、0.7、0.6、···(最小值為0.1)進行實驗,對比不同取值情況下的評價指標,直到 α取0.8 時,該系統獲得最好的推薦性能,所以設置 α 的取值為0.8。

表1 TPRA 模型參數設置Table 1 Parameter setting of TPRA
2.4.1 實驗一(不同推薦算法的評價指標對比) 為了驗證TPRA 算法的推薦效果,在同一數據集(Epinions)下,對UCF(User-based Collaborative Filter)、DLM (Deep Learning Model)[13]、 FTM (Fuzzy-based Trust Model)[14]、ITRA (Implicit Trust Recommendation Approach)[7]、 TLSM-CDR (Trust-aware Latent Space Mapping Approach for Cross-Domain)[15]這4 個算法進行對比。
UCF 為傳統的基于用戶的協同過濾算法,該算法未考慮用戶信任網絡且采用傳統的皮爾森相似性系數計算用戶間的評分相似度。DLM 為基于神經網絡的預測模型,該模型通過嵌入語義信息學習得到用戶和項目的低維向量,此外,該模型利用前饋神經網絡來表示用戶和項目之間的交互。FTM 是一種基于模糊的信任模型,該模型對移動網絡中用戶節點的行為不確定性進行評估并預測每個用戶對推薦的信任值。ITRA 為一種信任擴展策略模型,該模型通過信任擴展策略挖掘信任網絡中與目標用戶具有相似偏好和品味的用戶信任鄰居集,然后通過挖掘到的信任等級計算用戶間的信任相似度,最后通過信任加權生成預測結果。TLSM-CDR 為基于信任感知映射的跨域推薦算法,該算法采用概率矩陣分解(PMF)來生成用戶矩陣和項目矩陣,通過深度神經網絡(DNN)和拉普拉斯矩陣將信任感知非線性映射,挖掘橋連接用戶與非橋連接用戶間的潛在空間關系,從而實現跨域推薦。
實驗結果如圖3 所示。根據定義,MAE 和RMSE衡量了預測評分與真實評分之間的差異,因此MAE和RMSE 的值越小,算法的預測準確度越高。可以看出,與其他4 種算法相對比,TPRA 的MAE 與RMSE 值均小于其他4 個算法的值。
由圖3 可以看出:(1)FTM、ITRA、TLSM-CDR與TPRA 算法都在推薦算法中融入了信任機制,與傳統的UCF 算法相比,MAE 與RMSE 值均有降低,推薦準確度明顯提升,說明融入信任機制可以有效緩解推薦系統中的數據稀疏性問題;(2)TPRA、TLSMCDR 算法與ITRA 算法相比,推薦準確度有明顯的提升,表明在信任機制中考慮信任雙向性的重要性。TLSM-CDR 算法與TPRA 算法均考慮了信任的雙向性,對于信任關系的量化更為準確;(3)TPRA 算法考慮了不同流行度的項目對于用戶評分相似度的貢獻不同,進一步提升了推薦效果的準確度。綜上所述,TPRA 算法能夠有效地提升推薦準確度,緩解了數據稀疏性問題。
2.4.2 實驗二(不同子數據集下TPRA 算法的評價指標對比) 結合Epinions 數據集的數據分布以及TPRA算法中信任搜索的工作機制,將Epinions 數據集按照目標用戶的直接信任好友數量進行劃分,分別為Data1、Data2、Data3、Data4、Data5。這5 個子數據集中包含的目標用戶的直接近鄰個數分別為10、20、30、40、50。在5 個子數據集上分別進行實驗,探究目標用戶不同的直接近鄰個數對MAE 和RMSE 值的影響,實驗結果如圖4 所示。
由圖4 可以看出:當目標用戶的直接近鄰數為10,即實驗數據集為Data1 時,信任機制中可挖掘的信息較少,不能有效地緩解Epinions 數據集中的數據稀疏性問題,此時的推薦準確度較低,MAE 和RMSE 值較高,推薦效果較差; 隨著目標用戶的直接近鄰數逐漸增加,目標用戶所處社交網絡中的信任信息逐漸完善,MAE 和RMAE 值逐漸降低,推薦效果隨著近鄰數量的增加逐漸提高且趨于穩定。

圖3 不同推薦算法的MAE(a)和RMSE(b)對比結果Fig. 3 MAE (a) and RMSE (b) comparison of different recommendation algorithms

圖4 TPRA 算法在不同子數據集下的指標對比Fig. 4 Indexes comparison of TPRA algorithm in different subdata sets
為了解決現有基于信任關系的推薦方法中對信任關系定義不完整以及對商品流行度考慮不全的問題,提出了一種融合商品流行度與信任度的混合推薦算法。該算法重新定義了間接信任的計算方法,考慮了項目的流行度并結合改進的評分相似公式進一步提高推薦精度。實驗結果表明:與對比算法相比,該算法提高了推薦質量,能夠提供更準確的推薦結果。在Epinions 數據集上進行的實驗結果表明,該算法在MAE 和RMSE 指標上相較于對照算法能獲得更好的效果。由于本文對影響信任關系的時效性和地理位置影響因素考慮較少,在接下來的工作中將進一步優化信任關系模型, 考慮更多的因素, 如用戶的地理位置以及動態信任,進一步提高推薦精度。