摘要:隨著在線社交平臺(tái)的發(fā)展,社交推薦已成為推薦系統(tǒng)中的一個(gè)重要任務(wù)。然而,用戶間的社交關(guān)系通常具有稀疏性,這在一定程度上限制了推薦系統(tǒng)的性能。為此,文中提出社交影響增強(qiáng)的圖神經(jīng)網(wǎng)絡(luò)推薦方法,旨在利用用戶之間的隱式社交關(guān)系增強(qiáng)社交推薦的效果。首先,分析用戶與物品之間的交互數(shù)據(jù),揭示隱含的社交關(guān)系,重構(gòu)用戶間的社交圖。在此基礎(chǔ)上,利用互信息最大化方法,有效融合社交圖的全局特征與用戶的局部特征。同時(shí),將可學(xué)習(xí)機(jī)制融入圖注意力網(wǎng)絡(luò)中,充分捕獲用戶和物品間的交互信息。最后,提出一種改進(jìn)的貝葉斯個(gè)性化排序損失,為評(píng)分預(yù)測(cè)任務(wù)提供準(zhǔn)確的用戶特征表示和物品特征表示。在 3 個(gè)公開(kāi)數(shù)據(jù)集上的實(shí)驗(yàn)表明,文中方法性能較優(yōu)。
">時(shí)間:
引言
社交推薦作為推薦系統(tǒng)中的一個(gè)重要任務(wù),近年來(lái)受到學(xué)術(shù)界的廣泛關(guān)注。其核心思想是利用用戶間的社交聯(lián)系提高推薦系統(tǒng)的性能。基于同質(zhì)性假設(shè)和社交影響理論,擁有相似興趣的用戶往往表現(xiàn)出相似的行為模式和評(píng)價(jià)行為,同時(shí)用戶的評(píng)價(jià)也受到其社交圈的影響。
早期的社交推薦方法主要依賴矩陣分解(Matrix Factorization, MF)技術(shù)。Ma 等提出 SoRec(Social Recommendation),分解用戶 - 物品評(píng)分矩陣和用戶 - 用戶社交關(guān)系矩陣,獲取潛在的用戶表示和物品特征表示。隨后,基于 MF 的變體方法不斷涌現(xiàn),這些方法利用用戶的社交信息約束矩陣分解過(guò)程,得到更精準(zhǔn)的用戶嵌入和物品嵌入。Yang 等在 MF 的基礎(chǔ)上,提出 TrustMF 和 TrustPMF,融入社交鄰居的信任影響,將社交鄰居的偏好作為輔助信息,從而提升推薦的準(zhǔn)確性。Jamali 等和 Ma 等將用戶的社交關(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 等提出 DiffNet(Influence Diffusion Neural Network),通過(guò)社交網(wǎng)絡(luò)上的逐層信息傳播過(guò)程,遞歸融合鄰居信息,學(xué)習(xí)用戶高階鄰居信息。Chen 等提出 EATNN(Efficient Adaptive Transfer Neural Network),利用神經(jīng)網(wǎng)絡(luò)模擬社交域和交互域之間的相互作用。Fan 等提出 DeepSoR(Deep Neural Network Model on Social Relations for Recommendation),利用深度神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)社交關(guān)系中的非線性用戶表示,并將其與概率矩陣分解(Probabilistic MF, PMF)結(jié)合。Zhao 等構(gòu)建 SMR-MNRL(Multimodal Network Representation 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ù)中也取得巨大成功。Fan 等提出 GraphRec(GNN Framework for Social Recommendations)和 GraphRec+,利用社交圖、用戶 - 物品圖和物品 - 物品圖的信息,全面學(xué)習(xí)用戶和物品的特征表示。Wu 等提出 DiffNet++,分析社交網(wǎng)絡(luò)中的信息傳播和用戶興趣的影響,預(yù)測(cè)用戶行為。Yang 等提出 ConsisRec,通過(guò)區(qū)分一致的用戶鄰居解決社交不一致問(wèn)題。Xü 等提出 SR-HGNN(Social Recommendation Framework with Hierarchical GNN),旨在準(zhǔn)確表達(dá)用戶的語(yǔ)義信息。Salamat 等提出 HeteroGraphRec,將物品納入圖中生成異構(gòu)圖,并使用注意機(jī)制進(jìn)行推薦預(yù)測(cè)。Chen 等提出 GDSRec(Graph-Based Decentralized Collaborative Filtering for Social Recommendation),將評(píng)分的偏差視為向量,融入學(xué)習(xí)用戶和物品表示的過(guò)程中。上述方法都可有效利用圖數(shù)據(jù),提升評(píng)分預(yù)測(cè)的性能。
盡管基于 GNN 的推薦方法取得一定效果,但對(duì)于社交關(guān)系較少的用戶,推薦效果受到一定限制。現(xiàn)有的方法往往直接使用顯性的社交關(guān)系進(jìn)行建模,這可能會(huì)對(duì)推薦效果產(chǎn)生不利影響。尤其是在用戶社交聯(lián)系較少時(shí),間接社交關(guān)系的利用顯得尤為重要。即使用戶之間無(wú)直接的社交聯(lián)系,也可通過(guò)識(shí)別偏好相近的用戶群體以提高推薦質(zhì)量。為了解決這一問(wèn)題,Li 等提出 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ü 等工作的基礎(chǔ)上,提出社交影響增強(qiáng)的圖神經(jīng)網(wǎng)絡(luò)推薦方法(GNN Recommendation Based on Enhanced Social Influence, 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)損失函數(shù),為評(píng)分預(yù)測(cè)任務(wù)提供有效的用戶特征表示和物品特征表示。
1 社交影響增強(qiáng)的圖神經(jīng)網(wǎng)絡(luò)推薦方法
在社交推薦場(chǎng)景中,本文假設(shè)用戶集 U={u₁, …, uᵢ, …, u_N},物品集 V={v₁, …, vⱼ, …, v_M}。將用戶和物品的評(píng)分矩陣 R=(rᵢⱼ)(N×M) 視為用戶和物品的交互圖 Gᴿ={U, V, Eᵣ},其中,rᵢⱼ表示為用戶 uᵢ對(duì)物品 vⱼ的評(píng)分,Eᵣ表示用戶和物品之間的交互關(guān)系評(píng)分。用戶社交圖表示為 Gˢ,其鄰接矩陣為 T。若用戶 uⱼ、uᵢ之間存在關(guān)系 tᵢⱼ=1,否則 tᵢⱼ=0。基于上述定義,本文研究的目標(biāo)是通過(guò)用戶 - 物品交互圖 Gᴿ和社交圖 Gˢ,預(yù)測(cè) Gᴿ中缺失的評(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.1 社交圖的重構(gòu)分析用戶對(duì)物品的評(píng)分?jǐn)?shù)據(jù),可深入了解用戶之間的隱式關(guān)系。當(dāng)兩位用戶對(duì)同一物品表現(xiàn)出相似的喜好時(shí),表明用戶之間存在潛在的社交關(guān)聯(lián)。為了更準(zhǔn)確地反映這種關(guān)系本文重構(gòu)社交圖 G°。在圖 G中節(jié)點(diǎn)表示用戶邊表示用戶間存在社交關(guān)系,邊上的權(quán)重反映用戶之間的相似性。本文在計(jì)算用戶間的相似度時(shí)不僅考慮被用戶 i、f 共同評(píng)價(jià)的物品 i,還利用用戶 i 對(duì)所有物品的平均評(píng)分 r̄ᵢ,相似度計(jì)算公式如下:Sᵢբ=Σ(j∈I (i)∩I (f))(rᵢⱼ-r̄ᵢ)(rբⱼ-r̄բ)/√[Σ(j∈I (i)∩I (f))(rᵢⱼ-r̄ᵢ)²Σ(j∈I (i)∩I (f))(rⱼⱼ-r̄բ)²]其中,I (i) 表示與用戶 i 交互的物品集,I (f) 表示與用戶 f 交互的物品集。為了保持與鄰接矩陣范圍的一致,通過(guò)映射函數(shù)f (Sᵢբ)=0.5 (Sᵢբ+1)將用戶相似度 Sᵢբ的范圍從 - 映射到。通過(guò)上述方法得到相似度矩陣 S=(Sᵢբ)(N×N),可作為社交圖 G的鄰接矩陣反映用戶間的親疏關(guān)系。
1.2 基于互信息最大化的圖學(xué)習(xí)
在重構(gòu)的社交圖中學(xué)習(xí)用戶節(jié)點(diǎn)的特征表示時(shí),不僅學(xué)習(xí)用戶與其朋友的信息,還需關(guān)注全局社交關(guān)系的影響。為此,本文利用互信息最大化方法,保持用戶局部特征與全局社交圖特征的一致性。在實(shí)現(xiàn)過(guò)程中采用編碼 e_(s,αᵢ)⁰∈{0,1}^N 表示用戶 uᵢ初始的向量表示矩陣形式表示為
Eₛ⁰=(e_(s,uᵢ)⁰)(N×N)
進(jìn)一步地,定義消息傳播層,獲得每個(gè)用戶節(jié)點(diǎn)的嵌入表示 e(s,μᵢ),其矩陣形式表示為
Eₛ=σ(Dₛ^(-1/2) SDₛ^(-1/2) Eₛ⁰Wₛ)
其中,σ(・) 表示 PRelLU(Parametric Rectified Linear Unit)非線性激活函數(shù),Wₛ∈R^(N×d) 表示可學(xué)習(xí)參數(shù)矩陣,d 表示嵌入維度,D 表示 s 的度矩陣,
Dₛ=diag (D₁₁,D₂₂,…,D_NN)
對(duì)角線上元素
Dᵢᵢ=Σ(j=1)^N Sᵢⱼ。
將用戶的嵌入表示 e_(s,μᵢ) 視為局部表示。為了捕捉在重構(gòu)社交圖上的全局特征表示,進(jìn)一步定義全局社交圖的特征表示:
rₛ=sigmoid (Σ(i=1)^N e_(s,uᵢ) Dᵢᵢ / Σ(i=1)^N Σ(i=1)^N Sᵢⱼ)
采用雙線性函數(shù)作為判別器 Δ(・),計(jì)算用戶的局部表示屬于全局圖表示的概率分?jǐn)?shù),具體定義為
D (e_(s,uᵢ),rₛ)=e_(s,uᵢ)^T W₁ rₛ
其中 W₁∈R^(d×d) 表示可學(xué)習(xí)的變換矩陣。正樣本是用戶更新后的嵌入表示 e_(s,wᵢ),而負(fù)樣本 e_(i,μᵢ)^n 是通過(guò)對(duì)初始用戶向量表示 e_(s,μⱼ)⁰進(jìn)行隨機(jī)打亂而生成的。
通過(guò)最小化交叉熵?fù)p失優(yōu)化判別器,能準(zhǔn)確區(qū)分正、負(fù)樣本用戶局部 - 全局特征對(duì),具體表示為
L_MI=-1/(N_pos+N_neg)[Σ(i=1)^N_pos ln⊘(e_(s,uᵢ),rₛ)+Σ(i=1)^N_neg ln [1-𝒟(e_(s,uᵢ)^n,rₛ)]]
其中,N_pos 表示正樣本數(shù)量,N_neg 表示負(fù)樣本數(shù)量。通過(guò)最小化損失函數(shù) L_MI,在重構(gòu)社交圖中學(xué)習(xí)的用戶嵌入表示 e_(s,uᵢ) 融入全局的社交信息提高用戶對(duì)興趣偏好的感知。
1.3 基于圖注意力網(wǎng)絡(luò)的嵌入學(xué)習(xí)
為了充分利用用戶與物品間的交互信息(評(píng)價(jià)分?jǐn)?shù)),本文將可學(xué)習(xí)機(jī)制融入圖注意力網(wǎng)絡(luò)中,根據(jù)用戶和物品之間的關(guān)聯(lián)程度,調(diào)整鄰居節(jié)點(diǎn)特征的重要性捕獲用戶和物品的特征信息。用戶 uᵢ對(duì)物品 vⱼ的評(píng)價(jià)是在 1,2,…,K 評(píng)分范圍內(nèi)進(jìn)行的。以本文使用的數(shù)據(jù)集為例,評(píng)分范圍為 1,2,…,5,涵蓋 5 個(gè)等級(jí),這些等級(jí)反映用戶對(duì)物品的不同評(píng)價(jià)。基于這些評(píng)分等級(jí)將交互圖 Gᴿ中物品節(jié)點(diǎn) vⱼ細(xì)化分解,形成 K 個(gè)物品節(jié)點(diǎn) vⱼ¹,vⱼ²,…,vⱼ^K,使用戶和物品之間的多等級(jí)關(guān)系得以在圖 G_Mᴿ={U,V',Eᵣ} 上呈現(xiàn)。在圖 G_Mᴿ中用戶集合 U 中的節(jié)點(diǎn)數(shù)為 N,而物品集 V * 中的節(jié)點(diǎn)數(shù)為 KM,整個(gè)圖的總節(jié)點(diǎn)數(shù)為 N+KM。
在多等級(jí)交互圖 G_Mᴿ中將用戶 uᵢ的編碼 e_(ωᵢ)∈{0,1}^N 及物品 vⱼ^k 的編碼 e_(eⱼ^k)∈R^(K×M) 作為圖卷積網(wǎng)絡(luò)的輸入。為了增強(qiáng)用戶的表示,將從社交圖中學(xué)習(xí)到的用戶嵌入表示 e_(s,uᵢ) 與交互圖用戶的編碼 e_uᵢ融合得到初始的用戶嵌入向量表示:
e_uⱼ⁰=W₂・e_uᵢ ∥ W₃・e_(s,uᵢ)
其中,W₂∈R^(d_t/2×N),W₃∈R^(d_t/2×d) 表示可學(xué)習(xí)的參數(shù)矩陣,dᵣ表示嵌入維度,表示拼接操作。相應(yīng)地將物品 e_sⱼ編碼映射為初始的物品嵌入向量表示
e_vⱼ⁰=W₄・e_vⱼ
其中 W₄∈R^(dᵢ×KM) 表示可學(xué)習(xí)的參數(shù)矩陣。本文通過(guò)在用戶和物品多等級(jí)的交互圖上傳播信息,更新用戶和物品嵌入向量。
在連接的用戶和物品之間進(jìn)行消息的嵌入傳播,包括消息構(gòu)建和消息聚合兩個(gè)主要操作過(guò)程。
在消息構(gòu)建階段針對(duì)用戶 uᵢ定義消息構(gòu)建函數(shù):
m_nᵢ=Σ((j,k)∈Nᵢ) e_(iⱼ^k)⁰
類似地物品 vⱼ^k 的消息構(gòu)建函數(shù):
m_iⱼ=Σ(i∈N_j,k) e_uᵢ⁰
其中,Nᵢ表示與用戶 uᵢ連接的物品集合,N_j,k 表示與物品 vⱼ^k 連接的用戶集合。這兩個(gè)函數(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ù):
a_vⱼ^k=softmax (W_v⁽³⁾・ReLU (W_v⁽²⁾・ReLU (W_v⁽¹⁾・e_vⱼ^k⁰ + b_v⁽¹⁾) + bₛ⁽²⁾) + bₛ⁽³⁾)
其中:Wᵣ⁽¹⁾∈R^(dᵢ×dᵢ),W_v⁽²⁾∈R^(dᵢ×dᵢ),Wₛ⁽³⁾∈R^(1×d_t) 表示參數(shù)矩陣;b_v⁽¹⁾,b_v⁽²⁾,b_v⁽³⁾表示偏置。進(jìn)一步定義用戶 uᵢ的消息聚合函數(shù)經(jīng)過(guò)第個(gè)傳播層后獲得的用戶 u₂嵌入表示:
e_uᵢ⁽¹⁾=σ(m_(uᵢ-uᵢ) + Σ((j,k)∈Nᵢ) a_vⱼ m_uᵢ)
其中 σ(・) 為激活函數(shù)。考慮用戶 uᵢ的自連接 m_(wᵢ+wᵢ)=e_wᵢ⁰保留用戶節(jié)點(diǎn)原始的特征信息。
類似地,物品節(jié)點(diǎn)的信息聚合過(guò)程表示為
e_iⱼ⁽¹⁾=σ(m_vⱼ^b←vⱼ^b + Σ(i∈N_j,k) a_uᵢ m_iⱼ)
其中 m_vⱼ^b←vⱼ^b=e_vⱼ^k⁰^k 表示物品的自連接。用戶注意分?jǐn)?shù) a_uᵢ也是通過(guò)多層感知機(jī)網(wǎng)絡(luò)計(jì)算得到的即
a_uᵢ=softmax (W_u⁽³⁾・ReLU (W_u⁽²⁾・ReLU (W_u⁽¹⁾・e_uᵢ⁰ + b_u⁽¹⁾) + b_u⁽²⁾) + b_u⁽³⁾)
其中:W_α⁽¹⁾∈R^(dᵢ×dᵢ),W_u⁽²⁾∈R^(d₁×d₁),W_u⁽³⁾∈R^(1×d_t) 表示參數(shù)矩陣;b_u⁽¹⁾、b_u⁽²⁾、b⁽³⁾表示偏置。這樣的設(shè)計(jì)使模型既捕捉到鄰居重要信息的傳遞,又能保留節(jié)點(diǎn)自身的特征。
基于定義的消息聚合函數(shù),得到物品節(jié)點(diǎn)的嵌入表示和用戶節(jié)點(diǎn)的嵌入表示。為了學(xué)習(xí)高階的語(yǔ)義信息,堆疊 L 個(gè)消息傳播層,用戶或物品能逐步獲取從鄰居節(jié)點(diǎn)傳播的高階消息。這一過(guò)程表示為:
e_uᵢ⁽ˡ⁺¹⁾=σ(m_uᵢ←uᵢ⁽ˡ⁾ + Σ((j,h)∈Nᵢ) a_vⱼ⁽ˡ⁾ m_uᵢ⁽ˡ⁾)
e_iⱼ⁽ˡ⁺¹⁾=σ(m_vⱼ^k - vⱼ^k⁽ˡ⁾ + Σ(i∈N_j,k) a_uᵢ⁽ˡ⁾ m_iⱼ⁽ˡ⁾)
其中 l=0,1,…,L-1。通過(guò)多層的消息傳播模型能捕捉到更豐富的節(jié)點(diǎn)間關(guān)系,提升推薦的準(zhǔn)確性。融合 L 個(gè)消息傳播層的輸出生成用戶 II 和物品 vⱼ^k 嵌入表示:
E_uᵢ=(e_uᵢ⁽¹⁾∥e_uᵢ⁽²⁾∥…∥e_uᵢ⁽ᴸ⁾)
E_vⱼ^k=(e_vⱼ^⁽¹⁾⁽¹⁾∥e_vⱼ^k⁽²⁾∥…∥e_vⱼ^k⁽ᴸ⁾)
最后將不同評(píng)分等級(jí)的物品特征表示 E_vⱼ¹,E_sⱼ²,…,E_sⱼ^K 采用平均操作,得到最終的物品特征表示 E_vⱼ。
1.4 評(píng)分預(yù)測(cè)層
在評(píng)分預(yù)測(cè)層中,將學(xué)習(xí)到的用戶潛在表示 E_uᵢ和物品潛在表示 E_vⱼ合并到兩層全連接網(wǎng)絡(luò)中,用于預(yù)測(cè)評(píng)分 rᵢⱼ',具體形式為:
E_uᵢ,vⱼ=E_uᵢ∥E_sⱼ
rᵢⱼ'=ReLU (W_p²ReLU (W_p¹E_uᵢ,yⱼ + b_p¹) + b_p²)
其中:W_p¹∈R^(dᵢ×2dᵢ),W_p²∈R^(1×d_t) 表示可學(xué)習(xí)的參數(shù)矩陣;b_p¹、b_p² 表示偏置項(xiàng)。
1.5 聯(lián)合損失函數(shù)
在圖卷積網(wǎng)絡(luò)中,為了更準(zhǔn)確捕獲用戶偏好和物品屬性,提出一種改進(jìn)的 BPR 損失函數(shù),旨在優(yōu)化用戶特征表示 E_uⱼ和物品特征表示 E_eⱼ。
在用戶和物品的交互中抽取用戶 uᵢ非交互物品作為負(fù)樣本 vⱼ^k⁻,利用雙線性函數(shù)計(jì)算正樣本特征表示 E_sⱼ^(*)+ 和負(fù)樣本特征表示 E_eⱼ^k⁻之間的差異,交互損失函數(shù)為:
sᵢ,ⱼ^k=1/τ(E_uᵢW₁ˢE_sⱼ^T - max (E_uᵢW₁ˢE_vⱼ^T))
Lᵢ=-1/φ(Aᵢ)Σ((i,j,k⁺)∈Oᵢ) ln (exp (sᵢ,ⱼ^k⁺)-exp (sᵢ,ⱼ^k⁻))
其中,sᵢ,ⱼ^k⁺表示用戶對(duì)正樣本物品的偏好分?jǐn)?shù),sᵢ,ⱼ^k⁻表示用戶對(duì)負(fù)樣本物品的偏好分?jǐn)?shù),φ(Aᵢ) 表示用戶和物品交互的鄰接矩陣中非零元素的數(shù)量,W₁ˢ∈R^(dᵢ×dⱼ) 表示可學(xué)習(xí)的權(quán)重矩陣,τ 表示縮放的超參數(shù),max (・) 表示向量中最大的元素,避免極端值對(duì)分?jǐn)?shù)的影響。
在社交關(guān)系方面,定義社交損失函數(shù),該函數(shù)對(duì)比用戶在社交關(guān)系與非社交關(guān)系中的特征差異,優(yōu)化用戶的特征表示。具體地,從不存在社交關(guān)系的用戶中抽取負(fù)樣本 uᵢ₋,利用雙線性函數(shù)計(jì)算正負(fù)樣本對(duì)分?jǐn)?shù),具體表示為:
sᵢ,i'=1/τ(E_uᵢW₂ˢE_uᵢ'^T - max (E_uᵢW₂ˢE_uᵢ'^T))
Lₛ=-1/φ(S)Σ((i,i⁺)∈Oₛ) ln (exp (sᵢ,i⁺)-exp (sᵢ,i⁻))
其中,sᵢ,i⁺表示用戶的正樣本對(duì)計(jì)算分?jǐn)?shù),sᵢ,i⁻表示用戶的負(fù)樣本對(duì)計(jì)算分?jǐn)?shù),φ(S) 表示社交圖的鄰接矩陣中非零元素的數(shù)量,W₂ˢ∈R^(dᵢ×dᵢ) 表示可學(xué)習(xí)的權(quán)重矩陣。
此外,為了將預(yù)測(cè)評(píng)分與真實(shí)評(píng)分之間的差異最小化,在評(píng)分預(yù)測(cè)層采用均方誤差作為損失函數(shù),該損失數(shù)學(xué)表達(dá)式為:
L_R=1/2Σ(i=1)^NΣ(j=1)^M Iᵢⱼ(rᵢⱼ - rᵢⱼ')²
其中,Iᵢⱼ(・) 為指示函數(shù),當(dāng)用戶和物品之間有交互時(shí),Iᵢⱼ=1,否則 Iᵢⱼ=0。
本文結(jié)合改進(jìn)的 BPR 損失和評(píng)分預(yù)測(cè)層的損失,構(gòu)建一個(gè)聯(lián)合損失函數(shù):
L=L_R+λ₁Lᵢ+λ₂Lₛ
用于平衡不同損失的權(quán)重,其中 λ₁>0,λ₂>0,均為超參數(shù)。
2 實(shí)驗(yàn)及結(jié)果分析
2.1 實(shí)驗(yàn)數(shù)據(jù)集
本文選擇 Ciao、Epinions、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)的公開(kāi)數(shù)據(jù)集。Douban 數(shù)據(jù)集收集于中國(guó)豆瓣社交平臺(tái)。用戶可為物品進(jìn)行打分(分?jǐn)?shù)范圍為 {1,2,…,5}),也可與他人建立社交關(guān)系,將不同的評(píng)分分?jǐn)?shù)視為不同的交互類型。在每個(gè)數(shù)據(jù)集上,本文按照文獻(xiàn)中相同的數(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。
2.2 實(shí)驗(yàn)設(shè)置及對(duì)比方法
本文在 pytorch 框架下進(jìn)行實(shí)驗(yàn),采用 Adam(Adaptive Moment Estimation)優(yōu)化器,學(xué)習(xí)率設(shè)為 0.001。在社交表示學(xué)習(xí)過(guò)程中,從 {250,500,1000,1500} 中搜索社交關(guān)系編碼器的最佳嵌入維度。同時(shí),針對(duì)用戶和物品交互圖,圖關(guān)注網(wǎng)絡(luò)模塊的維度在 {8,16,32,64} 內(nèi)進(jìn)行調(diào)整。在 Ciao 數(shù)據(jù)集上設(shè)置超參數(shù) λ₁=0.25,λ₂=0.15;在 Epinions 數(shù)據(jù)集上設(shè)置 λ₁=0.1,λ₂=0.15;在 Douban 數(shù)據(jù)集上設(shè)置 λ₁=λ₂=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 Absolute Error, MAE)作為評(píng)估預(yù)測(cè)精度的指標(biāo)。RMSE 和 MAE 值越小,表示預(yù)測(cè)精度越高。盡管這些指標(biāo)的相對(duì)改進(jìn)幅度較小,但之前的研究表明,即使是小幅度的 RMSE 或 MAE 的改進(jìn)也可能對(duì)推薦系統(tǒng)的整體性能產(chǎn)生顯著影響。
2.3 對(duì)比實(shí)驗(yàn)結(jié)果
本文選擇如下方法作為對(duì)比方法:SoRec、TrustMF、SocialMF、文獻(xiàn) [11] 方法、PMF、GraphRec+、DiffNet++、ConsisRec、SRHGNN、HeteroGraphRec、GDSRec、Sim⁃GraphRec(SGR)、SR⁃AIR(Attentive Implicit Relation Embedding for Social Recommendation)。
在 Ciao、Epinions 和 Douban 數(shù)據(jù)集上,采用 RMSE 和 MAE 作為性能評(píng)價(jià)指標(biāo),進(jìn)行對(duì)比實(shí)驗(yàn)。在訓(xùn)練集占比分別為 80% 和 60% 時(shí)。在 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)系和影響。
2.4 消融實(shí)驗(yàn)結(jié)果
為了研究 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。
雖然 GCN 和 GAT 在融合用戶之間的信息方面均取得較優(yōu)結(jié)果,但 GNNES 通過(guò)最大化用戶依賴的局部表示和全局表示之間的互信息,進(jìn)一步提升推薦性能。
此外,本文分別驗(yàn)證重構(gòu)社交關(guān)系的影響和改進(jìn)的 BPR 損失(L 和 Lᵢ)的有效性,一方面對(duì)比原始的用戶關(guān)系 GNNES⁃OR 和重構(gòu)后的社交關(guān)系 GNNES 的性能。重構(gòu)的社交關(guān)系有助于提升推薦性能,隱式的用戶關(guān)系可有效捕捉不同的用戶偏好,從而有利于學(xué)習(xí)嵌入表示。
另一方面,為了驗(yàn)證改進(jìn)的 BPR 損失對(duì)用戶和物品嵌入學(xué)習(xí)過(guò)程的影響,生成兩個(gè)變體方法:1) GNNES⁃REC,未使用本文設(shè)計(jì)的 BPR 損失;2) GNNES⁃BPR,采用傳統(tǒng)的 BPR 損失。本文設(shè)計(jì)的改進(jìn) BPR 損失具有較明顯的優(yōu)勢(shì)。相比 GNNES⁃BPR,GNNES 在推薦性能方面具有明顯提升。這一結(jié)果證實(shí)本文改進(jìn) BPR 損失的有效性。
2.5 超參數(shù)討論
首先討論社交關(guān)系用戶的嵌入維度 d。在學(xué)習(xí)用戶的局部 - 全局嵌入表示中,經(jīng)驗(yàn)性地考慮嵌入維度 d=250,500,1000,1500,則 d 對(duì)性能的影響。較大維度的數(shù)值并不一定具有更優(yōu)性能,因?yàn)榭赡艽嬖谶^(guò)擬合問(wèn)題。因此,在 Ciao、Epinions 和 Douban 數(shù)據(jù)集上,維度大小分別設(shè)置為 500、250 和 1000。
再討論交互圖中嵌入維度 dᵗ。在用戶 - 物品交互圖的圖注意力網(wǎng)絡(luò)中討論不同嵌入維度的影響。考慮嵌入維度 dᵗ=8,16,32,64,則 d₂對(duì)性能的影響。在 Ciao、Epinions 數(shù)據(jù)集上,當(dāng) dᵗ=16 時(shí)預(yù)測(cè)精度均最高,而在 Douban 數(shù)據(jù)集上,dₛ=32 時(shí)預(yù)測(cè)精度最佳。因此在最終的實(shí)驗(yàn)設(shè)置中,在 Ciao、Epinions 數(shù)據(jù)集上,經(jīng)驗(yàn)性設(shè)置 dᵗ=16,在 Douban 數(shù)據(jù)集上經(jīng)驗(yàn)性設(shè)置 dᵗ=32。
然后,討論圖注意力網(wǎng)絡(luò)的層數(shù)。增加基于注意力機(jī)制的圖神經(jīng)網(wǎng)絡(luò)的傳播層數(shù)可提高推薦效果。在層數(shù)的選取中,設(shè)計(jì) 2 層、3 層、4 層,則層數(shù)對(duì) GNNES 性能的影響。具有 3 個(gè)嵌入傳播層的方法獲得最優(yōu)性能。然而,隨著層數(shù)的增加,性能略有下降,可能因?yàn)樯疃葓D神經(jīng)網(wǎng)絡(luò)會(huì)出現(xiàn)過(guò)擬合現(xiàn)象。最后討論改進(jìn)損失中的參數(shù) τ。
3 結(jié)束語(yǔ)
本文提出社交影響增強(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è)值得研究的課題。
代星月;葉海良;曹飛龍,中國(guó)計(jì)量大學(xué),202403