楊豐瑞,李前洋,羅思煩
(1.重慶郵電大學通信與信息工程學院,重慶 400065;2.重慶郵電大學通信新技術(shù)應用研究中心,重慶 400065;3.重慶重郵信科(集團)股份有限公司,重慶 401121)
現(xiàn)有的推薦算法大多利用顯式的評級信息進行推薦[1,2],實際上大部分平臺上的用戶都只產(chǎn)生隱式的交互信息[3],例如用戶瀏覽和點擊,這使得傳統(tǒng)的基于評分預測的推薦算法不能滿足這類平臺的需要[4]。近年來基于用戶隱式歷史反饋信息的推薦算法受到了學術(shù)界的廣泛關注。隨著電商平臺、新聞媒體和在線社交網(wǎng)絡的迅速發(fā)展,相關學者提出了許多基于隱式反饋的推薦方法。例如,Rendle等[5]提出了一種貝葉斯個性化排序BPR(Bayesian Personalized Ranking from implicit feedback)算法,用于指導基于隱式反饋的top-N推薦排序關系的學習。在文獻[6]中,Du等通過增加一個社會正則化項來擴展貝葉斯個性化排名,算法同時對用戶對商品的偏好及其社會關系進行建模,獲得了更好的推薦質(zhì)量。Pan等[7]在此基礎上進一步提出了GBPR (Group-based BPR)算法,這是一種將用戶對項目的偏好分組進行聚合的方法,以減少建模的不確定性,提高推薦的準確性。Zhao等[8]提出了SBPR(leveraging Social connections to improve Personalized Ranking for collaborative filtering)算法,通過在學習過程中考慮社會關系來改進BPR算法,進一步提高了推薦性能。最近,協(xié)同去噪的自動編碼器CDAE(Collaborative Denoising Auto-Encoders for Top-N recommender systems)被提出[9],利用去噪的自動編碼器(Denoising Autoencoder)技術(shù),研究人員獲得了更好的推薦效果。
盡管現(xiàn)有研究提出了多種利用用戶隱式交互信息進行推薦的算法,但這些算法仍然存在2個關鍵問題。首先,這些工作大多利用二值社交信任數(shù)據(jù),使得算法易受數(shù)據(jù)稀疏的影響。其次,已有研究也未在深層次上融合用戶隱式反饋信息和社交信息?;诖?,本文提出了綜合挖掘社交信任關系的算法,并利用深度學習充分衡量社交數(shù)據(jù)的影響。主要內(nèi)容如下:
(1)提出了一種從社交信任數(shù)據(jù)中充分挖掘用戶之間信任強度的方法,對用戶進行了更精確的信任度量。
(2)利用降噪自編碼器深度融合社交信息,充分衡量潛在信任數(shù)據(jù)的影響力。
(3)在開源數(shù)據(jù)集上證明了本文算法相比于現(xiàn)有隱式反饋推薦算法在推薦性能上有所提升。
本文對信任數(shù)據(jù)進行用戶信任和用戶受信2方面綜合考量,分別計算相應的用戶信任度,得到更精確的用戶信任值,最后利用降噪自編碼器挖掘信任數(shù)據(jù)隱式的關聯(lián)信息,進一步提高top-N推薦質(zhì)量。
設從一個包含m個節(jié)點的社交網(wǎng)絡中提取的信任矩陣為T=[Tik]m×m,其中Tik表示用戶i和用戶k之間的信任度,通常為從實際數(shù)據(jù)集中獲得的二值信息。在利用用戶隱含信任信息方面,相關學者提出了一些高效的方法。其中Ma等[10]利用矩陣分解技術(shù)分解用戶信任矩陣,從整體上計算用戶的社交信任特征,有效地挖掘了用戶之間的隱含信任關系,但也沒有進一步利用用戶社交信任特征計算用戶的信任相似度。Yang等[11]進一步從用戶信任和受信的角度挖掘用戶的信任特征,但同樣沒有利用這些特征計算更精確的用戶信任相似度。為了從整體信任關系上挖掘用戶的隱含信任信息,本文在前人工作的基礎上,充分利用用戶受信和信任特征計算隱含的用戶信任相似度,并以此來表征用戶之間的信任強度。
利用矩陣分解將信任矩陣中的每個用戶i分解為2個不同的潛在特征向量,分別用Bi和Wi表示用戶i的信任特征向量和被信任的d維特征向量。Bi和Wi分別表征了信任他人和被他人信任的行為,可以用Bi與Wk的內(nèi)積表示信任值Tik。特征矩陣B∈Rd×m和W∈Rd×m可以通過最小化以下?lián)p失函數(shù)得到:
(1)
用戶在進行選擇的過程中會相互影響,是否選擇將依賴于用戶的信任者的意見,同時用戶的決定將不可避免地影響信任的人的選擇。綜合而言,最終所觀察到的用戶選擇結(jié)果實際上是在用戶之間的相互影響下產(chǎn)生的。本文使用矩陣分解技術(shù),將信任矩陣區(qū)分為從用戶信任和受信2個角度出發(fā),分別計算用戶之間的信任相似度,綜合信任和受信任2方面的信息,全面提升推薦算法的準確性。
同時做為信任者時,用戶u和用戶v的隱式相似度為:
(2)
同時作為被信任者時,用戶u和用戶v的隱式相似度為:
(3)
用戶主動選擇信任者和被他人信任是不同的用戶信任行為,都能用來揭示用戶之間的信任關系,本文從這2方面著手,充分挖掘隱含的信任交互。另外,通過矩陣分解還能從整體上考慮用戶之間的關聯(lián),最終得出更加精確的信任強度。
(4)
從式(4)可以看出,本文提出的信任關系相似度綜合考慮了信任矩陣橫向和縱向2方面的信息,充分挖掘了信任關系數(shù)據(jù),即使用戶沒有共同的信任者,也能從共同的被信任者處獲得關聯(lián)信息,有效改善了數(shù)據(jù)稀疏的影響。另外,相似度是通過整體得出的,能綜合考慮全局關聯(lián)。
基于社交趨同性的假設,社交網(wǎng)絡中相關的人的交互偏好信息,相互影響對方的決策[12,13]。為此,本文提出一種充分挖掘信任數(shù)據(jù)隱式相似度的推薦算法,從信任和受信2方面考量用戶間的信任關系,得到了更精確的信任值度量和推薦算法。受啟發(fā)于Ma等[10]利用矩陣分解技術(shù)共享用戶社交特征和項目偏好特征來提高推薦質(zhì)量的研究,本節(jié)提出利用降噪自編碼器在更深層次上共享用戶社交特征和項目偏好特征的新方法,并以此來提高隱式反饋推薦質(zhì)量。
本節(jié)介紹的算法流程如圖1所示,利用用戶間同時作為信任者時的隱含相似度SB和同時作為被信任者時的隱含相似度SW,得出用戶更精確的信任關系數(shù)據(jù),最后利用降噪自編碼器進行深度決策。
Figure 1 Process of algorithm圖1 算法流程
本文算法中,用戶項目隱式反饋信息和用戶間的信任信息通過降噪自編碼器在中間層進行深度融合,最后通過重構(gòu)輸入進行最終預測表決。首先使用編碼器層將輸入映射到低維空間,該編碼層由式(5)表示:
(5)
(6)
(7)
其中,l(·)為計算重構(gòu)誤差的損失函數(shù),λT為防止過擬合的參數(shù),α為衰減參數(shù),Ω(·)為正則化項,定義如式(8)所示:
(8)
為了充分考量輔助數(shù)據(jù)的影響,在式(7)中引入了衰減參數(shù)α來控制信任數(shù)據(jù)的影響力。
為了驗證本文算法的有效性,在2個開源數(shù)據(jù)集Epinions和Ciao上進行驗證。2個數(shù)據(jù)集的統(tǒng)計如表1所示。
Table 1 Datasets statistics表1 數(shù)據(jù)集統(tǒng)計
為了保持同主流算法的一致性,本文將數(shù)據(jù)集中評分值大于或等于4的數(shù)據(jù)保留,其它值歸零處理,得到隱式反饋數(shù)據(jù)。基于隱式反饋的推薦算法的衡量基準是top-排序準確度,因此實驗為每個用戶提供了一個項目列表,其中有N個項目在訓練數(shù)據(jù)中沒有被評分,以滿足用戶的潛在需求。實驗采用基于排序的度量平均精度MAP(Mean Average Precision)和標準化折現(xiàn)累積增益NDCG(Normalized Discounted Cumulative Gain)2個指標來衡量推薦性能。
(9)
為了更好地評估推薦項目在所有位置上的精度,給予用戶在測試數(shù)據(jù)中采用的項目更高的權(quán)重。定義AP@N為前N個推薦項目的精度的加權(quán)平均值:
(10)
其中,Precision@k為k個推薦項目的精度,rel(k)=1表示采用了第k個項目。最后,MAP@N為在所有用戶的AP@N的平均值。
對于每個用戶,折現(xiàn)累積增益DCG(Discounted Cumulative Gain)為:
(11)
在進行測試之前,每一個用戶都有一個理想推薦列表,根據(jù)理想推薦列表計算得出的DCG稱為IDCG,使用它對DCG進行歸一化處理,最后取所有用戶的平均值得到NDCG指標:
(12)
其中,U表示參與測試的所有用戶的集合。
本文實驗總共進行了5次交叉驗證。每個數(shù)據(jù)集被分成5份,每次取4份用于訓練,其余的用于測試。實驗進行5次,以保證每份數(shù)據(jù)都能被用于測試。取平均值作為最終的實驗結(jié)果。本文采用隨機梯度下降法優(yōu)化損失函數(shù)。
本文選擇幾種主流的算法來進行評估比較,包括BPR[5]、SBPR[8]和CDAE[9]算法,其中BPR是一種常用的基本算法,它通過學習每個用戶的交互和未交互項目的兩兩關系來進行推薦。SBPR是一種簡單而廣泛使用的推薦排序算法,它考慮了用戶與社交好友選擇的產(chǎn)品之間的直接關聯(lián),有效利用了社交關系對于項目推薦的影響。CDAE利用疊加去噪自編碼技術(shù),建立了一種深度學習推薦模型,該工作進一步將用戶的特殊偏好注入到隱藏層中,以提高性能。不同算法的參數(shù)如表2所示。
Table 2 Parameter setting of different algorithms表2 不同算法參數(shù)設置
表3顯示了本文算法和對比算法在MAP@10和NDCG@10指標上的最佳結(jié)果。這些指標的值越大,表示算法性能越好。
Table 3 Performance comparison of different algorithms表3 不同算法性能比較(k=10)
從表3中可以看出,本文算法的推薦性能相比于其它幾種主流的推薦算法在推薦性能上有較大的改善。在k=10的情況下,本文算法的推薦性能相比于性能最優(yōu)的CDAE算法在MAP@10指標上分別提高了6.7%和7.4%。
為了充分評估本文所提算法對冷啟動用戶的推薦效果,本文對不同評分的用戶進行了驗證。從圖2和圖3中可以看出,本文算法在不同評分的用戶中的表現(xiàn)優(yōu)于其他算法,這表明本文算法在數(shù)據(jù)稀疏和密集的情況下都有更好的推薦性能。另外,還可以看到隨著數(shù)據(jù)密度的增加,算法的性能逐漸變優(yōu),這是由于高密度的數(shù)據(jù)集能使自編碼器獲取更多的非線性信息,有助于改善推薦性能。
Figure 2 Experimental results on Ciao datasets with different sparsities圖2 不同稀疏度的Ciao數(shù)據(jù)集上的實驗結(jié)果
Figure 3 Experimental results on Epinions dataset with different sparsities圖3 不同稀疏度的Epinions數(shù)據(jù)集上的實驗結(jié)果
參數(shù)α的主要作用是平衡用戶信任數(shù)據(jù)的影響,如圖4和圖5所示,其中α=0和α=1分別表示網(wǎng)絡只根據(jù)用戶隱式反饋和信任數(shù)據(jù)進行預測,其效果皆不是最佳。本文算法在Epinions數(shù)據(jù)集和Ciao數(shù)據(jù)集上的最佳α值分別為0.8和0.6。當α取值過小時,信任數(shù)據(jù)作用過小,由于評分數(shù)據(jù)稀疏性,導致誤差大;當α取值過大時,信任數(shù)據(jù)影響過大,產(chǎn)生了多余的干擾,也會導致誤差過大。
Figure 4 Effect of α on recommended performance on Ciao dataset圖4 Ciao數(shù)據(jù)集上α值對推薦性能的影響
Figure 5 Effect of α on recommended performance on Epinions dataset圖5 Epioions數(shù)據(jù)集上α值對推薦性能的影響
本文針對隱式反饋推薦問題,提出了基于降噪自編碼器的隱式反饋推薦算法,從多方面考量用戶之間的信任值大小,提高了算法處理數(shù)據(jù)稀疏問題的能力,并利用降噪自編碼器深度融合社交信任信息,進一步改善了推薦性能。實驗結(jié)果表明,該算法是有效的。隨著數(shù)據(jù)采集技術(shù)的發(fā)展,推薦系統(tǒng)已經(jīng)搜集到豐富的多源信息,設計可擴展性高的協(xié)同過濾模型,將更多額外信息有效融入推薦模型中將是下一步研究重點。同時,未來還將考慮用戶的興趣隨時間發(fā)生變化的情況,圍繞如何感知、建模展開研究。