文 峰,曹 雄,黃海新,閆嘯云
(1.沈陽理工大學(xué) 信息科學(xué)與工程學(xué)院,沈陽110159;2.中國石油大學(xué) 信息科學(xué)與工程學(xué)院,北京 102249)
推薦系統(tǒng)[1]像很多其他基于海量數(shù)據(jù)的任務(wù)一樣受益于深度神經(jīng)網(wǎng)絡(luò)的發(fā)展[2-3],而知識圖譜作為典型的圖結(jié)構(gòu)數(shù)據(jù)[4]包含著實體到實體之間的關(guān)系,這對用戶的興趣分析和建模具有一定的輔助作用?;诰仃嚪纸獾膮f(xié)同過濾(Collaborative Filtering,CF)[5]是商業(yè)領(lǐng)域最成功的方法之一,然而,基于CF的方法依賴于用戶和項目之間過去的交互,這將導(dǎo)致冷啟動問題[6](不推薦沒有交互的項目)。為緩解這一問題,研究人員通常會采取一些措施去整合輔助信息,比如社交網(wǎng)絡(luò)、圖片和評論等。
在眾多種類的輔助信息中,知識圖譜被廣泛使用,其以機器可讀的頭-關(guān)系-尾(head-relation-tail)三元組形式組成并包含豐富的結(jié)構(gòu)信息。研究人員先后利用知識圖譜在節(jié)點分類、句子補全和摘要生成等應(yīng)用中取得了成功。此后出現(xiàn)了基于知識圖譜感知的推薦模型,其中許多都受益于圖神經(jīng)網(wǎng)絡(luò)(Graph neural network,GNN)[7]捕捉圖中的高階結(jié)構(gòu)并細化嵌入用戶和項目的特征。如RippleNet傳播用戶在知識圖譜中潛在的偏好并探索其更深層次的興趣[8];圖卷積網(wǎng)絡(luò)(Knowledge Graph Convolutional Networks,KGCN)利用卷積操作來產(chǎn)生高階的連通性的物品特征[9];圖注意力網(wǎng)絡(luò)(Knowledge graph attention network,KGAT)使用注意力機制隱式地為圖中不同的鄰域節(jié)點指定權(quán)重系數(shù)[10]。
由于推薦系統(tǒng)的高維和異質(zhì)性,在推薦系統(tǒng)中使用知識圖譜仍是一個挑戰(zhàn)。一種可行的方法是通過知識圖嵌入(Knowledge Graph Embedding,KGE)方法先行預(yù)處理知識圖譜,該方法可將圖譜中的實體和關(guān)系映射到低維向量表示。常用的KGE方法側(cè)重于建模嚴格的語義相關(guān)性(如TransE模型假定頭+關(guān)系=尾[11]),因此這類方法非常適合于圖文應(yīng)用領(lǐng)域,如知識圖譜補全和鏈接預(yù)測。
本文在此基礎(chǔ)上提出一種基于GNN和知識圖譜嵌入模型TransE的推薦算法,先把相應(yīng)的知識圖譜信息通過KGE算法映射到高維的向量空間,再將圖譜輸入到相應(yīng)的GNN之中;實驗表明,更高維的語義信息可以提升神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能力,使最后的推薦性能有所提升。
對于一個典型的推薦系統(tǒng),用戶u和物品v的集合通常表示為U={u1,u2,u3…}和V={v1,v2,v3…}。根據(jù)用戶和物品的歷史行為數(shù)據(jù),可得到二者間的交互矩陣為Y={yuv|u∈U,v∈V}。如果一對用戶和物品間存在關(guān)聯(lián)(如點擊、打分等),那么yuv=1;反之yuv=0。
對于用來提升推薦性能的知識圖譜,用三元組集合G={(h,r,t)|h,t∈ε,r∈R}來表示,其中每個三元組(h,r,t)包含了知識圖譜中的頭節(jié)點h、尾節(jié)點t和二者相互之間的關(guān)系r。ε={e1,e2,e3…}表示所有的實體(包括頭節(jié)點和尾節(jié)點)集合,R={r1,r2,r3…}為知識圖譜中的關(guān)系集合。
一般來說,知識圖譜中的實體有一些代表著物品v,而這些存在于知識圖譜中的物品通常與多個實體有關(guān)聯(lián),所以把與物品v有關(guān)的實體集合表示為N(v),推薦系統(tǒng)可以在這個集合的基礎(chǔ)上尋找到用戶的潛在興趣實體。最終的預(yù)測函數(shù)表示為
(1)
為使推薦模型和知識圖譜更好地融合,使用知識圖譜嵌入模型先行處理知識圖譜數(shù)據(jù),得到語義信息更為豐富的向量;然后再將得到的相關(guān)嵌入向量輸入到后續(xù)的GNN模型中。
傳統(tǒng)的知識圖譜一般使用本體語言表示,深度學(xué)習(xí)給予了一個更為明確的思路:用向量的方式來表示知識圖譜。這種形式在需要進行的任務(wù)中,如預(yù)測、推理等,具有更強的可擴展性與可表達性。嵌入模型目標(biāo)是把一對對三元組編碼為低維的向量形式。知識圖譜嵌入模型的目的是向低維向量空間中嵌入多關(guān)系數(shù)據(jù)的實體和關(guān)系,同時還能保留數(shù)據(jù)中的結(jié)構(gòu)信息。
表示學(xué)習(xí)的目的是將需要表達的對象(知識圖譜等)表達為機器可以理解的實值向量的形式。對于知識圖譜,表示學(xué)習(xí)目標(biāo)是圖譜中的實體和關(guān)系,然后構(gòu)建模型將實體和關(guān)系映射到低維向量空間中進行后續(xù)的推理或預(yù)測任務(wù)。TransE模型是表示學(xué)習(xí)的一個經(jīng)典方法。
TransE模型屬于翻譯模型:其將實體和關(guān)系表示為同一空間中的向量,對于給定的三元組(h,r,t),模型將其中的關(guān)系r看成頭節(jié)點h到尾節(jié)點t的平移向量,即h+r≈t;這種思想來自于詞向量空間的平移不變性,TransE模型如圖1所示。
圖1 TransE模型原理
在訓(xùn)練模型過程中,模型會不斷調(diào)整其參數(shù),使得知識圖譜中的h+r-t的距離盡可能小。模型的優(yōu)化目標(biāo)為
(2)
式中:[x]+表示函數(shù)取值大于零時取值不變,小于零時則取零,這種函數(shù)一般稱之為合頁損失函數(shù);γ為一個正確三元組與錯誤三元組之前的間隔修正,γ越大,兩個三元組之前被修正的間隔就越大,則對向量的修正就越嚴格(一般都設(shè)置為1);d為h+r和t兩個向量之間的距離,一般使用的是L1或L2范數(shù);S為用來訓(xùn)練的三元組集合。模型的目標(biāo)是讓正確三元組之間的距離變小、錯誤三元組的距離變大;所以如果函數(shù)取值大于零,則表示需要對模型的參數(shù)進行調(diào)整,訓(xùn)練流程如表1所示。
表1 TransE算法整體流程
傳統(tǒng)的推薦算法往往只學(xué)習(xí)潛在的用戶和實體的表征,本文在更細粒度的層面利用知識圖譜和GNN提取用戶和實體的交互特征,通過該方法挖掘出用戶更深層次的潛在興趣。
模型在知識圖譜上的采樣步驟如圖2所示。假設(shè)用戶點擊的物品為v1,以v1為中心向外擴散一個步長,將相關(guān)的實體放入一個集合N(v)中,然后根據(jù)集合中每個實體的嵌入特征將集合的所有特征聚合成一個向量,再以此特征為中心繼續(xù)重復(fù)之前的步驟向外擴散。
圖2 采樣步驟
圖3 GCN層結(jié)構(gòu)圖
(3)
式中wr和br皆為可訓(xùn)練參數(shù)。
(4)
(5)
通過這種獨特的關(guān)系注意力機制,能夠?qū)⒅R圖譜和給出的用戶、物品和關(guān)系信息進行融合并挖掘出用戶更深層次的潛在興趣。
圖4 算法整體流程圖
(6)
式中σ′為sigmoid函數(shù)。
對模型進行優(yōu)化時使用的是交叉熵損失函數(shù),同時還使用了負采樣策略解決訓(xùn)練數(shù)據(jù)的正負樣本失衡的情況。整體目標(biāo)函數(shù)計算公式為
(7)
式中:£為交叉熵損失函數(shù);p為對樣本負采樣的聯(lián)合分布;Nu為對用戶u采樣的最終結(jié)果集,Nu=|{v:yuv=1}|。公式的第二項為L2正則化。
本實驗采用的是電影推薦領(lǐng)域最常用的數(shù)據(jù)集MovieLen,該數(shù)據(jù)集包含一百萬個用戶對電影的評分數(shù)據(jù)(評分在1~5之間)、2445部電影以及6036個用戶。知識圖譜來自于微軟提供的開源的Satori數(shù)據(jù)庫,通過相應(yīng)的數(shù)據(jù)預(yù)處理,得到了適用于算法模型的120萬條三元組數(shù)據(jù)、18萬個實體及12種關(guān)系。
作為一個經(jīng)典的點擊率預(yù)測問題,實驗中使用準(zhǔn)確率(Accuracy,ACC)和曲線下面積(Area Under Curve,AUC)兩個評價指標(biāo)。ACC代表模型推薦的準(zhǔn)確率,值越高說明模型性能越好。為克服樣本不均衡問題,二分類問題常常把AUC也作為分類器的評價指標(biāo),其值越接近1代表分類器越優(yōu)秀。
實驗過程中先將數(shù)據(jù)集的評分進行二進制編碼,閾值設(shè)置為4,即評分低于4的編碼為0,其余的編碼為1。同時根據(jù)模型在驗證集上的表現(xiàn)不斷調(diào)整模型的超參數(shù),在向量的嵌入維度方面進行相關(guān)的對比實驗,其它參數(shù)不變的情況下把維度d設(shè)置在2~64維之間(以2的冪指數(shù)增長)。在數(shù)據(jù)集上的AUC變化如圖5所示。
由圖5可以看出,隨著d在2~8維之間的尺度逐漸增大,AUC也逐漸變大,因為嵌入的尺寸更大,編碼的信息就更為豐富,但在8維之后性能開始下降,這可能是因為過擬合所致,因此實驗中最終把嵌入維度設(shè)置為8。
圖5 嵌入維度d與AUC的關(guān)系曲線
本文在數(shù)據(jù)集上進行了對比實驗,結(jié)果表明本文改進后的算法對比業(yè)界中表現(xiàn)良好的模型FM[12]、CKE[13]、RippleNet、KGCN取得了較好的結(jié)果?;趨f(xié)同過濾的FM算法由于沒有使用異構(gòu)的知識圖譜信息表現(xiàn)最差;基于正則化的CKE忽視了圖譜的高階連接性;雖然RippleNet和KGCN表現(xiàn)同樣優(yōu)異,但本文額外多出的KGE模塊使得本文的算法相較于上述各算法在ACC的表現(xiàn)方面分別取得了2.3%、2.4%、1.2%、1.2%的提升,在AUC層面也分別獲得了2.9%、2.3%、1.0%、1.6%的增益,具體實驗結(jié)果對比如表2所示。
表2 實驗結(jié)果對比
表中的百分數(shù)是其它模型對比本文模型結(jié)果獲得的百分比增益。
提出一種基于知識圖譜嵌入模型TransE和圖神經(jīng)網(wǎng)絡(luò)的推薦算法,通過知識圖譜模型可以挖掘出用戶更深層次的潛在興趣,實驗證明了該模型的優(yōu)越性。該方法也可用于需要知識圖譜結(jié)構(gòu)性信息的領(lǐng)域,如社交網(wǎng)絡(luò)或文本處理等。