Graph Transformer Networks 論文分享

論文地址:https://arxiv.org/abs/1911.06455
實現代碼地址:https://github.com/ seongjunyun/Graph_Transformer_Networks
看分享之前可以把論文讀一遍,代碼看一看,這樣必定會事半功倍!

論文目的是通過構造GTN(Graph Transformer Networks),來學習到異構網絡中有效的節點表示。

其他現有方法(GNNs)的缺點:

  1. 對於異構圖,由於GNN只用於處理同構圖,因此效果不好。(什麼是異構圖呢?下面這張圖清楚的展示了異構圖:在一個圖中,節點類型數大於1,如author類型,paper類型,venue類型;邊的類型數大於1,如author-paper邊,paper-venue邊;這樣存在不同的節點類型和邊類型的圖就是異構圖)

  2. 一種簡單的處理方法就是忽略類型,缺點就是無法獲取到類型信息。

  3. 手動設計一個meta-path,例如,將異構圖轉化由meta-path定義的同構圖,然後使用GNN進行操作。方法的缺點是:對於每一個問題都需要單獨的手工設計meta-path並且最終效果受到選擇meta-path的影響meta-path的選擇需要對應領域知識

整體框架

  1. 首先明確一條meta-path的表示:
  2. 模型構造

卷積層(劃紅線部分)

這裏通過卷積層可以將通道數爲n的A(圖中所示)轉化爲通道數爲m的Q。

代碼:

A 的size:

W的size:


訓練過程中某一次W的值如下圖所示,在下圖中可以看到,1*1的卷積核給A中每一種類型的邊賦予一個權值(或者說是分值),通過這種attention機制來判斷邊對於最終生成meta-path的影響程度。

GT層

在GT層中,使用了類似於stack的結構(你仔細讀論文就會看到)圖中一個紅色小方塊圈起來的就是一個卷積層,直觀上看就是一個stack的結構。

代碼

解決meta-path長度隨層數的增加而增加問題(通過eye函數,添加了一個單位矩陣,這樣就可以獲得任意長度的meta-path。這裏大家仔細看看論文和代碼理解):

GTN

代碼

gcn_conv:

實驗

將模型生成的meta-path同預定義的meta-path相比較:

meta-path有效性

本文的亮點

  1. 不需要領域知識,不需要手動設置meta-path,GTN通過候選鄰接矩陣來定義有效的meta-paths。
  2. 可擴展性強,GTN層之後不僅可以接GCN,還可以接其他網絡層來實現其他任務。

pdf版本我放在百度網盤了,需要的下載:
鏈接:
https://pan.baidu.com/s/1WB1Io4fEmIfujEJL6pYlCg 
提取碼:ri5t

歡迎關注公衆號 :開文見章,只爭朝夕,共同進步。

發佈了20 篇原創文章 · 獲贊 11 · 訪問量 4870
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章