吳彥文,馬藝璇,葛 迪,鄧云澤
1(華中師范大學(xué) 國家數(shù)字化學(xué)習(xí)工程技術(shù)研究中心,武漢 430079)
2(華中師范大學(xué) 物理科學(xué)與技術(shù)學(xué)院,武漢 430079)
當(dāng)今社會,網(wǎng)絡(luò)的普及和社交媒體的發(fā)展給用戶帶來了越來越多的選擇,推薦技術(shù)的地位日益凸顯.有效的推薦可以捕獲那些用戶可能喜愛的物品,幫助其做出決策,克服信息過載問題.然而,在推薦系統(tǒng)中,數(shù)據(jù)稀疏問題普遍存在,這一問題往往導(dǎo)致模型性能不佳.基于此,一些學(xué)者將社會關(guān)系[1]、空間位置[2]等輔助信息引入推薦系統(tǒng)中來克服數(shù)據(jù)稀疏性問題.
一般情況下,融合了社會關(guān)系的推薦被稱為社會化推薦.其中,作為輸入的用戶-項(xiàng)目二部圖與社交網(wǎng)絡(luò)均為圖結(jié)構(gòu),這與圖神經(jīng)網(wǎng)絡(luò)(Graph Neural Network,GNN)技術(shù)天然適配.據(jù)相關(guān)文獻(xiàn)研究,GNN在社會化推薦領(lǐng)域的優(yōu)勢體現(xiàn)在兩個(gè)方面[3]:其一,GNN適用于大規(guī)模數(shù)據(jù)的處理,可較好地緩解推薦系統(tǒng)存在的數(shù)據(jù)稀疏問題;其二,GNN通過捕捉圖內(nèi)依賴和迭代聚合鄰域信息,更新當(dāng)前節(jié)點(diǎn)表示,可被用來學(xué)習(xí)推薦系統(tǒng)中用戶/物品嵌入.
傳統(tǒng)的基于GNN的社會化推薦中[4,5],核心步驟是利用節(jié)點(diǎn)在社交網(wǎng)絡(luò)和用戶項(xiàng)目二部圖中的消息傳播和信息聚合,提取用戶/項(xiàng)目嵌入向量,這種方法一定程度上緩解了數(shù)據(jù)稀疏問題,使模型性能得到提升.然而,現(xiàn)有模型大多只考慮了淺層的語義上下文信息,如果將深層的語義上下文信息引入學(xué)習(xí)過程中,可以使得學(xué)習(xí)到的用戶偏好和項(xiàng)目屬性嵌入表示更加豐富,如圖1所示.此外,深層語義上下文信息的提取依賴于良好的語義網(wǎng)絡(luò)結(jié)構(gòu),所以優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)十分重要.
圖1 淺層上下文與深層上下文對用戶偏好的影響Fig.1 Impact of shallow context and deep context on user preferences
為了解決以上不足之處,本文引入了增強(qiáng)語義,基于圖結(jié)構(gòu)學(xué)習(xí)和圖神經(jīng)網(wǎng)絡(luò)提出了一種融合語義增強(qiáng)的用戶興趣度預(yù)測方法(SCGNN).本文的貢獻(xiàn)可總結(jié)為以下兩點(diǎn):
1)提出了基于圖結(jié)構(gòu)學(xué)習(xí)的語義網(wǎng)絡(luò)增強(qiáng)方法.基于余弦相似度計(jì)算初始化語義網(wǎng)絡(luò),利用圖學(xué)習(xí)準(zhǔn)確捕捉節(jié)點(diǎn)間的語義關(guān)系,增加可用的圖信息.
2)提出了基于圖神經(jīng)網(wǎng)絡(luò)的用戶興趣度預(yù)測模型.利用節(jié)點(diǎn)在信任網(wǎng)絡(luò)和語義網(wǎng)絡(luò)的消息傳遞和特征聚合,學(xué)習(xí)用戶偏好、物品屬性嵌入向量,實(shí)現(xiàn)深層上下文信息的有效聚合,以提升模型的召回率和歸一化累計(jì)折損增益.
通常情況下,推薦系統(tǒng)通過探究用戶偏好和物品屬性來預(yù)測用戶對物品的交互得分,其關(guān)鍵問題在于如何通過節(jié)點(diǎn)的影響傳播來更好地學(xué)習(xí)用戶/物品嵌入向量.然而針對用戶偏好和物品屬性進(jìn)行建模時(shí),數(shù)據(jù)稀疏性往往帶來模型性能的下降.因此,一些學(xué)者引入了社交信任來緩解這一問題.根據(jù)所采用技術(shù)的不同,可將社會化推薦算法分為3種:基于矩陣分解的社會化推薦算法、基于注意力機(jī)制的社會化推薦算法、基于圖神經(jīng)網(wǎng)絡(luò)的社會化推薦算法.
基于矩陣分解的社會化算法假設(shè)用戶和其社交網(wǎng)絡(luò)中好友具有相似的興趣,通過社會關(guān)系正則化或加權(quán)朋友平均來約束用戶嵌入學(xué)習(xí)過程.例如:TrustMF[6]將用戶映射到兩個(gè)空間并優(yōu)化用戶嵌入來檢索信任矩陣;TrustSVD[7]通過合并好友決策來建模用戶興趣;虞勝杰[8]等人結(jié)合矩陣分解的特征因子分析法處理信任信息與評分信息.相較于傳統(tǒng)的協(xié)同過濾推薦模型,矩陣分解推薦算法的準(zhǔn)確度得到提升,但它均等考慮了所有社交好友的影響,忽略了不同好友對用戶興趣的影響程度各不相同這一事實(shí).
基于注意力機(jī)制的社會化推薦算法對上述問題提供了一種解決方案,即采用了注意力機(jī)制來計(jì)算好友對用戶興趣的影響權(quán)重.例如:ARSE[9]使用兩個(gè)注意力網(wǎng)絡(luò)融合用戶之間的社會影響,建模用戶隨時(shí)間偏移的動態(tài)偏好和一般靜態(tài)偏好;SAMN[10]設(shè)計(jì)了節(jié)點(diǎn)級和類型級兩層注意力機(jī)制來建模好友的影響,學(xué)習(xí)用戶和項(xiàng)目的嵌入表示;任柯舟[11]等人設(shè)計(jì)了具有時(shí)間遺忘特性和協(xié)同特性的兩層注意力機(jī)制,分別對社交短期、長期興趣進(jìn)行建模.基于注意力機(jī)制的社會化推薦計(jì)算了不同好友對用戶的影響程度,更加準(zhǔn)確地建模了用戶偏好向量.然而,這種方法未能考慮到社交網(wǎng)絡(luò)和交互矩陣中的高階關(guān)系,且數(shù)據(jù)稀疏問題依然顯著.
基于圖神經(jīng)網(wǎng)絡(luò)(GNN)的社會化推薦算法,則通過捕捉二部圖和社交網(wǎng)絡(luò)中節(jié)點(diǎn)的影響傳播,學(xué)習(xí)用戶興趣和項(xiàng)目屬性的嵌入表示.例如:Wu等人[4]提出了經(jīng)典的Diffnet++社會化推薦算法,利用圖神經(jīng)網(wǎng)絡(luò)模型分別建模社交影響和用戶興趣的作用過程;Zhang等人[5]則采用了一個(gè)雙圖注意力網(wǎng)絡(luò)DANSER來建模雙重的社交影響;Fu[12]等提出了一種深層上下文感知調(diào)制的圖神經(jīng)網(wǎng)絡(luò)RGNN,通過上下文信息的調(diào)制提取特征表示;衛(wèi)鼎峰等[13]使用圖神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)物品的相似性網(wǎng)絡(luò)、社交網(wǎng)絡(luò)和用戶-物品交互圖,得到用戶、物品的特征嵌入,在矩陣分解的約束下,通過迭代更新獲取最終嵌入.
綜上,基于圖神經(jīng)網(wǎng)絡(luò)的社會化推薦算法通過挖掘圖中所蘊(yùn)含的信息,進(jìn)一步緩解了數(shù)據(jù)稀疏問題.但只考慮淺層的語義上下文來學(xué)習(xí)用戶/物品嵌入是不夠的,若引入深層語義上下文,那么網(wǎng)絡(luò)節(jié)點(diǎn)特征將更豐富,學(xué)習(xí)的用戶/物品嵌入表示的質(zhì)量將更高.為此,本文提出了一種融合語義增強(qiáng)的用戶興趣度預(yù)測方法,詳見本文第3節(jié)與第4節(jié).
考慮到語義關(guān)系對用戶興趣和物品屬性的影響,本文設(shè)計(jì)了一種融合語義增強(qiáng)的用戶興趣度預(yù)測方法(SCGNN),總體思路如圖2所示.圖2中SCGNN模型的架構(gòu)分為兩部分:
圖2 SCGNN總體框架Fig.2 Overall framework of SCGNN
1)基于圖結(jié)構(gòu)學(xué)習(xí)的語義網(wǎng)絡(luò)增強(qiáng).初始化基于語義關(guān)系的用戶語義網(wǎng)絡(luò)和物品語義網(wǎng)絡(luò),使用圖結(jié)構(gòu)學(xué)習(xí)的方式修正節(jié)點(diǎn)之間的語義連接來優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu),在保證準(zhǔn)確性的前提下最大限度挖掘用戶/項(xiàng)目的交互信息特征,以提升推薦模型的訓(xùn)練效率;
2)基于圖神經(jīng)網(wǎng)絡(luò)的用戶興趣度預(yù)測.使用圖神經(jīng)網(wǎng)絡(luò)進(jìn)行學(xué)習(xí)表征時(shí),通過聚合語義網(wǎng)絡(luò)和信任網(wǎng)絡(luò)的深層語義上下文進(jìn)行特征提取,再對各層特征嵌入進(jìn)行連接操作來構(gòu)建增強(qiáng)表示,得到融合信任和語義的用戶偏好向量和物品屬性向量,最后將其作為輸入通過多層感知機(jī),從而實(shí)現(xiàn)特征的有效融合,獲得預(yù)測的交互得分.
在上述模型計(jì)算過程中,針對社交網(wǎng)絡(luò)、用戶語義網(wǎng)絡(luò)和物品語義網(wǎng)絡(luò)的構(gòu)建,本文引入了3種關(guān)系(如圖3所示):
圖3 3種關(guān)系的定義Fig.3 Definition of the three connections
1)用戶間的信任關(guān)系,代表兩個(gè)用戶之間的社交信任,通過社交網(wǎng)絡(luò)體現(xiàn),社會網(wǎng)絡(luò)分析理論[14]認(rèn)為用戶個(gè)人興趣受到好友興趣的影響,向好友興趣傾斜;
2)用戶間的語義關(guān)系,代表兩個(gè)用戶興趣相似,雖然兩個(gè)用戶之間不存在社交關(guān)系,但其過往交互歷史透露了相似的消費(fèi)偏好;
3)物品間的語義關(guān)系,代表兩個(gè)物品之間屬性相似,雖然兩個(gè)物品之間不存在直接關(guān)聯(lián),但其過往的交互歷史表明它們被同一批用戶所喜愛.
此外,將潛在的用戶好友、相似用戶、相似物品作為深層的語義上下文,可以使得提取的用戶興趣和物品屬性具有更豐富的信息.這3種關(guān)系的引入用于表達(dá)社交網(wǎng)絡(luò)、用戶語義網(wǎng)絡(luò)和物品語義網(wǎng)絡(luò)的含義,為網(wǎng)絡(luò)的表示和優(yōu)化提供了基礎(chǔ).
為了計(jì)算方便,表1列出了本文涉及的數(shù)學(xué)定義.
表1 模型的相關(guān)數(shù)學(xué)定義Table 1 Related mathematical definition of the model
針對輸入的用戶-項(xiàng)目二部圖G={U,V,E},U={u1,u2,…,uM}和V={v1,v2,…,vN}分別表示用戶集合和物品集合,E代表用戶和物品節(jié)點(diǎn)之間存在的連線集合.然而,用戶節(jié)點(diǎn)之間、物品節(jié)點(diǎn)之間存在的語義關(guān)聯(lián)是不可見的.因此,這一部分的首要任務(wù)是初始化語義網(wǎng)絡(luò)GU和GV.
可以使用余弦相似度計(jì)算來判斷節(jié)點(diǎn)之間是否語義相連,從而初始化語義網(wǎng)絡(luò).對于任意物品vj和用戶ui,將交互矩陣R的第j列列向量ej作為vj的初始化特征向量,將RT的第i列列向量ei作為ui的初始化特征向量,余弦相似度計(jì)算過程如下:
(1)
(2)
對于每個(gè)物品(用戶)節(jié)點(diǎn),隨機(jī)選擇批量節(jié)點(diǎn)進(jìn)行相似度計(jì)算,使得最相似的n個(gè)物品(用戶)作為語義關(guān)聯(lián)的對象,來緩解數(shù)據(jù)規(guī)模巨大而導(dǎo)致的計(jì)算復(fù)雜問題,基于此構(gòu)建初始化的語義網(wǎng)絡(luò)GV和GU.此計(jì)算過程將導(dǎo)致GV和GU包含許多噪聲信息且具有一定程度的信息丟失,為了改善這一問題,采用圖結(jié)構(gòu)學(xué)習(xí)的方式,通過相似度權(quán)重分配進(jìn)行迭代優(yōu)化,得到訓(xùn)練子圖G′V和G′U.具體計(jì)算過程如下:
sim′(vj,vm)=cosine(wiqj,wiqn)
(3)
sim′(ui,um)=cosine(wupi,wupm)
(4)
其中,wi和wu是神經(jīng)網(wǎng)絡(luò)的權(quán)重,qj和pi是物品和用戶的節(jié)點(diǎn)特征向量,cosine是余弦相似度計(jì)算函數(shù).
(5)
(6)
步驟1.計(jì)算融合增強(qiáng)語義的物品屬性.
(7)
步驟2.計(jì)算融合增強(qiáng)語義的用戶興趣向量與基于信任的社交影響向量.
(8)
(9)
步驟3.計(jì)算最終的用戶興趣向量
(10)
步驟4.構(gòu)建用戶興趣和物品屬性的圖增強(qiáng)表示
在每個(gè)特征聚合器中進(jìn)行多次迭代傳播過程后,得到U和V的嵌入集合.對于每一個(gè)用戶ui和每一個(gè)物品vj,將其在CGNN中每層得到的嵌入向量拼接起來,形成的最終圖增強(qiáng)表示為:
(11)
(12)
步驟5.計(jì)算交互得分
由于用戶對候選項(xiàng)的決策同時(shí)依賴于用戶偏好與項(xiàng)目屬性,因此基于用戶和項(xiàng)目的圖增強(qiáng)嵌入來計(jì)算交互得分,最終的用戶ui對物品vj的交互得分yi,j為:
yi,j=MLP(hi,zj)
(13)
為了學(xué)習(xí)模型參數(shù),需要指定一個(gè)目標(biāo)函數(shù)進(jìn)行優(yōu)化.對于隱式反饋,最廣泛使用的損失函數(shù)是交叉熵,定義如下:
(14)
本文采用了小批量自適應(yīng)矩估計(jì)的方法來優(yōu)化目標(biāo)函數(shù),其優(yōu)勢在于訓(xùn)練階段學(xué)習(xí)速率可以自適應(yīng),減輕了選擇合適學(xué)習(xí)速率所帶來的不便.在優(yōu)化神經(jīng)網(wǎng)絡(luò)模型時(shí),采用dropout策略來緩解過擬合問題.
本文采用Ciao和Epinions兩個(gè)公開數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)(https://www.cse.msu.edu/~tangjili/datasetcode/truststudy.htm),它們是用于社會化推薦研究的典型數(shù)據(jù)集,包含豐富的評分、社交信息,具體統(tǒng)計(jì)細(xì)節(jié)如表2所示.
對數(shù)據(jù)集進(jìn)行如下處理:只要存在用戶-項(xiàng)目評分、用戶-用戶連接,那么交互矩陣和社交矩陣的對應(yīng)位置值置為1,作為隱式反饋;訓(xùn)練集、驗(yàn)證集和測試集的劃分遵照1∶1∶8的比例,分別用于參數(shù)的學(xué)習(xí)、超參數(shù)的調(diào)整以及性能的判斷.
本文采用Recall@K和NDCG@K作為評價(jià)指標(biāo)來評估本文模型與基線模型的推薦性能,其中K的含義是用戶與之交互概率最高的K個(gè)物品,本文設(shè)置K的范圍為{5,10,15}.采用PyTorch進(jìn)行模型的實(shí)現(xiàn),使用Xavie[15]來初始化模型參數(shù).相關(guān)的超參數(shù)設(shè)置如下:學(xué)習(xí)率α為0.001,訓(xùn)練批量大小設(shè)置為4096,嵌入向量的維度d為64,語義鄰居的個(gè)數(shù)設(shè)置為20,語義網(wǎng)絡(luò)的連接權(quán)重λ設(shè)為0.9,GNN的層數(shù)l是3,LeakyReLU函數(shù)的斜率設(shè)置為0.2.
4.3.1 對比方法
為了對比本文提出模型推薦性能的提升,本文選擇以下4種推薦模型作為基線方法,在兩個(gè)數(shù)據(jù)集中針對召回率和歸一化累計(jì)折損增益兩個(gè)評價(jià)指標(biāo)進(jìn)行對比實(shí)驗(yàn).
·TrustMF[6]:一種基于矩陣分解的社會化推薦模型,將用戶映射到兩個(gè)空間并優(yōu)化用戶嵌入來檢索信任矩陣;
·TrustSVD[7]:另一種基于矩陣分解的社會化推薦模型,將朋友嵌入引入到目標(biāo)用戶的預(yù)測評分中;
·SAMN[10]:一種基于注意力機(jī)制的社會化推薦模型,設(shè)計(jì)了節(jié)點(diǎn)級和類型級兩層注意力機(jī)制來建模好友對用戶興趣的影響;
·DiffNet++[4]:一種基于圖神經(jīng)網(wǎng)絡(luò)的社會化推薦模型,并在推薦中同時(shí)考慮了社會影響擴(kuò)散和潛在的協(xié)作興趣擴(kuò)散.
4.3.2 對比實(shí)驗(yàn)結(jié)果
對比結(jié)果如圖4所示,可以觀察到本文模型相較于其他方法取得了最佳推薦性能.綜合兩個(gè)數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果可以看出,與基于矩陣分解的社會化推薦算法TrustMF和TrustSVD相比,SCGNN的召回率和歸一化折損累計(jì)增益平均提升了17%和29.9%;與基于注意力機(jī)制的社會化推薦算法SAMN相比,SCGNN的召回率和歸一化折損累計(jì)增益平均提升了5.9%和2.44%;與基于圖神經(jīng)網(wǎng)絡(luò)的社會化推薦算法DiffNet++相比,SCGNN的召回率和歸一化折損累計(jì)增益平均提升了3.55%和2.21%.
圖4 對比實(shí)驗(yàn)結(jié)果Fig.4 Comparative experiment results
4.3.3 SCGNN中各參數(shù)對實(shí)驗(yàn)結(jié)果的影響
首先,就用戶嵌入、物品嵌入的大小對模型性能的影響進(jìn)行分析,如果嵌入維度是d,那么圖增強(qiáng)嵌入向量的維度為(l+1)*d,l為GNN的迭代層數(shù).圖5顯示了兩個(gè)數(shù)據(jù)集中嵌入維度d對Recall@15和NDCG@15的影響.總體來說,隨著嵌入維度的增加,召回率和歸一化折損累計(jì)增益相應(yīng)提升.當(dāng)d從8增至32時(shí),召回率和歸一化折損累計(jì)增益顯著提升,從32增至64時(shí),模型性能緩慢提升而計(jì)算復(fù)雜度增大.因此,選擇合適的嵌入維度來平衡模型的性能與效率十分重要.
圖5 嵌入維度d對Recall@15、NDCG@15的影響Fig.5 Impact of embedding dimension d on Recall@15 and NDCG@15
為了探究GNN傳播層數(shù)l對模型性能的影響,我們在l={1,2,3}的范圍進(jìn)行實(shí)驗(yàn),結(jié)果如圖6所示.可以看到,增加層數(shù)l可以在一定程度上提升召回率和歸一化折損累計(jì)增益.
圖6 Ciao數(shù)據(jù)集下GNN的層數(shù)l對Recall@K和NDCG@K的影響Fig.6 Impact of the number of layers of GNN under the Ciao dataset on Recall@K and NDCG@K15
最后,分析語義網(wǎng)絡(luò)權(quán)重λ對推薦性能的影響,將λ的范圍設(shè)置為{0.1,0.3,0.5,0.7,0.9}進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如圖7所示.隨著λ的遞增,Recall@15和NDCG@15先減后增.
圖7 語義網(wǎng)絡(luò)權(quán)重參數(shù)λ對Recall @15和NDCG@15的影響Fig.7 Influence of semantic network weight parameter λ on Recall @15 and NDCG@15
當(dāng)參數(shù)調(diào)整為0.1或0.9時(shí),推薦性能較佳,且λ=0.9時(shí)的模型性能優(yōu)于λ=0.1時(shí)的模型性能.
數(shù)據(jù)稀疏的存在將導(dǎo)致推薦性能下降,基于GNN的社會化推薦作為一種解決方案,可以在一定程度上緩解這一問題.而多數(shù)模型只考慮淺層語義上下文,若引入深層語義上下文,則能捕捉到更豐富的用戶/項(xiàng)目嵌入表示.基于此,本文提出了一種融合語義增強(qiáng)的用戶興趣度預(yù)測模型,首先使用圖結(jié)構(gòu)學(xué)習(xí)增強(qiáng)語義網(wǎng)絡(luò),然后使用關(guān)系感知圖神經(jīng)網(wǎng)絡(luò)迭代聚合語義網(wǎng)絡(luò)和信任網(wǎng)絡(luò)中的多跳鄰居信息,以提取用戶興趣、項(xiàng)目特征向量的增強(qiáng)表示.兩個(gè)公開數(shù)據(jù)集上進(jìn)行的大量對比實(shí)驗(yàn)的結(jié)果表明,在召回率和歸一化累計(jì)增益兩個(gè)指標(biāo)下,本文提出的模型優(yōu)于所有基線方法.
在接下來的工作中,本文將繼續(xù)優(yōu)化圖結(jié)構(gòu)以應(yīng)對數(shù)據(jù)稀疏問題,同時(shí)進(jìn)一步改進(jìn)用戶興趣度預(yù)測模型以提升該模型的準(zhǔn)確度.