為解決知識圖譜(KG)中三元組不完整問題,本文結合加權圖卷積神經網絡(WGCN)和Conv-TransE兩個模塊,提出了SACN(Structure-Aware Convolutional Networks)模型。SACN通過WGCN來建模KG中的實體和關系,提取實體特征,然后輸入至ConvE中使實體滿足KG三元組約束,得到實體的embedding表示。通過實驗證明,在FB15k-237和WN18RR數據集上超越了之前最佳模型效果的10%,是當前的SOTA模型。
發表於AAAI 2019,作者信息如下:

- 引言
首先簡要介紹知識庫(Knowledge Base,KB)。知識庫中的知識有很多種不同的形式,例如本體知識、關聯性知識、規則庫、案例知識等。相比於知識庫的概念,知識圖譜(Knowledge Graph,KG)更加側重關聯性知識的構建。定義KG的主要方法是采用(s, r, o)三元組的形式,舉例來說,北京是中國的首都,那么這句話就可以用三元組表示為:(s = Beijing, r = IsCapitalOf, o = China )。其中s稱為頭實體,r稱為關系,o為尾實體。本文的知識庫補全任務指的就是知識圖譜中三元組的補全。
那么,在有了三元組的定義之后,本文的任務就可以描述為:給定KG,學習實體和關系的嵌入表示,完成三元組補全任務(s, r, o),即給定頭實體和關系,求最可能的尾實體。
- 方法
模型的整體框架為WGCN模塊提取實體embedding表示,再將實體embedding表示作為Conv-TransE模塊的輸入,得到滿足三元組約束的Loss從而訓練整個網絡。整體框架如Figure 1所示。
下面,本文將按前向傳播順序介紹WGCN和Conv-TransE模塊。
1. WGCN
顧名思義,WGCN的全稱是Weighted Graph Convolutional Networks,姑且稱為加權的圖卷積神經網絡。其主要思想就是對不同的關系邊定義一個不同的權重,將一個多關系圖轉變為多個帶有不同強弱關系的單關系圖。構成圖的節點為實體,圖的邊為實體之間的關系。
回憶經典的GCN定義,主要思想為:將每個節點作為聚合的中心節點,對每個中心節點,聚合鄰居節點的本層特征表示,來作為中心節點的下一層特征表示,即

其中,Ni表示i節點的鄰居節點集合(包括i節點本身),hl為節點在第l層的向量表示。g(·, ·)表示信息傳遞函數,最基本的定義方法為
![]()
![]()
通過求和操作,將線性變換后的鄰居節點的向量表示共享給中心節點,實現GCN層中的聚合操作。通過GCN層的逐層堆疊,來實現前向傳遞。值得一提的是,每層GCN都聚合了鄰居的信息,在第一層聚合了一階鄰居信息之后,第二層聚合鄰居的時候,它的鄰居節點已經有了鄰居節點的鄰居節點的信息,因此第二層GCN聚合了二階鄰居的信息。GCN層堆疊次數越多,中心節點所聚合的鄰居范圍也越廣。更具體的介紹可以查閱文獻【1】。
那么我們回到主線,WGCN的與經典GCN的主要區別就是,對知識圖譜中的每個關系建模,在聚合過程中給不同的關系以不同的權重。定義權重為αt,1≤t≤T,其中T為關系總數。αt為可學參數。因而前向迭代公式可以寫作

其中,g(·, ·)表示信息傳遞函數,定義同樣為
![]()
這樣,我們將中心節點和鄰居節點分離開,可以寫作

將其寫為矩陣形式,有

其中,At表示第t個關系構成的0-1鄰接矩陣,0為無邊相連,1為有邊相連。因此,形式上就又回到了原始的GCN遞推公式【1】
![]()
這樣我們便將一個多關系圖轉變成了多個具有不同強弱關系的單關系圖,如Figure 2所示,圖的右側分別對應矩陣A、H、W。這便是WGCN的巧妙之處。

另外,關於KG在WGCN中的建圖,使用實體作為圖的節點,關系作為圖的邊。值得說明的是,本文還使用了節點的屬性作為圖的節點,如屬性(Tom,gender,male)。這樣做的目的是將屬性也作為節點,起到“橋”的作用,相同屬性的節點可以共享信息。還有作者為了減少過多的屬性節點,對節點進行了合並, 將gender也作為了圖中的節點,而不是建立male和female兩個屬性,理由是gender已經能夠確定實體的person,而不必過多區分性別。
因此,WGCN同時使用了三元組的結構信息和實體的屬性信息,也就是標題中的structure-awared。
2. Conv-TransE
Conv-TransE這個部分類似於ConvE【2】,通過對(s, r)和o進行相似度打分,來預測關系是否成立。與ConvE的主要區別是去掉了ConvE中的reshape操作,具體可以參看文獻【2】。這里給出經典的KG表征學習的打分函數。

來看模型結構,如圖所示。

舉例來說,將WGCN得到的實體s的embedding和預訓練的關系r的embedding進行concat操作,變成一個2*n維的矩陣。對這個矩陣進行卷積操作,通過多個相同尺寸的卷積核,得到feature maps。然后將feature maps拉直成一個向量,通過全連接層進行維度縮減。將這個融合了s和r的向量與WGCN生成的所有向量分別進行點積操作,計算(s,r)與所有待選o的相似度。相似度通過sigmoid縮放到0~1范圍內,取相似度最高的作為預測的實體o。
打分函數(相似度函數)體現了前向傳播的過程,公式形式為
![]()
M(·, ·)表示卷積操作,vec(·)表示拉直操作,f(·)為激活函數。
將打分函數通過sigmoid函數,得到(s, r)和待選o構成三元組成立的概率,即
![]()
因此,整個網絡的損失也就可以定義為,(s, r)和待選o構成三元組是否成立的二分類交叉熵,即
![]()
- 數據集
文中共使用了三個數據集,包括:
1)FB15k-237: freebase三元組
2)WN18RR: wordnet三元組
3)FB15k-237-Attr:作者從FB24k中抽取了實體的屬性
具體的統計信息如下:

- 實驗
文章進行了鏈接預測任務的實驗,實驗結果如表3。可以看到,帶有屬性節點的SACN性能表現達到了State-Of-The-Art。

參數敏感性部分,文章嘗試了不同長度的卷積核,針對不同的數據集有不同的最優參數。

文章還對不同的度的節點的性能進行了比較,可以看到,在度較低的節點下是SACN高於Conv-TransE的,因為鄰居節點可以共享更多的信息;然而度較高的節點則效果不如單獨的Conv-TransE,文章對它的解釋是較多的鄰居節點使較重要的鄰居信息被過度“平滑”掉了,因此比不上單純的Conv-TransE。

- 結束語
作者用WGCN來捕獲具有相關關系的實體特征,使鄰居節點的信息得以共享,這樣學到的實體表示要好於孤立的學習ConvE得到的實體表示。本質上是GCN+ConvE的模型框架,這種串聯的框架對其他類似的任務也有啟發性。另外的體會是深度學習方面的研究,還是要多讀論文多總結。好的,做完了這篇博客,相信事情總可以一件一件一件的做完!
參考文獻
【1】Kipf, T.N., & Welling, M. (2016). Semi-Supervised Classification with Graph Convolutional Networks. ArXiv, abs/1609.02907.
【2】Dettmers, T., Minervini, P., Stenetorp, P., & Riedel, S. (2017). Convolutional 2D Knowledge Graph Embeddings. AAAI.
