圖卷積網絡(GCN)簡單理解

1. 預備知識

1.1 圖網絡的種類、區別和聯繫

Graph Embedding

Graph Embedding指圖嵌入,屬於表示學習的範疇,也可以稱爲網絡嵌入、圖表示學習、網絡表示學習等等。

具體可以參考博主之前整理的關於圖嵌入相關內容的資料:鏈接

Graph Neural Network (GNN)

GNN指神經網絡在圖上應用的模型的統稱,根據採用的技術不同和分類方法的不同,又可以分爲很多不同種類。如從傳播的方式來看,圖神經網絡可以分爲圖卷積網絡(GCN),圖注意力網絡(GAT)等。

具體來說GNN指的是神經網絡模型在圖領域所用到的方法的統稱。

Graph Convolutional Network

GCN屬於GNN的一類,是採用卷積操作的圖神經網絡。這種方法屬於一類採用圖卷積的神經網絡,可以應用於圖嵌入的方法中。

上述三者的關係可以用下圖來表示:
在這裏插入圖片描述

1.2 離散卷積

離散卷積本質就是一種加權求和。如下圖所示,CNN中的卷積本質上就是一個共享參數的過濾器,通過計算中心像素點及相鄰像素點的加權來構成feature map實現空間特徵的提取。
其中卷積核的係數,通過隨機化初值,然後根據loss反向傳播梯度下降迭代優化。卷積核的函數通過優化求出才能實現特徵提取的作用,GCN的理論很大一部分工作就是爲了引入可以優化的卷積參數。
在這裏插入圖片描述

1.3 爲什麼要研究GCN

CNN是計算機視覺領域的法寶,究其原因,是因爲1.2中提到的,卷積核可以有效地提取出圖像或視頻數據中排列整齊的像素點矩陣,如下圖所示。
在這裏插入圖片描述
相對應的,在科學研究中存在非歐式模型的數據,如下圖所示,這是一個社交網絡的數據結構。
在這裏插入圖片描述
實際上,這樣的網絡結構就是圖論中抽象意義上的拓撲圖。所以,GCN中G代表用頂點和邊建立相應關係的拓撲圖。

研究GCN的主要原因有以下幾點:

  1. CNN無法處理Non Euclidean Structure的數據,學術上的表達是傳統的離散卷積在這類數據上無法保持平移不變性。通俗講就是在拓撲圖中每個頂點的相鄰頂點數目都可能不同,無法使用同樣尺寸的卷積核來進行運算。
  2. 我們希望在這種類似於拓撲圖的結構上有效地提取空間特徵來進行機器學習。
  3. 廣義上來說任何問題在賦範空間內都可以建立拓撲關聯,譜聚類就是應用了這樣的思想。這句話意思就是我們熟知的CV/NLP等問題實際上都可以通過建立拓撲關聯轉化爲拓撲圖的形式。所以說拓撲連接是一種廣義的數據結構,GCN有很大的應用空間。

1.4 譜聚類

譜聚類(Spectral Clustering)是一種針對圖結構的聚類方法,它跟其他聚類算法的區別在於,他將每個點都看作是一個圖結構上的點,所以判斷兩個點是否屬於同一類的依據就是,兩個點在圖結構上是否有邊相連,可以是直接相連也可以是間接相連。舉個例子,一個緊湊的子圖(完全圖)一定比一個鬆散的子圖更容易聚成一類。

在這裏插入圖片描述
如上圖,在k-means算法中會把空間分佈距離較近的歸爲一類,而譜聚類則會把更緊湊的點聚爲一類。

2. 圖卷積預備定理

2.1 Motivation

圖嵌入理論中我們說明了如果想把拓撲圖轉化爲模型的輸入,就必須將每個節點用其特徵進行向量表示。而在試圖得到節點表示的時候,容易想到的最方便的手段就是利用它周圍的節點,也就是他的鄰居節點等。

主要問題
  1. 我們需要按照什麼條件去找neighbors?
  2. 確定感受野之後,按照什麼方式處理包含不同數目的節點特徵?

2.2 傅里葉變換

爲了解決在拓撲圖上無法有效地進行卷積計算的問題,我們需要了解Fourier變換的作用。

首先GCN中C(Convolution)的數學定義:
(fg)(t)=f(x)g(tx)dx (f*g)(t)=\int_{\Re}f(x)g(t-x)dx
一般稱g爲作用在f上的filter或kernel

根據卷積定理,卷積公式還可以寫成: fg=F1{F{f}F{g}} f*g=\mathcal{F}^{-1}\{\mathcal{F}\{f\}\cdot\mathcal{F}\{g\}\}
這樣我們只需要定義圖上的傅里葉變換,就可以定義出圖上的卷積變換。

到這裏,我們首先需要推導上面的定理。

首先看看傅里葉變換的定義:
F{f}(v)=f(x)e2πixvdx \mathcal{F}\{f\}(v) = \int_{\Re}f(x)e^{-2\pi ix\cdot v}dx
其逆變換(Inverse Fourier)則是:
F1{f}(x)=f(v)e2πixvdx \mathcal{F}^{-1}\{f\}(x) = \int_{\Re}f(v)e^{2\pi ix\cdot v}dx

根據Fourier變換及其逆變換的定義,我們可以證明卷積定理。定義h是f和g的卷積,那麼:
h(z)=f(x)g(zx)dx h(z)=\int_{\Re}f(x)g(z-x)dx
有:
F{fg}(v)=F{h}(v)=h(z)e2πizvdz=f(x)g(zx)e2πizvdxdz=f(x)(g(zx)e2πizvdz)dz \begin{aligned} \mathcal{F}\{f*g\}(v) &= \mathcal{F}\{h\}(v) \\ &= \int_{\Re}h(z)e^{-2\pi iz\cdot v}dz \\ &= \int_{\Re}\int_{\Re}f(x)g(z-x)e^{-2\pi iz\cdot v}dxdz \\ & =\int_{\Re}f(x)(\int_{\Re}g(z-x)e^{-2\pi iz\cdot v}dz)dz \end{aligned}
可以令y=zx;dy=dzy=z-x; dy=dz,得到:
F{fg}(v)=f(x)(g(y)e2πi(y+x)vdy)dx=f(x)e2πixv(g(y)e2πiyvdy)dx=f(x)e2πixvdxg(y)e2πiyvdy=F{f}(v)F{g}(v) \begin{aligned} \mathcal{F}\{f*g\}(v) &= \int_{\Re}f(x)(\int_{\Re}g(y)e^{-2\pi i(y+x)\cdot v}dy)dx \\ &= \int_{\Re}f(x)e^{-2\pi ix\cdot v}(\int_{\Re}g(y)e^{-2\pi iy\cdot v}dy)dx \\ &= \int_{\Re}f(x)e^{-2\pi ix\cdot v}dx \int_{\Re}g(y)e^{-2\pi iy\cdot v}dy \\ &= \mathcal{F}\{f\}(v) \cdot \mathcal{F}\{g\}(v) \end{aligned}
最後等式兩邊同時作用F1\mathcal{F}^{-1},得到:
fg=F1{F{f}F{g}} f*g=\mathcal{F}^{-1}\{\mathcal{F}\{f\}\cdot\mathcal{F}\{g\}\}

2.3 Laplacian算子

一階導數定義爲:
f(x)=limh0f(x+h)f(x)h f'(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}
laplacian算子簡單來說就是二階導數:
Δf(x)=limh0f(x+h)2f(x)+f(xh)h2 \Delta f(x)=\lim_{h\to 0}\frac{f(x+h)-2f(x)+f(x-h)}{h^{2}}
在graph上,我們可以定義一階導數爲:
fg(x)=f(x)f(y) f'_{*g}(x)=f(x)-f(y)
其中y是x的鄰居節點

那麼對應的Laplacian算子可以定義爲:
Δgf(x)=yxf(x)f(y) \Delta_{*g}f'(x)=\sum_{y\sim x}f(x)-f(y)

定義DDN×NN \times N的度數矩陣(degree matrix)
D(i,j)={diifi=j0otherwise D(i,j)=\left\{ \begin{aligned} d_{i} \quad & if \quad i=j \\ 0 \quad & otherwise \end{aligned} \right.

定義AAN×NN\times N的鄰接矩陣(adjacency matrix)
A(i,j)={1ifxixj0otherwise A(i,j)=\left\{ \begin{aligned} 1 \quad & if \quad x_{i}\sim x_{j} \\ 0 \quad & otherwise \end{aligned} \right.

這裏的兩個矩陣定義都可以參考2.4中的例子來理解。

那麼拉普拉斯算子可以寫成:
L=DA L=D-A
標準化之後可以得到:
L=IND1/2AD1/2 L=I_{N}-D^{-1/2}AD^{-1/2}

定義Laplacian算子的目的是爲了找到Fourier變換的基,比如傳統的Fourier變換的基e2πixve^{2\pi ix\cdot v}就是Laplacian算法的一組特徵向量:
Δe2πixv=λe2πixv \Delta e^{2\pi ix\cdot v}=\lambda e^{2\pi ix\cdot v}
其中λ\lambda是一個常數。

那麼上面的Fourier基就是LL矩陣的n個特徵向量U=[u1,...,un]U=[u_{1},...,u_{n}]LL可以分解爲:
L=UΛUT L=U\Lambda U^{T}
其中Λ\Lambda是特徵值組成的對角矩陣

傳統Fourier變換 Graph Fourier變換
Fourier變換基 e2πixve^{-2\pi i xv} UTU^{T}
逆Fourier變換基 e2πixve^{2\pi ixv} UU
維度 \infin 點的個數nn

那麼Graph Fourier變換可以定義爲:
GF{f}(λl)=i=1nf(i)ul(i) \mathcal{GF}\{f\}(\lambda_{l})=\sum_{i=1}^{n}f(i)u_{l}^{*}(i)

其中fif{i}可以看做是作用在第ii個點上的signal,用向量x=(f(1)f(n))nx=(f(1)\dots f(n)) \in \Re^{n}來表示。ulu_{l}^{*}ulu_{l}的對偶向量,ulu_{l}^{*}是矩陣UTU^{T}的第ll行,ulu_{l}是矩陣UU的第ll行。

那麼我們可以用矩陣形式來表示Graph Fourier變換:
GF{x}=UTx \mathcal{GF}\{x\}=U^{T}x
類似的,Inverse Graph Fourier變換定義爲:
IGFf^(i)=l=0n1f^(λl)ul(i) \mathcal{IGF} \hat{f}(i)=\sum_{l=0}^{n-1}\hat{f}(\lambda_{l})u_{l}(i)
它的矩陣形式表達爲:
IGF{x}=Ux \mathcal{IGF}\{x\} = Ux

2.4 相關矩陣定義

在這裏插入圖片描述
圖中拉普拉斯矩陣就是由度矩陣D-鄰接矩陣A構造出的。

3. 推導Graph Convolution

首先我們可以根據2中推導的卷積定理:
fg=F1{F{f}F{g}} f*g=\mathcal{F}^{-1}\{\mathcal{F}\{f\}\cdot\mathcal{F}\{g\}\}
那麼圖的卷積公式可以表示爲:
gx=U(UTgUTx) g*x=U(U^{T}g\cdot U^{T}x)
作爲圖卷積的filter函數gg,我們希望具有很好的局部性。就像CNN模型裏的filter一樣,隻影響到一個像素附近的像素。那麼我們可以把gg定義成一個laplacian矩陣的函數g(L)g(L)

作用一次laplacian矩陣相當於在圖上傳播了一次鄰居節點。進一步我們可以把UTgU^{T}g看做是gθ(Λ)g_{\theta}(\Lambda)一個laplacian特徵值的函數。

改寫上面的圖卷積公式,我們就可以得到論文SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS(鏈接)的公式:
gθx=UgθUTx=Ugθ(Λ)UTx g_{\theta}*x=Ug_{\theta}U^{T}x=Ug_{\theta'}(\Lambda)U^{T}x
可以看到這個卷積計算的複雜度非常高,涉及到求Laplacian矩陣的特徵向量,和大量的矩陣計算。下面我們考慮對filter函數做近似,目標是省去特徵向量的求解:
gθ(Λ)k=0KθkTk(Λ~) g_{\theta'}(\Lambda)\approx\sum_{k=0}^{K}\theta_{k}'T_{k}(\tilde{\Lambda})
其中TkT_{k}是Chebyshev多項式。這裏可以把簡單gθ(Λ)g_{\theta}(\Lambda)簡單看成是Λ\Lambda的多項式。

因爲:
UΛkUT=(UΛUT)k=Lk U\Lambda^{k}U^{T}=(U\Lambda U^{T})^{k}=L^{k}
所以上面filter函數可以寫成LL的函數:
gθ(Λ)k=0KθkTk(L~) g_{\theta'}(\Lambda) \approx \sum_{k=0}^{K}\theta_{k}'T_{k}(\tilde{L})
設定K=1K=1,卷積公式可以簡化爲:
gθxθ(IN+L)x=θ(IN+D1/2AD1/2)x \begin{aligned} g_{\theta'}*x & \approx \theta(I_{N}+L)x \\ & = \theta (I_{N}+D^{-1/2}AD^{-1/2})x \end{aligned}
A~=A+IN\tilde{A}=A+I_{N}D~ii=jA~ij\tilde{D}_{ii}=\sum_{j}\tilde{A}_{ij}可以得到:
gθx=θ(D~1/2A~D~1/2)x g_{\theta'}*x=\theta(\tilde{D}^{-1/2}\tilde{A}\tilde{D}^{-1/2})x
那麼再加上激活層,我們就可以得到最終的GCN公式:
Hl+1=σ(D~1/2A~D~1/2H(l)W(l)) H^{l+1}=\sigma(\tilde{D}^{-1/2}\tilde{A}\tilde{D}^{-1/2}H^{(l)}W^{(l)})

以上。

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