馬甜甜,楊長春,嚴(yán)鑫杰,賈音,蔡聰
(常州大學(xué) 計算機與人工智能學(xué)院,江蘇 常州 213000)
隨著大數(shù)據(jù)技術(shù)的快速發(fā)展,互聯(lián)網(wǎng)的用戶量和信息量規(guī)模不斷擴大,海量的信息資源導(dǎo)致了信息過載。推薦系統(tǒng)是目前最有效的信息過濾的方法,已經(jīng)廣泛地應(yīng)用在人們的日常生活中,并且在搜索引擎、電子商務(wù)、社交媒體網(wǎng)站以及新聞門戶網(wǎng)站等領(lǐng)域都取得了不錯的成果。推薦系統(tǒng)的核心就是通過挖掘用戶和物品的特征表示來預(yù)測某用戶是否對一個項目產(chǎn)生了交互行為,比如點擊、瀏覽、評分購買等交互形式。協(xié)同過濾[1-5](collaborative filtering,CF)是推薦系統(tǒng)中最有效的方法之一,它是利用集體智慧(collective intelligence,CI)的一個典型方法,從大量的數(shù)據(jù)中挖掘出與目標(biāo)用戶相類似的候選用戶,然后根據(jù)這些候選用戶的偏好項目組成一個目錄推薦給目標(biāo)用戶。因此,協(xié)同過濾仍然是實現(xiàn)有效的個性化推薦[6-8]的一項基礎(chǔ)任務(wù)。一個常見的協(xié)同過濾的范例是將學(xué)習(xí)到用戶和項目的潛在特征表示向量,基于二者的表示向量進行預(yù)測,一些代表性模型有:因子分解機(factorization machines,FM)[9],寬廣型網(wǎng)絡(luò)(wide &deep learning for recommender systems,Wide&Deep)[10],神經(jīng)因子分解機(neural factorization machines,NFM)[11],深度因子分解機(a factorization-machine based neural network for CTR prediction,DeepFM)[12]等。盡管協(xié)同過濾方法具有有效性和通用性,但是它無法對項目的屬性等相關(guān)信息、用戶的配置文件以及上下文信息進行建模。近年來,圖卷積網(wǎng)絡(luò)(graph convolutional network,GCN)[13]由于具有在圖結(jié)構(gòu)數(shù)據(jù)上強大的特征提取能力,成為當(dāng)前推薦系統(tǒng)中的研究熱點。在現(xiàn)實生活中,周圍的數(shù)據(jù)都是一些非結(jié)構(gòu)化的數(shù)據(jù),傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)并不能有效地從這種圖結(jié)構(gòu)數(shù)據(jù)中提取特征。本質(zhì)上,圖卷積網(wǎng)絡(luò)是將傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)強大的提取特征的能力擴展到圖結(jié)構(gòu)的數(shù)據(jù)上,它通過譜圖卷積的一階近似值在拓?fù)鋱D上定義了圖卷積操作,然后基于拓?fù)鋱D不斷地傳播和聚合鄰域節(jié)點的信息,最后學(xué)習(xí)到每個實體嵌入的特征。Wang 等[14]提出一種神經(jīng)圖卷積(neural graph collaborative filtering,NGCF)模型,它通過圖卷積網(wǎng)絡(luò)的信息傳播和聚合機制堆疊多個圖卷積層,不斷地將高階鄰居的協(xié)同信號傳遞到下一層,最后將所有層的節(jié)點的信息進行整合進行推薦。Wang 等[15]在圖卷積網(wǎng)絡(luò)的基礎(chǔ)上提出了基于知識圖譜卷積推薦系統(tǒng)(knowledge graph convolutional network for recommender systems,KGCN)模型,此模型將融合了知識圖譜之后,采取了標(biāo)準(zhǔn)的圖卷積網(wǎng)絡(luò)模型的一系列操作:特征變換、激活函數(shù)、鄰域融合。盡管此模型取得了較好的效果,但是該模型由于是繼承于標(biāo)準(zhǔn)的圖卷積網(wǎng)絡(luò),并沒有進行調(diào)整,因此可能相對比較繁重復(fù)雜。圖卷積網(wǎng)絡(luò)一開始提出是為了用于屬性圖上的節(jié)點分類的,在屬性圖上每個節(jié)點具有豐富的語義信息,而在協(xié)同過濾任務(wù)當(dāng)中的用戶-項目交互圖中,每個節(jié)點只被標(biāo)記為一個獨熱編碼向量,除了標(biāo)識作用以外沒有其他具體的語義信息。非線性特征轉(zhuǎn)換是提高一般神經(jīng)網(wǎng)絡(luò)架構(gòu)的必要操作,然而在推薦系統(tǒng)中,由于數(shù)據(jù)的高度稀疏性,非線性特征轉(zhuǎn)換對于協(xié)同過濾沒有很大的提升性能反而會增加模型訓(xùn)練的難度。
針對以上問題,構(gòu)建了SPGCN (simplifying and powering graph convolutional networks with knowledge graph for recommendation)模型。該模型基于知識圖譜卷積推薦系統(tǒng)KGCN 的構(gòu)建思想,簡化了在圖卷積網(wǎng)絡(luò)中的非線性激活、特征變換的操作,只包含了在協(xié)同過濾中圖卷積網(wǎng)絡(luò)模型中最基本的組件—鄰域聚合,提升了模型預(yù)測的準(zhǔn)確性。模型在兩個傳統(tǒng)的數(shù)據(jù)集上都取得較好的性能結(jié)果,驗證了模型的有效性。
圖卷積網(wǎng)絡(luò)是推薦系統(tǒng)中最流行的網(wǎng)絡(luò)架構(gòu),它利用消息傳遞機制和聚合操作在圖結(jié)構(gòu)數(shù)據(jù)對協(xié)同信號進行建模進而用于推薦預(yù)測。
圖卷積網(wǎng)絡(luò)模型一般分為3 部分:節(jié)點嵌入層、圖卷積操作層和預(yù)測層。給定一個圖G=(V,E),V是節(jié)點的集合,E是邊的集合。
節(jié)點嵌入層:對二部圖上的實體節(jié)點進行編碼,獲得這些節(jié)點的初始低維嵌入向量,公式為
式中:x是實體節(jié)點的特征;x0是經(jīng)過處理的初始嵌入向量,可以分為用戶嵌入向量和項目嵌入向量ρ是待學(xué)習(xí)參數(shù)。
圖卷積操作層:主要包括對于各個節(jié)點的消息構(gòu)造和更新節(jié)點的嵌入。當(dāng)用戶和項目之間有了交互行為,就可以將用戶此次的操作信息構(gòu)造為
式中:為 更新以后用戶的嵌入表示;x2為聚合函數(shù)。類似的,也可以獲得項目v的消息構(gòu)造和嵌入傳播更新信號:
通過上述過程就實現(xiàn)了在該二部圖上節(jié)點的一次消息構(gòu)造和嵌入傳播更新。經(jīng)過多次堆疊上述操作就可以獲得高階鄰域信息,即用戶節(jié)點的向量。
式中:預(yù)測函數(shù)h(·) 可以使用多層感知機MLP 實現(xiàn);μ 是網(wǎng)絡(luò)參數(shù)。
知識圖譜[16-18]可以通過知識抽取和知識表示技術(shù)將人類知識以結(jié)構(gòu)化的形式展示出來,為智能系統(tǒng)提供可供處理的先驗知識,是表現(xiàn)客觀世界中的實體以及實體之間的關(guān)系的知識庫。知識圖譜提供了不同物品之間各種各樣的關(guān)系和可以捕獲物品間的語義關(guān)系。為了緩解推薦系統(tǒng)中的數(shù)據(jù)稀疏性和冷啟動問題,許多工作將知識圖譜融入到推薦系統(tǒng)中。將知識圖譜作為輔助信息整合到推薦系統(tǒng)當(dāng)中,使得推薦系統(tǒng)利用先驗知識進行推理獲得更好的推薦性能。RippleNet[19]知識圖譜特征學(xué)習(xí)與推薦系統(tǒng)算法的目標(biāo)函數(shù)相結(jié)合從而將知識圖譜作為額外信息,融入到推薦系統(tǒng)中。知識圖譜注意力網(wǎng)絡(luò)(knowledgegraphattentionnetwork,KGAN)[20]進一步將注意力機制引入到模型中,從融合知識圖譜的用戶-商品交互圖中傳播高階路徑的信息?;跇?biāo)簽平滑正則的知識感知圖神經(jīng)網(wǎng)絡(luò)(knowledge-awaregraphneuralnetworkswithlabelsmoothnessregularizationfor recommendersystems,KGNN-LS)[18]將知識圖譜與用戶相關(guān)的帶權(quán)圖相結(jié)合,進而使用圖神經(jīng)網(wǎng)絡(luò)得到項目的向量嵌入向量表示。
基于知識圖譜和輕量級圖卷積網(wǎng)絡(luò)推薦系統(tǒng)SPGCN 模型將項目以及屬性信息嵌入知識圖譜中,以目標(biāo)用戶點擊過的項目為基準(zhǔn),不斷地將鄰域節(jié)點信息匯聚,得到項目的向量嵌入表示。最后,用戶和項目進行預(yù)測評分。
在一些典型的推薦場景中,有一組用戶集合u={u1,u2,···,uM} 和一組項目集合v={v1,v2,···,vM}。用戶-項目交互矩陣Z∈RM×N,這是基于用戶的隱式反饋信息所定義的,當(dāng)Zuv=1即代表用戶與項目之間有交互行為,比如點擊、瀏覽、購物等行為;當(dāng)Zuv=0即代表用戶和項目之間沒有任何交互行為。此外,G代表利用知識圖譜所構(gòu)成的圖,是由實體-聯(lián)系-實體組成的三元組(h,r,t)(h∈E,r∈R,t∈R)。E代表實體集,R代表關(guān)系。這3 者分別代表知識圖譜三元組頭節(jié)點,關(guān)系以及尾節(jié)點。
給定用戶-項目交互矩陣Z和知識圖譜G,推薦系統(tǒng)的目標(biāo)就是預(yù)測某用戶是否和他之前從未有過交互的項目產(chǎn)生交互。目標(biāo)函數(shù)是y?=f(u,v|θ,Z,G),其中y? 是用戶和項目產(chǎn)生交互的概率,θ是f目標(biāo)函數(shù)的模型參數(shù)。
圖1 是SPGCN 的整體架構(gòu)圖。模型中的知識圖譜是基于項目的一些屬性信息進行構(gòu)建的三元組 (h,r,t),對于任意一組用戶u和項目v,首先通過計算目標(biāo)用戶u與三元組中各個關(guān)系實體的分?jǐn)?shù),經(jīng)過歸一化操作后得到目標(biāo)用戶u的個性化偏好信息。然后,將項目v的鄰域節(jié)點和目標(biāo)用戶u的個性化信息相結(jié)合得到項目v的鄰域信息。最后,使用輕量級聚合器將項目v和其鄰域節(jié)點信息進行聚合得到項目v的一次迭代信息。
圖1 SPGCN 模型架構(gòu)Fig.1 SPGCNmodelarchitecture
接下來將上述操作公式化,首先考慮一個用戶和一個項目(實體)之間的關(guān)系,μ (v)代表與此項目(實體)直接相連的實體集,rei,ej代表實體rei和實體rej之間的關(guān)系,H(比如:內(nèi)積操作)計算用戶u和一個關(guān)系r的分?jǐn)?shù),公式為
式中:u∈Rd和r∈Rd代表用戶u和關(guān)系r的向量表示,d是其向量的維度。表示了一個關(guān)系r對于一個用戶的重要程度。比如一個用戶可能比較喜歡一首歌的歌詞,而另外一個用戶可能更喜歡一首歌的曲調(diào),所以通過此公式可以計算一個實體關(guān)系對于用戶的重要性程度。
為了得到項目v(實體)的鄰域節(jié)點,可以計算節(jié)點v的鄰域節(jié)點的線性表示:
式中:e是相應(yīng)實體向量表示,用戶-聯(lián)系分?jǐn)?shù)是計算一個實體的鄰域表示的個性化過濾器,可以捕捉到用戶的個性化特征,此處是一種特殊的注意力機制可以賦予不同的權(quán)重在其鄰域節(jié)點。在實際應(yīng)用中,每個實體的鄰域大小N(e)可能有所不同,為了計算方便,可以將v的鄰域表示設(shè)為其中并且 |S(v)|=C。
最后就是將前面得到的鄰域表示聚合在一起得、到最后的向量表示,公式為
式中:p代表迭代的次數(shù),經(jīng)過多次迭代得到實體v的鄰域的高階表示,就可以通過用戶u和項目v的最終的向量表示的內(nèi)積操作得到模型的預(yù)測結(jié)果:
式中:W1∈R2d×b,W2∈Rb×1為待學(xué)習(xí)的多層感知機MLP 的權(quán)重矩陣;b是多層感知機MLP 的第1 層神經(jīng)元的個數(shù)。
圖1 為本模型的整體架構(gòu),包括:輸入層、輕量級的圖卷積層、預(yù)測層3 個部分。eu[h] 代表模型的輸入部分,緊接著就是堆疊的輕量級的多層圖卷積操作生成項目v的嵌入向量表示。最后,由于非線性的多層感知機MLP 對于嵌入表示向量之間的復(fù)雜關(guān)系更好的擬合,所以將圖卷積層學(xué)習(xí)到的項目的節(jié)點嵌入eu[H] 與目標(biāo)用戶的向量表示連接起來輸入到2 層的多層感知機MLP中,就可以對目標(biāo)用戶u和目標(biāo)項目v的評分進行預(yù)測。
SPGCN 模型是一種端到端的推薦系統(tǒng)模型。為了使計算更加有效,在訓(xùn)練過程的優(yōu)化目標(biāo)函數(shù)為
式中:u∈U表示針對于用戶集的每個用戶;v(v:zuv=1) 表示與此用戶有交互的項目;J是交叉熵?fù)p失函數(shù),最后一項是L2-正則化項。
為了驗證所提出模型的推薦性能,該模型在3 個數(shù)據(jù)集MovieLens-20M、Last.FM、Book-Crossing 上進行了實驗,并將其與經(jīng)典模型進行對比。
本文實驗運行環(huán)境為Win10 系統(tǒng)、16GB 內(nèi)存,使用Pycharm 軟件和Tensorflow1.4 版本框架搭建本模型。
本實驗的參數(shù)設(shè)置如表1 所示,采用Adam為梯度優(yōu)化方法,Dropout 設(shè)為0.6,迭代次數(shù)為100次,采樣的鄰域個數(shù)分別為4和8,嵌入維度分別為32 和16,學(xué)習(xí)率分別為2×10-2和5×10-4。
表1 實驗參數(shù)設(shè)置Table 1 Experimental parameter settings
在本實驗中,采用了電影、音樂和數(shù)據(jù)3 個不同鄰域的數(shù)據(jù)集。在本實驗使用的數(shù)據(jù)集Movie-Lens-20M、Last.FM 和Book-Crossing 的統(tǒng)計情況見表2。
表2 數(shù)據(jù)集的相關(guān)情況Table 2 Statistics of datasets
MovieLens-20M:是推薦系統(tǒng)廣泛使用的基準(zhǔn)數(shù)據(jù)集,主要是多個用戶對多個電影的評分等級信息,其中包括電影元數(shù)據(jù)信息(電影id、類型信息等)、用戶相關(guān)信息(用戶的職業(yè)、年齡等)。
Last.FM:是關(guān)于用戶聽歌序列的數(shù)據(jù)集。它具有用戶的隱性反饋的上下文信息 。在Last.FM中有兩個文件,聽歌記錄與用戶信息。
Book-Crossing:這個數(shù)據(jù)集是Book-Crossing 圖書社區(qū)的278858 個用戶對271379 本書進行的評分,包括顯式和隱式的評分。
為了更好的評估模型,在本文中選擇AUC(準(zhǔn)確率)、F1(綜合考量精確率和召回率)、precision(精確率)以及recall(召回率)4 個指標(biāo)作為評估指標(biāo)。precision 表示對測試集的結(jié)果分類后,其被正確分類占總體的比例,精確率越高,模型表現(xiàn)得越好。recall 表示分類后正確判斷的個數(shù)占全部正確數(shù)量的個數(shù),其值越高,證明推薦效率越高。F1是一個根據(jù)precision 和recall 綜合考慮的一個性能指標(biāo),F(xiàn)1越大說明模型的質(zhì)量越高。AUC 衡量了一個模型的整體性能指標(biāo),其值一般在0.5 和1 之間,值越高模型性能越好。如表3 是判別混淆矩陣,混淆矩陣稱為誤差矩陣,每一列代表了預(yù)測的類別,每一列的總數(shù)代表預(yù)測的這個類別的數(shù)量,每一行代表數(shù)據(jù)的真實屬性類別,每一行的總數(shù)代表了數(shù)據(jù)的這個真實類別的數(shù)量。
表3 混淆矩陣Table 3 Confusion matrix
為了更好地評估該模型,本文采取以下3 種經(jīng)典的模型KGAN、RippleNet、KGCN 作為對比方法:
KGAN這是一個知識圖譜和圖卷積網(wǎng)絡(luò)結(jié)合的經(jīng)典模型,還加入了注意力機制,有效地提升了模型性能。
RippleNet典型的將知識圖譜聯(lián)合推薦系統(tǒng)進行的訓(xùn)練的網(wǎng)絡(luò)結(jié)構(gòu),通過在知識圖譜中傳播用戶偏好,從而可以發(fā)現(xiàn)用戶的不同興趣愛好實現(xiàn)個性化推薦。
KGCN利用知識圖譜對項目的屬性信息建模并將用戶的個性化偏好信息,堆疊多個圖卷積層將項目的鄰域節(jié)點信息和本身節(jié)點消息傳播和聚合。
在這一節(jié)中,選取3 種主流推薦模型作為對比實驗。從表4 中可以看出,在AUC 和F1兩個指標(biāo)下,SPGCN 模型在3 個數(shù)據(jù)集上的效果均優(yōu)于其他模型。SPGCN 模型在Last.FM 數(shù)據(jù)集上AUC和F1指標(biāo)分別提升了4.1%和3.5%,在MovieLens-20M 數(shù)據(jù)集上分別提升了0.1%和0.4%,在Book-Crossing 數(shù)據(jù)集上提升了3.0%和2.7%。其原因是相比較于MovieLens-20M 數(shù)據(jù)集,Last.FM 和Book-Crossing 兩個數(shù)據(jù)集稀疏程度更大,也表明了在圖卷積網(wǎng)絡(luò)中的非線性激活函數(shù)、特征變換等操作對推薦系統(tǒng)中的協(xié)同過濾操作不會起到很大的提升。
表4 AUC 和F1 指標(biāo)的實驗結(jié)果Table 4 Experimental results of AUC and F1 indicators
在表5 中,設(shè)置了在不同的嵌入維度值d影響下AUC 的情況。隨著嵌入維度的不斷增加,在Last.FM 和Book-Crossing 數(shù)據(jù)集上AUC 值越來越高,而在MovieLens-20M 數(shù)據(jù)集上AUC 性能稍微有些減弱,但是其收斂速度較快,這是由于增加嵌入維度的大小,可以將更多的信息編碼,較好的提升了模型的推薦性能,但是嵌入的維度過高,也會造成過擬合現(xiàn)象,所以一定要選擇合適的嵌入維度。
表5 不同的嵌入維度對SPGCN 模型AUC 指標(biāo)的影響Table 5 AUC result of SPGCN with different dimension of embedding
在表6 中,設(shè)置了采樣鄰域節(jié)點個數(shù)分別為2、4、8、16 影響下AUC 值的情況。實驗表明,當(dāng)采樣的鄰域節(jié)點數(shù)為4 時,本模型的性能最優(yōu)。當(dāng)采樣的鄰域節(jié)點個數(shù)過多,系統(tǒng)性能反而下降,這是因為結(jié)合了過多的鄰域節(jié)點信息,易產(chǎn)生過擬合現(xiàn)象導(dǎo)致AUC 的值降低。
表6 不同的采樣的鄰域節(jié)點個數(shù)N 下AUC 的值Table 6 Value of AUC under different sampled neighborhood nodes N
如圖2~圖4 所示,具體描述了Last.FM、MovieLens-20 和Book-crossing 等3 個數(shù)據(jù)集上在預(yù)測樣例數(shù)量K(在指定返回用戶K個項目的情況下,本模型的性能)值分別為1、2、5、10、20、50、100 時下precision 和recall 兩個指標(biāo)的折線圖。實驗結(jié)果表明,隨著K的不斷增加,本模型SPGCN 在圖2、圖3 和圖4 中的precision 指標(biāo)和recall 指標(biāo)均要高于KGCN 的precision 指標(biāo)和recall 指標(biāo),這就證明了本文模型總體的性能要優(yōu)于KGCN。SPGCN 模型的實驗效果更好,得益于本模型采用的是輕量級聚合器的優(yōu)勢,簡化了圖卷積操作,降低了模型訓(xùn)練的難度,因而,在較高的K值也能表現(xiàn)出很好的性能。
圖2 Last.FM 數(shù)據(jù)集在不同的預(yù)測樣例數(shù)量K 下的實驗結(jié)果Fig.2 Experimental results of Last.FM under different number of prediction examples K
圖3 Movie 數(shù)據(jù)集在不同預(yù)測樣例數(shù)量K 下的實驗結(jié)果Fig.3 Experimental results of the Movie under different number of prediction examples K
圖4 Book-Crossing 數(shù)據(jù)集在不同的預(yù)測樣例數(shù)量K 下的實驗結(jié)果Fig.4 Experimental results of the Book-Crossing under different number of prediction examples K
比較圖2、圖3 和圖4,可以發(fā)現(xiàn)SPGCN 在Last.FM 和Book-Crossing 的表現(xiàn)效果比Movie-Lens-20M 好,這是因為前者的稀疏程度更高,這也證明了模型也能更好地處理稀疏度更高的數(shù)據(jù)。
為了實現(xiàn)更好的推薦,本文提出了一個基于知識圖譜的輕量級的圖卷積網(wǎng)絡(luò)推薦系統(tǒng)的模型,在Last.FM、MovieLens-20M 和Book-Crossing 3 個數(shù)據(jù)集上進行訓(xùn)練和測試。
實驗證明了傳統(tǒng)的圖卷積網(wǎng)絡(luò)的特征變換、非線性激活等操作對協(xié)同過濾操作不會起很大的作用。因此將圖卷積操作中聚合操作進行了改進,提升了模型的性能,并且模型在3 個數(shù)據(jù)集上的取得了較好的效果。但是本模型的運算速度和基準(zhǔn)模型的運算速度相差不大,因此在未來的工作中,可以考慮引入其他的輔助信息,比如社交網(wǎng)絡(luò)等類似的信息實現(xiàn)更好的推薦,提高運算速度,進一步提高推薦性能。