代星月 葉海良 曹飛龍
社交推薦[1]作為推薦系統(tǒng)中的一個(gè)重要任務(wù),近年來(lái)受到學(xué)術(shù)界[2-3]的廣泛關(guān)注.其核心思想是利用用戶間的社交聯(lián)系[4]提高推薦系統(tǒng)的性能.基于同質(zhì)性假設(shè)[5]和社交影響理論[6],擁有相似興趣的用戶往往表現(xiàn)出相似的行為模式和評(píng)價(jià)行為,同時(shí)用戶的評(píng)價(jià)也受到其社交圈的影響.
早期的社交推薦方法主要依賴矩陣分解(Matrix Factorization, MF)技術(shù)[7].Ma等[8]提出SoRec(Social Recommendation),分解用戶-物品評(píng)分矩陣和用戶-用戶社交關(guān)系矩陣,獲取潛在的用戶表示和物品特征表示.隨后,基于MF的變體方法不斷涌現(xiàn)[9-11],這些方法利用用戶的社交信息約束矩陣分解過(guò)程,得到更精準(zhǔn)的用戶嵌入和物品嵌入.Yang等[9]在MF的基礎(chǔ)上,提出TrustMF和TrustPMF,融入社交鄰居的信任影響,將社交鄰居的偏好作為輔助信息,從而提升推薦的準(zhǔn)確性.Jamali等[10]和Ma等[11]將用戶的社交關(guān)系作為正則項(xiàng),約束MF的目標(biāo),使用戶的偏好更貼近其社交網(wǎng)絡(luò)的偏好.然而,這些基于MF的推薦方法在處理復(fù)雜關(guān)系時(shí)表現(xiàn)相對(duì)較弱,可能影響推薦的準(zhǔn)確性.
深度學(xué)習(xí)憑借強(qiáng)大的非線性特征學(xué)習(xí)能力,在推薦系統(tǒng)中逐漸受到廣泛關(guān)注,通過(guò)學(xué)習(xí)用戶和物品之間的交互關(guān)系以及社交關(guān)系,能準(zhǔn)確捕獲用戶和物品的特征表示,提升社交推薦的性能.Wu等[12]提出DiffNet(Influence Diffusion Neural Network),通過(guò)社交網(wǎng)絡(luò)上的逐層信息傳播過(guò)程,遞歸融合鄰居信息,學(xué)習(xí)用戶高階鄰居信息.Chen等[13]提出EA-TNN(Efficient Adaptive Transfer Neural Network),利用神經(jīng)網(wǎng)絡(luò)模擬社交域和交互域之間的相互作用.Fan等[14]提出DeepSoR(Deep Neural Network Model on Social Relations for Recommendation),利用深度神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)社交關(guān)系中的非線性用戶表示,并將其與概率矩陣分解(Probabilistic MF, PMF)[15]結(jié)合.Zhao等[16]構(gòu)建SMR-MNRL(Multimodal Network Re-presentation Learning for Social-Aware Movie Recommendation),結(jié)合電影的文本信息、電影海報(bào)圖像、評(píng)分和社交關(guān)系等多種模態(tài)數(shù)據(jù)進(jìn)行推薦.
近年來(lái),圖神經(jīng)網(wǎng)絡(luò)(Graph Neural Networks,GNN)因其在處理圖數(shù)據(jù)方面的顯著優(yōu)勢(shì),在社交推薦任務(wù)中也取得巨大成功[17].Fan等提出GraphRec(GNN Framework for Social Recommendations)[18]和GraphRec+[19],利用社交圖、用戶-物品圖和物品-物品圖的信息,全面學(xué)習(xí)用戶和物品的特征表示.Wu等[20]提出DiffNet++,分析社交網(wǎng)絡(luò)中的信息傳播和用戶興趣的影響,預(yù)測(cè)用戶行為.Yang等[21]提出ConsisRec,通過(guò)區(qū)分一致的用戶鄰居解決社交不一致問(wèn)題.Xü等[22]提出SR-HGNN(Social Recommen-dation Framework with Hierarchical GNN),旨在準(zhǔn)確表達(dá)用戶的語(yǔ)義信息.Salamat等[23]提出Hetero-GraphRec,將物品納入圖中生成異構(gòu)圖,并使用注意機(jī)制進(jìn)行推薦預(yù)測(cè).Chen等[24]提出GDSRec(Graph-Based Decentralized Collaborative Filtering for Social Recommendation),將評(píng)分的偏差視為向量,融入學(xué)習(xí)用戶和物品表示的過(guò)程中.上述方法都可有效利用圖數(shù)據(jù),提升評(píng)分預(yù)測(cè)[25-26]的性能.
盡管基于GNN的推薦方法取得一定效果,但對(duì)于社交關(guān)系較少的用戶,推薦效果受到一定限制.現(xiàn)有的方法[27]往往直接使用顯性的社交關(guān)系進(jìn)行建模,這可能會(huì)對(duì)推薦效果產(chǎn)生不利影響.尤其是在用戶社交聯(lián)系較少時(shí),間接社交關(guān)系的利用顯得尤為重要.即使用戶之間無(wú)直接的社交聯(lián)系,也可通過(guò)識(shí)別偏好相近的用戶群體以提高推薦質(zhì)量.為了解決這一問(wèn)題,Li等[28]提出MFC和MFC+,將社區(qū)關(guān)系融入矩陣分解方法中,發(fā)現(xiàn)隱式的社交關(guān)系.然而,在挖掘隱式的社交關(guān)系時(shí),僅考慮社交信息而忽略用戶的行為信息(如評(píng)分?jǐn)?shù)據(jù))可能導(dǎo)致無(wú)法有效提取隱式的社交關(guān)系.因此,在社交推薦中,綜合考慮用戶的社交信息和行為信息,有效挖掘和利用潛在的社交關(guān)系顯得至關(guān)重要,這將有助于充分利用社交關(guān)系,提高推薦的準(zhǔn)確性.
為了解決上述挑戰(zhàn),本文在Xü等[22]工作的基礎(chǔ)上,提出社交影響增強(qiáng)的圖神經(jīng)網(wǎng)絡(luò)推薦方法(GNN Recommendation Based on Enhanced Social In-fluence, GNNES),利用用戶與物品之間的評(píng)分?jǐn)?shù)據(jù),挖掘用戶的隱式社交關(guān)系.利用互信息最大化方法,獲得蘊(yùn)含局部信息和全局信息的用戶表示,提升用戶在社交域的表征能力.此外,考慮到用戶在交互過(guò)程中對(duì)不同物品存在偏好差異,嘗試將可學(xué)習(xí)機(jī)制融入圖注意力網(wǎng)絡(luò),捕捉用戶對(duì)不同物品的偏好,學(xué)習(xí)用戶和物品間不同的交互關(guān)系.為了挖掘?qū)τ脩艉臀锲方换ゼ吧缃魂P(guān)系的上下文信息,構(gòu)建改進(jìn)的貝葉斯個(gè)性化排序(Bayesian Personalized Ranking, BPR)[29]損失函數(shù),為評(píng)分預(yù)測(cè)任務(wù)提供有效的用戶特征表示和物品特征表示.
在社交推薦場(chǎng)景中,本文假設(shè)用戶集
U={u1,…,ui,…,uN},
物品集
V={v1,…,vj,…,vM}.
將用戶和物品的評(píng)分矩陣R=(rij)N×M視為用戶和物品的交互圖GR={U,V,Er},其中,rij表示為用戶ui對(duì)物品vj的評(píng)分,Er表示用戶和物品之間的交互關(guān)系(評(píng)分).用戶社交圖表示為GS,其鄰接矩陣為T.若用戶uj、ui之間存在關(guān)系,tij=1,否則tij=0.基于上述定義,本文研究的目標(biāo)是通過(guò)用戶-物品交互圖GR和社交圖GS,預(yù)測(cè)GR中缺失的評(píng)分值.
本文提出社交影響增強(qiáng)的圖神經(jīng)網(wǎng)絡(luò)推薦方法(GNNES),整體架構(gòu)如圖1所示.首先,在重構(gòu)社交關(guān)系圖上,利用互信息最大化的圖學(xué)習(xí)模塊,融合用戶在社交網(wǎng)絡(luò)中的全局特征與局部特征.然后,設(shè)計(jì)可學(xué)習(xí)機(jī)制的圖注意力網(wǎng)絡(luò)模塊,學(xué)習(xí)用戶和物品的嵌入表示,考慮用戶和物品之間的交互關(guān)系,為不同鄰居學(xué)習(xí)差異性權(quán)重.在獲得用戶和物品的嵌入表示后,通過(guò)評(píng)分預(yù)測(cè)層,預(yù)測(cè)用戶評(píng)分.最后,設(shè)計(jì)一個(gè)改進(jìn)的BPR損失函數(shù),探索用戶-物品交互信息,為評(píng)分預(yù)測(cè)任務(wù)提供有效的特征表示.
圖1 GNNES整體架構(gòu)
其中,I(i)表示與用戶i交互的物品集,I(f)表示與用戶f交互的物品集.為了保持與鄰接矩陣范圍的一致,通過(guò)映射函數(shù)
f(Sif)=0.5(Sif+1)
進(jìn)一步地,定義消息傳播層,獲得每個(gè)用戶節(jié)點(diǎn)的嵌入表示es,ui,其矩陣形式表示為
其中,σ(·)表示PReLU(Parametric Rectified Linear Unit)非線性激活函數(shù)[30],Ws∈RN×d表示可學(xué)習(xí)參數(shù)矩陣,d表示嵌入維度,Ds表示S的度矩陣,
Ds=diag(D11,D22,…,DNN),
對(duì)角線上元素
將用戶的嵌入表示es,ui視為局部表示.為了捕捉在重構(gòu)社交圖上的全局特征表示,進(jìn)一步定義全局社交圖的特征表示:
在獲得用戶的嵌入表示es,ui和全局圖表示rs后,采用雙線性函數(shù)作為判別器D(·),計(jì)算用戶的局部表示屬于全局圖表示的概率分?jǐn)?shù),具體定義為
通過(guò)最小化交叉熵?fù)p失優(yōu)化判別器,能準(zhǔn)確區(qū)分正、負(fù)樣本用戶局部-全局特征對(duì),具體表示為
其中,Npos表示正樣本數(shù)量,Nneg表示負(fù)樣本數(shù)量.通過(guò)最小化損失函數(shù)LMI,在重構(gòu)社交圖中學(xué)習(xí)的用戶嵌入表示es,ui融入全局的社交信息,提高用戶對(duì)興趣偏好的感知.
其中W4∈Rdt×KM表示可學(xué)習(xí)的參數(shù)矩陣.本文通過(guò)在用戶和物品多等級(jí)的交互圖上傳播信息,更新用戶和物品嵌入向量.
在連接的用戶和物品之間進(jìn)行消息的嵌入傳播,包括消息構(gòu)建和消息聚合兩個(gè)主要操作過(guò)程.
在消息構(gòu)建階段,針對(duì)用戶ui,定義消息構(gòu)建函數(shù):
在消息聚合階段,為了關(guān)注和學(xué)習(xí)不同鄰居節(jié)點(diǎn)間的重要性差異,將可學(xué)習(xí)機(jī)制融入圖注意力網(wǎng)絡(luò)中,設(shè)計(jì)一個(gè)多層感知機(jī)網(wǎng)絡(luò),自適應(yīng)學(xué)習(xí)注意分?jǐn)?shù),更精確地提取重要的鄰居特征.具體物品注意分?jǐn)?shù):
類似地,物品節(jié)點(diǎn)的信息聚合過(guò)程表示為
基于定義的消息聚合函數(shù),得到物品節(jié)點(diǎn)的嵌入表示和用戶節(jié)點(diǎn)的嵌入表示.為了學(xué)習(xí)高階的語(yǔ)義信息,堆疊L個(gè)消息傳播層,用戶(或物品)能逐步獲取從鄰居節(jié)點(diǎn)傳播的高階消息.這一過(guò)程表示為
在評(píng)分預(yù)測(cè)層中,將學(xué)習(xí)到的用戶潛在表示Eui和物品潛在表示Evj合并到兩層全連接網(wǎng)絡(luò)中,用于預(yù)測(cè)評(píng)分r′ij,具體形式為
在社交關(guān)系方面,定義社交損失函數(shù),該函數(shù)對(duì)比用戶在社交關(guān)系與非社交關(guān)系中的特征差異,優(yōu)化用戶的特征表示.具體地,從不存在社交關(guān)系的用戶中抽取負(fù)樣本ui-,利用雙線性函數(shù)計(jì)算正負(fù)樣本對(duì)分?jǐn)?shù),具體表示為:
此外,為了將預(yù)測(cè)評(píng)分與真實(shí)評(píng)分之間的差異最小化,在評(píng)分預(yù)測(cè)層采用均方誤差作為損失函數(shù),該損失數(shù)學(xué)表達(dá)式為:
其中,Iij(·)為指示函數(shù),當(dāng)用戶和物品之間有交互時(shí),Iij=1,否則Iij=0.
本文結(jié)合改進(jìn)的BPR損失和評(píng)分預(yù)測(cè)層的損失,構(gòu)建一個(gè)聯(lián)合損失函數(shù):
L=LR+λ1Li+λ2Ls,
用于平衡不同損失的權(quán)重,其中,λ1>0,λ2>0,均為超參數(shù).
本文選擇Ciao[21]、Epinions[22]、Douban這3個(gè)真實(shí)的社交推薦數(shù)據(jù)集,用于評(píng)估方法性能.Ciao數(shù)據(jù)集的數(shù)據(jù)來(lái)自英國(guó)的一個(gè)消費(fèi)者評(píng)論網(wǎng)站.Epinions數(shù)據(jù)集是一個(gè)基于社交的產(chǎn)品評(píng)論平臺(tái)的公開數(shù)據(jù)集.Douban數(shù)據(jù)集收集于中國(guó)豆瓣社交平臺(tái).用戶可為物品進(jìn)行打分(分?jǐn)?shù)范圍為{1,2,…,5}),也可與他人建立社交關(guān)系,將不同的評(píng)分分?jǐn)?shù)視為不同的交互類型.這3個(gè)數(shù)據(jù)集的統(tǒng)計(jì)數(shù)據(jù)如表1所示,在每個(gè)數(shù)據(jù)集上,本文按照文獻(xiàn)[22]中相同的數(shù)據(jù)百分比的設(shè)置,將數(shù)據(jù)分為訓(xùn)練集、驗(yàn)證集、測(cè)試集,分別占總數(shù)據(jù)x%,0.5(1-x%),0.5(1-x%).在實(shí)驗(yàn)中,本文將x設(shè)置為60和80.
表1 數(shù)據(jù)集統(tǒng)計(jì)信息
本文在pytorch框架下進(jìn)行實(shí)驗(yàn),采用Adam(Adaptive Moment Estimation)優(yōu)化器[31],學(xué)習(xí)率設(shè)為0.001.在社交表示學(xué)習(xí)過(guò)程中,從{250,500,1 000,1 500}中搜索社交關(guān)系編碼器的最佳嵌入維度.同時(shí),針對(duì)用戶和物品交互圖,圖關(guān)注網(wǎng)絡(luò)模塊的維度在{8,16,32,64}內(nèi)進(jìn)行調(diào)整.在Ciao數(shù)據(jù)集上設(shè)置超參數(shù)λ1=0.25,λ2=0.15;在Epinions數(shù)據(jù)集上設(shè)置λ1=0.1,λ2=0.15;在Douban數(shù)據(jù)集上設(shè)置λ1=λ2=0.05.
在實(shí)驗(yàn)過(guò)程中,為了提升訓(xùn)練效率,采用提前停止策略,如果驗(yàn)證集上的均方根誤差(Root Mean Square Error, RMSE)連續(xù)5個(gè)迭代周期未下降,停止訓(xùn)練模型.
所有實(shí)驗(yàn)均在配備GeForce GTX 1080Ti顯卡的工作站上進(jìn)行.
本文選擇均方根誤差和平均絕對(duì)誤差(Mean Ab-solute Error, MAE)作為評(píng)估預(yù)測(cè)精度的指標(biāo).RMSE和MAE值越小,表示預(yù)測(cè)精度越高.盡管這些指標(biāo)的相對(duì)改進(jìn)幅度較小,但之前的研究[32]表明,即使是小幅度的RMSE或MAE的改進(jìn)也可能對(duì)推薦系統(tǒng)的整體性能產(chǎn)生顯著影響.
本文選擇如下方法作為對(duì)比方法:SoRec[8]、TrustMF[9]、SocialMF[10]、文獻(xiàn)[11]方法、PMF[15]、GraphRec+[19]、DiffNet++[20]、ConsisRec[21]、SRHG-NN[22]、HeteroGraphRec[23]、GDSRec[24]、Sim-GraphRec(SGR)[33]、SR-AIR(Attentive Implicit Relation Embe-dding for Social Recommendation)[34].
在Ciao、Epinions和Douban數(shù)據(jù)集上,采用RMSE和MAE作為性能評(píng)價(jià)指標(biāo),進(jìn)行對(duì)比實(shí)驗(yàn).在訓(xùn)練集占比分別為80%和60%時(shí),各方法在測(cè)試集上的實(shí)驗(yàn)結(jié)果如表2和表3所示,表中黑體數(shù)字表示最優(yōu)值.
表2 各方法在3個(gè)數(shù)據(jù)集上的RMSE對(duì)比
表3 各方法在3個(gè)數(shù)據(jù)集上的MAE對(duì)比
由表2和表3可見,在2種訓(xùn)練集占比下,GNNES在3個(gè)數(shù)據(jù)集上的RMSE和MAE值都為最優(yōu),由此驗(yàn)證GNNES的有效性.相比傳統(tǒng)社交推薦方法,GNNES充分考慮圖結(jié)構(gòu)信息,采用圖神經(jīng)網(wǎng)絡(luò)編碼用戶和物品的節(jié)點(diǎn)表示,使GNNES在建模過(guò)程中能更全面地利用社交關(guān)系,捕獲更豐富的社交信息.相比SR-HGNN,GNNES在建模過(guò)程中進(jìn)一步探索潛在的社交關(guān)系,從而捕獲更好的社交信息,使GNNES在推薦性能上更具優(yōu)勢(shì).相比其它基線方法,GNNES將社交信息整合到圖神經(jīng)網(wǎng)絡(luò)中.相比消息傳遞方法(如ConsisRec、HeteroGraphRec、GraphRec++、DiffNet++、SGR、SR-AIR),GNNES在用戶的嵌入學(xué)習(xí)中,學(xué)習(xí)用戶之間的隱式社交關(guān)系和全局信息,能較全面地理解用戶間的聯(lián)系和影響.
為了研究GNNES中不同模塊的作用,在Ciao、Epinions、Douban數(shù)據(jù)集上進(jìn)行一系列的消融實(shí)驗(yàn),驗(yàn)證模塊的有效性.
首先,評(píng)估互信息最大化在捕獲局部-全局用戶嵌入表示上的有效性,使用兩種具有代表性的圖神經(jīng)網(wǎng)絡(luò)架構(gòu)替換本文的社交關(guān)系編碼器:圖卷積網(wǎng)絡(luò)(Graph Convolutional Network, GCN)和圖注意力網(wǎng)絡(luò)(Graph Attention Network, GAT),分別簡(jiǎn)記為GNNES-GCN和GNNES-GAT.
各方法的性能對(duì)比如圖2所示.由圖可見,雖然GCN和GAT在融合用戶之間的信息方面均取得較優(yōu)結(jié)果,但GNNES通過(guò)最大化用戶依賴的局部表示和全局表示之間的互信息,進(jìn)一步提升推薦性能.
(a)RMSE (b)MAE
此外,本文分別驗(yàn)證重構(gòu)社交關(guān)系的影響和改進(jìn)的BPR損失(Ls和Li)的有效性.一方面,對(duì)比原始的用戶關(guān)系GNNES-OR和重構(gòu)后的社交關(guān)系GNNES的性能,結(jié)果如圖3所示.由圖可見,重構(gòu)的社交關(guān)系有助于提升推薦性能,隱式的用戶關(guān)系可有效捕捉不同的用戶偏好,從而有利于學(xué)習(xí)嵌入表示.
(a)RMSE (b)MAE
另一方面,為了驗(yàn)證改進(jìn)的BPR損失對(duì)用戶和物品嵌入學(xué)習(xí)過(guò)程的影響,生成兩個(gè)變體方法:1)GNNES-REC,未使用本文設(shè)計(jì)的BPR損失;2)GNNES-BPR,采用傳統(tǒng)的BPR損失.3種方法性能對(duì)比如圖3所示.由圖可觀察到,本文設(shè)計(jì)的改進(jìn)BPR損失具有較明顯的優(yōu)勢(shì).相比GNNES-BPR,GNNES在推薦性能方面具有明顯提升.這一結(jié)果證實(shí)本文改進(jìn)BPR損失的有效性.
首先,討論社交關(guān)系用戶的嵌入維度d.在學(xué)習(xí)用戶的局部-全局嵌入表示中,經(jīng)驗(yàn)性地考慮嵌入維度d=250,500,1 000,1 500,則d對(duì)GNNES性能的影響如圖4所示.由圖可見,較大維度的數(shù)值并不一定具有更優(yōu)性能,因?yàn)榭赡艽嬖谶^(guò)擬合問(wèn)題.因此,在Ciao、Epinions和Douban數(shù)據(jù)集上,維度大小分別設(shè)置為500、250和1 000.
(a)RMSE (b)MAE
再討論交互圖中嵌入維度dt.在用戶-物品交互圖的圖注意力網(wǎng)絡(luò)中討論不同嵌入維度的影響.考慮嵌入維度dt=8,16,32,64,則dt對(duì)GNNES性能的影響如圖5所示.由圖可見,在Ciao、Epinions數(shù)據(jù)集上,當(dāng)dt=16時(shí),預(yù)測(cè)精度均最高,而在Douban數(shù)據(jù)集上,dt=32時(shí)預(yù)測(cè)精度最佳.因此,在最終的實(shí)驗(yàn)設(shè)置中,在Ciao、Epinions數(shù)據(jù)集上,經(jīng)驗(yàn)性設(shè)置dt=16,在Douban數(shù)據(jù)集上,經(jīng)驗(yàn)性設(shè)置dt=32.
(a)RMSE (b)MAE
然后,討論圖注意力網(wǎng)絡(luò)的層數(shù).增加基于注意力機(jī)制的圖神經(jīng)網(wǎng)絡(luò)的傳播層數(shù)可提高推薦效果.在層數(shù)的選取中,設(shè)計(jì)2層、3層、4層,則層數(shù)對(duì)GNNES性能的影響如圖6所示.
(a)RMSE (b)MAE
由圖6可觀察到,具有3個(gè)嵌入傳播層的方法獲得最優(yōu)性能.然而,隨著層數(shù)的增加,性能略有下降,可能因?yàn)樯疃葓D神經(jīng)網(wǎng)絡(luò)會(huì)出現(xiàn)過(guò)擬合現(xiàn)象.
最后,討論改進(jìn)BPR損失中的參數(shù)τ.τ不同時(shí)對(duì)GNNES性能的影響如表4所示,表中黑體數(shù)字表示最優(yōu)值.由表可見,在3個(gè)數(shù)據(jù)集上,τ=0.15時(shí),性能最佳.
表4 τ 對(duì)GNNES性能的影響
本文提出社交影響增強(qiáng)的圖神經(jīng)網(wǎng)絡(luò)推薦方法(GNNES),挖掘用戶間隱式的社交關(guān)系,進(jìn)一步提升推薦性能.具體而言,利用用戶和物品之間的評(píng)分信息重構(gòu)用戶社交圖,采用互信息最大化方法有效提取用戶的社交特征.GNNES中包含全局社交圖信息和用戶局部信息,可全面反映用戶的社交屬性.同時(shí),設(shè)計(jì)基于可學(xué)習(xí)機(jī)制的圖注意力網(wǎng)絡(luò)模塊,自適應(yīng)調(diào)整不同鄰居的權(quán)重,準(zhǔn)確捕獲重要鄰居的信息.最后,通過(guò)聯(lián)合損失為評(píng)分預(yù)測(cè)任務(wù)提供準(zhǔn)確的用戶特征表示和物品特征表示.在評(píng)分預(yù)測(cè)任務(wù)中,將物品的歷史信息融入推薦系統(tǒng)框架中,有助于推薦系統(tǒng)學(xué)習(xí)到更豐富的物品語(yǔ)義信息.因此,如何有效地將用戶信息和物品信息整合到推薦系統(tǒng)中,是今后一個(gè)值得研究的課題.