論文題目:Graph Transformer Networks
論文來源:NIPS 2019
論文鏈接:https://arxiv.org/abs/1911.06455
代碼鏈接:https://github.com/seongjunyun/Graph_Transformer_Networks
文章目錄
1 摘要
本文解決的是HIN中的節點嵌入學習問題。
現有的GNN大多在固定且同質的圖上進行節點的表示學習。
本文提出了一種能夠生成新的圖數據結構的圖變換網絡(Graph Transformer Networks, GTNs),它包括識別原始圖數據中未連接節點之間的有用連接,同時以端到端方式學習新圖數據中有效的節點表示。
圖變換層(Graph Transformer layer)是GTNs中的核心層,它可以選擇出邊類型和組合關係,以生成有用的多跳連接,即元路徑。
實驗表明GTNs基於無先驗知識的數據和任務,通過在新圖上進行卷積,可以學習出有效的節點表示。
在三個基線的節點分類任務上超越state-of-the-art,並且對比的這些方法都需要預先定義元路徑。
2 引言
GNN的侷限性:
(1)大多數GNN是能在固定且同質的圖上進行運算。如果圖上有噪聲,缺失連邊或者有錯誤的連邊,就會導致與圖上錯誤的鄰居進行無效的卷積。
(2)大多數GNN忽略了節點/邊的類型,使用人爲設定的元路徑將異質圖轉化成同質圖,不能充分利用圖中的信息。並且選擇的元路徑將會在很大程度上影響下游任務的準確率。
這種方式是**兩步走(two-stage)**的方法:
- 針對特定任務/數據集,人爲設計元路徑;
- 根據元路徑將異質圖轉化爲同質圖,在其上面應用GNN。
作者提出:
作者提出GTN,可以看成是空間轉換網絡(STN)向圖數據的擴展。具體表現爲將HIN轉換成由元路徑定義的新的圖結構,就可以直接在新圖上進行節點的表示學習,是**端到端(end-to-end)**的學習模式。
將HIN轉換爲元路徑定義的新的圖結構帶來的挑戰:
- 元路徑的長度不固定,元路徑中邊的類型也是任意的;
- 能應用於有向圖的GNN相對較少。
基於上述挑戰,作者提出:
提出模型生成新的圖結構,該模型基於HIN中由所選邊類型相連的複合關係,並在給定問題下的圖結構上進行卷積操作以學習到節點表示。
3 模型
GTNs框架的目的是爲原始圖生成新的圖結構,並在新圖上進行節點表示學習。
與大多數在給定圖上進行CNN的方法不同,GTNs使用多個候選的鄰接矩陣生成新的圖結構,以實現更有效的圖卷積,學習到表示能力更強的節點嵌入表示。
3.1 定義
3.1.1 異質圖
- 異質圖,是節點集合,是邊集合;
- 分別是節點類型集合和邊類型集合;
- 異質圖可表示成一組鄰接矩陣。是鄰接矩陣,若節點到之間有第中類型的邊相連,則。也可以寫成張量的形式:;
- 節點的特徵矩陣爲.
3.1.2 元路徑
元路徑的鄰接矩陣表示成元路徑中不同類型的邊對應的鄰接矩陣的乘積:
3.1.3 GCN
其中,是的度矩陣,是可訓練的參數矩陣。
對於有向圖則將換成
由上式可以看出,卷積操作是由給定的圖結構決定的,且只有針對節點的線性轉換參數是可學習的。因此,卷積層可以被解釋成固定卷積的組合,在圖上經過節點級別的線性變換後再通過一個激活函數。
3.2 元路徑的生成
先前的工作都是人工定義元路徑,然後在其基礎上進行GNN。本文提出的GTNs爲給定的數據和任務學習到元路徑,然後在學習到的元路徑圖(meta-path graphs)上進行圖卷積。
3.2.1 GT層
元路徑圖的生成過程如上圖的圖變換層(GT)層所示,分爲兩步:
-
首先,GT層從候選的鄰接矩陣(每一片都代表一種邊類型)中選擇出兩個圖結構;
-
然後,將其組合得到新的圖結構(例如 將兩個鄰接矩陣相乘,)。
接下來逐步分析一下
(1)鄰接矩陣是通過下式的計算選擇出來的:
其中表示卷積操作,是的參數。其實的選擇類似使用了注意力機制。
以圖1爲例,輸入的原始圖的鄰接矩陣()一共有4片,每一片對應着一種類型的邊的鄰接矩陣,即原始圖中一共有4種類型的邊。
使用函數歸一化後的就是卷積層的參數。卷積後得到的鄰接矩陣,可以看成是在原鄰接矩陣上應用了注意力機制,爲各個片分配了不同的注意力係數作爲每片的權重,加權求和得到新的鄰接矩陣。
矩陣的每一片可以表示成:,其中就是卷積層中的參數,表示位於第幾層。
圖1中的分別是的兩個片,也就是說經過卷積操作後,輸入從轉換成了。
(2)將選擇出的鄰接矩陣組合得到新的圖結構:
採用矩陣相乘的方式,如圖1所示:。爲了數值穩定,使用度矩陣進行歸一化:。
長度爲的元路徑對應的鄰接矩陣計算爲:
其中表示邊類型的集合,爲對類型爲的邊在第層中的權重。
3.2.2 多層堆疊
由3.2.1可知,當不是one-hot向量時,就可以看成是所有長度爲的元路徑的鄰接矩陣的加權和。
因此堆疊層GT層就可以學習到任意的長度爲的元路徑圖結構,如圖2所示。
假定卷積的輸出通道爲,第層GT層爲新的元路徑圖生成的鄰接矩陣計算如下:
將迭代展開後可得:
其中表示邊類型的集合,爲對類型爲的邊在第層中的權重。因此,可以看成是對所有長度爲~的元路徑的加權和。元路徑的貢獻度計算爲。
注意:
生成的元路徑長度等於GT層的層數,所以堆疊的層數越多,則生成的元路徑越長,而且堆疊多層後原始圖中的連邊可能不存在了。然而,有的時候短的元路徑也很重要。
爲了學習到包含原始圖中連邊的長的元路徑和短的元路徑,在中加入單位矩陣,例如。這樣,當有層GT層時,就可以學習到長度爲~的元路徑。
3.3 Graph Transformer Networks
爲了同時生成多種類型的元路徑,將圖1中卷積的輸出通道設置爲,如圖2所示。隨後GT層產生一組元路徑,圖1中的成爲圖2中的張量。是爲了計算元路徑,得到的第層的鄰接張量的中間值。
通過多個不同的圖結構學習到不同的節點表示是很有幫助的。
表示生成的元路徑的最大長度,表示生成幾條元路徑。
在個GT層堆疊後,將GCN應用於元路徑張量的每個通道,並將多個節點的向量表示拼接起來:
其中,是連接操作,是通道數,是的第個通道的鄰接矩陣,是的度矩陣,是卷積中需要訓練的權重矩陣,是輸入的特徵矩陣。
包含節點在個元路徑圖中的表示,元路徑的長度最長爲。
將用於有監督的節點分類任務,構造優化目標。分類器的結構爲:輸入到2層的稠密層,然後再過一層softmax。損失函數是交叉熵函數。
整個模型架構可以看成是:在由GT層學習到的多個元路徑圖(meta-path graphs)上進行GCN。
4 實驗
實驗並分析,回答如下的幾個問題:
- GTN生成的新的圖結構對節點的表示學習有效嗎?
- GTN是否能根據數據集自適應地生成變長的元路徑?
- 如何從GTN生成的鄰接矩陣來解釋每個元路徑的重要性?
數據集:
實驗任務:節點分類
對比方法:
(1)傳統的網絡嵌入學習方法
- DeepWalk
- metapath2vec
(2)基於GCN的方法
- GCN
- GAT
- HAN
實驗結果:
(1)節點分類實驗結果
其中表示候選鄰接矩陣沒有包含單位矩陣。實驗可以看出,使用3層的GT層,只能爲IMDB數據集生成長度爲4的元路徑,效果很不好,因爲IMDB中長度更短的元路徑更合適。
(2)解釋元路徑的重要性
由3.2.2可知,元路徑的注意力分數計算爲,代表了在預測任務中這條元路徑的重要性。表3就展示了GTNs學習到的注意力得分最高的元路徑,以及預定義的元路徑,證明了GTNs可以學習到針對特定任務的比較重要的元路徑。
(3)GTNs根據數據集自適應地學習到變長的元路徑
圖3展示了每層GT層不同鄰接矩陣(不同類型的邊)的注意力分數。IMDB和DBLP相比,單位矩陣的注意力分數較高,說明GTNs能學習到比GT層數少的較短的元路徑。
5 總結
這篇文章很有開創性。
本文提出圖轉換網絡(GTNs)用於HIN上的節點表示學習。
將HIN轉換爲多個由元路徑定義的新圖,並且元路徑中的邊類型任意,長度是從~的任意長度(爲GT層層數)。然後在學習到的元路徑圖上通過卷積操作,進行節點表示的學習。
GTNs的一大特點是,不需要預先定義元路徑,也就是不需要專家的先驗知識。GTNs可以爲給定的數據集自適應地學習到合適長度的元路徑,元路徑的重要性體現爲注意力分數。
未來的研究方向:
(1)本文在GT層之後使用的數GCN方法,後續可以研究使用其他的GNN方法;
(2)本文只在節點分類任務上體現出了很好的效果,後續可以研究在其他任務上的效果,例如鏈接預測、圖分類等。