學習GCN不錯的英文參考資料,原鏈接
Overview
許多現實世界的重要數據集都以圖形或網絡的形式出現:社交網絡、知識圖、蛋白質交互網絡、萬維網等等。然而,直到最近,很少有人關注神經網絡模型泛化到這樣的結構化數據集。
在過去的幾年裏,一些論文重新探討了將神經網絡推廣到任意結構圖上的問題(Bruna et al., ICLR 2014; Henaff et al., 2015; Duvenaud et al., NIPS 2015; Li et al., ICLR 2016; Defferrard et al., NIPS 2016; Kipf & Welling, ICLR 2017),他們中的一些人現在在一些領域取得了非常有希望的結果,這些領域以前是由基於內核的方法、基於圖形的正則化技術等主導的。
在這篇文章中,我將簡要概述這一領域的最新發展,並指出各種方法的優缺點。這裏的討論主要集中在最近的兩篇論文:
- Kipf & Welling (ICLR 2017), Semi-Supervised Classification with Graph Convolutional Networks (disclaimer: I’m the first author)
- Defferrard et al. (NIPS 2016), Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering
Outline
- 簡要介紹圖上的神經網絡模型
- 譜圖卷積和圖卷積網絡(GCNs)
- Demo:圖形嵌入內部嵌入簡單的一階GCN模型
- GCNs作爲weisfeler - lehman算法的可微泛化
如果你已經熟悉GCNs和相關的方法,你可能想要直接跳到嵌入空手道俱樂部網絡9 Embedding the karate club network).
GCN有什麼作用
最近的文獻
推廣一個類似RNNs或CNNs這樣的成熟的神經網絡模型來處理任意結構的圖是一個具有挑戰性的問題。最近的一些論文介紹了具體問題的專用體系結構(e.g. Duvenaud et al., NIPS 2015; Li et al., ICLR 2016; Jain et al., CVPR 2016), 其他人利用譜圖理論中已知的圖卷積(Bruna et al., ICLR 2014; Henaff et al., 2015) 定義多層神經網絡模型中使用的參數化過濾器,類似於我們熟悉經典的CNNs.
最近的工作重點是彌補快速啓發法和緩慢但更有原則的譜方法之間的差距。Defferrard等人(NIPS 2016)使用Chebyshev多項式在光譜域近似平滑濾波器,使用在類神經網絡模型中學習的自由參數。他們在常規領域(如MNIST)取得了令人信服的結果,接近於簡單的2D-CNN模型。
GCN Part Ⅰ: 定義
目前,大多數圖神經網絡模型都有一個通用的體系結構。我將把這些模型稱爲Graph Convolutional Networks (GCNs);卷積,因爲過濾器參數通常在圖中的所有位置共享(或其子集,如Duvenaud et al.,NIPS 2015)。
對於這些模型,目標是圖上學習信號/特徵在的函數,該函數作爲輸入:
- 是對於每一個節點 的特徵的描述, 的特徵矩陣(:點的數量;:輸入特徵的數量)
- 矩陣形式的圖結構的典型描述;通常以鄰接矩陣(或其某個函數)的形式出現
併產生節點水平的輸出 (特徵矩陣,其中爲每個節點的輸出特徵數)。圖水平的輸出可以通過引入某種形式的池化pooling操作來建模(參見Duvenaud et al,NIPS 2015).
每個神經網絡的layer可以寫成一個非線性函數
、 (圖水平的輸出)、表示layers的數量。具體的模型根據不同的選擇和參數化。
GCNs Part Ⅱ:簡單的例子
舉一個例子,考慮非常簡單的分層傳播規則:
表示第個layer的權重矩陣,是非線性激活函數比如ReLu。儘管這個模型很簡單,但它已經非常強大了(我們稍後將討論這個問題)。
但首先,嘗試解決這個簡單模型的兩個侷限性:與A相乘意味着,對於每個節點,我們對所有相鄰節點的所有特徵向量求和,但不包括節點本身(除非圖中存在自循環)。我們可以通過在圖中執行自循環來“修復”這個問題:我們只需將單位矩陣添加到。
第二個主要的侷限性是通常是沒有經過標準化處理,因此與的乘法會完全改變特徵向量的比例(我們可以通過觀察的特徵值來理解)。標準化處理,所有的r行(rows)和爲1,例如,是一個對角節點矩陣(diagonal node degree matrix),這樣就解決的這個問題。與相乘相當於對相鄰節點的特徵進行平均。實際上,當我們使用對稱標準化時,動態會變得更有趣,例如. ,因爲這不再是相鄰節點的平均值。結合這兩個技巧,我們基本上得出了在Kipf & Welling中引入的傳播規則(ICLR 2017):
,
當的時候,表示單位矩陣,是的對角節點度矩陣
在下一節中,我們將進一步瞭解這種模型是如何在一個非常簡單的示例圖上運行的:Zachary’s karate club network (點擊查看 Wikipedia的文章)
GCN Part Ⅲ:Embedding the karate club network(嵌入的空手道俱樂部)
空手道俱樂部圖,顏色表示通過基於模塊聚類得到的社區 (Brandes et al., 2008).
讓我們來看看我們的簡單GCN模型(參見前一節或Kipf & Welling, ICLR 2017)是如何在一個著名的圖形數據集Zachary的空手道俱樂部網絡上工作的(參見上圖)。
我們構造一個3層的GCN,並隨機初始化權值。現在,在訓練權值之前,我們只需將圖的鄰接矩陣和(即爲單位矩陣,因爲我們沒有任何節點特徵)插入到模型中。3層的GCN現在在前向傳播中執行三個傳播步驟,並有效地對每個節點的3階鄰域進行卷積(所有節點到3“跳”遠)。值得注意的是,該模型生成了這些節點的嵌入,它們非常類似於圖中的社區結構(參見下圖)。請記住,我們已經完全隨機初始化了權值,並且還沒有執行任何訓練更新(到目前爲止)!
GCN embedding (with random weights) for nodes in the karate club network.
這似乎有些令人驚訝。最近一篇關於DeepWalk模型的論文(Perozzi et al., KDD 2014)表明,他們可以在複雜的無監督訓練過程中學習類似的嵌入。如何能夠可能得到這樣的嵌入或多或少“免費”使用我們簡單的未經訓練的GCN模型?
通過將GCN模型解釋爲衆所周知的圖上的Weisfeler - Lehman算法的廣義可微版本,我們可以對此有所瞭解。1維Weisfeiler-Lehman算法流程如下:
對於所有的節點
- 獲得鄰接節點的的特徵集合
- 更新節點的特徵 ,爲u單映射哈希函數
重複步直到收斂
原算法表示如下
實際上,Weisfeler - Lehman算法爲大多數圖分配了一組獨特的特徵。這意味着每個節點都被分配了一個唯一描述其在圖中的角色的特性。**例外情況是高度規則的圖形,如網格、鏈等。**對於大多數不規則圖,這種特徵分配可以用來檢查圖的同構性(即兩個圖是否相同,直到節點的排列)。
回到我們的Graph Convolutional layer-wise傳遞規則的向量形式:
,
是節點的相鄰節點的索引,是邊的normalization constant,通過使用我們GCN模型中的對稱標準化鄰接矩陣。這個傳播規則可以解釋爲在Weisfeler - Lehman算法中使用的哈希函數的可微分和參數化變體()。如果選擇適當的非線性並初始化隨機權重矩陣,使其正交(e.g,初始化使用來自Glorot & Bengio, AISTATS 2010),這個更新規則在實際中就會變得穩定(由於的標準化)。經過觀察,得到了meaningful smooth embeddings,我們可以將距離解釋爲局部圖結構的(去)相似性!
GCNs Part Ⅳ:半監督學習
由於我們的模型中的所有東西都是可微的和參數化的,我們可以添加一些標籤,訓練模型並觀察嵌入的反應。我們可以使用Kipf & Welling (ICLR 2017)中提到的GCNs半監督學習算法。我們簡單地爲每個類/社區標記一個節點(在下面的視頻中突出顯示的節點),並開始進行多個iterations訓練
GCNs的半監督分類:潛在的動態空間進行300個訓練迭代,每個類一個標籤。標記的節點已經突出顯示。
注意到,模型直接產生了一個潛在的二維空間,通過可視化。可以發現3層的GCN模型能夠線性地分離社團,每個類只給出一個標記的示例。考慮到模型沒有收到節點的特性描述的原因,這是以一個顯著的結果。同時,可以提供初始節點特徵,正是 (Kipf & Welling, ICLR 2017)中描述的實驗中所做的,以實現對多個圖數據集的最新分類結果。