劉雨昕,陳春雨
哈爾濱工程大學(xué) 信息與通信工程學(xué)院,黑龍江 哈爾濱 150001
隨著信息技術(shù)的不斷發(fā)展,互聯(lián)網(wǎng)上的信息內(nèi)容越來越豐富,與此同時,人們獲取有效信息的成本也在逐漸增加。由于大量冗余信息干擾著我們,推薦系統(tǒng)應(yīng)運(yùn)而生,它被普遍地應(yīng)用于處理個性化信息[1],緩解了“信息過載”的問題,得到了諸多電子購物和網(wǎng)絡(luò)社交平臺的青睞。一方面,推薦系統(tǒng)可以根據(jù)用戶的歷史交互信息來建模其愛好[2],從而推薦給用戶最可能需要的內(nèi)容,有效地解決了互聯(lián)網(wǎng)中過量信息導(dǎo)致用戶迷失,無法找到目標(biāo)內(nèi)容的問題;另一方面,推薦系統(tǒng)也可以有效達(dá)成商業(yè)公司的特定目的,對用戶的定制化推薦服務(wù)更能吸引用戶、增加用戶黏性、保持用戶留存以及提高用戶轉(zhuǎn)化率[3]。由此可見對推薦算法的研究符合如今人們的需求。
最早的推薦系統(tǒng)可以追溯到Xerox 公司在1992 年設(shè)計的應(yīng)用協(xié)同過濾算法的郵件系統(tǒng)[4]。之后,明尼蘇達(dá)大學(xué)的Grouplens 研究組開發(fā)了第一個自動化推薦系統(tǒng),并且推出了影響深遠(yuǎn)的MovieLens 數(shù)據(jù)集[5],成為學(xué)術(shù)界研究推薦算法至今都在使用的數(shù)據(jù)集。2003 年Amazon 發(fā)布論文[6],公開了其在自家推薦系統(tǒng)中一直使用的一種協(xié)同過濾方法,它可以處理百萬級別的商品規(guī)模并且服務(wù)近千萬的用戶。隨著工業(yè)中推薦系統(tǒng)的火爆,學(xué)術(shù)界中推薦系統(tǒng)領(lǐng)域的會議也就應(yīng)時而生,以2007 年首次召開的ACM 推薦系統(tǒng)大會為代表,其他相關(guān)的會議也逐漸走進(jìn)人們的視野。2016 年,YouTube 首次嘗試將深度神經(jīng)網(wǎng)絡(luò)與推薦系統(tǒng)相結(jié)合并取得極好的效果[7],自此,推薦系統(tǒng)開始逐步與深度學(xué)習(xí)接軌。傳統(tǒng)的推薦模型有基于內(nèi)容的推薦,如標(biāo)簽推薦;基于用戶行為的推薦,如協(xié)同過濾、隱語義模型;還有混合推薦,即通過多種不同的推薦模型相互協(xié)作[8]。近些年來,得益于深度學(xué)習(xí)方向的快速發(fā)展,基于多層感知機(jī)(multilayer perceptron,MLP)[9]、循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)[10]、圖神經(jīng)網(wǎng)絡(luò)(graph neural network,GNN)[11]等的推薦算法層出疊現(xiàn)。其中GNN 的相關(guān)算法因其在圖數(shù)據(jù)方面表現(xiàn)出的強(qiáng)大能力被逐漸引入推薦領(lǐng)域。GNN 能解決推薦問題的主要原因是由于大部分推薦問題中的數(shù)據(jù)都是圖結(jié)構(gòu)的數(shù)據(jù),傳統(tǒng)的方法難以對不規(guī)則的非歐空間中的圖數(shù)據(jù)進(jìn)行處理,而GNN 相比于傳統(tǒng)方法,更擅長捕捉節(jié)點(diǎn)之間的連接和圖數(shù)據(jù)的表示學(xué)習(xí),基于圖神經(jīng)網(wǎng)絡(luò)的鄰域聚合操作,可以對節(jié)點(diǎn)的鄰居信息有一個較好的信息統(tǒng)計能力,相比于傳統(tǒng)的算法,有著更強(qiáng)大的信息積累能力。GNN 在推薦算法上的應(yīng)用,最廣為人知的就是基于圖卷積神經(jīng)網(wǎng)絡(luò)(graph convolution network,GCN)的改進(jìn)算法PinSage[12]在Pinterest 這款社交軟件上的成功應(yīng)用,將其產(chǎn)品瀏覽量直接提高25%,由此可以看出圖神經(jīng)網(wǎng)絡(luò)可以在推薦系統(tǒng)中起到重要作用。
近年來,能夠自然集成節(jié)點(diǎn)信息和網(wǎng)絡(luò)結(jié)構(gòu)的GNN 技術(shù)引起了人們的極大興趣,其在圖結(jié)構(gòu)數(shù)據(jù)學(xué)習(xí)方面的突出表現(xiàn),已經(jīng)被廣泛應(yīng)用于諸多領(lǐng)域。推薦系統(tǒng)的核心就是用戶與項目的交互,是天然的二部圖結(jié)構(gòu),正適合用圖卷積神經(jīng)網(wǎng)絡(luò)來處理這類鏈接預(yù)測問題。本文對一種基于GCN 的最先進(jìn)的推薦模型——LightGCN[13]進(jìn)行改進(jìn),將原本作為超參數(shù)的層組合系數(shù)改為可學(xué)習(xí)的模型參數(shù)并引入注意力機(jī)制,可以得到更好的推薦效果。
GCN 算法的出現(xiàn)是為了處理非歐幾里得空間的圖結(jié)構(gòu)的問題,它和其他的神經(jīng)網(wǎng)絡(luò)一樣,具有很多神經(jīng)網(wǎng)絡(luò)的操作。LightGCN 通過對GCN 算法進(jìn)行消融實驗,簡化GCN 的設(shè)計,將GCN 中最常見但通過實驗發(fā)現(xiàn)會降低實際推薦性能且增加訓(xùn)練難度的2 種設(shè)計——特征轉(zhuǎn)換和非線性激活剔除,只保留GCN中鄰域聚合這一最基本的部分用于協(xié)同過濾,使其更加簡潔、更適合推薦。
LightGCN 的模型結(jié)構(gòu)如圖1 所示。
圖1 LightGCN 模型結(jié)構(gòu)
從模型結(jié)構(gòu)圖中可以看出,LightGCN 主要分為嵌入聚合層和預(yù)測層2 部分。嵌入聚合層利用圖卷積網(wǎng)絡(luò)在圖上傳播聚合用戶和項目的嵌入,得到圖上所有用戶節(jié)點(diǎn)和項目節(jié)點(diǎn)在各個層上的嵌入表示;預(yù)測層將這些層上的嵌入表示加權(quán)求和,得到各個節(jié)點(diǎn)的最終嵌入表示,用于預(yù)測。
1.1.1 嵌入聚合層
GCN 的中心思想是提取圖的空間結(jié)構(gòu)特征,主要思路是通過聚合圖中各個節(jié)點(diǎn)的特征來更新節(jié)點(diǎn)的表示。想要達(dá)成這樣的目的,就需要迭代地執(zhí)行圖的卷積,也就是將目標(biāo)節(jié)點(diǎn)周圍的鄰居的嵌入表示聚合到此節(jié)點(diǎn),生成目標(biāo)節(jié)點(diǎn)的新嵌入表示。這種聚合鄰居節(jié)點(diǎn)信息的方式可以用公式表示為
1.1.2 預(yù)測層
在LightGCN 中,需要訓(xùn)練的模型參數(shù)只有所有節(jié)點(diǎn)第0 層的嵌入,即所有用戶的嵌入表示和所有項目的嵌入表示,在它們被確定下來后,更高階的節(jié)點(diǎn)嵌入表示都可以由它們和LGC 計算得到。在第0 層嵌入的基礎(chǔ)上,做k次輕量圖卷積操作就可以得到第k層的嵌入表示,將每一層得到的嵌入表示加權(quán)求和,即可得到1 個用戶或者項目的最終嵌入表示為
利用用戶和項目的最終嵌入表示的內(nèi)積作為模型預(yù)測結(jié)果:
內(nèi)積結(jié)果可以作為用來生成推薦的排名分?jǐn)?shù)。
在預(yù)測層中,將每一層的嵌入表示加權(quán)求和的這一層組合操作很重要,原因主要有3 點(diǎn):一是隨著層數(shù)的增加,高階的嵌入表示會出現(xiàn)過平滑現(xiàn)象,圖中的每個節(jié)點(diǎn)的嵌入向量趨近相同,因此直接選取最后一層的嵌入作為最終表示并不利于后續(xù)的預(yù)測;二是每一層的嵌入表示代表的語義也不盡相同,例如,第1 層對具有交互的用戶和項目進(jìn)行平滑處理,第2 層對具有重疊交互項目(用戶)的用戶(項目)進(jìn)行平滑處理,更高層會有著更高階的作用,因此將不同層進(jìn)行層組合的操作得到的最終嵌入表示用于預(yù)測會更有效;三是層組合的操作可以代替圖卷積中的自連接操作并取得同樣的效果。
為了探究層組合對LightGCN 性能的影響,設(shè)計了如下的對照實驗:一組是用層組合的嵌入來作為最終表示的LightGCN;另一組是不用層組合,直接用最后一層的嵌入作為最終表示的LightGCN-s。將兩者分別在Gowalla 數(shù)據(jù)集中取不同層數(shù)上得到的評價指標(biāo)結(jié)果做對比,可以得到如圖2 所示的結(jié)果。
圖2 Gowalla 數(shù)據(jù)集LightGCN 及其變體不同評價指標(biāo)對比
本文選取2 種常用的推薦算法評價指標(biāo)來評估模型優(yōu)劣:一個是召回率(recall)rrecall,表示正確預(yù)測出的正樣本占實際正樣本的概率;另一個是歸一化折損累計增益(normalized discounted cumulative gain,NDCG)vNDCG。這2 個指標(biāo)是根據(jù)用戶與物品相關(guān)性的高低和推薦排名的先后順序得到的評價指標(biāo),取最終排序結(jié)果前20 個推薦項目來計算評價指標(biāo),即rrecall@20和vNDCG@20。
觀察圖2 中結(jié)果可以發(fā)現(xiàn),層組合的操作起著重要作用:一是層組合會聚合每層的嵌入,包括第0 層的嵌入也就是初始嵌入,這樣與在每層加入自連接操作是等價的;二是當(dāng)層數(shù)較高時,高階鄰居信息也會不斷聚合到目標(biāo)節(jié)點(diǎn),使得整張圖上的全部節(jié)點(diǎn)聚合得到的最終嵌入會越來越相似,簡單地取最后一層的嵌入作為最終表示會出現(xiàn)過平滑現(xiàn)象,效果會顯著下降,但是通過對每一層的嵌入加權(quán)求和得到的最終表示可以減緩由層數(shù)增加導(dǎo)致的過平滑的速度。
每一層捕獲不同的語義,因此不同層對最終表示的貢獻(xiàn)程度不同,影響力也不相同。根據(jù)這一點(diǎn)可以將最終表示的層組合的加權(quán)系數(shù)作為一個可訓(xùn)練的模型參數(shù),即將式(1)中的用注意力得分 αk來代替,利用注意力網(wǎng)絡(luò)進(jìn)行自動優(yōu)化,得到的最終嵌入表示會更加準(zhǔn)確,最終的推薦效果也會更好。最終可以得到1 個用戶或項目的嵌入表示為
對注意力得分 αk來說,最簡單的方法就是用一個權(quán)重參數(shù)來表示,但為了防止特征數(shù)據(jù)稀疏帶來的權(quán)重參數(shù)難以收斂問題,使用了一個注意力網(wǎng)絡(luò)來生成注意力得分。該注意力網(wǎng)絡(luò)的結(jié)構(gòu)是一個簡單的單全連接層加softmax 輸出層的結(jié)構(gòu),以用戶嵌入表示為例,其數(shù)學(xué)形式為
式中:W為嵌入聚合層到注意力網(wǎng)絡(luò)全連接層的權(quán)重矩陣,b為偏置向量,h為全連接層softmax 輸出層的權(quán)重向量。
注意力網(wǎng)絡(luò)將與整個模型一起參與梯度反向傳播的學(xué)習(xí)過程,得到最終的權(quán)重參數(shù):
本文作為LightGCN 的改進(jìn)算法,為了保證對比的公平性,因此實驗數(shù)據(jù)集與原LightGCN 相同,仍然選用Gowalla、Yelp2018 以及Amazon-Book 這3 種數(shù)據(jù)集,如表1 所示。
表1 數(shù)據(jù)集信息統(tǒng)計
2.2.1 實驗環(huán)境和設(shè)置
本文訓(xùn)練的設(shè)備參數(shù)如下:操作系統(tǒng)為Ubuntu 18.04,顯卡為GTX 2 060 Super,顯存8 GB,CPU 為i7-9700K,內(nèi)存16 GB。
2.2.2 超參數(shù)設(shè)置
所有模型的嵌入尺寸都固定為64,使用Xavier方法初始化嵌入?yún)?shù),使用Adam 優(yōu)化器,默認(rèn)學(xué)習(xí)率設(shè)置為0.001 以及默認(rèn)批次數(shù)量(batchsize)設(shè)置為1 024(為了提高速度,Amazon-book 數(shù)據(jù)集的batchsize 設(shè)置為4 096),L2 正則化系數(shù) λ多數(shù)情況下的最優(yōu)值是1 ×10-4。一般情況下,迭代次數(shù)(epoch)取1 000 時,模型可以收斂到滿意效果。
2.2.3 不同層數(shù)效果實驗
該部分實驗探究改進(jìn)后的LightGCN 在不同層數(shù)下的性能,如表2 所示。從實驗數(shù)據(jù)中可以看出,將層組合系數(shù)改進(jìn)為可通過注意力機(jī)制學(xué)習(xí)的模型參數(shù)后,并沒有影響到過擬合的趨勢,和原LightGCN 相同,仍然在3 層時取得最好性能,再增加層數(shù)仍會過擬合導(dǎo)致性能下降,但是下降幅度相比LightGCN 來講,減輕許多。
表2 不同數(shù)據(jù)集下本文算法在不同層數(shù)上的性能比較
2.2.4 LightGCN 改進(jìn)前后性能比較
將改進(jìn)后的算法與原LightGCN 做對比,因兩者都在卷積層數(shù)為3 時達(dá)到最好性能,因此,對比實驗統(tǒng)一取層數(shù)為3 得到的評價指標(biāo)進(jìn)行對比,對比結(jié)果如表3 所示。
表3 不同數(shù)據(jù)集下本文算法與原算法的性能比較
實驗結(jié)果證明,在同取3 層時,改進(jìn)算法與原算法都能達(dá)到最佳性能的情況下,采用注意力機(jī)制的層組合的LightGCN 比原LightGCN 在3 種數(shù)據(jù)集下的評價指標(biāo)都有所提升,說明層組合采用注意力機(jī)制是有效的,對性能提升有積極影響。
2.2.5 與其他前沿算法的對比實驗
目前較為前沿的、與本文算法有競爭力的推薦算法主要有3 個,一個是基于變分自動編碼器的一種基于項目的協(xié)同過濾模型Mult-VAE[14],另一個是通過加入圖拉普拉斯正則化因子來平滑矩陣分解的模型GRMF[15],以及它的變體GRMFnorm。表4 展示了與本文算法與這3 種前沿算法的對比,實驗結(jié)果表明,改進(jìn)的LightGCN 在3 個數(shù)據(jù)集上始終優(yōu)于其他方法。
表4 本文算法與幾種前沿算法的性能比較
本文針對目前前沿的推薦算法LightGCN進(jìn)行改進(jìn),通過執(zhí)行層組合操作與否的對比實驗發(fā)現(xiàn)了層組合對推薦結(jié)果存在影響,因此將層組合系數(shù)改為可利用注意力機(jī)制學(xué)習(xí)的模型參數(shù),對改進(jìn)后的算法進(jìn)行如下實驗并得出結(jié)論:1)不同層數(shù)的推薦結(jié)果顯示改進(jìn)后的算法仍存在過擬合趨勢,但有所緩解;2)同為3 層卷積層數(shù)時,相較原算法,在Gowalla 數(shù)據(jù)集下召回率提升5.04%,歸一化折損累計增益提升5.12%,證明改進(jìn)算法對推薦結(jié)果存在積極作用。本文算法相較于其他前沿算法在精度上有所提升,可以實現(xiàn)更好的個性化推薦效果。