唐 宇,吳貞東
四川師范大學 計算機科學學院,成都 610101
推薦系統(tǒng)是一種用于預測用戶對項目的評分或偏好的信息過濾系統(tǒng)。協(xié)同過濾(collaborative filtering,CF)[1]是最經典、最常用的推薦方法之一,該方法旨在通過群體的行為來找到某種相似性,通過相似性來為用戶做決策和推薦。其核心思想是利用用戶和項目間的相似度以及歷史行為數(shù)據對目標用戶進行有效推薦[2]。早期的協(xié)同過濾[1]通過直接計算用戶-項目交互的相似性來捕獲協(xié)同過濾效應。隨后,Koren 等[3]提出了基于矩陣分解(matrix factorization,MF)的協(xié)同過濾方法,Rendle等[4]利用因子分解機(factorization machines,F(xiàn)M)來提高推薦模型的性能。這些方法將推薦作為一個表示學習任務,只關注項目間的相似度,而無法挖掘項目中廣泛存在的深層特征。
為了挖掘項目的深層特征,研究人員提出了基于深度學習[5-6]的協(xié)同過濾方法。例如,神經協(xié)同過濾(neural collaborative filtering,NCF)[5]。利用神經網絡結構來擴充矩陣分解的內積,深度因子分解機[6]將因子分解機與多層感知機相結合,以學習有效特征組合。但是,這些方法都忽略了用戶-項目交互數(shù)據中廣泛存在的高階結構信息。
為了學習到數(shù)據中的高階結構信息,圖神經網絡(graph neural networks,GNN)[7-9]采用消息傳播機制整合相鄰信息,通過多層堆疊使節(jié)點可以訪問高階鄰居節(jié)點的信息。從圖的角度出發(fā),用戶-項目交互關系可以視為二部圖,利用圖神經網絡可以捕捉用戶-項目的交互關系,從而學習兩者的表征。針對早期的協(xié)同過濾沒有編碼用戶和項目的交互信息到嵌入表征中的問題,Wang等[10]提出了圖神經協(xié)同過濾(neural graph collaborative filtering,NGCF)方法,利用圖神經網絡顯式地挖掘用戶-項目間的高階連接關系,并將其嵌入到表征中。He 等[11]針對非線性激活函數(shù)和特征變換矩陣兩種操作對于圖神經協(xié)同過濾模型沒有影響,用戶和項目的輸入均是ID嵌入表征,沒有具體語義信息的問題,提出了輕量圖卷積網絡(light graph convolution net,LightGCN)的方法,去掉圖神經網絡中的非線性激活函數(shù)和特征變換矩陣,僅保留鄰域聚合用于協(xié)同過濾。線性殘差圖卷積協(xié)同過濾(linear residual-graph convolutional collaborative filtering,LR-GCCF)[12]在簡化嵌入表征更新機制的同時,把殘差結構融入到用戶-項目的交互預測中,將模型轉換成一個線性模型。目前的圖卷積網絡推薦模型存有兩個主要的問題:同類節(jié)點無法直接傳遞相鄰圖卷積層的信息,導致學習到的高階信息有偏差;部分沒有語義的圖卷積層會阻礙推薦效果。
本文主要貢獻如下:
(1)針對現(xiàn)有基于圖卷積網絡的推薦模型存在消息傳播鏈路不完善的問題,本文引入殘差網絡搭建同一節(jié)點中相鄰圖卷積層間的傳播鏈路。
(2)從語義角度上優(yōu)化在協(xié)同過濾推薦任務中圖卷積網絡的最終節(jié)點表示,即不考慮沒有消息傳播的圖卷積層。
(3)提出了一種基于殘差網絡的輕量級圖卷積推薦模型——ResLightGCN。通過實驗驗證,該模型在多個數(shù)據集上的性能優(yōu)于目前幾種基線模型。
本文主要研究目的是從消息傳播角度研究圖卷積網絡的工作原理,通過優(yōu)化網絡結構來提高推薦系統(tǒng)工作效率。
本文研究內容主要涉及殘差網絡、協(xié)同過濾和圖神經網絡,下面分別介紹這幾個方面的理論知識與相關工作。
在卷積神經網絡模型中[13-14],隨著模型的加深會造成梯度爆炸和梯度消失的問題,為了解決這些問題,He等[15]在高速網絡(highway network)[16]的基礎上提出了殘差網絡,能保留全部的原始信息并且可以減少網絡參數(shù)。殘差網絡的優(yōu)點是不僅能夠加速深度神經網絡的訓練,而且可以大幅提升深度網絡的準確率。此外,殘差網絡在很大程度上避免了隨著模型深度的增加而產生的梯度消失或梯度爆炸問題,進而能夠訓練較深層次的網絡[17]。
協(xié)同過濾[18]是指通過群體行為來找到某種相似性(用戶間的相似性或者項目間的相似性),并利用這種相似性來為用戶做決策和推薦。
Le[19]提出了一種基于內存的協(xié)同過濾方法,采用最近鄰技術,利用用戶的歷史喜好信息計算用戶間的距離,然后利用目標用戶對商品評價的加權值來預測目標用戶對特定商品的喜好程度,推薦系統(tǒng)根據喜好程度對用戶進行推薦。
基于模型的協(xié)同過濾方法通過建模的方式模擬用戶對項目的評分行為。使用機器學習與數(shù)據挖掘技術,從訓練數(shù)據中確定模型并將模型用于預測用戶對未知商品的評分。常見模型包括聚類模型[20]、貝葉斯模型[21]、矩陣分解[3]等。
基于深度學習的協(xié)同過濾推薦模型,首先在向量空間中學習用戶和項目的嵌入表征,然后重建兩者間的交互,如矩陣分解做內積,神經協(xié)同過濾模擬深層次交互等。從任務角度上劃分,基于協(xié)同過濾的推薦系統(tǒng)分為評分預測和Top-N推薦。
(1)評分預測。該任務的主要應用場景為評價網站,如豆瓣網站。利用用戶對項目的歷史評分記錄,建模得到用戶的興趣,進而預測用戶對未評分項目的評分,常用技術是矩陣分解。
(2)Top-N推薦。該任務的主要應用場景為購物網站或沒有顯式評分信息的網站,如亞馬遜網站、淘寶網站。通過用戶的隱式反饋信息為其推薦最感興趣的前N個商品,常用技術是貝葉斯個性化排名(Bayesian personalized ranking,BPR)。
圖神經網絡可以通過節(jié)點間的消息傳播捕捉圖上的依賴。其主要思想是:迭代地聚合鄰域信息,并匯集聚合后的信息與當前節(jié)點的表示。根據是否使用譜卷積算子,圖神經網絡可以劃分為譜方法和非譜方法[22-23]。譜方法在傅里葉域(譜域)上定義圖卷積算子,由原始圖結構表示節(jié)點間的關系。非譜方法需要設計聚合器和更新器。聚合器用于聚合來自鄰居的信息,更新器用于融合鄰居節(jié)點和中心節(jié)點的信息。
用戶-項目協(xié)同過濾的基本思想是使用用戶交互的項目信息來增強用戶表示,并利用曾經與項目交互的用戶信息來豐富項目表示。圖神經網絡能很好地模擬信息擴散過程,在推薦系統(tǒng)中使用圖神經網絡技術能更有效利用用戶-項目交互的高階連接關系。
1.3.1 圖卷積網絡
圖卷積網絡(graph convolutional network,GCN)[24-25]是處理圖數(shù)據的高效模型,其本質是將卷積的譜方法融入圖神經網絡,在推薦系統(tǒng)中,用戶-項目交互關系可以看作一個含有兩種節(jié)點的異質圖,即用戶和項目作為異質節(jié)點,兩者間的交互關系作為邊,用圖卷積網絡去捕獲用戶與項目的喜好關系,預測用戶與未知項目的關系。文獻[10-11]指出不同圖卷積層的嵌入會捕獲不同語義,加權不同圖卷積層的嵌入能優(yōu)化圖神經網絡最終節(jié)點表示。
推薦模型中常見的圖卷積網絡主要包含消息傳播和讀出兩種操作[26]。消息傳播(propagate)操作是捕獲節(jié)點鄰居信息的一個過程。讀出(readout)操作是將不同圖卷積層用于最終節(jié)點表示的一個過程。
在推薦任務中,大多數(shù)GCN 采取加權平均的方法來實現(xiàn)讀出操作,而對于協(xié)同過濾推薦任務來說,需要捕獲的是交互關系,通常第0層不存在圖的聚合鄰居交互信息,也是未進行消息傳播的圖卷積層。展開GCN的聚合傳播公式(省略歸一化的常數(shù)值)如下:
式(3)、(4)為普通的GCN聚合傳播公式,其括號()內代表第0層的嵌入信息,u、i分別代表用戶和項目、分別代表與用戶節(jié)點和項目節(jié)點的第三層最終嵌入,Nu、Ni分別代表用戶的鄰居節(jié)點和項目的鄰居節(jié)點。這里節(jié)點的語義信息是指節(jié)點之間的交互信息(即假設用戶A 購買了項目B,則一次圖卷積會使A 節(jié)點包含B節(jié)點的信息,B 節(jié)點也會包含A 節(jié)點的信息,這樣視為捕獲一次交互信息)。由上式可看出,高階項目是通過不同層的低階用戶信息聚合得到,0層的節(jié)點不具備任何的交互信息,也即無任何語義信息,其值為隨機的ID嵌入。
1.3.2 圖神經協(xié)同過濾
圖神經協(xié)同過濾是對標準圖卷積網絡[27]的改進,其主要消息傳播公式如下:
1.3.3 輕量圖卷積網絡
輕量圖卷積網絡[11]將非線性激活函數(shù)和特征變換矩陣均去掉,只增加一組權重系數(shù)加權不同圖卷積網絡層輸出的嵌入作為最終表示,大大簡化了模型,降低訓練復雜度,并提升模型準確性,其消息傳播公式見式(7):
1.3.4 殘差圖卷積網絡
為了解決在深層圖卷積網絡中的梯度消失問題,殘差圖卷積網絡(residual graph convolution network,ResGCN)[28]在圖卷積結構基礎上,采用殘差結構來提高GCN 的學習表示能力,使得模型卷積層數(shù)能達到更深的層次,并且能防止深層圖卷積的過平滑。其主要設計如式(8)所示:
式(8)中F()、H()分別代表不同的映射關系,Gl代表第l層的圖表示,代表l+1 層的殘差結構表示,Gl+1代表l+1 層的圖表示,Wl是第l層的權重集。
下面從聚合傳播的角度分析非殘差網絡存在的問題(忽略掉第0層)。
式(9),代表如LightGCN(省略歸一化常數(shù)值)這類GCN模型消息傳播操作的一個3階展開。其中,一個高階節(jié)點向量是由相鄰的次一階的異質節(jié)點聚合相加得到。
式(10)代表如LightGCN(省略歸一化常數(shù)值)這類GCN模型讀出操作的一個3 階展開。其含義為融合項目1、2、3階的圖卷積層信息。
由式(9)和式(10)可知,非殘差結構的無法得到的信息,的信息只能聚合傳播給而非。在消息傳播過程中,無法直接得到的信息,也不能間接得到。只能在最終節(jié)點表示(讀出)操作里,加權不同的圖卷積層融合得到信息。
1.3.5 線性殘差圖卷積協(xié)同過濾
線性殘差圖卷積協(xié)同過濾受到圖神經協(xié)同過濾和殘差結構的啟發(fā),在節(jié)點外部構建一個線性殘差網絡,把殘差結構融入到用戶-項目的交互預測中,模型轉換成一個線性結構,通過用戶-項目交互關系進行預測,主要設計如下:
雖然線性殘差圖卷積協(xié)同過濾與本文提出的Res-LihtGCN都是利用了殘差結構,但是線性殘差圖卷積協(xié)同過濾是在節(jié)點外部引入殘差結構,這樣的殘差結構不會使得節(jié)點內部發(fā)生改變,節(jié)點不會受到殘差結構的影響。本文設計的殘差結構位于同一節(jié)點內部,能夠對節(jié)點自身造成影響,更注重節(jié)點自身的信息聚合。
本章首先介紹用戶-項目交互圖和所有節(jié)點的表示,其次闡述ResLightGCN 模型的卷積操作過程,最后對ResLightGCN進行了對比分析。
在協(xié)同過濾推薦任務中,先定義交互矩陣R。
上式中R是M個用戶和N個項目交互后的結果。若R[i][j]值為1代表第i個用戶與第j個項目有交互喜好表現(xiàn),若R[i][j]值為0則表示兩者沒有交互。由于用戶與大多數(shù)項目未交互,可以利用稀疏矩陣來存儲R。
L表示一個對稱歸一化的拉普拉斯矩陣,其中式(13)的A矩陣是由交互矩陣R構建,D為A的度矩陣。歸一化的目的是使每一條鄰接邊信息傳播的值規(guī)范化,不會因為某個節(jié)點的邊更多而更重要,使得每個節(jié)點的重要程度均衡。式(14)中的對稱歸一化拉普拉斯矩陣L按照標準圖卷積網絡[27]進行設計。
每個用戶或項目視為圖結構的一個點,為每個點構建一個K維向量。
式(15)是一個圖結構中所有點的向量表示,其中um和in分別代表第m個用戶和第n個項目的K維向量,(m+n)為節(jié)點的總個數(shù)。
本節(jié)介紹ResLightGCN卷積操作的設計思路。圖1的輸出為用戶和項目多次圖卷積后做內積的預測值,輸入為初始化的ID嵌入也即圖卷積的第0層,右側方框是左側模型圖卷積的過程,即把當前層節(jié)點的鄰居節(jié)點、的嵌入做歸一化求和的操作,將該操作的輸出作為下一層節(jié)點的表示。在ResLightGCN 中,除了直接的層間聚合傳播,還包括殘差操作,且只保留最后一層作為最終節(jié)點表示。其傳播公式如式(16)所示:
圖1 ResLightGCN卷積操作Fig.1 ResLightGCN convolution operation
由式(16)可知,計算l+1 層的用戶向量時,與上一層的相加即可實現(xiàn)節(jié)點內殘差,彌補層間消息傳播的缺陷。其中Ni代表項目i的鄰居個數(shù),Nu代表用戶u的鄰居個數(shù),本模型注重同一節(jié)點內部的消息傳播,稱為基于殘差網絡的輕量級圖卷積方法。該方法的readout操作僅保留最后一層,如式(17):
zu是最終節(jié)點表示,zu[l]代表圖卷積l層后的嵌入。
式(18)代表ResLightGCN(省略歸一化的常數(shù)值)propagate操作的一個3階展開:
由上式可知,其本身已經聚合了不同層的嵌入,且關系為遞進傳播。展開后的最終節(jié)點表示已經與非殘差圖卷積結構的式(10)一致。
式(19)代表ResLightGCN 不需要后續(xù)readout 操作的加權平均操作來耦合彌補,僅僅保留最后一層即可。
ResLightGCN 模型用向量內積得到的預測分數(shù)作為推薦的排名,如式(20):
yui為最終的預測分數(shù),ei、eu分別代表項目和用戶的最終表示向量。
本文采用貝葉斯個性化排名[29]作為損失函數(shù)(式(21)),考慮用戶項目交互中的可觀察項和不可觀察項的相對順序,貝葉斯個性化排名能賦予可觀察項的交互相較于不可觀察項有更高的預測分數(shù)。
式(21)中,U代表用戶集,代表用戶和該用戶的正樣本項目的向量內積,代表用戶和該用戶的負樣本項目的向量內積,σ代表sigmoid函數(shù)[30],代表對所有嵌入表征的L2正則項,λ為正則項系數(shù)。
為評估ResLightGCN在推薦任務上的性能,本文采用Pytorch(https://pytorch.org/)的RecBole[31]開源推薦系統(tǒng)框架實現(xiàn)本模型和相關基線模型,在Ubuntu20.04,Intel?Xeon?CPU E5-2698 v4 @ 2.20 GHz 8核,16 GB內存,Tesla V100-SXM2-32 GB的環(huán)境下進行了相關實驗。
本文實驗采用四個公開的數(shù)據集,分別是ml-1m(https://grouplens.org/datasets/movielens/),Yelp(https://www.yelp.com/dataset),Amazon_Books(http://jmcauley.ucsd.edu/data/amazon/),gowalla(https://snap.stanford.edu/data/loc-gowalla.html)。這些數(shù)據集在領域、規(guī)模和密度方面各不相同,見表1。
表1 數(shù)據集Table 1 Dataset
對于Yelp 和Amazon_Books 數(shù)據集,篩選出交互次數(shù)少于15次的用戶和項目,以確保數(shù)據質量。表1總結了數(shù)據集的統(tǒng)計數(shù)據。對于每個數(shù)據集,隨機選擇80%的交互作為訓練集,10%的交互作為驗證集,剩余10%的交互用于測試集。訓練集中,對每個正樣本統(tǒng)一隨機抽取一個負樣本。
為了評估Top-N推薦的性能,實驗采用了3 個廣泛使用的指標Recall@N、NDCG@N和MRR@N,其中N為10、20,采用全排名策略,對用戶未交互的所有候選項進行排名。
NDCG(式(22))是衡量排名質量的指標,它為推薦列表中排名靠前的真實喜好項目分配更高的分數(shù)。其中U是用戶集合,u是當前用戶,R(u) 是用戶的真實喜好列表,i是當前物品,N是Top-N推薦,δ()是獲得在推薦列表中項目位置的標識器。
Recal(l式(23))是所有“被正確推薦的項目”占所有“應該被推薦的正確的項目”的比例,簡稱為召回率,其中R(u)為用戶推薦的項目集合,T(u)為測試集上用戶感興趣的項目的集合,U是所有用戶集合。
MRR(式(24))是正確檢索結果值在檢索結果中的排名來評估檢索系統(tǒng)性能的指標,其中 ||U是用戶的個數(shù),ranki表示第i個用戶的真實喜好結果在推薦列表中的第一次出現(xiàn)的排名。
為了綜合評價ResLightGCN模型,將與以下四種基線模型進行比較。
BPRMF[29]:使用矩陣分解模型優(yōu)化BPR損失,以了解用戶和項目的潛在表示。
NeuMF[5]:用多層感知器代替了矩陣分解模型中的點積,以學習用戶和項目的匹配函數(shù)。
NGCF[10]:采用用戶項目二部圖合并高階關系,并利用GNN增強協(xié)同過濾。
LightGCN[11]:簡化了NGCF 的設計,降低訓練復雜度,提高推薦準確性。
為了確保比較的公平性,實驗采用Adam 優(yōu)化器,layer 層都設置為3,批量大小設置為4 096,所有參數(shù)都由默認的Xavier分布初始化,ID嵌入大小設置為64,最大訓練批次設置為500個epoch,每10個epoch在驗證集上驗證評估,三次評估無明顯進步則認為收斂,終止訓練,用測試集測試得到最終結果。
表2 顯示了ResLightGCN 和其他基線方法在四個數(shù)據集上的實驗結果,從表中可以看出ResLightGCN模型優(yōu)于其他基線模型。ResLightGCN在四個數(shù)據集上的表現(xiàn)優(yōu)于其他模型,這表明在節(jié)點內殘差網絡對于消息傳播的彌補是必要的。在ml-1m、Yelp、Amazon_Books這三個數(shù)據集的Top-10-ranks 的提升基本上都大于Top-20-ranks,這表明ResLightGCN 傾向于將相關的項目排名更高,使得推薦更準確,這在現(xiàn)實推薦應用場景中具有重要的意義。
表2 對比實驗結果Table 2 Compare results of experiment
由Yelp、Amazon_Books數(shù)據集的實驗結果可知,本文提出的模型在大規(guī)模數(shù)據集上的推薦效果有更好的提升,說明構建消息傳播在大型數(shù)據集上更重要。
在本節(jié)中,通過對圖卷積層的結構和殘差網絡兩個方面進行消融實驗,進一步驗證ResLightGCN模型的關鍵結構的有效性。另外,從數(shù)據集大小與效果提升幅度,不同圖卷積層數(shù)的影響兩個方面對ResLightGCN模型進行有效性分析。
3.5.1 圖卷積層結構的對比
本文在四個數(shù)據集上進行了對ResLightGCN 模型去掉第0 層和保留0 層的對比實驗。由圖2 可知,Res-LightGCN 去掉0 層(未進行消息傳播的圖卷積層)后的實驗結果有不同程度的提升。這是因為ResLightGCN模型更關注消息傳播的過程,而無交互意義的第0層會影響推薦性能,導致推薦效果下降。
圖2 ResLightGCN的第0層消融對比實驗Fig.2 0-layer ablation contrast experiment of ResLightGCN
為了驗證在協(xié)同過濾任務中,圖神經網絡去除掉沒有交互意義的第0 層后推薦性能更好,本論文也在LightGCN模型上做了保留第0層和去掉第0層的實驗,如圖3。實驗結果表明,去掉第0 層后模型的推薦效果更好。
圖3 LightGCN的第0層消融對比實驗Fig.3 0-layer ablation contrast experiment of LightGCN
由圖2 和圖3 的實驗結果可知,本論文提出的ResLightGCN 模型受第0 層網絡結構的影響更大,說明去掉第0層網絡結構對模型性能的提高非常重要。
3.5.2 殘差結構的消融實驗
本文在四個數(shù)據集上對ResLightGCN 模型進行了去掉殘差網絡和融入殘差網絡的消融實驗,實驗結果如圖4 所示。由圖4 可知,在去掉殘差結構后,Recall@10指標下降20.6%,由于融入殘差結構能夠建立起同一節(jié)點相鄰層間的消息傳播鏈路,而缺失該結構會導致模型學習能力下降,最終影響推薦效果。
圖4 殘差結構的消融對比實驗Fig.4 Residual structure ablation experiment
3.6.1 交互次數(shù)的影響
由圖5 可以看出,ResLightGCN 模型在交互次數(shù)越多的數(shù)據集如Yelp、Amazon_Books上,比最佳基線模型LightGCN 提升的百分比幅度越大,這說明在大規(guī)模數(shù)據集上同一節(jié)點相鄰層間消息傳播非常重要。
圖5 不同數(shù)據集與效果提升對比Fig.5 Different datasets and performance improvements
3.6.2 不同圖卷積層數(shù)的影響
本文調整ResLightGCN模型的網絡層數(shù)進行實驗,實驗結果如圖6所示。
圖6 ResLightGCN不同層的比較Fig.6 Comparison of different layers of ResLightGCN
從圖6中可以發(fā)現(xiàn)當網絡層數(shù)更大時,ResLightGCN模型的性能反而下降。這是因為本文論文提出的ResLightGCN 模型和ResGCN 不同,ResLightGCN 模型融入殘差結構的主要目的是建立起同一節(jié)點相鄰層間的消息傳播,而不是為了學習更高階的信息。
本文針對在推薦任務中,現(xiàn)有基于圖卷積網絡的推薦模型存在消息傳播鏈路不完善、最終節(jié)點表示冗余的問題,提出了一種融合殘差結構的輕量級圖卷積推薦模型ResLightGCN。首先,通過用戶-項目交互圖,構建圖卷積網絡模型的邊和節(jié)點,然后設計了節(jié)點相鄰層間消息傳播鏈路,最后利用內積運算預測用戶與項目之間的關聯(lián)分數(shù),并優(yōu)化模型的最終節(jié)點表示。實驗結果表明,與現(xiàn)有的主流協(xié)同過濾推薦模型相比,本模型取得了更好的推薦效果。
本文雖然取得了一些成果,但是還可以進一步完善。在未來的工作中,一方面可以研究如何構建更深的圖卷積層,避免多層圖神經網絡的過平滑;另一方面研究模型的泛化能力,例如精排模型。進一步地還可以擴展研究圖神經網絡中如何去噪,以及利用圖神經網絡如何解決協(xié)同過濾推薦任務中的冷啟動等難點問題。