這是一篇GNN的綜述, 發(fā)表于2021年的TNNLS. 這篇博客旨在對GNN的基本概念做一些記錄.
論文地址: 論文
1. 引言, 背景與定義
對于圖像數據來說, CNN具有平移不變性和局部連接性, 因此可以在歐氏空間上良好地學習. 然而, 對于具有圖結構的數據(例如社交網絡 化學分子等)就需要用GNN來學習.
最早期的GNN網絡是遵循類似RNN的循環(huán)迭代式的(RecGNN), 主要的對象是DAG(有向無環(huán)圖). 這個方式停止的條件是節(jié)點的表示趨于穩(wěn)定.
后來發(fā)展出了卷積圖網絡(ConvGNN), 主要有基于譜域(頻域)的和基于空域的. 除此之外, 還發(fā)展出了圖自編碼器(Graph autoencoders, GAEs)和時空(spatial-temporal)GNN.
因此這篇文章主要就把GNN分成了這四種:
- 循環(huán)GNN
- 卷積GNN
- 圖自編碼器
- 時空GNN
后面, 作者主要講了GNN與兩個任務的區(qū)別:
GNN與network embedding. network embedding旨在將一個網絡的節(jié)點編碼成低維度的向量表示, 并保持網絡的拓撲結構不變, 這樣降維之后, 一些分類, 聚類等任務, 就可以通過傳統的機器學習方法實現(例如SVM). 因此, GNN和network embedding的關系是, GNN可以通過一個圖自編碼器來學習一個低維的表示, 即network embedding的任務. 總而言之, network embedding主要是通過降維來實現應用機器學習方法的目的.
GNN與圖的核方法(graph kernel methods). 圖的核方法主要是將一個圖編碼到一個向量空間, 以便應用SVM之類的任務(圖的層面).
2. 分類和框架
如前所述, 本文將GNN分成了四類, 如下圖所示:
節(jié)點分類任務的ConvGNN. 對于每一個節(jié)點, 在每次迭代中聚合它臨近節(jié)點的信息(圖卷積), 最后通過一個非線性變換對節(jié)點進行分類. 其中 X ∈ R n × d X\in\mathbb{R}^{n\times d} X∈Rn×d表示節(jié)點特征拼成的矩陣.
圖分類任務的ConvGNN. 在圖卷積操作后, 使用一個池化層, 將圖粗糙化成一個子圖, 得到圖的高階表示(higher representations). 最后用一個readout函數, 對圖進行分類.
用于network embedding的圖自編碼器. 先用圖卷積得到每個節(jié)點的embedding, 然后解碼器在給定embedding的情況下計算成對距離. 在應用非線性激活函數后, 解碼器重構圖鄰接矩陣. 通過最小化真實鄰接矩陣與重構鄰接矩陣之間的差異來訓練網絡.
時空GNN. 對每個timestep的GNN都應用卷積, 隨后跟一個 1D-CNN 層對時序特征進行提取. 輸出層是一個線性變換,為每個節(jié)點生成一個預測,例如它在下一個時間步的未來值.
3. 循環(huán)GNN
循環(huán)GNN一般都是GNN早期的開山之作, 由于計算量的限制, 一般都是應用于有向無環(huán)圖的. The Graph Neural Network Model(IEEE Trans. Neural Network, 2009)
提出了一個更具有普適性的方式, 可以應用于各種圖. 節(jié)點更新方式如下式:
為了保證收斂性,
f
f
f必須是一個收縮映射. 如果
f
f
f是神經網絡的話, 則必須加入罰項.
除此之外, 門控GNNGated graph sequence neural networks, (arxiv, 2015)
將門控單元(GRU)作為上述的
f
f
f函數, 減少了收斂時間. 其節(jié)點更新用上一個隱藏態(tài)和臨近節(jié)點隱藏態(tài)的線性映射組成, 如下式:
h v ( t ) = G R U ( h v ( t ? 1 ) , ∑ u ∈ N ( v ) W h u ( t ? 1 ) ) h_v^{(t)} = GRU(h_v^{(t - 1)}, \sum_{u\in N(v)}Wh_u^{(t-1)}) hv(t)?=GRU(hv(t?1)?,u∈N(v)∑?Whu(t?1)?)
這個網絡的訓練用通過時間的反向傳播(RNN的反向傳播方式)進行梯度下降.
總體來說, 循環(huán)GNN的方式類似RNN, 是作用于離散的節(jié)點上面. 但是循環(huán)GNN每次(層)用的更新函數 f f f是同一個, 因此必須保證收斂性.
4. 卷積GNN
與循環(huán)GNN不同, 卷積GNN的每一層都是可學習的不同參數, 具有固定層數, 和循環(huán)GNN區(qū)別如下:
卷積GNN基本分為兩類, 基于譜的(頻域的)和基于空域的.
A. 基于譜的卷積GNN
基于譜的GNN基本對于無向圖而言, 我們可以用(歸一化的)圖Laplace矩陣唯一的表示這個圖的拓撲性質:
L = I n ? D ? 1 / 2 A D ? 1 / 2 L = I_n - D^{-1/2}AD^{-1/2} L=In??D?1/2AD?1/2
其中 D D D為對角矩陣, 每個對角元素為鄰接陣對應行的和, 也就是這個節(jié)點的度.
我們可以看出, 對于Laplace矩陣的 ( i , j ) (i, j) (i,j)個元素:
如果 i = j i=j i=j, a i , j = 0 , d i , j = d e g ( v i ) , l i , j = 1 a_{i,j} = 0, d_{i,j} = deg(v_i), l_{i,j} = 1 ai,j?=0,di,j?=deg(vi?),li,j?=1
如果 i ≠ j i \ne j i=j, v i , v j v_i, v_j vi?,vj?不相連, a i , j = 0 , l i , j = 0 a_{i,j} = 0, l_{i,j} = 0 ai,j?=0,li,j?=0
如果 i ≠ j i \ne j i=j, v i , v j v_i, v_j vi?,vj?相連, a i , j = 1 , l i , j = ? 1 / d e g ( v i ) d e g ( v j ) a_{i,j} = 1, l_{i,j} = -1/\sqrt{deg(v_i)deg(v_j)} ai,j?=1,li,j?=?1/deg(vi?)deg(vj?)?
因此, 圖Laplace矩陣可以唯一表示圖
容易看出Laplace矩陣是實對稱的, 因此是半正定的, 因此具有非負特征值. 我們可以對其做特征值分解:
L = U Λ U T L = U \Lambda U^T L=UΛUT
因此我們可以基于Laplace矩陣的特征值分解定義圖的Fourier變換:
F ( x ^ ) = U T x ^ \mathcal{F}(\hat{x}) = U^T\hat{x} F(x^)=UTx^
由于 U U T = I UU^T = I UUT=I, 因此可以立即定義圖的逆Fourier變換:
F ? 1 ( x ) = U x \mathcal{F}^{-1}(x)=Ux F?1(x)=Ux
所以圖Fourier變換實際上就是將圖信號 x x x投影到一個標準正交基構成的空間中, 換句話說, x x x可以表示成 U U U的列向量的線性組合: x = ∑ i x ^ i u i x = \sum_i \hat{x}_iu_i x=∑i?x^i?ui?, 這就是正 逆Fourier變換的關系(和信號處理中的一致).
我們考慮將圖信號經過濾波器, 根據卷積定理(時域卷積的Fourier變換對應頻域乘積), 有:
x
?
g
=
F
?
1
(
F
(
x
)
⊙
F
(
g
)
)
=
U
(
U
T
x
⊙
U
T
g
)
x * g = \mathcal{F}^{-1}(\mathcal{F}(x) \odot \mathcal{F}(g)) \\ = U(U^Tx \odot U^T g)
x?g=F?1(F(x)⊙F(g))=U(UTx⊙UTg)
其中
⊙
\odot
⊙表示element-wise乘法. 如果我們記
g
θ
=
d
i
a
g
(
U
T
g
)
g_{\theta} = diag(U^Tg)
gθ?=diag(UTg), 則
U
T
x
⊙
U
T
g
=
g
θ
U
T
x
U^Tx \odot U^Tg = g_{\theta}U^Tx
UTx⊙UTg=gθ?UTx, 所以
x ? g = U g θ U T x x * g = Ug_{\theta}U^Tx x?g=Ugθ?UTx
譜GNN的關鍵在于如何選擇濾波器 g θ g_{\theta} gθ?.
在實際中, 我們考慮網絡的第 k k k層, 輸入和輸出的通道數分別為 f k ? 1 , f k f_{k-1}, f_k fk?1?,fk?, 則該層第 j j j個通道的輸出為:
H : , j ( k ) = σ ( ∑ i = 1 f k ? 1 U Θ i , j ( k ) U T H : , i ( k ? 1 ) ) ∈ R n H^{(k)}_{:, j} = \sigma(\sum_{i=1}^{f_{k-1}}U\Theta_{i,j}^{(k)}U^TH^{(k-1)}_{:, i}) \in \mathbb{R}^n H:,j(k)?=σ(i=1∑fk?1??UΘi,j(k)?UTH:,i(k?1)?)∈Rn
其中 Θ i , j ( k ) \Theta_{i,j}^{(k)} Θi,j(k)?是對角陣, 對角元素為一組可學習的參數.
然而, 這樣的方式有三個缺點:
- 圖的任何擾動對特征值和特征向量的影響都很大(特征值分解的性質)
- 學習到的濾波器是域相關的, 這意味著它們不能應用于具有不同結構的圖.
- 特征值分解的復雜度很高( O ( n 3 ) O(n^3) O(n3)).
為了解決復雜度高的問題, ChebNet和GCN經過幾個簡化將復雜度降為線性復雜度. ChebNet用Chebyshev多項式來估計濾波器 g θ g_{\theta} gθ?, 即
g
θ
=
∑
i
=
1
K
θ
i
T
i
(
Λ
~
)
,
??
Λ
~
=
2
Λ
/
λ
m
a
x
?
I
n
g_\theta = \sum_{i=1}^K \theta_i T_i(\tilde{\Lambda}), ~~\tilde{\Lambda} = 2\Lambda / \lambda_{max} - I_n
gθ?=i=1∑K?θi?Ti?(Λ~),??Λ~=2Λ/λmax??In?
這樣
Λ
~
\tilde{\Lambda}
Λ~中的值都落在
[
?
1
,
1
]
[-1, 1]
[?1,1]內.
T
i
(
x
)
T_i(x)
Ti?(x)表示Chebyshev多項式, 按照如下遞推定義:
T 0 ( x ) = 1 T_0(x) = 1 T0?(x)=1
T 1 ( x ) = x T_1(x) = x T1?(x)=x
T i ( x ) = 2 x T i ? 1 ( x ) ? T i ? 2 ( x ) T_i(x) = 2xT_{i - 1}(x) - T_{i - 2}(x) Ti?(x)=2xTi?1?(x)?Ti?2?(x)
帶入, 就得到按照Chebyshev多項式估計的圖卷積結果如下:
x ? g = U ( ∑ i = 1 K θ i T i ( Λ ~ ) ) U T x x * g = U(\sum_{i=1}^K \theta_i T_i(\tilde{\Lambda}))U^Tx x?g=U(i=1∑K?θi?Ti?(Λ~))UTx
可以用數學歸納法證明拉普拉斯矩陣的Chebyshev多項式矩陣和特征值矩陣具有如下關系(?):
T i ( L ~ ) = U T i ( Λ ~ ) U T , ?? L ~ = 2 L / λ m a x ? I n T_i(\tilde{L}) = UT_i(\tilde{\Lambda})U^T, ~~ \tilde{L} = 2L / \lambda_{max} - I_n Ti?(L~)=UTi?(Λ~)UT,??L~=2L/λmax??In?
因此有
x ? g = U ( ∑ i = 1 K θ i T i ( Λ ~ ) ) U T x = ∑ i = 1 K θ i T i ( L ~ ) x x * g = U(\sum_{i=1}^K \theta_i T_i(\tilde{\Lambda}))U^Tx = \sum_{i=1}^K \theta_i T_i(\tilde{L})x x?g=U(i=1∑K?θi?Ti?(Λ~))UTx=i=1∑K?θi?Ti?(L~)x
ChebNet 定義的過濾器在空間上是局部的, 這意味著過濾器可以獨立于圖大小提取局部特征. ChebNet的頻譜線性映射到[?1,1].
下面再來看經典的圖卷積網絡GCN. GCN是ChebNet的簡化, 取了 K = 1 K = 1 K=1, 并且假定最大特征值為2, 得到
x ? g = θ 0 x + θ 1 ( 2 L / λ m a x ? I n ) x = θ 0 x + θ 1 ( 2 ( I n ? D ? 1 / 2 A D ? 1 / 2 ) / λ m a x ? I n ) x ( λ m a x = 2 ) = θ 0 x ? θ 1 D ? 1 / 2 A D ? 1 / 2 x x * g = \theta_0x + \theta_1 (2L / \lambda_{max} - I_n)x \\ = \theta_0x + \theta_1 (2( I_n - D^{-1/2}AD^{-1/2}) / \lambda_{max} - I_n)x \\ (\lambda_{max} = 2) = \theta_0x - \theta_1 D^{-1/2}AD^{-1/2}x x?g=θ0?x+θ1?(2L/λmax??In?)x=θ0?x+θ1?(2(In??D?1/2AD?1/2)/λmax??In?)x(λmax?=2)=θ0?x?θ1?D?1/2AD?1/2x
為了進一步減少參數量, 防止過擬合, 假定 θ = θ 0 = ? θ 1 \theta = \theta_0 = -\theta_1 θ=θ0?=?θ1?, 立即有
x ? g = θ ( I n + D ? 1 / 2 A D ? 1 / 2 ) x x * g = \theta(I_n + D^{-1/2}AD^{-1/2})x x?g=θ(In?+D?1/2AD?1/2)x
在經驗上, I n + D ? 1 / 2 A D ? 1 / 2 I_n + D^{-1/2}AD^{-1/2} In?+D?1/2AD?1/2容易造成穩(wěn)定性的問題, 因此GCN采用 D ~ ? 1 / 2 A ~ D ~ ? 1 / 2 \tilde{D}^{-1/2}\tilde{A}\tilde{D}^{-1/2} D~?1/2A~D~?1/2來代替, 其中 A ~ = A + I n , D ~ \tilde{A} = A + I_n, \tilde{D} A~=A+In?,D~為 A ~ \tilde{A} A~的度矩陣.
對這種歸一化的理解:
由于鄰接矩陣的對角元素是0, 因此 θ ( I n + D ? 1 / 2 A D ? 1 / 2 ) x \theta(I_n + D^{-1/2}AD^{-1/2})x θ(In?+D?1/2AD?1/2)x的第一項可以認為是聚合節(jié)點自身信息, 第二項可以認為是聚合鄰近節(jié)點的信息. 然而這樣會造成不穩(wěn)定, 因此更改一下形式, 即直接添加self-loop也就是自環(huán)邊, 也就相當于給鄰接矩陣 A A A加上單位陣 I n I_n In?.
后續(xù)跟進GCN的工作主要是對于對稱矩陣的選取.
B. 基于空域的卷積GNN
實際上空域上對圖進行卷積和在典型具有歐氏空間結構的圖像上進行卷積是相似的, 如下圖所示:
例如, NN4G在每一次迭代聚合一個節(jié)點和它鄰居節(jié)點的信息, 如下式所示:
此外, 還有一種比較有意思的Diffusion GNN, 也就是將圖卷積過程視為擴散過程. 在擴散過程中, 信息按照一定的概率從一個節(jié)點傳入另一個節(jié)點, 這樣的概率和節(jié)點的度有關, 如下式:
H ( k ) = f ( W ( k ) ⊙ P k X ) , ?? P = D ? 1 A H^{(k)} = f(W^{(k)} \odot P^kX), ~~P = D^{-1}A H(k)=f(W(k)⊙PkX),??P=D?1A
P = D ? 1 A P = D^{-1}A P=D?1A的意義是對于度大的點, 其信息傳入相連鄰居節(jié)點的就更多(權重大)
在Diffusion Graph Convolution中, 最后的結果是將中間結果加起來, 即:
H = ∑ k = 0 K f ( P k X W k ) H = \sum_{k=0}^Kf(P^kXW^k) H=k=0∑K?f(PkXWk)
PGC-DGCNN按照節(jié)點之間的距離學習權重, 也就是增強距離遠的節(jié)點的作用. 具體地, 如果節(jié)點 v v v到節(jié)點 u u u的最短路長度為 j j j, 則記 S v , u ( j ) = 1 S_{v, u}^{(j)} = 1 Sv,u(j)?=1, 否則為0.
另外, 還有一種形式的空域GNN, 也就是我們所熟知的消息傳遞. 消息傳遞可以解釋成信息可以從節(jié)點沿著邊進行傳遞, 一般通常來講有固定的 K K K步迭代, 這樣可以讓信息傳遞的更遠, 也就是有更大的感受野. 可以用如下公式表示:
然而, 對于graph-level的任務, 傳統的消息傳遞無法區(qū)分不同的圖結構. 為此, GIN通過調節(jié)中心節(jié)點的權重, 這樣就區(qū)分了中心節(jié)點和鄰居節(jié)點, 如下所示:
此外, 對于一個節(jié)點的鄰居節(jié)點, 不同鄰居的重要性也許是不同的, 因此GAT提出了圖注意力機制, 將聚合時鄰居節(jié)點的權重變成learnable的參數:
其中
α v u ( k ) = s o f t m a x ( g ( a T [ W ( k ) h v ( k ? 1 ) ∣ ∣ W ( k ) h u ( k ? 1 ) ] ) ) \alpha_{vu}^{(k)} = softmax(g(a^T[W^{(k)}h_{v}^{(k-1)}||W^{(k)}h_{u}^{(k-1)}])) αvu(k)?=softmax(g(aT[W(k)hv(k?1)?∣∣W(k)hu(k?1)?]))文章來源:http://www.zghlxwxcb.cn/news/detail-674898.html
圖池化層, 圖自編碼器待更新…文章來源地址http://www.zghlxwxcb.cn/news/detail-674898.html
到了這里,關于[論文閱讀筆記25]A Comprehensive Survey on Graph Neural Networks的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!