論文解讀二代GCN《Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering》

cute_Learner發表於2022-01-17

Paper Information

Title:Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering
Authors:Michaël DefferrardXavier BressonPierre Vandergheynst
Paper:Download 
Source:NeurIPS 2016


Abstract

  基於   spectral graph theory  ,為設計 localized convolutional filters on graphs  提供了必要的數學背景和有效的數值方案。

  Our method's advantages:

    • The proposed technique offers  linear computational complexity.
    • Constant learning complexity.

Review

  At the begining ,we just do a review about the first generation GCN.

    $x_{k+1, j}=h\left(V \sum \limits _{i=1}^{f_{k-1}} F_{k, i, j} V^{T} x_{k, i}\right) \quad\left(j=1 \ldots f_{k}\right)$

  其中,$F(k,i,j)$ 是圖卷積神經網路在第  $k$  層的 filter ,可學習,具有任意性。由圖卷積公式可以看出,卷積核不具備區域性性,並且依賴於圖的 Laplacian 的譜分解。


1 Introduction

  CNN的優勢:

    • Offer an efficient architecture to extract highly meaningful statistical patterns in large-scale and high-dimensional datasets.
    • Can learn  local stationary structures.
    • Can  compose the local stationary structures to form multi-scale hierarchical patterns in many domain.

   What CNN do?

    • CNNs extract the local stationarity property of the input data or signals by revealing local features that are shared across the data domain.
    • Similar features are identifified with localized convolutional fifilters or kernels,which are learned from the data.

  Why CNN can recognize identical features independently of their spatial locations?

    • Due to  Convolutional filters are shift  or translation-invariant filters.

  Then,explain the common of  non-Euclidean data ,such as social networks, gene data on biological regulatory networks, log data on telecommunication networks, or text documents on word embeddings

  Why CNN can't apply in graph directly?

    • The convolution and pooling operators are only defined for regular grids.
    • Major bottleneck : how to  define a localized graph filters which are efficient to evaluate and learn.

  Main contributions as the following:

    • Spectral formulation. If you have the ability ,you can read this paper at first.——《 The Emerging Field of Signal Processing on Graphs: Extending High-Dimensional Data Analysis to Networks and other Irregular Domains》
    • Strictly localized fifilters. 本文提出的  spectral filters 在以中心節點的為半徑的最短路徑內是嚴格區域性化的。
    • Low computational complexity.  本文提出的卷積核的複雜度是和卷積核的尺寸以及邊的數量成線性關係的,另外由於大多數圖稀疏的,我們可以估計地認為  $|\varepsilon| \ll n^{2} $  並且  $|\varepsilon|=k n$ ,也就是每個節點只和  $k$  個近鄰有邊,這樣複雜度就和節點數量成線性關係。另外本方法避免了使用 Fourier basis,因此不再需要進行昂貴的  EVD (特徵值分解) 以及儲存  Fourier basis(使用一個大小的矩陣)。除了資料,本方法只需要儲存  Laplacian matrix 這個包含  $|\mathcal{E}|$  non-zero values  的  sparse 矩陣。
    • Efficient pooling. 將頂點重新排列為一個二叉樹結構。
    • Experimental results. 通過實驗證明了方法的有效性,並與其他方法進行了對比。

2 Proposed Technique

   Generalizing CNNs to graphs requires three fundamental steps:

    1. the design of localized convolutional filters on graphs(區域性卷積核設定);
    2. a graph coarsening procedure that groups together similar vertices (圖的粗化);
    3. a graph pooling operation that trades spatial resolution for higher filter resolution(圖的池化).

2.1 Learning Fast Localized Spectral Filters

  Two strategies to define convolutional filters:

    • from a spatial approach.
    • from a spectral approach.

   Why not choose spatial approach?

    • Although graph convolution in the spatial domain is conceivable, it faces the challenge of matching local neighborhoods .
    • No unique mathematical definition of translation on graphs from a spatial perspective.

   Spectral filter's challenge:

    • 頻域卷積核需要藉助  convolutions with a Kronecker delta implemented ;
    • 由於要與  Graph Fourier basis 相乘,會產生  $O\left(n^{2}\right)$  的複雜度,轉換成本高。

2.1.1 Graph Fourier Transform

  $ x: \mathcal{V}  \rightarrow \mathbb{R}$ defined on the nodes of the graph may be regarded as a vector  $x \in \mathbb{R}^{n}$  where  $x_{i}$  is the value of  $x$  at the  $i^{t h}$  node.

  graph Laplacian :$L=U \Lambda U^{T} $ ($L=D-W \in \mathbb{R}^{n \times n}$ or $L=I_{n}-D^{-1 / 2} W D^{-1 / 2}$)

  where 

    • $L$  is a real symmetric positive semidefinite matrix.
    • Fourier basis  $U=\left[u_{0}, \ldots, u_{n-1}\right] \in \mathbb{R}^{n \times n}$.
    • orthonormal eigenvectors  $\left\{u_{l}\right\}_{l=0}^{n-1} \in \mathbb{R}^{n}$ and nonnegative eigenvalues  $\left\{\lambda_{l}\right\}_{l=0}^{n-1}$ . 
    • $\Lambda=\operatorname{diag}\left(\left[\lambda_{0}, \ldots, \lambda_{n-1}\right]\right) \in \mathbb{R}^{n \times n}$ .

  A signal  $x \in \mathbb{R}^{n}$  is then defined as  $\hat{x}=U^{T} x \in \mathbb{R}^{n}$ , and its inverse as  $x=U \hat{x}$ . 

2.1.2 Spectral filtering of graph signals

  由於很難在 vertex domain (理解為空域)  定義一個  translation operator,所以考慮在  graph 上藉由  Fourier domain  (理解為頻域)去定義一個   convolution operator  。這裡將兩個圖訊號的卷積操作記作:

    $x *_{G} y=U\left(\left(U^{T} x\right) \odot\left(U^{T} y\right)\right)$
  將圖訊號  $x$  的經過  $g_{\theta}$  卷積,寫成:
    $y=g_{\theta}(L) x=g_{\theta}\left(U \Lambda U^{T}\right) x=U g_{\theta}(\Lambda) U^{T} x$
  其中
    $g_{\theta}(\Lambda)=\operatorname{diag}(\theta)$ 
  是特徵值的對角矩陣。一個非引數化(non-parametric)的卷積核,也就是說它的引數全部都是自由引數。
  這裡  $\theta \in \mathbb{R}^{n}$  ,是一個傅立葉係數向量,其實可以理解為卷積核與相乘後的結果,這個結果的每一維相當於這一維對應的特徵向量的係數。

其他解釋:

   圖上的傅立葉變換與逆變換為:

    $\begin{array}{l}\hat{f}=U^{T} f \\f=U \hat{f}\end{array}$

  根據傅立葉變換與卷積的關係,為了匯出圖卷積公式,我們先計算圖與卷積核的傅立葉變換,再將其相乘,最後求其逆變換:

    $f * g=\mathscr{F}^{-1}(\mathscr{F}(f) \mathscr{F}(g))$

  帶入可得:

    $f * g=U\left(\left(U^{T} f\right) \odot\left(U^{T} g\right)\right)$

  這裡對於卷積核的傅立葉變換我們可以寫為:

    $U^{T} g=\left(\hat{g}\left(\lambda_{1}\right), \hat{g}\left(\lambda_{2}\right), \ldots, \hat{g}\left(\lambda_{n}\right)\right)^{T}$

  故可將哈達馬積去掉,寫成:

    $f * g=U \operatorname{diag}\left(\hat{g}\left(\lambda_{1}\right), \hat{g}\left(\lambda_{2}\right), \ldots, \hat{g}\left(\lambda_{n}\right)\right) U^{T} f$

2.1.3  Polynomial parametrization for localized filters.

  前述非引數化的卷積核有兩個侷限性:

    1. 這樣的卷積核在空間上不是區域性化的;
    2. 學習複雜度是  $O(n)$。

  這些問題可以通過使用多項式濾波器來解決

     $g_{\theta}(\Lambda)=\sum \limits _{k=0}^{K-1} \theta_{k} \Lambda^{k}$

  其中 $\theta \in \mathbb{R}^{K} $ ,是多項式的係數向量,是要學習的引數。此時,圖訊號被  $g_{\theta}$  所卷積後得到的結果為:

    $\begin{array}{l}y&=U\left(\sum \limits _{k=0}^{K-1} \theta_{k} \Lambda^{k}\right) U^{T} x \\&=\left(\sum \limits_{k=0}^{K-1} \theta_{k} U \Lambda^{k} U^{T}\right) x \\&=\sum \limits_{k=0}^{K-1} \theta_{k} L^{k} x\end{array}$

  經證明,當  $d_{G}(i, j)>K$  時有  $\left(L^{K}\right)_{i, j}=0$, 其中  $ d_{G}$  代表最短路徑距離。此時就說這樣的卷積核是嚴格 K-localized 的。另外,學習引數複雜度為  $O(K)$  ,與 CNN相同。

  此種卷積核有以下特點:

    1. 卷積核只有  $K$  個引數,一般  $K \ll n$   ,引數複雜度大大降低;
    2. 不需要進行拉普拉斯矩陣的特徵分解,直接使用拉普拉斯矩陣進行變換,然而由於要計算  $K$   次,計算複雜度還是   $O\left(n^{3}\right)$ ;
    3. 卷積核具有很好的空間區域性性(就是卷積核的感受野),也就是說每次卷積會將中心頂點  K-hop neighbor  上的  feature  進行加權求和,權係數就是   $\theta_{k} $。

2.1.4 Recursive formulation for fast filtering.

  非引數化的卷積核的複雜度較高,並且上述多項式卷積核的計算複雜度仍然是比較高的。

  本小節介紹的卷積核應用切比雪夫多項式,能夠實現由於使用非引數化的卷積核覆雜度較高,且多項式卷積核的計算複雜度依然差不多。思路是將  $g_{\theta}(L)$  引數化為一個可由遞迴計算的多項式函式,這樣的多項式可以採用切比雪夫多項式,如下:

    $\begin{array}{l}T_{0}(x)=1 \\T_{1}(x)=x \\T_{k}(x)=2 x T_{k-1}(x)-T_{k-2}(x)\end{array}$

  參考:《 切比雪夫多項式》

  利用切比雪夫多項式,卷積核設計為:

    $g_{\theta}(\Lambda)=\sum \limits _{k=0}^{K-1} \theta_{k} T_{k}(\widetilde{\Lambda})$

   其中,  $\theta_{k}$  是切比雪夫係數向量,也就是需要學習的引數。$T_{k}(\widetilde{\Lambda}) \in \mathbb{R}^{n \times n}$  是階的切比雪夫多項式,  $\widetilde{\Lambda}=2 \Lambda / \lambda_{\max }-I_{n}$  ,這樣可以將特徵值標準化到之間。

  如此卷積操作就是下面這樣的過程:

     $y=g_{\theta}(L) x=\sum \limits _{k=0}^{K-1} \theta_{k} T_{k}(\widetilde{L}) x$

  上式的推導過程很簡單就不贅述了,這裡的  $\widetilde{L} \in \mathbb{R}^{n \times n}$  也就是標準化以後的,即  $\widetilde{L}=2 L / \lambda_{\max }-I_{n} $ 。
  將  $\bar{x}_{k}$  記作  $\bar{x}_{k}=T_{k}(\widetilde{L}) x \in \mathbb{R}^{k}$  ,同樣地也可以利用遞迴關係去計算  $\bar{x}_{k}=2 \widetilde{L} \bar{x}_{k-1}-\bar{x}_{k-2} $  ,此時  $\bar{x}_{0}=x, \bar{x}_{1}=\widetilde{L} x $ ,此時卷積的過程又可以表示為:

     $y=g_{\theta}(L) x=\left[\bar{x}_{0}, \cdots, \bar{x}_{K-1}\right] \theta$

  這樣設計的卷積過程的複雜度為  $O(K|\varepsilon|) $ 。對比上一小節的多項式卷積核,這裡利用切比雪夫多項 式設計的卷積核不再需要計算,而只是利用僅包含加減操作的遞迴關係來計算  $T_{k}(\widetilde{L})$  ,這樣大大減少了計算的複雜度。

2.1.5  Learning filters

  在一個卷積層中,一個樣本的第個  $j^{\text {th }}$   feature map 的輸出為:

    $y_{s, j}=\sum \limits _{i=1}^{F_{i n}} g_{\theta_{i, j}}(L) x_{s, i} \in \mathbb{R}^{n}$

   $x_{s, i}$  是輸入的feature map,總計有  $F_{\text {in }} \times F_{\text {out }}$  個向量  $\theta_{i, j} $ ,這些是需要學習的引數向量。 另外在訓練時需要計算兩個梯度:

    $\begin{array}{l}\frac{\partial E}{\partial \theta_{i, j}}=\sum \limits _{s=1}^{S}\left[\bar{x}_{s, i, 0}, \cdots, \bar{x}_{s, i, K-1}\right]^{T} \frac{\partial E}{\partial y_{s, j}} \\\frac{\partial E}{\partial x_{s, i}}=\sum \limits_{j=1}^{F_{\text {out }}} g_{\theta_{i, j}}(L) \frac{\partial E}{\partial y_{s, j}}\end{array}$

  是損失函式,由於採用多項式卷積核,不同階直接是累加關係,因此無論是計算對還是的梯度,都只需要先計算對的梯度,再利用累加關係很方便地就能得到最終結果,因此應用反向傳播演算法學習引數是可行的,在並行運算時也是高效的。還有一點就是   $ \left[\bar{x}_{s, i, 0}, \cdots, \bar{x}_{s, i, K-1}\right] $  只需要計算一次。

2.2 Graph Coarsening

  池化操作需要將相似的節點聚類到一起,對於多層網路來說做到這一點相當於對需要保持區域性幾何 結構的圖進行多尺度聚類(multi-scale clustering)。圖的聚類方法存在多種,比如常見的譜聚類 方法(參考連結:譜聚類|機器學習推導系列 (二十) )。在本文的方法中沒有采用譜聚類這種方 法,而是選擇了一種近似能夠將圖的規模除以2的聚類方法,這樣的方法可以精確控制粗化和池化的 size。本文采用的圖粗化方法為Graclus多尺度聚類演算法。

  Graclus方法採用一種貪婪的方法來計算給定圖的連續的粗化的版本,並且能夠最小化多種譜聚類 的目標,在這裡選擇的目標為normalized cut。具體的方法是在每層進行粗化時,選擇一個末標記 的節點,然後選擇一個能夠最小化   $W_{i j}\left(1 / d_{i}+1 / d_{j}\right)$  的末標記的鄰居節點,然後將這兩個節點標記,這兩個匹配的節點在池化時被合併,合併節點的訊號是這兩個節點的訊號加和。上述匹配的過程一直進行下去知道所有節點被遍歷。這種方法是非常快速的,並且能夠將圖的規模近似除以2, 之所以近似是因為可能有一些末匹配的節點(文中稱為singleton節點)。

2.3 Fast Pooling of Graph Signals

  池化操作被執行多次,所以必須是高效的。輸入的圖和粗化圖的節點的排列方法是無意義的,因此,一個直接的池化操作的方法是需要一張表來儲存匹配的節點,然而這種方法是記憶體低效的,並且緩慢,也不能並行處理。本文采用的方法可以使得池化操作像1D池化那樣高效。

  本文采用的方法分兩個步驟:
  ①建立一個平衡二叉樹;
  ②重排列所有節點。

  在進行圖的粗化以後,粗化圖的每個節點要麼有兩個子節點(被匹配到的節點),要麼只有一個節點(singleton節點)。從最粗到最細的圖,將會新增fake節點(不與圖連線在一起)到每一層來與singleton節點進行匹配。這樣的結構是一個平衡二叉樹,主要包含3種節點:
  ①regular節點(或者singleton節點),擁有兩個regular子節點(如下圖 level 1節點0);
  ②regular節點(或者singleton節點),擁有一個regular節點和一個singleton節點作為子節點的節點(如下圖 level 2節點0);
  ③fake節點,總是擁有兩個fake子節點(如下圖 level 1節點1)。

  fake節點的值初始化通常選擇一箇中性的值,比如當使用max pooling和ReLU啟用函式時初始化為0。這些fake節點不與圖的節點連線,因此卷積操作不會影響到它們。雖然這些節點會增加資料的維度,這樣會增加計算的花費,但是在實踐中證明Graclus方法所剩下的singleton節點是比較少的。在最粗化的圖中任意排列節點,然後傳播回最細的圖中,這是由於粗化圖中第的節點的子節點是上一層圖中的  $2k$  和   $2k+1$   節點,這樣就可以在最細的圖中有一個規範的排列順序,這裡規範是指相鄰節點在較粗的層次上分層合併。這種  pooling  方法類似  1D pooling。這種規範的排列能夠讓  pooling  操作非常的高效且可以並行化,並且記憶體訪問是  local 的。下圖是這種方法的一個例子:

    


3 Numerical Experiments

  這裡簡單列幾個實驗結果,具體實驗設定可以自行參考原論文。

  1、MNIST資料集上對比經典CNN

    

   2、20NEWs資料集上多種架構效果

    

   3、MNIST資料集上多種卷積核的對比

  下圖中Non-Param和Spline代表第一代GCN論文中提出的兩種卷積核,Chebyshev代表本文提出的卷積核:

     

   4、GPU加速效果對比

  下圖表明本文提出的GCN結構在使用GPU加速時比經典CNN能獲得更多的加速倍數,說明該架構的並行化處理能力是比較可觀的:

  

相關文章