圖神經網絡
圖結構 vs 網格結構
傳統的深度學習(如 CNN 和 RNN)在處理網格結構數據(如圖像、語音、文本)時表現良好,因為這些數據具有固定的空間結構。然而,真實世界中的很多數據并不遵循網格結構,而是以圖的形式存在,例如:
- 社交網絡
- 引文網絡
- 通信網絡
- 多智能體系統
- 分子結構
- 蛋白質相互作用網絡
這些圖結構數據的特點包括:
- 每個節點的鄰居數量不固定
- 鄰居之間沒有隱含的順序
- 卷積核大小不固定
- 權重無法按照固定順序排列
因此,CNN 等傳統架構無法直接應用于圖結構數據中。
圖卷積網絡(GCN)簡介
圖卷積網絡(GCN)旨在從圖數據中提取特征。核心思想是:
- 將節點的鄰居信息進行聚合
- 并通過權重參數進行變換
- 使得圖中的節點能夠學習到更好的表示
圖的表示形式(Preliminaries)
基本圖結構
一個圖通常記為 G = ( V , E ) G = (V, E) G=(V,E),其中:
- V = { v i ∣ i = 1 , … , N } V = \{v_i \mid i = 1, \dots, N\} V={vi?∣i=1,…,N} 表示節點集合,共有 N N N 個節點
- E = { e i j ∣ v i 與? v j 相連 } E = \{e_{ij} \mid v_i \text{ 與 } v_j \text{ 相連} \} E={eij?∣vi??與?vj??相連} 表示邊集合
圖的表示方式
- 邊列表(Edge List):所有邊組成的列表,如
( a , b ) , ( a , d ) , ( a , e ) , ( b , c ) , ( b , d ) , ( b , e ) , ( c , d ) , ( d , e ) (a,b), (a,d), (a,e), (b,c), (b,d), (b,e), (c,d), (d,e) (a,b),(a,d),(a,e),(b,c),(b,d),(b,e),(c,d),(d,e) - 鄰接矩陣(Adjacency Matrix):一個 N × N N \times N N×N 的矩陣 A A A,其中 A i j = 1 A_{ij}=1 Aij?=1 表示節點 v i v_i vi? 與 v j v_j vj? 有邊連接,否則為 0。
- 具有自連接的鄰接矩陣(Adjacency matrix with self connections):在2的基礎上,對角線全為1,自己和自己都為1
- 帶權鄰接矩陣(Weighted Adjacency Matrix):矩陣中的每個元素是邊的權重 w i j w_{ij} wij?。
- 度矩陣(Degree Matrix):一個對角矩陣 D D D,其中 D i i D_{ii} Dii? 表示節點 v i v_i vi? 的度數(連接的邊數)。
圖的基本屬性(Basic Properties)
-
稠密圖(Dense Graph):邊的數量接近 O ( N 2 ) O(N^2) O(N2),例如社交網絡中的名人圖譜。
-
稀疏圖(Sparse Graph):邊的數量接近 O ( N ) O(N) O(N),大部分節點只有少量連接。
-
有向圖 vs 無向圖:
- 有向圖中每條邊有方向,鄰接矩陣可能是不對稱的。
- 無向圖中邊沒有方向,鄰接矩陣是對稱的。
-
連通分量(Connected Components):
一個連通分量是一個子圖,其中任意兩個節點之間都有路徑相連。
圖神經網絡中的常用表示
-
G = ( V , E ) G = (V, E) G=(V,E):圖由節點集合 V V V 和邊集合 E E E 構成。
-
V = { v i ∣ i = 1 , … , N } V = \{v_i \mid i = 1, \dots, N\} V={vi?∣i=1,…,N}:節點集合,包含 ∣ V ∣ = N |V| = N ∣V∣=N 個節點。
-
E = { e i j ∣ v i 與? v j 有邊相連 } E = \{e_{ij} \mid v_i \text{ 與 } v_j \text{ 有邊相連} \} E={eij?∣vi??與?vj??有邊相連}:邊集合,記錄節點之間的連接關系。
-
X ∈ R N × d X \in \mathbb{R}^{N \times d} X∈RN×d:節點屬性矩陣, d d d 為每個節點的特征維度。
-
鄰接矩陣 A ∈ R N × N A \in \mathbb{R}^{N \times N} A∈RN×N,其中 A i j ∈ { 0 , 1 } A_{ij} \in \{0, 1\} Aij?∈{0,1} 表示邊 e i j e_{ij} eij? 是否存在。
-
單位矩陣 I N I_N IN?: N × N N \times N N×N 的單位矩陣,用于表示節點的自連接(self-connection)。
-
帶自環的鄰接矩陣 A ^ = A + I N \hat{A} = A + I_N A^=A+IN?:在原始鄰接矩陣基礎上加入自環。
-
節點的度數(Degree):某個節點連接的邊的數量。
-
度矩陣 D ∈ R N × N D \in \mathbb{R}^{N \times N} D∈RN×N:從鄰接矩陣 A A A 計算得出,是對角矩陣,其對角線元素表示每個節點的度。
-
自環度矩陣 D ^ ∈ R N × N \hat{D} \in \mathbb{R}^{N \times N} D^∈RN×N:從帶自環的鄰接矩陣 A ^ \hat{A} A^ 計算得到。
CNN 中的卷積 vs GCN 中的卷積
CNN 中的像素更新(標準卷積)
對于一張圖片的像素,使用 3 × 3 3 \times 3 3×3 卷積核:
h i ( l + 1 ) = σ ( W 1 ( l ) h 1 ( l ) + W 2 ( l ) h 2 ( l ) + ? + W 9 ( l ) h 9 ( l ) ) h_i^{(l+1)} = \sigma(W_1^{(l)} h_1^{(l)} + W_2^{(l)} h_2^{(l)} + \cdots + W_9^{(l)} h_9^{(l)}) hi(l+1)?=σ(W1(l)?h1(l)?+W2(l)?h2(l)?+?+W9(l)?h9(l)?)
GCN 中的節點更新(圖卷積)
使用公式:
H ( l + 1 ) = σ ( D ~ ? 1 2 A ~ D ~ ? 1 2 H ( l ) W ( l ) ) H^{(l+1)} = \sigma(\tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}} H^{(l)} W^{(l)}) H(l+1)=σ(D~?21?A~D~?21?H(l)W(l))
其中:
- A ~ \tilde{A} A~ 是加入自環的鄰接矩陣
- D ~ \tilde{D} D~ 是其對應的度矩陣
- H ( l ) H^{(l)} H(l) 是第 l l l 層的節點表示
- W ( l ) W^{(l)} W(l) 是可訓練參數矩陣
- σ \sigma σ 是非線性激活函數
該形式實現了特征歸一化的圖卷積操作。
圖卷積操作的標準形式(Spatial Approach)
在空間方法(Spatial-based GCN)中,圖卷積的更新規則如下:
h i ( l + 1 ) = σ ( h i ( l ) W 0 ( l ) + ∑ j ∈ N i 1 c i j h j ( l ) W 1 ( l ) ) h_i^{(l+1)} = \sigma \left( h_i^{(l)} W_0^{(l)} + \sum_{j \in \mathcal{N}_i} \frac{1}{c_{ij}} h_j^{(l)} W_1^{(l)} \right) hi(l+1)?=σ ?hi(l)?W0(l)?+j∈Ni?∑?cij?1?hj(l)?W1(l)? ?
其中:
- N i \mathcal{N}_i Ni? 表示節點 i i i 的鄰居集合
- W 0 ( l ) W_0^{(l)} W0(l)? 和 W 1 ( l ) W_1^{(l)} W1(l)? 為權重矩陣
- c i j c_{ij} cij? 是歸一化常數(可設為固定值或可訓練)
- σ \sigma σ 是非線性激活函數(如 ReLU)
優點:
- 權重共享,空間結構不變
- 排列的不變性
- 對節點順序不敏感(Permutation invariant)
- 線性復雜度O(E),適用于大規模稀疏圖
缺點:
- 僅間接支持邊緣特征
- 多層堆疊需要殘差結構以避免過平滑(over-smoothing)
- 需要閘門機制/深度殘余連接(如果nodes太多,一半需要去掉一些信息)
Kipf & Welling 的 GCN 模型(2017)
Kipf & Welling 提出的圖卷積網絡是一種半監督學習方法,其更新公式為:
H ( l + 1 ) = σ ( D ~ ? 1 2 A ~ D ~ ? 1 2 H ( l ) W ( l ) ) H^{(l+1)} = \sigma \left( \tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}} H^{(l)} W^{(l)} \right) H(l+1)=σ(D~?21?A~D~?21?H(l)W(l))
其中:
- A ~ = A + I \tilde{A} = A + I A~=A+I:加入自環的鄰接矩陣
- D ~ \tilde{D} D~ 是 A ~ \tilde{A} A~ 的度矩陣
- W ( l ) W^{(l)} W(l) 是第 l l l 層的權重矩陣
- σ \sigma σ 是非線性激活函數
網絡結構如下:
- 輸入:節點特征矩陣 X X X
- 第一層圖卷積: H ( 1 ) = ReLU ( A ^ X W ( 0 ) ) H^{(1)} = \text{ReLU}(\hat{A} X W^{(0)}) H(1)=ReLU(A^XW(0))
- 第二層輸出: Z = softmax ( A ^ H ( 1 ) W ( 1 ) ) Z = \text{softmax}(\hat{A} H^{(1)} W^{(1)}) Z=softmax(A^H(1)W(1))
該模型被廣泛用于半監督節點分類任務。
圖卷積更新公式的空間方法詳解
圖卷積的一般更新形式如下:
h i ( l + 1 ) = σ ( h i ( l ) W 0 + ∑ j ∈ N i 1 c i j h j ( l ) W 1 ) h_i^{(l+1)} = \sigma\left(h_i^{(l)} W_0 + \sum_{j \in \mathcal{N}_i} \frac{1}{c_{ij}} h_j^{(l)} W_1\right) hi(l+1)?=σ ?hi(l)?W0?+j∈Ni?∑?cij?1?hj(l)?W1? ?
其中:
- N i \mathcal{N}_i Ni? 表示節點 i i i 的鄰居集合;
- W 0 W_0 W0? 是自身的權重矩陣;
- W 1 W_1 W1? 是所有鄰居共享的權重矩陣;
- c i j c_{ij} cij? 是歸一化因子(如鄰居數、可學習權重);
- σ \sigma σ 是非線性激活函數(如 ReLU)。
該空間方法強調局部鄰居信息聚合,具有如下性質:
- 權重共享,適應不同圖結構;
- 對鄰居節點的順序不敏感(Permutation Invariant);
- 時間復雜度為 O ( E ) O(E) O(E),適用于大規模圖。
- Applicable both in transductive(access to test set) and inductive(sperate test set)
GCN 計算示例
假設節點為 a , b , c , d , e a, b, c, d, e a,b,c,d,e,圖的鄰接矩陣 A A A 為:
A = [ 0 1 0 1 1 1 0 1 1 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 0 ] A = \begin{bmatrix} 0 & 1 & 0 & 1 & 1 \\ 1 & 0 & 1 & 1 & 1 \\ 0 & 1 & 0 & 1 & 0 \\ 1 & 1 & 1 & 0 & 1 \\ 1 & 1 & 0 & 1 & 0 \end{bmatrix} A= ?01011?10111?01010?11101?11010? ?
加入自環后得到:
A ~ = A + I = [ 1 1 0 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 0 1 1 ] \tilde{A} = A + I = \begin{bmatrix} 1 & 1 & 0 & 1 & 1 \\ 1 & 1 & 1 & 1 & 1 \\ 0 & 1 & 1 & 1 & 0 \\ 1 & 1 & 1 & 1 & 1 \\ 1 & 1 & 0 & 1 & 1 \end{bmatrix} A~=A+I= ?11011?11111?01110?11111?11011? ?
該過程表示:每個節點與其鄰居(含自身)對應特征值相加,未做歸一化。
H ( l + 1 ) = σ ( A ~ H l W l ) H^{(l+1)} = \sigma(\tilde{A}H^lW^l) H(l+1)=σ(A~HlWl)
GCN 的特征歸一化
為避免特征總量隨度數增長,需對 A ~ \tilde{A} A~ 進行對稱歸一化:
A ^ = D ~ ? 1 / 2 A ~ D ~ ? 1 / 2 \hat{A} = \tilde{D}^{-1/2} \tilde{A} \tilde{D}^{-1/2} A^=D~?1/2A~D~?1/2
H ( l + 1 ) = σ ( D ~ ? 1 A ~ H l W l ) H^{(l+1)} = \sigma( \tilde{D}^{-1}\tilde{A}H^lW^l) H(l+1)=σ(D~?1A~HlWl)
其中,度矩陣 D ~ \tilde{D} D~ 為:
D ~ = [ 4 0 0 0 0 0 5 0 0 0 0 0 3 0 0 0 0 0 5 0 0 0 0 0 4 ] \tilde{D} = \begin{bmatrix} 4 & 0 & 0 & 0 & 0 \\ 0 & 5 & 0 & 0 & 0 \\ 0 & 0 & 3 & 0 & 0 \\ 0 & 0 & 0 & 5 & 0 \\ 0 & 0 & 0 & 0 & 4 \end{bmatrix} D~= ?40000?05000?00300?00050?00004? ?
D ? 1 A ^ = [ 1 4 1 4 0 1 4 1 4 1 5 1 5 1 5 1 5 1 5 0 1 3 1 3 1 3 0 1 5 1 5 1 5 1 5 1 5 1 4 1 4 0 1 4 1 4 ] D^{-1} \hat{A} = \begin{bmatrix} \frac{1}{4} & \frac{1}{4} & 0 & \frac{1}{4} & \frac{1}{4} \\ \frac{1}{5} & \frac{1}{5} & \frac{1}{5} & \frac{1}{5} & \frac{1}{5} \\ 0 & \frac{1}{3} & \frac{1}{3} & \frac{1}{3} & 0 \\ \frac{1}{5} & \frac{1}{5} & \frac{1}{5} & \frac{1}{5} & \frac{1}{5} \\ \frac{1}{4} & \frac{1}{4} & 0 & \frac{1}{4} & \frac{1}{4} \\ \end{bmatrix} D?1A^= ?41?51?051?41??41?51?31?51?41??051?31?51?0?41?51?31?51?41??41?51?051?41?? ?
這樣更新會有個問題,ab ≠ ba,不是對稱矩陣,所以將D分成2個。
GCN 標準更新公式
標準 GCN 更新層表示如下:
H ( l + 1 ) = σ ( D ~ ? 1 / 2 A ~ D ~ ? 1 / 2 H ( l ) W ( l ) ) H^{(l+1)} = \sigma\left( \tilde{D}^{-1/2} \tilde{A} \tilde{D}^{-1/2} H^{(l)} W^{(l)} \right) H(l+1)=σ(D~?1/2A~D~?1/2H(l)W(l))
該式通過對鄰接矩陣的對稱歸一化:
- 保持了特征值分布的穩定;
- 實現了特征傳播不隨度數膨脹;
- 簡潔且高效,成為主流 GCN 實現方式。
該矩陣乘法等價于三步:
- H ( l ) H^{(l)} H(l) 通過權重矩陣 W ( l ) W^{(l)} W(l) 投影;
- 使用歸一化矩陣 A ^ \hat{A} A^ 聚合鄰居;
- 應用非線性激活函數 σ \sigma σ。
GCN 中對稱歸一化公式的逐步推導與解釋
我們從標準的圖卷積操作出發:
H ( l + 1 ) = D ~ ? 1 / 2 A ~ D ~ ? 1 / 2 H ( l ) H^{(l+1)} = \tilde{D}^{-1/2} \tilde{A} \tilde{D}^{-1/2} H^{(l)} H(l+1)=D~?1/2A~D~?1/2H(l)
關注第 i i i 個節點的輸出 H i ( l + 1 ) H_i^{(l+1)} Hi(l+1)?,即第 i i i 行的表示:
H i ( l + 1 ) = ( D ~ ? 1 / 2 A ~ D ~ ? 1 / 2 H ( l ) ) i H_i^{(l+1)} = \left( \tilde{D}^{-1/2} \tilde{A} \tilde{D}^{-1/2} H^{(l)} \right)_i Hi(l+1)?=(D~?1/2A~D~?1/2H(l))i?
將矩陣乘法拆解成向量形式:
- 首先將左側乘法與右側拆分:
= ( D ~ ? 1 / 2 A ~ ) i ? D ~ ? 1 / 2 H = \left( \tilde{D}^{-1/2} \tilde{A} \right)_i \cdot \tilde{D}^{-1/2} H =(D~?1/2A~)i??D~?1/2H
- 用求和展開:
= ( ∑ k D ~ i k ? 1 / 2 A ~ k j ) D ~ ? 1 / 2 H = \left( \sum_k \tilde{D}_{ik}^{-1/2} \tilde{A}_{kj} \right) \tilde{D}^{-1/2} H =(k∑?D~ik?1/2?A~kj?)D~?1/2H
- 注意 D ~ \tilde{D} D~ 是對角矩陣,僅對角線非零,即 D ~ i k ? 1 / 2 = 0 \tilde{D}_{ik}^{-1/2} = 0 D~ik?1/2?=0 當 i ≠ k i \ne k i=k:
= D ~ i i ? 1 / 2 ∑ j A ~ i j D ~ j j ? 1 / 2 H j = \tilde{D}_{ii}^{-1/2} \sum_j \tilde{A}_{ij} \tilde{D}_{jj}^{-1/2} H_j =D~ii?1/2?j∑?A~ij?D~jj?1/2?Hj?
將所有常數合并成一項,得到最終形式:
H i ( l + 1 ) = ∑ j 1 D ~ i i D ~ j j A ~ i j H j H_i^{(l+1)} = \sum_j \frac{1}{\sqrt{\tilde{D}_{ii} \tilde{D}_{jj}}} \tilde{A}_{ij} H_j Hi(l+1)?=j∑?D~ii?D~jj??1?A~ij?Hj?
每個鄰居 j j j 對 H i ( l + 1 ) H_i^{(l+1)} Hi(l+1)? 的影響
該公式表示:
節點 i i i 的新表示 H i ( l + 1 ) H_i^{(l+1)} Hi(l+1)? 是其所有鄰居 j j j 的表示 H j H_j Hj? 的加權平均。
權重部分為:
w i j = 1 D ~ i i D ~ j j w_{ij} = \frac{1}{\sqrt{\tilde{D}_{ii} \tilde{D}_{jj}}} wij?=D~ii?D~jj??1?
- A ~ i j = 1 \tilde{A}_{ij} = 1 A~ij?=1 表示 j j j 是 i i i 的鄰居(包括自環)
- H j H_j Hj? 是鄰居 j j j 的特征表示
- D ~ i i \tilde{D}_{ii} D~ii? 和 D ~ j j \tilde{D}_{jj} D~jj? 是節點 i i i 和 j j j 的度(含自環)
j j j 如何對 i i i 有更大的影響?
鄰居 j j j 對節點 i i i 的影響取決于 這個分母:
D ~ i i D ~ j j \sqrt{\tilde{D}_{ii} \tilde{D}_{jj}} D~ii?D~jj??
因此:
- 若 j j j 的度數 D ~ j j \tilde{D}_{jj} D~jj? 越小,即 j j j 越“稀疏”或不太活躍,它的特征 H j H_j Hj? 在這個加權和中占比越大;
- 若 j j j 是一個“中心節點”連接了很多鄰居(度很大),則 D ~ j j \tilde{D}_{jj} D~jj? 大,導致它對 i i i 的影響反而被 弱化。
示例:
- 若 i i i 和 j j j 都只有 2 個連接(含自環),則權重為 1 2 ? 2 = 0.5 \frac{1}{\sqrt{2 \cdot 2}} = 0.5 2?2?1?=0.5
- 若 j j j 是高階節點, D ~ j j = 10 \tilde{D}_{jj} = 10 D~jj?=10,則權重是 1 2 ? 10 ≈ 0.22 \frac{1}{\sqrt{2 \cdot 10}} \approx 0.22 2?10?1?≈0.22
- 說明:低度的鄰居在信息傳播中影響力更大,高度節點被稀釋
GCN 模型結構與任務
Kipf & Welling 的 GCN 被廣泛用于半監督分類任務,模型結構如下:
-
輸入:特征矩陣 X ∈ R N × d X \in \mathbb{R}^{N \times d} X∈RN×d
-
第一層:
H ( 1 ) = ReLU ( A ^ X W ( 0 ) ) H^{(1)} = \text{ReLU}(\hat{A} X W^{(0)}) H(1)=ReLU(A^XW(0)) -
輸出層:
Z = softmax ( A ^ H ( 1 ) W ( 1 ) ) Z = \text{softmax}(\hat{A} H^{(1)} W^{(1)}) Z=softmax(A^H(1)W(1))
常見任務包括:
-
節點分類(Node Classification):
y ^ i = softmax ( z i ) \hat{y}_i = \text{softmax}(z_i) y^?i?=softmax(zi?) -
邊預測(Link Prediction):
p ( A i j ) = σ ( z i T z j ) p(A_{ij}) = \sigma(z_i^T z_j) p(Aij?)=σ(ziT?zj?) -
圖級分類(Graph Classification):
使用聚合操作如全局平均池化后接多層感知機(MLP)。
y ^ i = softmax ( ∑ n z n ) \hat{y}_i = \text{softmax}(\sum_nz_n) y^?i?=softmax(n∑?zn?)
GCN 模型僅需少量標注節點即可訓練整圖,是圖神經網絡的基礎模型之一。
譜方法(Spectral Approach)下的圖卷積網絡
譜方法通過圖拉普拉斯矩陣對圖信號進行傅里葉變換,并在頻域上實現卷積操作。該方法理論上完整嚴謹,是最早期圖卷積的基礎。
圖拉普拉斯矩陣的定義
-
非歸一化圖拉普拉斯矩陣:
L = D ? A L = D - A L=D?A
-
歸一化圖拉普拉斯矩陣:
L ′ = I ? D ? 1 2 A D ? 1 2 L' = I - D^{-\frac{1}{2}} A D^{-\frac{1}{2}} L′=I?D?21?AD?21?
其中 A A A 是鄰接矩陣, D D D 是度矩陣, I I I 是單位矩陣。
卷積定理與頻域操作
在經典信號處理中,有如下結論:
在合適條件下,兩個信號卷積的傅里葉(或拉普拉斯)變換等于它們各自傅里葉變換的逐點乘積。
對于圖信號 f f f 和濾波器 h h h,有:
f ? h = F ? 1 [ F ( f ) ? F ( h ) ] f * h = \mathcal{F}^{-1} \left[ \mathcal{F}(f) \cdot \mathcal{F}(h) \right] f?h=F?1[F(f)?F(h)]
一維傅里葉變換的本質
經典傅里葉變換是將信號 f f f 展開在復指數函數基底 e i ω x e^{i\omega x} eiωx 上。這些復指數正是一維拉普拉斯算子的特征函數,滿足:
L u = λ u L u = \lambda u Lu=λu
一維拉普拉斯算子與經典傅里葉變換的關系
經典傅里葉變換定義為:
f ^ ( ξ ) = ? f , e 2 π i ξ t ? = ∫ R f ( t ) e 2 π i ξ t d t \hat{f}(\xi) = \langle f, e^{2\pi i \xi t} \rangle = \int_{\mathbb{R}} f(t) e^{2\pi i \xi t} \, dt f^?(ξ)=?f,e2πiξt?=∫R?f(t)e2πiξtdt
即將信號 f f f 展開為復指數函數 e 2 π i ξ t e^{2\pi i \xi t} e2πiξt 的線性組合。
這些復指數函數 e 2 π i ξ t e^{2\pi i \xi t} e2πiξt 是一維拉普拉斯算子 Δ \Delta Δ 的特征函數。
我們來看具體推導:
? Δ ( e 2 π i ξ t ) = ? ? 2 ? t 2 e 2 π i ξ t = ( 2 π ξ ) 2 e 2 π i ξ t -\Delta\left(e^{2\pi i \xi t}\right) = -\frac{\partial^2}{\partial t^2} e^{2\pi i \xi t} = (2\pi \xi)^2 e^{2\pi i \xi t} ?Δ(e2πiξt)=??t2?2?e2πiξt=(2πξ)2e2πiξt
說明 e 2 π i ξ t e^{2\pi i \xi t} e2πiξt 是 Δ \Delta Δ 的特征函數,特征值為 ( 2 π ξ ) 2 (2\pi \xi)^2 (2πξ)2。
這一結論可抽象表達為:
L u = λ u Lu = \lambda u Lu=λu
其中:
- L L L 是拉普拉斯算子(在圖上也記為 L L L)
- u u u 是特征函數(在傅里葉中為 e 2 π i ξ t e^{2\pi i \xi t} e2πiξt)
- λ \lambda λ 是對應特征值
這為圖譜方法中“頻域展開”提供了數學基礎:傅里葉基底是拉普拉斯算子的本征函數。
圖傅里葉變換與拉普拉斯特征分解
令 L = U Λ U T L = U \Lambda U^T L=UΛUT 為圖拉普拉斯矩陣的特征值分解( U U U 為特征向量矩陣, Λ \Lambda Λ 為對角特征值矩陣),則有:
-
圖傅里葉變換:
f ^ = U T f \hat{f} = U^T f f^?=UTf
h ^ = U T h \hat{h} = U^T h h^=UTh
-
圖傅里葉逆變換:
f = U f ^ f = U \hat{f} f=Uf^?
圖上的卷積操作
圖信號與濾波器的卷積在頻域中表示為:
f ? h = U ( f ^ ⊙ h ^ ) = U ( U T f ⊙ U T h ) f * h = U ( \hat{f} \odot \hat{h} ) = U ( U^T f \odot U^T h ) f?h=U(f^?⊙h^)=U(UTf⊙UTh)
其中 ⊙ \odot ⊙ 表示逐元素乘積。
第一版譜圖卷積(Spectral Network)
Bruna 等人提出的譜卷積形式為:
y = σ ( U g θ ( Λ ) U T x ) y = \sigma( U g_\theta(\Lambda) U^T x ) y=σ(Ugθ?(Λ)UTx)
其中 g θ ( Λ ) g_\theta(\Lambda) gθ?(Λ) 是學習到的頻域濾波器:
g θ ( Λ ) = [ θ 0 0 ? 0 0 ? ? ? ? 0 0 ? 0 θ n ] g_\theta(\Lambda) = \begin{bmatrix} \theta_0 & 0 & \cdots & 0 \\ 0 & \ddots & & \vdots \\ \vdots & & \ddots & 0 \\ 0 & \cdots & 0 & \theta_n \end{bmatrix} gθ?(Λ)= ?θ0?0?0?0?????0?0?0θn?? ?
該方法缺點:
- 無空間局部性;
- 參數數量與節點數相同;
- 每次前向傳播需特征分解,開銷大。
第二版譜圖卷積:局部化濾波器
為了緩解參數過多的問題,提出使用多項式表示濾波器:
g α ( Λ ) = ∑ k = 0 K α k Λ k g_\alpha(\Lambda) = \sum_{k=0}^{K} \alpha_k \Lambda^k gα?(Λ)=k=0∑K?αk?Λk
對應卷積變為:
y = σ ( U g α ( Λ ) U T x ) = σ ( ∑ k = 0 K α k L k x ) y = \sigma( U g_\alpha(\Lambda) U^T x ) = \sigma\left( \sum_{k=0}^K \alpha_k L^k x \right) y=σ(Ugα?(Λ)UTx)=σ(k=0∑K?αk?Lkx)
優點:
- 不需特征分解;
- 有空間局部性( k k k 階表示 k k k 距離內鄰居);
- 參數數為 K K K,小于 n n n。
第三版譜圖卷積:Chebyshev 多項式展開
用 Chebyshev 多項式對譜濾波器逼近,定義為:
T 0 ( x ) = 1 , T 1 ( x ) = x , T k ( x ) = 2 x T k ? 1 ( x ) ? T k ? 2 ( x ) T_0(x) = 1,\quad T_1(x) = x,\quad T_k(x) = 2x T_{k-1}(x) - T_{k-2}(x) T0?(x)=1,T1?(x)=x,Tk?(x)=2xTk?1?(x)?Tk?2?(x)
令:
Λ ~ = 2 Λ λ max ? ? I \tilde{\Lambda} = \frac{2\Lambda}{\lambda_{\max}} - I Λ~=λmax?2Λ??I
則濾波器近似為:
g θ ( Λ ~ ) ≈ ∑ k = 0 K θ k T k ( Λ ~ ) g_\theta(\tilde{\Lambda}) \approx \sum_{k=0}^K \theta_k T_k(\tilde{\Lambda}) gθ?(Λ~)≈k=0∑K?θk?Tk?(Λ~)
因此卷積可寫為:
y = σ ( ∑ k = 0 K θ k T k ( L ~ ) x ) y = \sigma\left( \sum_{k=0}^K \theta_k T_k(\tilde{L}) x \right) y=σ(k=0∑K?θk?Tk?(L~)x)
其中 L ~ = 2 L λ max ? ? I \tilde{L} = \frac{2L}{\lambda_{\max}} - I L~=λmax?2L??I
該方法是 Defferrard 等人提出,具有良好的數值穩定性與本地性。
GCN 的最終簡化形式(Kipf & Welling)
Kipf 和 Welling 在 2017 年提出了圖卷積網絡(GCN)的簡化譜方法,通過對 Chebyshev 多項式濾波器進行一階近似,得到了一種高效的圖卷積實現。
首先,從 Chebyshev 展開退化為一階近似,即取 K = 1 K = 1 K=1,并使用如下形式:
g θ ? x ≈ θ ( I + D ? 1 2 A D ? 1 2 ) x g_\theta * x \approx \theta \left( I + D^{-\frac{1}{2}} A D^{-\frac{1}{2}} \right) x gθ??x≈θ(I+D?21?AD?21?)x
為了提升模型表達能力并確保節點信息自保留,加入自環:
A ~ = A + I \tilde{A} = A + I A~=A+I
計算新的度矩陣:
D ~ i i = ∑ j A ~ i j \tilde{D}_{ii} = \sum_j \tilde{A}_{ij} D~ii?=j∑?A~ij?
最終得到了標準的 GCN 卷積層表達形式:
H ( l + 1 ) = σ ( D ~ ? 1 2 A ~ D ~ ? 1 2 H ( l ) W ( l ) ) H^{(l+1)} = \sigma\left( \tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}} H^{(l)} W^{(l)} \right) H(l+1)=σ(D~?21?A~D~?21?H(l)W(l))
其中:
- A ~ \tilde{A} A~ 是加入自環的鄰接矩陣;
- D ~ \tilde{D} D~ 是 A ~ \tilde{A} A~ 對應的度矩陣;
- H ( l ) H^{(l)} H(l) 是第 l l l 層節點特征矩陣;
- W ( l ) W^{(l)} W(l) 是第 l l l 層可學習權重;
- σ \sigma σ 是非線性激活函數,如 ReLU。
這一形式不再依賴拉普拉斯的特征分解,計算效率高,可在整個圖上批處理所有節點,是現代 GCN 應用中的標準實現。