劉 歡,李曉戈*,胡立坤,胡飛雄,王鵬華
(1.西安郵電大學(xué)計(jì)算機(jī)學(xué)院,西安 710121;2.陜西省網(wǎng)絡(luò)數(shù)據(jù)分析與智能處理重點(diǎn)實(shí)驗(yàn)室(西安郵電大學(xué)),西安 710121;3.深圳騰訊計(jì)算機(jī)系統(tǒng)有限公司智能化運(yùn)維部,廣東深圳 518000)
隨著互聯(lián)網(wǎng)技術(shù)的進(jìn)步,人們可以獲取到大量的在線內(nèi)容,比如新聞、電影以及各種商品等。但在線信息的爆炸性增長經(jīng)常讓用戶不堪重負(fù),推薦系統(tǒng)則是一個(gè)有效的信息過濾工具,在減輕信息過載的同時(shí)又可以為用戶提供良好的體驗(yàn)。推薦系統(tǒng)通常會(huì)搜索并選擇較小數(shù)量的內(nèi)容來滿足用戶的個(gè)性化興趣。協(xié)同過濾算法是一種經(jīng)典的推薦技術(shù),它將用戶以及物品表示為向量形式,通過特定操作(內(nèi)積、神經(jīng)網(wǎng)絡(luò)[1]等)對(duì)它們的交互進(jìn)行建模;然而,協(xié)同過濾算法通常都會(huì)面臨稀疏性以及冷啟動(dòng)等問題。為了緩解基于協(xié)同過濾的推薦系統(tǒng)的稀疏性和冷啟動(dòng)問題,研究人員通常會(huì)收集用戶和物品的屬性,并設(shè)計(jì)精巧的算法來利用這些額外的信息[2]。
最近的一些研究[3-6]都使用了物品屬性來進(jìn)行建模,這些研究成果表明屬性并不是孤立的,而是被相互連接起來的,其中一種形式就是知識(shí)圖譜(Knowledge Graph,KG)。KG 是一種典型的異構(gòu)網(wǎng)絡(luò),它的每個(gè)節(jié)點(diǎn)代表一個(gè)實(shí)體,這些實(shí)體可以是物品也可以是屬性,兩個(gè)存在關(guān)系的實(shí)體由一條邊相連。KG擁有豐富的語義關(guān)聯(lián)信息,可以為推薦系統(tǒng)提供豐富的輔助信息。與沒有KG 輔助的推薦模型相比,使用KG 輔助的推薦模型可以讓推薦結(jié)果擁有以下三個(gè)特征[7]:1)精確性。豐富的語義相關(guān)信息可以發(fā)掘更深層次的隱藏關(guān)系并且提高結(jié)果的準(zhǔn)確率。2)多樣性。KG 中多類別的關(guān)系可以擴(kuò)展用戶興趣,合理地發(fā)散推薦結(jié)果,提高推薦結(jié)果的多樣性。3)可解釋性。KG可以連接用戶的歷史點(diǎn)擊記錄和推薦記錄,為推薦系統(tǒng)提供可解釋性。雖然KG 有著上述優(yōu)點(diǎn),但是由于KG 天然的高維性以及異構(gòu)性,如何利用KG 進(jìn)行推薦仍然是一個(gè)挑戰(zhàn)。目前的一種可行方法就是KG 嵌入,將KG 中的實(shí)體或者關(guān)系映射為低維表示向量。然而,一些常用的KG 嵌入方法,諸如TransE[8]和TransR[9]等,都側(cè)重于對(duì)語義關(guān)聯(lián)進(jìn)行建模,更適合于KG 補(bǔ)全和鏈路預(yù)測(cè)等圖應(yīng)用,而不是推薦。在圖嵌入的方法中,圖的建模和特征表示與下游任務(wù)是獨(dú)立的,下游任務(wù)獲得的結(jié)果無法用來優(yōu)化圖的特征表示;而且這種方法缺乏歸納能力,當(dāng)有新節(jié)點(diǎn)加入時(shí),需要重新學(xué)習(xí)整個(gè)圖的特征表示。為了解決這些問題,本文提出一種基于知識(shí)圖譜驅(qū)動(dòng)的端到端圖神經(jīng)網(wǎng)絡(luò)模型(Knowledge Graph driven Learning Network,KGLN),利用KG 中的語義相關(guān)信息,驅(qū)動(dòng)用戶以及物品的表示學(xué)習(xí)。在端到端模型中,下游任務(wù)得到的結(jié)果可以用來優(yōu)化圖的特征表示并且具備歸納能力,當(dāng)有新節(jié)點(diǎn)加入時(shí),通過共享參數(shù)可以直接獲得該節(jié)點(diǎn)的特征表示。
KGLN 中,在實(shí)體表示學(xué)習(xí)的過程中根據(jù)用戶偏好來影響鄰居節(jié)點(diǎn)聚合的權(quán)重,這樣做有兩個(gè)優(yōu)點(diǎn):1)鄰居節(jié)點(diǎn)擁有不同的權(quán)重,聚合時(shí)可以讓當(dāng)前實(shí)體獲得更加精確的表示,提高推薦的準(zhǔn)確率;2)由于用戶偏好的影響,在學(xué)習(xí)過程中可以擴(kuò)展到更多與用戶興趣相關(guān)的內(nèi)容,可以提高推薦的多樣性。
圖神經(jīng)網(wǎng)絡(luò)旨在將神經(jīng)網(wǎng)絡(luò)應(yīng)用于非歐氏空間的數(shù)據(jù)(如圖數(shù)據(jù))來進(jìn)行特征學(xué)習(xí)。圖卷積神經(jīng)網(wǎng)絡(luò)(Graph Convolutional neural Network,GCN)由Kpif 于2017 年提出[10],它為圖結(jié)構(gòu)數(shù)據(jù)的處理提供了一種嶄新的思路,將卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CCN)應(yīng)用到了圖數(shù)據(jù)中。
最近,很多的研究工作都將GCN 運(yùn)用到了推薦系統(tǒng)中:PinSAGE[11]應(yīng)用到了Pinterest 中的圖片與圖集這個(gè)二分圖的推薦;Monti 等[12]和van den Berg 等[13]將推薦系統(tǒng)建模為矩陣分解并分別設(shè)計(jì)了不同的GCN 模型來為二分圖中的用戶以及項(xiàng)目進(jìn)行表示學(xué)習(xí);Wu 等[14]在用戶/物品的結(jié)構(gòu)圖上使用GCN 去學(xué)習(xí)用戶/物品的表示。這些工作與本文工作的區(qū)別是它們的模型都是為同質(zhì)二分圖設(shè)計(jì),由于不存在復(fù)雜的關(guān)系,所以使用GCN建模比較簡單。
深度學(xué)習(xí)對(duì)數(shù)據(jù)進(jìn)行多重非線性變換,可以擬合出較為復(fù)雜的預(yù)測(cè)函數(shù)。推薦系統(tǒng)中的核心算法是協(xié)同過濾,其目標(biāo)從機(jī)器學(xué)習(xí)的角度可以看成擬合用戶和物品之間的交互函數(shù)。因此,近期一系列的工作也將深度學(xué)習(xí)技術(shù)應(yīng)用于協(xié)同過濾的交互函數(shù)上。例如,DeepFM[15]擴(kuò)展了分解機(jī)(Factorization Machine,F(xiàn)M)方法,在FM中引入了一個(gè)深度線性模型來擬合特征之間復(fù)雜的交互關(guān)系;Wide&Deep[2]的Wide 部分采用和FM一樣的線性回歸模型,Deep部分采用了基于特征表示學(xué)習(xí)的多層感知機(jī)模型,提出了一個(gè)應(yīng)用于視頻推薦的深度神經(jīng)網(wǎng)絡(luò)推薦模型;NCF(Neural Collaborative Filtering)[1]用多層感知機(jī)替換傳統(tǒng)協(xié)同過濾中的點(diǎn)積操作;DMF(Deep Matrix Factorization)[16]類似于DeepFM,在傳統(tǒng)矩陣分解模型中引入了一個(gè)深度學(xué)習(xí)模塊來提高模型的表達(dá)能力。
目前的KG 感知推薦系統(tǒng)主要是基于圖嵌入的方法,將KG 使用KG 嵌入算法進(jìn)行預(yù)處理,然后將學(xué)習(xí)好的實(shí)體向量融合到推薦系統(tǒng)中。這種方法將圖嵌入以及推薦兩個(gè)過程分開,導(dǎo)致推薦結(jié)果完全取決于圖嵌入算法的優(yōu)劣,而本文提出的端到端圖神經(jīng)網(wǎng)絡(luò)推薦模型可以根據(jù)推薦結(jié)果的反饋來優(yōu)化圖的表示學(xué)習(xí),很好地解決了上述問題。
同樣使用KG 作為輔助信息的模型還有多任務(wù)知識(shí)圖譜特征學(xué)習(xí)推薦模型(Multi-task feature learning for Knowledge graph enhanced Recommendation,MKR)[17]以及RippleNet[18]。MKR 包含推薦系統(tǒng)模塊與知識(shí)圖譜實(shí)體特征學(xué)習(xí)模塊,這兩個(gè)模塊通過一個(gè)交叉壓縮模塊進(jìn)行橋接,交叉壓縮模塊可以自動(dòng)學(xué)習(xí)兩個(gè)任務(wù)中物品和實(shí)體的高階特征交互,通過依次訓(xùn)練來共享特征信息。RippleNet 的核心思想是興趣傳播,將用戶歷史作為種子,然后通過KG 中的連接迭代地向外擴(kuò)展用戶的興趣,以此獲得用戶向量來進(jìn)行下行預(yù)測(cè)任務(wù)。兩種模型都在真實(shí)數(shù)據(jù)集上擁有出色的效果,本文模型也將與二者進(jìn)行實(shí)驗(yàn)結(jié)果對(duì)比來驗(yàn)證本文模型的有效性。
在一個(gè)典型的推薦場景中,會(huì)有一個(gè)包含M個(gè)用戶的集合U={u1,u2,…,uM} 和一個(gè)包含N個(gè)物品的集合V={v1,v2,…,vN}。用戶與物品的交互矩陣為Y∈RM×N,它反映了用戶的隱式反饋,當(dāng)yuv=1 代表用戶u與物品v存在聯(lián)系,比如點(diǎn)擊、瀏覽或者購買等,反之yuv=0。此外,還有一個(gè)知識(shí)圖譜G,它由實(shí)體-關(guān)系-實(shí)體三元組(h,r,t)組成。此處h∈E、r∈R和t∈E表示三元組的頭部、關(guān)系和尾部,E和R分別是知識(shí)圖中的實(shí)體和關(guān)系集。例如三元組(哈利波特,作者,JK 羅琳)表示JK 羅琳創(chuàng)作了哈利波特這個(gè)事實(shí)。在許多的推薦場景中,一個(gè)物品是與一個(gè)實(shí)體相關(guān)的。比如在書籍推薦中,《哈利波特》就可以作為知識(shí)圖譜中的一個(gè)實(shí)體。給定一個(gè)用戶物品交互矩陣Y以及知識(shí)圖譜G,目標(biāo)是預(yù)測(cè)用戶u是否對(duì)物品v有潛在的興趣。也就是學(xué)習(xí)函數(shù)=F(u,v|Y,G,Θ),其中表示用戶u喜歡物品v的概率,Θ為函數(shù)F的參數(shù)。
整個(gè)KGLN 的模型框架如圖1 所示,圖中展示了階數(shù)為2時(shí)的整體流程。對(duì)于每對(duì)用戶u和物品v,使用它們的原始特征作為輸入:用戶特征u主要參與影響因子的計(jì)算以及最后推薦評(píng)分的預(yù)測(cè);物品特征v在單層KGLN中首先采樣出鄰居樣本(圖1中分別用以及表示v的鄰居實(shí)體e1以及e2的原始特征),之后通過用戶特征u及物品與鄰居之間的關(guān)系特征r計(jì)算出影響因子α作為權(quán)重進(jìn)行鄰居特征聚合,再通過聚合器得到一階特征v1來更新原始的v0,這就完成了一次單層KGLN。為了得到物品的二階特征v2,需要先對(duì)以及分別進(jìn)行一次單層KGLN 得到兩個(gè)鄰居的一階特征,再對(duì)物品的一階特征進(jìn)行一次單層KGLN 得到信息更加豐富的二階特征v2,之后與用戶特征u來預(yù)測(cè)評(píng)分。
圖1 KGLN整體框架Fig.1 Overall framework of KGLN
2.3.1 影響因子
KGLN 的核心思想是通過KG 中實(shí)體間的近鄰關(guān)系來驅(qū)動(dòng)模型進(jìn)行用戶和物品的表示學(xué)習(xí)。首先介紹單層的KGLN,考慮一個(gè)用戶u和物品v,v在知識(shí)圖譜中存在一個(gè)實(shí)體,用N(v)來表示實(shí)體v在知識(shí)圖譜中的鄰居實(shí)體的集合,表示兩個(gè)實(shí)體ei和ej之間的關(guān)系。如果用戶u曾經(jīng)為物品v評(píng)分過,在KGLN中,會(huì)在知識(shí)圖譜中找到與物品v相關(guān)的實(shí)體,接下來對(duì)該實(shí)體做鄰居節(jié)點(diǎn)特征聚合。在鄰居節(jié)點(diǎn)特征聚合的過程中,加入影響因子來影響聚合的結(jié)果,影響因子可以當(dāng)作是對(duì)用戶偏好的衡量,這種影響因子類似于注意力機(jī)制。具體來說,引入了一個(gè)評(píng)分函數(shù)g:Rd×Rd→R 來計(jì)算影響因子,也就是用戶與關(guān)系之間的分值:
其中:u∈Rd和r∈Rd分別代表用戶u和關(guān)系r的特征,d是特征的維度。一般而言,已經(jīng)刻畫了關(guān)系r對(duì)用戶u的重要程度,可以用來表示用戶的興趣偏好。比如用戶A 可能會(huì)對(duì)曾經(jīng)閱讀過的書籍的作者寫的另一部作品感興趣,而用戶B 更多是因?yàn)樽髌返念}材而對(duì)該作品感興趣。在KGLN 中,不僅要計(jì)算用戶偏好的影響因子,也要計(jì)算不同鄰居節(jié)點(diǎn)對(duì)當(dāng)前中心實(shí)體的影響因子:
其中:e為當(dāng)前實(shí)體v的所有鄰居節(jié)點(diǎn)的特征??坍嬃怂朽従訉?shí)體e對(duì)當(dāng)前實(shí)體v的影響程度。得到兩種影響因子后,分別對(duì)其進(jìn)行歸一化處理:
2.3.2 鄰居采樣
在對(duì)每一個(gè)節(jié)點(diǎn)進(jìn)行鄰居節(jié)點(diǎn)實(shí)體特征融合的過程前都需要對(duì)其鄰居進(jìn)行采樣,取得需要進(jìn)行特征融合的鄰居集合。由于在知識(shí)圖譜中一個(gè)實(shí)體的鄰居數(shù)據(jù)不會(huì)相同,而在一種極端的情況下,其數(shù)量可能會(huì)相差非常多。為了提高模型的訓(xùn)練效率,對(duì)每個(gè)實(shí)體沒有使用它的全部鄰居,而是均勻隨機(jī)地在所有鄰居中采樣出一個(gè)集合采樣的鄰居個(gè)數(shù)用K控制。圖2是K=2時(shí)的采樣情況,即每個(gè)節(jié)點(diǎn)只會(huì)選取鄰近自己的兩個(gè)鄰居節(jié)點(diǎn)。在KGLN 中,S(v)也可以被稱為實(shí)體v的(單層的)感受野(receptive field),因?yàn)閷?shí)體v的最終特征計(jì)算對(duì)這些范圍敏感(圖2 中的深色節(jié)點(diǎn))。在均勻隨機(jī)地采樣了K個(gè)鄰居節(jié)點(diǎn)后,根據(jù)式(1)~(4)計(jì)算每個(gè)節(jié)點(diǎn)的影響因子,然后對(duì)物品v的鄰居節(jié)點(diǎn)進(jìn)行建模,具體如下:
圖2 采樣完成的鄰居節(jié)點(diǎn)向內(nèi)聚合Fig.2 Inward aggregation of neighbor nodes after sampling
其中e為實(shí)體v鄰居節(jié)點(diǎn)的特征。影響因子的引入可以讓我們根據(jù)用戶偏好來個(gè)性化地聚合鄰居節(jié)點(diǎn)特征。
2.3.3 聚合實(shí)體特征
最后一個(gè)步驟就是融合當(dāng)前實(shí)體特征v與它的鄰居特征,將獲得的結(jié)果作為當(dāng)前實(shí)體新的特征表示。使用了三種類型的聚合器:
1)GCN 聚合器(GCN aggregator)[10]直接將兩個(gè)特征相加,然后使用一個(gè)非線性函數(shù)得到結(jié)果:
將激活函數(shù)設(shè)置為LeakyReLU。W∈Rd×d是可訓(xùn)練的權(quán)重矩陣,用來提取有用信息進(jìn)行傳播操作。
2)GraphSage聚合器(GraphSage aggregator)[19]將兩個(gè)特征拼接再應(yīng)用一個(gè)非線性變換得到結(jié)果:
激活函數(shù)為LeakyReLU,W∈Rd×d是可訓(xùn)練的權(quán)重矩陣。
3)雙交互聚合器(Bi-Interaction aggregator)[20]考慮了當(dāng)前節(jié)點(diǎn)特征v與鄰居特征的兩種信息交互:其中:W1,W2∈Rd×d都為可訓(xùn)練權(quán)重矩陣;⊙表示向量按元素相乘。與GCN 聚合器和GraphSAGE 聚合器不同,雙交聚合器模型傳播的信息對(duì)v與的相關(guān)性比較敏感,它會(huì)傳遞更多類似當(dāng)前實(shí)體節(jié)點(diǎn)的信息。
經(jīng)過一個(gè)單層的KGLN,一個(gè)實(shí)體節(jié)點(diǎn)得到的實(shí)體表示依賴于其鄰居節(jié)點(diǎn),稱其為一階實(shí)體特征。當(dāng)我們將KGLN擴(kuò)展到多層時(shí),就可以探索用戶更深層次的潛在興趣,這是十分自然合理的,具體的算法如下所述:
1)對(duì)于一個(gè)給定的用戶-物品對(duì)(u,v),首先對(duì)v進(jìn)行鄰居采樣,經(jīng)過隨機(jī)采樣之后得到v的K個(gè)鄰居節(jié)點(diǎn),接下來對(duì)這K個(gè)鄰居節(jié)點(diǎn)進(jìn)行相同的采樣操作。這樣,以一種迭代的計(jì)算過程得到v的多階鄰居集合。這里用H來表示感受野的深度,也就是迭代的次數(shù),如圖2 所示為H=2 時(shí)v的感受野(圖中的深色節(jié)點(diǎn))。
2)鄰居采樣完成后,考慮H=2 時(shí)的計(jì)算過程。首先計(jì)算v的一階實(shí)體特征v1(角標(biāo)代表階數(shù)),這里需要用到v的零階實(shí)體特征v0,也就是原始特征。在經(jīng)過單層KGLN 之后,可以得到融合了鄰居節(jié)點(diǎn)特征v的新實(shí)體特征v1。之后用一層KGLN 計(jì)算v的所有鄰居的一階實(shí)體特征,用一階實(shí)體特征更新原始特征得到所有的,en∈N(v)。最后再使用一層KGLN 更新v的實(shí)體特征,得到v的二階實(shí)體特征v2。整個(gè)迭代過程如圖4所示,自底向上不斷進(jìn)行鄰居節(jié)點(diǎn)特征融合。
圖3 鄰居實(shí)體特征的聚合過程Fig.3 Aggregation process of neighbor entity features
圖4 鄰居節(jié)點(diǎn)特征融合的迭代過程Fig.4 Iterative process of neighbor node feature fusion
3)將所有用戶-物品對(duì)(u,v)執(zhí)行1)~2)過程后,可以得到最終的H階實(shí)體特征,這里記為vu。將vu與用戶特征u一起輸入函數(shù)f:Rd×Rd→R,得到最終的預(yù)測(cè)概率:
整個(gè)模型損失函數(shù)如下:
為了計(jì)算更有效率,在訓(xùn)練中使用了負(fù)采樣技術(shù)。其中?是交叉熵?fù)p失函數(shù),Tu是用戶u的負(fù)樣本個(gè)數(shù),P是負(fù)樣本的分布。在本模型中,Tu與用戶正樣本的個(gè)數(shù)相同,P則為均勻分布。最后一項(xiàng)為L2 正則項(xiàng),包括中所有的參數(shù)。
實(shí)驗(yàn)部分選擇了兩種數(shù)據(jù)集:MovieLens-1M 以及Book-Crossing。MovieLens-1M 是電影推薦中的一個(gè)廣泛使用的基準(zhǔn)數(shù)據(jù)集,它包含了在MovieLens網(wǎng)站上用戶對(duì)電影的顯式的從1 到5 的評(píng)分;Book-Crossing 是Book-Crossing 圖書社區(qū)的用戶對(duì)圖書進(jìn)行0~10評(píng)分的數(shù)據(jù)。
將兩種數(shù)據(jù)集進(jìn)行處理:在MovisLens-1M 中,如果用戶對(duì)電影做出了4 分以上的評(píng)分,則將用戶與該電影的交互置為1,反之為0;對(duì)Book-Crossing 也做相同的處理,評(píng)分范圍規(guī)定為0 分以上,即只要用戶對(duì)該圖書做了評(píng)分則將交互置為1。
知識(shí)圖譜部分使用了MKR 中構(gòu)建的知識(shí)圖譜,該知識(shí)圖譜使用微軟Satori構(gòu)造。對(duì)于MovisLens-1M 和Book-Crossing,首先從整個(gè)知識(shí)圖譜中選擇一個(gè)子圖,其中關(guān)系的名字包括電影以及圖書。從初步篩出的子圖中比照了所有數(shù)據(jù)集中的電影名或者圖書名,來進(jìn)行物品與實(shí)體的配對(duì),最后再刪掉無法找到實(shí)體的數(shù)據(jù)集數(shù)據(jù),得到最終的知識(shí)圖譜與交互矩陣。兩種數(shù)據(jù)集的基本統(tǒng)計(jì)信息如表1所示。
表1 兩種數(shù)據(jù)集的統(tǒng)計(jì)結(jié)果Tab.1 Statistical results of two datasets
圖5 為使用MovieLens-1M 構(gòu)造的部分知識(shí)圖譜展示,該部分圖譜以“Forrest Gump”為中心節(jié)點(diǎn)。為了便于展示,在關(guān)系前加上了該關(guān)系三元組中頭節(jié)點(diǎn)的屬性。在MovieLens-1M數(shù)據(jù)集中,作為中心實(shí)體的都是電影,每個(gè)電影通過不同的關(guān)系連接不同的屬性,KGLN 將會(huì)用這些豐富的屬性信息對(duì)每個(gè)電影實(shí)體進(jìn)行特征學(xué)習(xí)。
圖5 知識(shí)圖譜樣例Fig.5 Sample of knowledge graph
在KGLN的實(shí)驗(yàn)中,使用了如下的基準(zhǔn)方法:
LibFM[21]是一個(gè)用于點(diǎn)擊率(Click-Through-Rate)預(yù)測(cè)的基于特征分解的模型,使用用戶與物品的原始特征作為輸入。
Wide&Deep[2]是一個(gè)基于深度學(xué)習(xí)推薦算法,是一種融合淺層(Wide)模型和深層(Deep)模型進(jìn)行聯(lián)合訓(xùn)練的框架。Wide 部分的輸入需要特征工程得到的二階交叉特征,在本實(shí)驗(yàn)過程中使用原始稀疏特征作為輸入。
DeepFM[15]是Wide&Deep的改進(jìn),通過淺層模型和深層模型來訓(xùn)練得到。它包含兩個(gè)部分:神經(jīng)網(wǎng)絡(luò)模塊與因子分解機(jī)模塊,分別負(fù)責(zé)低階特征的提取和高階特征的提取,兩部分輸入與LibFM相同均為原始特征。
MKR[17]包含推薦系統(tǒng)模塊以及知識(shí)圖譜特征學(xué)習(xí)模塊,使用用戶以及物品的原始特征作為推薦系統(tǒng)模塊的輸入,數(shù)據(jù)集上的知識(shí)圖譜作為知識(shí)圖譜特征學(xué)習(xí)模塊的輸入。
RippleNet[18]是混合模型的代表,通過在知識(shí)圖譜上傳播用戶偏好的記憶網(wǎng)絡(luò)推薦模型,輸入同樣為用戶和物品的原始特征以及知識(shí)圖譜。
KGLN 的實(shí)驗(yàn)準(zhǔn)備如下:在KGLN 中,將MovieLens-1M 的跳數(shù)H設(shè)置為2,Book-Crossing的跳數(shù)H設(shè)置為1,其他超參數(shù)的設(shè)置如表2 所示,其中:d為特征維度;ε為學(xué)習(xí)率;模型中g(shù)設(shè)置為內(nèi)積函數(shù),非最后一層聚合器的激活函數(shù)為LeakyReLU,最后一層聚合器的激活函數(shù)為tanh,所有超參數(shù)在驗(yàn)證集上通過優(yōu)化AUC值得到。
表2 KGLN的超參數(shù)設(shè)置Tab.2 Hyperparameter setting of KGLN
基準(zhǔn)方法的超參數(shù)設(shè)置如下:對(duì)于LibFM,其維度為{1,1,8},學(xué)習(xí)輪數(shù)為50;對(duì)于DeepFM,兩個(gè)數(shù)據(jù)集上的特征維度都為d=8,模型維度為{16,16,16};對(duì)于RippleNet,其特征維度與學(xué)習(xí)率設(shè)置為與KGLN 相同。Wide&Deep 以及MKR的超參數(shù)選擇和原始論文或代碼默認(rèn)值一致。
在實(shí)驗(yàn)中,數(shù)據(jù)集的訓(xùn)練集、驗(yàn)證集和測(cè)試集的比例為6∶2∶2,最終實(shí)驗(yàn)結(jié)果均為5 次實(shí)驗(yàn)結(jié)果取平均得到的。實(shí)驗(yàn)情景為CTR 預(yù)測(cè),通過受試者工作特征曲線(Receiver Operating Characteristic,ROC)下面積(Area Under Curve of ROC,AUC)以及F1值衡量模型性能。
3.4.1 與基準(zhǔn)方法的比較
KGLN 與其他基準(zhǔn)方法的結(jié)果如表3 所示,從中可以看出:
LibFM 輸入為數(shù)據(jù)集的原始特征,通過FM 來學(xué)習(xí)一階特征和二階交叉特征,得到低維向量表示;DeepFM 和Wide&Deep 都是用深度神經(jīng)網(wǎng)絡(luò)來得到向量表示,區(qū)別是前者使用FM 來負(fù)責(zé)一階特征以及二階交叉特征,后者使用Wide 部分的邏輯回歸模型記憶二階交叉特征。這三種方法都只用到了數(shù)據(jù)集本身的特征信息,沒有任何輔助信息,在評(píng)價(jià)指標(biāo)上要低于所有使用知識(shí)圖譜作為輔助信息的方法,這表明引入知識(shí)圖譜是有效的。
MKR 在Book-Crossing 上的結(jié)果要優(yōu)于所有基準(zhǔn)方法,因?yàn)锽ook-Crossing 數(shù)據(jù)集相對(duì)來說比較稀疏,而MKR 中的交叉共享單元可以讓圖學(xué)習(xí)模塊以及推薦模塊共享對(duì)方的額外信息,這種交互學(xué)習(xí)方式一定程度上彌補(bǔ)了數(shù)據(jù)集稀疏的問題。KGLN 在Book-Crossing 上的效果略低于MKR,也是由于數(shù)據(jù)集的稀疏性,在融合鄰居節(jié)點(diǎn)特征時(shí)容易引入噪聲。而在MovieLens-1M 這種相對(duì)稠密的數(shù)據(jù)集上,KGLN 的表現(xiàn)要優(yōu)于所有基準(zhǔn)方法,這也體現(xiàn)了越豐富的知識(shí)圖譜對(duì)推薦效果起的作用越大。
RippleNet 與KGLN 的結(jié)果非常相近,注意到RippleNet 也用到了多跳關(guān)聯(lián)實(shí)體信息,這表明在使用知識(shí)圖譜輔助時(shí)對(duì)局部結(jié)構(gòu)以及鄰居節(jié)點(diǎn)關(guān)系進(jìn)行建模十分重要。
表3 中KGLN-BI、KGLN-GS 和KGLN-GCN 表 示KGLN 中分別使用不同聚合器(見2.3.3 節(jié))得到的結(jié)果??梢园l(fā)現(xiàn):雙向交互聚合器一般而言表現(xiàn)最好,是因?yàn)殡p交互聚合器可以更多地保留自身的信息特征,并融合更多類似于自身信息而來自鄰居節(jié)點(diǎn)的特征;GCN 與GraphSAGE 聚合器效果略差,是由于在聚合過程中結(jié)構(gòu)信息的比重與節(jié)點(diǎn)自身信息的比重一致而造成的,這表明在建模過程中應(yīng)該更多考慮節(jié)點(diǎn)本身的信息。
表3 KGLN與其他基準(zhǔn)方法在MovieLens-1M和 Book-Crossing數(shù)據(jù)集上的AUC與F1比較Tab.3 Comparison of AUC and F1 of KGLN and other benchmark methods on MovieLens-1M and Book-Crossing datasets
為了驗(yàn)證影響因子的效果,對(duì)比了使用影響因子與未使用影響因子(即鄰居結(jié)構(gòu)建模時(shí)使用所有鄰居節(jié)點(diǎn)特征的均值作為鄰居特征,即的AUC 值,如表4 所示。未使用影響因子的結(jié)果要比使用影響因子的效果差,這說明注意力機(jī)制確實(shí)對(duì)推薦結(jié)果有提升作用。
表4 影響因子在不同聚合器上的效果(AUC值)Tab.4 Effect of influence factors on of different aggregators(AUC)
3.4.2 感受野深度的影響
表5給出了感受野深度H從1變化到3時(shí)對(duì)KGLN結(jié)果的影響,可以看出KGLN 對(duì)H的改變比較敏感。感受野會(huì)隨著深度的增加一個(gè)指數(shù)式級(jí)擴(kuò)大[22],一個(gè)較大的H在模型中會(huì)讓實(shí)體節(jié)點(diǎn)對(duì)以其為中心的大范圍實(shí)體敏感,因?yàn)樵搶?shí)體的最終特征計(jì)算依賴于這些實(shí)體,而這些大范圍的實(shí)體中會(huì)存在很多對(duì)中心實(shí)體特征表示毫無用處的實(shí)體,這就會(huì)引入大量的噪聲,導(dǎo)致模型結(jié)果下降。
表5 不同感受野深度H下的實(shí)驗(yàn)結(jié)果Tab.5 Experimental results of different receptive field depths H
Book-Crossing數(shù)據(jù)集在H=3時(shí)得到了相對(duì)較差的結(jié)果,這表明模型在融合三階實(shí)體特征時(shí)已經(jīng)引入了大量的噪聲。在現(xiàn)實(shí)情況中,過深的探索用戶興趣也是沒有必要的。比如在電影推薦的場景中,用戶A 喜歡電影B 是因?yàn)樵撾娪暗难輪TC,那么可以通過演員C 這個(gè)實(shí)體去發(fā)掘該演員演過的電影,在這些電影實(shí)體中融合更多演員C 這個(gè)實(shí)體的信息可以達(dá)到挖掘用戶興趣的目的??梢姡琀為1或2在真實(shí)場景中已經(jīng)可以滿足需求。
本文提出了圖神經(jīng)網(wǎng)絡(luò)推薦模型,在知識(shí)圖譜特征學(xué)習(xí)的過程中引入了影響因子,通過改變鄰居節(jié)點(diǎn)特征的權(quán)重來進(jìn)行聚合,不僅學(xué)習(xí)到了知識(shí)圖譜的結(jié)構(gòu)和語義信息,還可以挖掘用戶的個(gè)性化興趣以及潛在愛好,提高了推薦結(jié)果的多樣性和豐富性。在兩種公開數(shù)據(jù)集MovieLens-1M 與Book-Crossing上進(jìn)行實(shí)驗(yàn),分析研究了不同聚合器及影響因子對(duì)推薦結(jié)果的影響。使用AUC 值與F1 值作為評(píng)價(jià)標(biāo)準(zhǔn),將KGLN與經(jīng)典模型DeepFM、LibFM、Wide&Deep、RippleNet 進(jìn)行對(duì)比,結(jié)果表明KGLN 在推薦效果上都有所提升,驗(yàn)證了KGLN的可行性和有效性。KGLN 所考慮的知識(shí)圖譜是靜態(tài)的,而現(xiàn)實(shí)生活中大部分情況知識(shí)圖譜都會(huì)隨著時(shí)間而變化;不僅如此,用戶的喜好也會(huì)隨著時(shí)間而變化,如何刻畫這種隨時(shí)間演變的情況,也是未來研究的方向。