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