李 馳,游小鈺,張 謐
(復(fù)旦大學(xué) 計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,上海 200433)
隨著互聯(lián)網(wǎng)的快速發(fā)展,個(gè)性化推薦系統(tǒng)已經(jīng)廣泛應(yīng)用于各個(gè)場(chǎng)景,如電子商城、視頻網(wǎng)站和社交軟件等。推薦系統(tǒng)的核心任務(wù)是預(yù)測(cè)一個(gè)用戶是否會(huì)和某個(gè)物品交互,如點(diǎn)擊、購(gòu)買或觀看等。協(xié)同過(guò)濾(Collaborative Filtering,CF)作為推薦系統(tǒng)的主要方法之一,是目前學(xué)術(shù)界和工業(yè)界研究的重點(diǎn)[1]。協(xié)同過(guò)濾最常用的框架是從用戶和物品的歷史交互記錄中建模出用戶和物品的潛在嵌入向量,常用的建模方法有矩陣分解[2]、深度神經(jīng)網(wǎng)絡(luò)[3]、自編碼器等[4]模型。
近年來(lái),圖卷積網(wǎng)絡(luò)(Graph Convolutional Network,GCN)得到越來(lái)越多的關(guān)注[5-7],其能同時(shí)端到端地學(xué)習(xí)節(jié)點(diǎn)的嵌入向量和圖結(jié)構(gòu)特征,在圖相關(guān)任務(wù)上表現(xiàn)出卓越的性能。圖卷積網(wǎng)絡(luò)中的一層圖卷積操作可以為每個(gè)節(jié)點(diǎn)聚合其鄰居節(jié)點(diǎn)的嵌入向量,通過(guò)遞歸地堆疊圖卷積層,該節(jié)點(diǎn)的向量表示就能夠同時(shí)包含局部的圖結(jié)構(gòu)特征及其高階鄰居節(jié)點(diǎn)的特征。由于推薦系統(tǒng)中用戶和物品的交互記錄是一個(gè)天然的二部圖,因此圖卷積網(wǎng)絡(luò)已經(jīng)成為推薦系統(tǒng)中熱門的研究方向[8]。其中模型結(jié)構(gòu)最輕量,時(shí)間復(fù)雜度最低的是He等人[9]提出的LightGCN模型,該模型的可訓(xùn)練參數(shù)僅有用戶和物品的嵌入向量,其圖卷積層的輸出是周圍鄰居節(jié)點(diǎn)的上一層嵌入向量的加權(quán)和,模型的最終輸出是所有圖卷積層輸出的加權(quán)和。
基于GCN的模型雖然已經(jīng)在推薦任務(wù)上取得了比較高的準(zhǔn)確度,但還存在計(jì)算開(kāi)銷大的問(wèn)題。以LightGCN模型為例,其計(jì)算開(kāi)銷主要來(lái)自于兩部分: ①在模型前向傳播階段,LightGCN需要執(zhí)行多次圖卷積操作。這涉及一個(gè)較大的稀疏鄰接矩陣和稠密參數(shù)矩陣的乘法,當(dāng)數(shù)據(jù)規(guī)模增大時(shí)需要花費(fèi)較多的時(shí)間。在Amazon-book數(shù)據(jù)集上這兩個(gè)矩陣的維度分別為144 242×144 242和144 242×64,而在LightGCN模型的整個(gè)訓(xùn)練過(guò)程中,這樣的大矩陣乘法計(jì)算需要執(zhí)行五百余萬(wàn)次(詳見(jiàn)4.4節(jié)分析)。如果使用GPU加速的話,就必須把兩個(gè)大矩陣全部放在GPU的顯存中,這對(duì)計(jì)算資源也提出了很高要求。②在反向傳播階段需要計(jì)算大量節(jié)點(diǎn)嵌入的梯度。由于LightGCN模型需要遞歸地聚合鄰居節(jié)點(diǎn)上一層的嵌入,對(duì)于K層的LightGCN模型而言,每個(gè)節(jié)點(diǎn)需要聚合K階以內(nèi)所有鄰居節(jié)點(diǎn)的嵌入,涉及的節(jié)點(diǎn)數(shù)量隨著層數(shù)增加以指數(shù)級(jí)增加,如表2的6~9行所示,在本文所使用的三個(gè)數(shù)據(jù)集上,4層的LightGCN模型平均為每個(gè)節(jié)點(diǎn)聚合了全圖一半的節(jié)點(diǎn),這導(dǎo)致在反向傳播階段會(huì)產(chǎn)生大量的梯度計(jì)算開(kāi)銷。一些采樣算法[10-13]如PinSAGE[4]可以在一定程度上緩解這個(gè)問(wèn)題,但是訓(xùn)練過(guò)程中依然存在遞歸的節(jié)點(diǎn)聚合,所以這些算法無(wú)法避免指數(shù)級(jí)增長(zhǎng)的計(jì)算開(kāi)銷,同時(shí)還可能會(huì)給模型訓(xùn)練引入偏差[8]。
近年來(lái)在圖節(jié)點(diǎn)分類(Node Classification)任務(wù)上,有一系列基于解耦圖卷積網(wǎng)絡(luò)(Decoupled GCN)的工作[14-21]致力于解決這個(gè)問(wèn)題。它們將圖卷積操作和模型的訓(xùn)練過(guò)程解耦,分為數(shù)據(jù)預(yù)處理和模型訓(xùn)練兩個(gè)階段。其中圖卷積操作僅在數(shù)據(jù)預(yù)處理階段執(zhí)行,將節(jié)點(diǎn)的屬性特征經(jīng)過(guò)多層圖卷積之后的輸出作為節(jié)點(diǎn)的新特征;在模型訓(xùn)練階段,只需要在新特征上訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò)分類器,不再需要執(zhí)行圖卷積操作聚合鄰居節(jié)點(diǎn)特征,從而避免了大量的計(jì)算開(kāi)銷。但在協(xié)同過(guò)濾任務(wù)中還沒(méi)有類似的工作,這是因?yàn)榻怦顖D卷積網(wǎng)絡(luò)依賴于節(jié)點(diǎn)原有的屬性特征,而在協(xié)同過(guò)濾模型中用戶和物品并沒(méi)有屬性特征可以使用,無(wú)法直接應(yīng)用上述解耦方法。
針對(duì)上述問(wèn)題,本文提出了基于解耦圖卷積網(wǎng)絡(luò)的協(xié)同過(guò)濾推薦模型(Decoupled Graph Convolutional Network for Collaborative Filtering,DeGCF)。文中創(chuàng)新性地面向推薦系統(tǒng)這一特殊任務(wù)設(shè)計(jì)了解耦圖卷積網(wǎng)絡(luò)模型的學(xué)習(xí)范式,分為兩個(gè)階段: ①模型參數(shù)初始化階段; ②模型訓(xùn)練階段。其中,圖卷積操作在模型參數(shù)初始化階段完成,從而達(dá)到將圖卷積操作與模型訓(xùn)練過(guò)程解耦的效果。具體地,在模型參數(shù)初始化階段先執(zhí)行多次圖卷積操作,更新用戶和物品的初始嵌入向量,使其包含局部圖結(jié)構(gòu)特征,在模型訓(xùn)練階段僅使用用戶和物品嵌入向量的內(nèi)積作為模型輸出;為了使節(jié)點(diǎn)的初始嵌入向量還包含全局圖結(jié)構(gòu)特征,設(shè)計(jì)了基于隨機(jī)投影的多樣性負(fù)采樣策略,并融合進(jìn)圖卷積操作中;為了緩解流行度偏差對(duì)模型訓(xùn)練的影響,設(shè)計(jì)了逆傾向分?jǐn)?shù)加權(quán)的損失函數(shù)。
本文主要貢獻(xiàn)如下:
(1) 首次將解耦圖卷積網(wǎng)絡(luò)模型應(yīng)用于推薦任務(wù)中,提出了DeGCF模型,將圖卷積操作與模型訓(xùn)練過(guò)程解耦,從而減少模型的計(jì)算開(kāi)銷,提高訓(xùn)練效率。
(2) 提出了負(fù)采樣增強(qiáng)的圖卷積機(jī)制,使得圖卷積操作能夠同時(shí)捕獲局部和全局的圖結(jié)構(gòu)特征,從而間接地增強(qiáng)了節(jié)點(diǎn)的初始嵌入向量。
(3) 在三個(gè)基準(zhǔn)數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果證明,本文方法的性能超過(guò)了目前主流的基于GCN的推薦模型,同時(shí)顯著降低了模型的計(jì)算開(kāi)銷。在Amazon-book數(shù)據(jù)集上相較于LightGCN模型性能提升了31%,訓(xùn)練效率提升了13倍,避免了五百余萬(wàn)次的全圖矩陣計(jì)算。
圖卷積網(wǎng)絡(luò)模型已經(jīng)被廣泛應(yīng)用于各種圖任務(wù)中,在推薦系統(tǒng)中用戶和物品可以視為圖節(jié)點(diǎn),用戶和物品的交互記錄可以視為邊,近年來(lái)許多基于GCN的協(xié)同過(guò)濾模型相繼被提出。Berg等人[22]提出的GC-MC模型將圖卷積網(wǎng)絡(luò)用于建模用戶-物品交互圖,但受限于其一層卷積層的設(shè)計(jì),無(wú)法聚合高階鄰居的信息。Wang等人[23]受GCN啟發(fā),提出的NGCF模型在鄰居聚合過(guò)程中加入特征變換以及非線性激活函數(shù),并堆疊多個(gè)卷積層以聚合高階鄰居的信息。Chen等人[24]提出的LR-GCCF模型在NGCF的基礎(chǔ)上加入了殘差連接,緩解了GCN中的過(guò)平滑問(wèn)題。He等人[9]提出的LightGCN模型在NGCF的基礎(chǔ)上簡(jiǎn)化了圖卷積操作,使得模型參數(shù)僅有用戶和物品的嵌入向量,取得了顯著的性能提升。Wang等人[25]提出的DGCF模型在LightGCN的基礎(chǔ)上細(xì)粒度地考慮了用戶-物品間的交互意圖并映射到最終的分離式嵌入向量。Wu等人[26]提出的SGL模型在LightGCN的基礎(chǔ)上引入了對(duì)比學(xué)習(xí),以實(shí)現(xiàn)節(jié)點(diǎn)嵌入的自監(jiān)督學(xué)習(xí)。此外還有一些研究工作從引入注意力機(jī)制[27]、多行為學(xué)習(xí)[28]、引入額外信息[29]等方面改進(jìn)了基于GCN的推薦模型。
現(xiàn)有的研究工作往往專注于設(shè)計(jì)各種復(fù)雜精妙的圖卷積層,但這些模型在訓(xùn)練過(guò)程中的每一輪、每一批次都需要遞歸地執(zhí)行多次圖卷積操作,這在數(shù)據(jù)規(guī)模較大時(shí)會(huì)產(chǎn)生大量的內(nèi)存占用和計(jì)算時(shí)間。近期一些工作通過(guò)采樣方法減少圖的大小來(lái)緩解這一問(wèn)題,如Hamilton等人[10]提出的GraphSAGE模型在每個(gè)圖卷積層中隨機(jī)采樣固定數(shù)量的鄰居節(jié)點(diǎn)進(jìn)行聚合,Ying等人[30]提出的PinSAGE模型采用隨機(jī)游走采樣替代隨機(jī)采樣。此外還有一些工作[31]針對(duì)每個(gè)用戶-物品交互記錄從原始圖中重建一個(gè)小規(guī)模的子圖。但是采樣方法或多或少都會(huì)損失一部分信息,從而給模型的訓(xùn)練引入偏差,而且這些算法在模型的每輪訓(xùn)練中依然需要遞歸地執(zhí)行多次圖卷積操作,本質(zhì)上指數(shù)級(jí)增長(zhǎng)的計(jì)算開(kāi)銷依然存在。
最近有研究[5]指出,GCN的性能收益主要來(lái)源于圖卷積層中的特征傳播操作,因此催生了一系列解耦圖卷積網(wǎng)絡(luò)模型,這類模型的共同點(diǎn)是將圖卷積操作與模型的訓(xùn)練過(guò)程解耦,只在數(shù)據(jù)預(yù)處理階段利用圖卷積操作對(duì)節(jié)點(diǎn)的屬性特征進(jìn)行特征傳播,模型中不再包含圖卷積層。如Wu等人[14]提出的SGC模型,在數(shù)據(jù)預(yù)處理階段將節(jié)點(diǎn)原有的屬性特征經(jīng)過(guò)K層圖卷積操作的輸出作為節(jié)點(diǎn)的新特征,之后只需要在新的節(jié)點(diǎn)特征上訓(xùn)練一個(gè)多層感知機(jī)分類器。Emanuele等人[6]提出的SIGN模型為了利用節(jié)點(diǎn)不同感受野的特征,將1~K層圖卷積操作的輸出拼接起來(lái)作為節(jié)點(diǎn)的新特征。Sun等人[16]提出的SAGN模型和Zhang等人[20]提出的GAMLP模型則是利用注意力機(jī)制融合不同層的特征。Zhang等人[21]將上述工作歸納總結(jié),提出的PaSca系統(tǒng)可以自動(dòng)搜索出每個(gè)數(shù)據(jù)集中最優(yōu)的解耦圖卷積網(wǎng)絡(luò)模型。
然而將上述工作直接遷移至協(xié)同過(guò)濾任務(wù)中并不容易,這是因?yàn)樵谏鲜龉ぷ魉芯康墓?jié)點(diǎn)分類任務(wù)中,節(jié)點(diǎn)具有屬性特征可以使用,因此它們可以對(duì)節(jié)點(diǎn)的屬性特征進(jìn)行圖卷積操作,但在協(xié)同過(guò)濾模型中用戶和物品節(jié)點(diǎn)并沒(méi)有屬性特征。據(jù)我們所知,本文是第一個(gè)將解耦圖卷積網(wǎng)絡(luò)模型應(yīng)用在推薦任務(wù)中的工作。
定義用戶集合U={u1,u2,…,uM}和物品集合I={i1,i2,…,iN},其中,|U|=M,|I|=N。用戶和物品的交互矩陣Y∈{0,1}M×N定義為:
(1)
通常交互矩陣Y極其稀疏,僅有少量元素為1。因此推薦系統(tǒng)的目標(biāo)是根據(jù)已觀測(cè)到的用戶-物品交互數(shù)據(jù)建立模型預(yù)測(cè)可能出現(xiàn)的用戶-物品交互?;贕CN的協(xié)同過(guò)濾模型通常利用用戶-物品交互矩陣Y建立一個(gè)無(wú)向二分圖G={U,I,A},其中,U和I分別代表用戶節(jié)點(diǎn)和物品節(jié)點(diǎn),A是圖G的鄰接矩陣,如式(2)所示。
(2)
在實(shí)際運(yùn)算時(shí)更常使用對(duì)稱歸一化后的鄰接矩陣,如式(3)所示。
(3)
其中,對(duì)角矩陣D對(duì)角線上的元素是節(jié)點(diǎn)的度數(shù)。因此推薦系統(tǒng)中的點(diǎn)擊預(yù)測(cè)問(wèn)題可以看作二分圖G上的鏈接預(yù)測(cè)問(wèn)題。
為了便于理解DeGCF的模型結(jié)構(gòu)與訓(xùn)練范式,圖1對(duì)比了LightGCN模型和DeGCF模型。LightGCN模型的訓(xùn)練過(guò)程如圖1(a)所示,經(jīng)過(guò)多層圖卷積操作后,模型輸出的用戶u和物品i的向量表示已經(jīng)聚合了用戶u和物品i及其k階鄰居的嵌入向量,用戶u和物品i所有k階向量表示加權(quán)和的內(nèi)積作為L(zhǎng)ightGCN模型的預(yù)測(cè)結(jié)果,帶入損失函數(shù)中計(jì)算梯度,反向更新用戶u和物品i以及它們所有k階鄰居嵌入向量的參數(shù)[圖1(b)中的粗虛線]。因此在LightGCN中圖卷積操作和模型的訓(xùn)練過(guò)程是耦合在一起的。
圖1 LightGCN和DeGCF模型對(duì)比圖
與1.2節(jié)所介紹的解耦范式類似,DeGCF模型將圖卷積操作與模型的訓(xùn)練過(guò)程解耦,不同的是DeGCF在模型參數(shù)初始化階段執(zhí)行多次負(fù)采樣增強(qiáng)的圖卷積操作初始化所有用戶和物品的嵌入向量,如圖1(b)所示;在DeGCF訓(xùn)練過(guò)程中,用戶u和物品i的嵌入向量eu和ei的內(nèi)積直接作為DeGCF模型的輸出,帶入逆傾向分?jǐn)?shù)加權(quán)的損失函數(shù)中計(jì)算梯度,反向更新eu和ei的參數(shù),如圖1(c)所示。
在傳統(tǒng)GCN模型中,用戶和物品的初始嵌入向量是隨機(jī)初始化的,參數(shù)服從正態(tài)分布,如式(4)所示。
E0~N(μ,σ2I)
(4)
其中,E0∈(M+N)×d是用戶和物品節(jié)點(diǎn)的初始嵌入向量組成的矩陣,d是嵌入向量的維度;μ和σ2分別是正態(tài)分布的期望和方差,I是單位矩陣。
在DeGCF參數(shù)初始化階段,對(duì)式(4)生成的用戶和物品節(jié)點(diǎn)的初始嵌入向量執(zhí)行多層圖卷積操作。以用戶節(jié)點(diǎn)u為例,第k層圖卷積操作的輸出如式(5)所示。
(5)
(6)
由式(4)~式(6)得到的節(jié)點(diǎn)的嵌入向量已經(jīng)包含了局部的圖結(jié)構(gòu)特征,這是因?yàn)榻?jīng)過(guò)多層圖卷積后,在圖中距離相近節(jié)點(diǎn)的嵌入向量已經(jīng)比較相似了。
3.1.1 負(fù)采樣增強(qiáng)的圖卷積
為了進(jìn)一步增強(qiáng)節(jié)點(diǎn)的初始嵌入向量中的圖結(jié)構(gòu)特征,還應(yīng)該考慮在初始化階段引入全局的圖結(jié)構(gòu)特征。在推薦系統(tǒng)中,每個(gè)用戶只對(duì)一小部分物品感興趣,絕大多數(shù)的物品都是該用戶不太可能去交互的(對(duì)于該用戶而言是負(fù)樣本),這一點(diǎn)反映到用戶-物品二分圖中則為: 圖中距離相近的節(jié)點(diǎn)的嵌入向量應(yīng)該比較相似,距離較遠(yuǎn)的節(jié)點(diǎn)的嵌入向量應(yīng)該不相似,如圖2所示。
圖2 負(fù)采樣增強(qiáng)的圖卷積機(jī)制示意圖
基于上述分析,本文設(shè)計(jì)了負(fù)采樣增強(qiáng)的圖卷積操作,以用戶u為例,式(5)改寫成了式(7)。
(7)
3.1.2 基于隨機(jī)投影的多樣性負(fù)采樣策略
根據(jù)Johnson-Lindenstrauss引理[33],高維空間中的點(diǎn)集經(jīng)過(guò)線性投影到低維空間后相對(duì)距離可以得到一定誤差內(nèi)的保持,因此每次負(fù)采樣時(shí)先使用高斯分布生成一組正交的單位向量P={p1,p2,…,pH},pk∈1×d,將Cu中每個(gè)節(jié)點(diǎn)的第k-1層圖卷積輸出的向量分別與P中的向量做內(nèi)積,然后求平均,如式(8)所示。
(8)
3.1.3 矩陣形式表達(dá)
根據(jù)譜圖理論知識(shí)[34],式(7)的矩陣形式表達(dá)如式(9)所示。
(9)
E←row_normlize(EK)
(10)
其中row_normlize表示對(duì)矩陣每一行做歸一化。
經(jīng)過(guò)上述方法初始化參數(shù)后,用戶和物品的嵌入向量已經(jīng)包含了局部和全局的圖結(jié)構(gòu)特征,DeGCF在模型訓(xùn)練和預(yù)測(cè)階段不再需要反復(fù)執(zhí)行圖卷積操作,如圖1(c)所示,用戶u和物品i的嵌入向量的內(nèi)積作為DeGCF模型的輸出,表示物品i對(duì)于用戶u的推薦分?jǐn)?shù),如式(11)所示。
(11)
3.2.1 損失函數(shù)
由于推薦系統(tǒng)存在流行度偏差的問(wèn)題[35],用戶-物品交互數(shù)據(jù)通常服從基于流行度的長(zhǎng)尾分布,即一些熱門物品占據(jù)了絕大部分的交互數(shù)據(jù)。而GCN模型還會(huì)進(jìn)一步放大訓(xùn)練數(shù)據(jù)中的偏差[36]。為了無(wú)偏地訓(xùn)練模型參數(shù),本文利用逆傾向分?jǐn)?shù)(Inverse Propensity Score, IPS)[37]加權(quán)二分類交叉熵?fù)p失函數(shù),修正每條交互數(shù)據(jù)的損失貢獻(xiàn)值,從而調(diào)整訓(xùn)練數(shù)據(jù)的分布,損失函數(shù)如式(12)所示。
(12)
3.2.2 訓(xùn)練策略
不同于傳統(tǒng)的基于GCN的協(xié)同過(guò)濾模型同時(shí)端到端地學(xué)習(xí)用戶和物品的嵌入向量以及圖結(jié)構(gòu)特征,DeGCF在模型參數(shù)初始化階段多次利用式(9)和式(10)將圖結(jié)構(gòu)特征注入到用戶和物品的嵌入向量中,然后再利用式(12)訓(xùn)練模型參數(shù)。然而隨著訓(xùn)練過(guò)程的進(jìn)行,用戶和物品的嵌入向量不斷變化,會(huì)導(dǎo)致其中包含的圖結(jié)構(gòu)特征逐漸失真。為了維持模型中的圖結(jié)構(gòu)特征,進(jìn)一步提高模型的精度,本文針對(duì)性地設(shè)計(jì)了相應(yīng)的訓(xùn)練策略。具體地,在訓(xùn)練過(guò)程中當(dāng)模型在驗(yàn)證集上的性能開(kāi)始下降時(shí),則判定模型中的圖結(jié)構(gòu)特征已經(jīng)失真,此時(shí)再用式(9)和式(10)更新一次模型參數(shù),為模型補(bǔ)充圖結(jié)構(gòu)特征。其步驟如算法1所示。
算法1 DeGCF模型訓(xùn)練策略
需要說(shuō)明的是,模型訓(xùn)練過(guò)程中的Step 8~10執(zhí)行次數(shù)非常有限,例如,在Amazon-book數(shù)據(jù)集上僅為3次,具體計(jì)算開(kāi)銷分析詳見(jiàn)4.4節(jié)。
表1 模型復(fù)雜度對(duì)比
4.1.1 數(shù)據(jù)集
參照大多數(shù)協(xié)同過(guò)濾推薦模型研究工作[9,21-26],本文在三個(gè)公開(kāi)基準(zhǔn)推薦數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn): Gowalla0F(1)https://snap.stanford.edu/data/loc-gowalla.html,Yelp20181F(2)https://www.yelp.com/dataset和Amazon-book2F(3)https://jmcauley.ucsd.edu/data/amazon。為了公平地對(duì)比模型性能,本文的數(shù)據(jù)集處理和訓(xùn)練集、測(cè)試集劃分與文獻(xiàn)[9,21-26]保持一致,過(guò)濾交互少于10的用戶和物品,數(shù)據(jù)集按0.7∶0.1/0.2的比例劃分為訓(xùn)練集、驗(yàn)證集和測(cè)試集。表2顯示了各個(gè)數(shù)據(jù)集的統(tǒng)計(jì)信息。
表2 數(shù)據(jù)集分析
4.1.2 評(píng)價(jià)指標(biāo)
參照大多數(shù)協(xié)同過(guò)濾推薦模型研究工作[9,23-26],本實(shí)驗(yàn)采用Recall@20和NDCG@20作為模型推薦準(zhǔn)確度的評(píng)價(jià)指標(biāo),該指標(biāo)越大越好。
參照大多數(shù)已有工作[2,5-13,14-16,30],本實(shí)驗(yàn)采用一個(gè)epoch的訓(xùn)練時(shí)間(s/epoch)作為模型時(shí)間復(fù)雜度的評(píng)價(jià)指標(biāo),該指標(biāo)越小越好。
4.1.3 對(duì)比方法
本文將所提出方法與7個(gè)基于GCN的協(xié)同過(guò)濾模型進(jìn)行對(duì)比:
(1)GCMC[22]GCMC利用單個(gè)圖卷積層在用戶-物品二分圖上聚合一階鄰居的協(xié)同信號(hào),生成用戶和物品的向量表示,實(shí)現(xiàn)端到端的預(yù)測(cè)。
(2)PinSage[30]PinSAGE將GraphSage[10]應(yīng)用在推薦任務(wù)中,每個(gè)卷積層隨機(jī)采樣一部分鄰居節(jié)點(diǎn)聚合其嵌入向量。
(3)NGCF[25]NGCF將經(jīng)典的GCN模型應(yīng)用在協(xié)同過(guò)濾推薦模型上,保留鄰居聚合機(jī)制中的特征變換矩陣和非線性激活函數(shù)。
(4)LR-GCCF[24]LR-GCCF在NGCF的基礎(chǔ)上移除了鄰居聚合機(jī)制中的非線性激活函數(shù),同時(shí)為了解決過(guò)平滑問(wèn)題引入了殘差連接。
(5)LightGCN[9]LightGCN是目前模型結(jié)構(gòu)最輕量、時(shí)間復(fù)雜度最低的基于GCN的協(xié)同過(guò)濾模型,其可訓(xùn)練模型參數(shù)僅有節(jié)點(diǎn)的嵌入向量。本文的DeGCF則是在LightGCN的基礎(chǔ)上做進(jìn)一步簡(jiǎn)化和改進(jìn)得到的,二者對(duì)比如圖1所示。
(6)DGCF[25]DGCF考慮分離出用戶的不同意圖,從而可以細(xì)粒度地建模用戶的興趣偏好。
(7)SGL-ED[26]SGL在LightGCN的基礎(chǔ)上利用圖擴(kuò)增技術(shù)生成不同子圖,然后使用對(duì)比學(xué)習(xí)損失函數(shù)實(shí)現(xiàn)節(jié)點(diǎn)的自監(jiān)督學(xué)習(xí)。這里我們采用文獻(xiàn)[26]中表現(xiàn)最好的SGL-ED作為對(duì)比方法。
(8)DeGCF本文提出的基于解耦圖卷積網(wǎng)絡(luò)的協(xié)同過(guò)濾推薦模型。
(9)DeGCF-不訓(xùn)練只利用3.1節(jié)提出的多層圖卷積操作初始化DeGCF模型參數(shù),但不對(duì)模型進(jìn)行任何訓(xùn)練。
4.1.4 參數(shù)設(shè)置
在本文中DeGCF是使用PyTorch框架實(shí)現(xiàn)的,利用Nvidia RTX 2080 Ti GPU顯卡加速計(jì)算。和對(duì)比方法保持一致,DeGCF的模型維度d設(shè)置為64。使用Adam[38]作為優(yōu)化算法,學(xué)習(xí)率設(shè)置為0.001。L2正則化系數(shù)設(shè)置為0.000 1,訓(xùn)練批大小(batch)設(shè)置為1 024。模型參數(shù)初始化階段圖卷積層數(shù)K設(shè)置為10,用于隨機(jī)投影的正交向量的數(shù)量H設(shè)置為64。當(dāng)模型在驗(yàn)證集上Recall指標(biāo)連續(xù)下降5個(gè)epoch時(shí)應(yīng)用一次圖卷積操作更新嵌入向量。在Gowalla、Yelp2018、Amazon-book數(shù)據(jù)集上損失函數(shù)負(fù)樣本數(shù)量分別設(shè)置為800、500、500。所有參數(shù)都在驗(yàn)證集上進(jìn)行了調(diào)整。
本文在三個(gè)基準(zhǔn)數(shù)據(jù)集上比較DeGCF模型與對(duì)比方法的推薦準(zhǔn)確度與訓(xùn)練時(shí)間,實(shí)驗(yàn)結(jié)果如表2所示。其中,DeGCF模型的實(shí)驗(yàn)結(jié)果是5個(gè)隨機(jī)種子重復(fù)實(shí)驗(yàn)的平均值,對(duì)比模型的實(shí)驗(yàn)結(jié)果中Recall@20和NDCG@20的皆來(lái)自于它們?cè)谡撐腫9,21-26]里報(bào)告的最佳結(jié)果。
觀察表3的實(shí)驗(yàn)結(jié)果,可以得出以下結(jié)論:
表3 不同模型在基準(zhǔn)數(shù)據(jù)集上的推薦準(zhǔn)確度與訓(xùn)練時(shí)間
(1) 經(jīng)過(guò)多層圖卷積操作初始化后的DeGCF模型,即使不進(jìn)行任何訓(xùn)練,就已經(jīng)有了一定的推薦準(zhǔn)確度,在Gowalla、Yelp2018和Amazon-book數(shù)據(jù)集上的Recall分別為0.123 1、0.038 2和0.016 6,已經(jīng)逼近了早期的GCN模型GC-MC和PinSage。這說(shuō)明了利用負(fù)采樣增強(qiáng)的圖卷積操作初始化模型,節(jié)點(diǎn)的初始嵌入向量已經(jīng)包含了局部和全圖的圖結(jié)構(gòu)特征。
(2) 與基于GCN的模型相比,DeGCF的性能在Gowalla、Yelp2018和Amazon-book數(shù)據(jù)集上分別提升了5%~38%,5%~54%和13%~87%。相較于最為廣泛使用的LightGCN模型,DeGCF的性能分別提升了5%,10%和31%。這說(shuō)明DeGCF將圖卷積操作與模型訓(xùn)練過(guò)程解耦可以更好地學(xué)習(xí)圖結(jié)構(gòu)特征,同時(shí)基于節(jié)點(diǎn)度數(shù)的逆傾向加權(quán)的損失函數(shù)可以緩解流行度偏差對(duì)模型的影響。
(3) 除了DeGCF之外,沒(méi)有一種對(duì)比方法可以在所有數(shù)據(jù)集上都取得最優(yōu)的實(shí)驗(yàn)效果,這說(shuō)明固定的模型結(jié)構(gòu)并不能很好地適應(yīng)所有推薦場(chǎng)景。在DeGCF中圖卷積操作并不是固定于模型結(jié)構(gòu)中的,而是根據(jù)訓(xùn)練反饋動(dòng)態(tài)調(diào)用的,并且負(fù)采樣策略進(jìn)一步增強(qiáng)了圖卷積操作,較好地維持了模型中的圖結(jié)構(gòu)特征。
(4) DeGCF模型在三個(gè)數(shù)據(jù)集上的每epoch訓(xùn)練時(shí)間顯著少于其他對(duì)比模型。對(duì)比模型中時(shí)間復(fù)雜度最低的是模型結(jié)構(gòu)最輕量的LightGCN模型,但其在訓(xùn)練過(guò)程中的每個(gè)epoch仍然需要執(zhí)行若干次圖卷積操作,其在Gowalla、Yelp2018和Amazon-book數(shù)據(jù)集上一個(gè)epoch的訓(xùn)練時(shí)間分別為33 s、64 s和222 s。而DeGCF模型將圖卷積操作與訓(xùn)練過(guò)程解耦,其在三個(gè)數(shù)據(jù)集上的每一個(gè)epoch的訓(xùn)練時(shí)間分別僅為28s、36s和51s。
(5) 由于圖卷積操作涉及全圖的鄰接矩陣與參數(shù)矩陣的乘法,因而基于GCN的模型每個(gè)epoch耗時(shí)隨著數(shù)據(jù)規(guī)模的增大而顯著上升。例如,所有對(duì)比模型在Amazon-book數(shù)據(jù)集上一個(gè)epoch的訓(xùn)練時(shí)間的平均值是Gowalla數(shù)據(jù)集上的7.4倍。而DeGCF模型的每個(gè)epoch耗時(shí)僅隨數(shù)據(jù)規(guī)模增大而線性增長(zhǎng),其在Amazon-book數(shù)據(jù)集上的每個(gè)epoch訓(xùn)練時(shí)間僅是Gowalla數(shù)據(jù)集上的1.8倍。
為了進(jìn)一步分析DeGCF在訓(xùn)練效率上的優(yōu)越性,本節(jié)以表3中時(shí)間復(fù)雜度最低的LightGCN模型作為代表對(duì)比方法,詳細(xì)地從兩方面進(jìn)行分析: (1)模型達(dá)到最優(yōu)性能所需要的訓(xùn)練總時(shí)間;(2)限定訓(xùn)練時(shí)間模型所能達(dá)到的最優(yōu)性能。為了保證公平對(duì)比模型的訓(xùn)練效率,所有效率對(duì)比實(shí)驗(yàn)都在相同的硬件環(huán)境和軟件框架下進(jìn)行,并將所有影響訓(xùn)練時(shí)間的超參數(shù)進(jìn)行了對(duì)齊。
4.3.1 對(duì)比模型訓(xùn)練總時(shí)間
表4給出了LightGCN和DeGCF在三個(gè)數(shù)據(jù)集上模型訓(xùn)練總時(shí)間對(duì)比,可以看出,DeGCF的訓(xùn)練效率顯著優(yōu)于LightGCN,在Gowalla、Yelp2018和Amazon-book數(shù)據(jù)集上DeGCF達(dá)到模型最優(yōu)性能所需要的訓(xùn)練時(shí)間分別是LightGCN的1/4,1/10,1/13,這說(shuō)明將圖卷積操作與訓(xùn)練過(guò)程解耦,先將圖結(jié)構(gòu)特征注入到模型中可以幫助模型訓(xùn)練快速收斂。
表4 模型訓(xùn)練總時(shí)間對(duì)比
4.3.2 限定訓(xùn)練時(shí)間對(duì)比模型性能
圖3繪制了在三個(gè)數(shù)據(jù)集上: ①限定35min的訓(xùn)練時(shí)間DeGCF模型所能達(dá)到的Recall指標(biāo); ②限定35min的訓(xùn)練時(shí)間LightGCN模型所能達(dá)到的Recall指標(biāo); ③表3中所列的其他所有對(duì)比方法在不限時(shí)訓(xùn)練條件下所能達(dá)到的最高Recall指標(biāo)(用“SOTA-不限時(shí)”表示,在三個(gè)數(shù)據(jù)集上分別為DGCF、SGL-ED和SGL-ED)。從圖3可以看出,在相同的訓(xùn)練時(shí)間下,DeGCF在測(cè)試集上的推薦效果顯著優(yōu)于LightGCN。限定35min的訓(xùn)練時(shí)間,DeGCF在Gowalla、Yelp2018和Amazon-book數(shù)據(jù)集上的Recall指標(biāo)分別可以達(dá)到0.185 5,0.069 2,0.048 18,而同等訓(xùn)練時(shí)間LightGCN分別只能達(dá)到0.153 6,0.048 0,0.024 5。值得注意的是即使在數(shù)據(jù)規(guī)模最大的Amazon-book數(shù)據(jù)集上,訓(xùn)練35min的DeGCF的Recall指標(biāo)也已經(jīng)超過(guò)了所有對(duì)比方法所能達(dá)到的最佳性能(SGL-ED的0.047 8)。
圖3 相同訓(xùn)練時(shí)間模型性能對(duì)比
表5統(tǒng)計(jì)了DeGCF和3層的LightGCN模型訓(xùn)練過(guò)程中的全圖矩陣計(jì)算次數(shù)。全圖矩陣計(jì)算是指鄰接矩陣和嵌入向量矩陣的乘法,即式(9)。以Amazon-book數(shù)據(jù)集為例,3層的LightGCN需要訓(xùn)練741個(gè)epoch訓(xùn)練至模型收斂,每個(gè)epoch包含2 325個(gè)batch,每個(gè)batch模型執(zhí)行一次前向計(jì)算,一次前向計(jì)算需要三次全圖矩陣計(jì)算,因此總共需要5 168 475次全圖矩陣計(jì)算。而DeGCF在訓(xùn)練過(guò)程中僅僅需要執(zhí)行3次全圖矩陣計(jì)算(算法1中Step 8~10)。
表5 模型訓(xùn)練過(guò)程計(jì)算開(kāi)銷對(duì)比
雖然訓(xùn)練LightGCN需要數(shù)百萬(wàn)次的大矩陣計(jì)算,但是由于GPU可以顯著加速矩陣運(yùn)算,因此LightGCN的訓(xùn)練耗時(shí)還可以忍受,但前提是有足夠大顯存的GPU。此外,在模型訓(xùn)練完成后的推斷階段,LightGCN依然需要執(zhí)行全圖矩陣計(jì)算,這更不利于其在工業(yè)界的現(xiàn)實(shí)場(chǎng)景中應(yīng)用。
由表5可以看出,DeGCF的全圖矩陣計(jì)算次數(shù)幾乎可以忽略不計(jì),可以將其在更廉價(jià)的內(nèi)存中完成。此外,在訓(xùn)練完成后的推斷階段,DeGCF只需要節(jié)點(diǎn)嵌入向量做內(nèi)積,無(wú)需全圖矩陣計(jì)算。因此DeGCF模型的訓(xùn)練和推斷的計(jì)算開(kāi)銷遠(yuǎn)小于LightGCN,這也是將圖卷積解耦的優(yōu)勢(shì)所在。
圖4 圖卷積操作不同參數(shù)
圖5展示了在Gowalla數(shù)據(jù)集上DeGCF模型的不同變體的實(shí)驗(yàn)結(jié)果。-IPS表示將損失函數(shù)中的基于節(jié)點(diǎn)度數(shù)的逆傾向分?jǐn)?shù)加權(quán)移除,-GC表示將DeGCF中的所有圖卷積操作移除。由圖5可以看出,移除任意模塊DeGCF的性能都會(huì)明顯降低,這驗(yàn)證了本文設(shè)計(jì)的各個(gè)模塊的有效性。
圖5 DeGCF不同變體實(shí)驗(yàn)結(jié)果
本文提出了基于解耦圖卷積網(wǎng)絡(luò)的協(xié)同過(guò)濾推薦模型,將圖卷積操作與模型訓(xùn)練過(guò)程解耦,不但可以更好地學(xué)習(xí)圖結(jié)構(gòu)特征,還能減小計(jì)算開(kāi)銷。設(shè)計(jì)了基于隨機(jī)投影的多樣性負(fù)采樣策略,并融合進(jìn)圖卷積操作,進(jìn)一步增強(qiáng)了模型中的圖結(jié)構(gòu)特征。利用基于逆傾向分?jǐn)?shù)加權(quán)的損失函數(shù)訓(xùn)練模型,可緩解流行度偏差對(duì)模型訓(xùn)練的影響。在三個(gè)基準(zhǔn)數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,本文所提方法性能優(yōu)越且計(jì)算開(kāi)銷低。