第6章 GCN的性質

第5章最後講到GCN結束的有些匆忙,作為GNN最經典的模型,其有很多性質需要我們去理解。

6.1 GCN與CNN的區別與聯絡

CNN卷積卷的是矩陣某個區域內的值,圖卷積在空域視角下卷的是節點的鄰居的值,由此粗略來看二者都是在聚合鄰域的資訊。

再具體來看一些區別與聯絡:

影象是一種特殊的圖資料

圖資料經常是非結構化的,能夠表達資料間更復雜的關係。考慮對影象進行卷積時卷的是某一畫素周圍\(3\times3\)的畫素,將中間的畫素看作節點,那麼周圍的畫素就是其鄰居,相當於CNN在對其周圍結構非常規則的鄰居在做卷積。對於GCN則是圖結構是什麼樣的圖卷積就在卷哪些鄰居,所以GCN能更好處理非結構化的資料。

從網路連線方式來看,二者都是區域性連線

對單個節點來說GCN卷的是其一階的鄰居,CNN卷的是其附近\(n\times n\)的值。這種節點下一層的特徵計算只依賴於自身鄰域的方式,在網路連線上表現為一種區域性連線的結構。

但就權重設定上來看,CNN的卷積核一般有多組權重引數,而GCN為了適應不同的圖資料結構只有一組,所以CNN的擬合能力實際上強於GCN。

二者卷積核的權重是處處共享的

CNN和GCN卷積核的權重都是用於全圖的,這樣減少了網路的引數量,可以避免過擬合的出現。

從模型的層面來看,感受域隨著卷積層的增加而變大

CNN和GCN一樣每多卷一層感受域都會變得更大,這也比較好理解。假設CNN卷積核\(n\times n\),那一個節點卷一次就變成了\(n\times n\),再卷一次就變成了\((2n-1)\times(2n-1)\)...對於GCN也是,卷一次是一階鄰居,兩次就是二階段鄰居了。

GCN能夠對圖資料進行端到端學習

感覺這個小標題就足以說明GCN的性質了...

回顧一下之前我們在Cora資料集上進行的GCN實戰,我們的輸入就是引文網路的圖結構,輸出的就是節點的分類,這正是端到端學習的定義。也就是說GCN不需要我們人工地提取一些節點特徵作為輸入來輔助網路進行學習。

對於一個圖資料,我們需要關注的是其結構資訊和屬性資訊,結構資訊就是圖的結構,屬性資訊就是節點的特徵,二者都應該被學習到。由此書中列舉了手工提取特徵和隨機遊走兩種非端到端的學習的例子,看一下就好,其共同點就是都需要將結構資訊和節點特徵拼接起來作為新的節點資訊。

GCN能夠對圖資料進行端到端學習有兩種優勢:

  1. GCN不會分開進行表示學習和任務學習,也就是GCN在對圖資料進行建模提取特徵的同時也在從特徵進行任務學習,結合前面說到的GCN的權重是處處共享的,這讓整個模型在同步地更新使得節點的特徵表示與下游任務之間具有更好的適應性
  2. GCN對結構資訊與屬性資訊的學習是同時進行的

GCN是一個低通濾波器

在圖的半監督學習中,通常會在損失函式裡增加一個正則項,用來保證相鄰節點之間的類別資訊趨於一致,一般會選用拉普拉斯矩陣的二次型作為正則約束:

\[L=L_0+L_{reg}
\\L_{reg}=\sum_{e_{ij}\in E} A_{ij}||f(x_i)-f(x_j)||^2=f(X)^TLf(X)
\]

回顧第5章中講到的總變差,我們可以注意到加入的正則項實際上就是圖訊號的總變差,將其加入損失函式後,減小總變差說明圖訊號更加平滑,從而說明相鄰節點之間的訊號更加趨於一致,即類別資訊趨於一致。從頻域上來看,這樣做就相當於對圖訊號進行了一次低通濾波。

但是對於GCN的損失函式(通常是用交叉熵)並不會加入這樣一個正則項,因為GCN本身就可以看做是一個低通濾波器。

回顧GCN的核心計算\(\tilde L_{sym}XW\),我們說過\(\tilde L_{sym}X\)可以看做是一次圖濾波操作,那麼我們來考慮\(\tilde L_{sym}\)的頻率響應函式\(h()\)(明明上一章還用的\(h()\),結果這章書裡寫的就是\(p()\)了,有點迷惑,所以我沿用\(h()\)的寫法)。

\[\tilde L_{sym}=\tilde D^{-\frac{1}{2}}\tilde A\tilde D^{-\frac{1}{2}}=\tilde D^{-\frac{1}{2}}(\tilde D-L)\tilde D^{-\frac{1}{2}}=I-\tilde D^{-\frac{1}{2}}L\tilde D^{-\frac{1}{2}}=I-\tilde L_s
\]

可以證明\(\tilde L_s\)可以被正交對角化,所以設\(\tilde L_s=V\tilde\Lambda V^T\),\(\tilde\lambda_i\)是特徵值,同樣可以證明特徵值屬於\((0,2]\)。

所以可以繼續將等式變換為:

\[\tilde L_{sym}=I-V\tilde\Lambda V^T=V(1-\tilde\Lambda)V^T
\]

所以其頻率響應函式為\(h(\lambda)=1-\tilde \lambda_i \in [-1,1)\)。說明函式能夠起到顯性收縮的作用,因而能對圖訊號進行低通濾波。

如果多次左乘\(\tilde L_{sym}\)可以有如下頻率響應函式的影象:

注意到在低頻上K越大縮放效果越強,對應的就是更強的低通濾波器。

那麼GCN是低通濾波器對圖資料的學習有什麼好處呢?一篇paper分析了這個問題,比較硬核所以只給出結論:低頻訊號通常包含著對任務學習更加有效的資訊。

GCN的問題——過度平滑

過度平滑簡單來說就是多層GCN疊加之後反而會出現準確率下降的問題。我們從頻域和空域兩個角度來看這一問題。

頻域視角

前面分析過了GCN對應的頻率響應函式是\(h(\lambda)=1-\tilde\lambda_i\),多層GCN就是\((1-\tilde\lambda_i)^k\),因為\(1-\tilde \lambda_i \in [-1,1)\),假設圖是全連通圖,僅存在一個特徵值為0,那麼也就只有一個\(1-\tilde \lambda_i=1\),所以取極限後對應的\(H\)只有一個值為1,剩下的全為0,即:

\[\lim_{k\to+\infin}\tilde L_{sym}^k=V
\begin{bmatrix}
1\\
&0\\
&&\ddots\\
&&&0
\end{bmatrix}V^T
\]

那麼有:

\[\lim_{k\to+\infin}\tilde L_{sym}^kx=V
\begin{bmatrix}
1\\
&0\\
&&\ddots\\
&&&0
\end{bmatrix}V^Tx=\tilde x_1v_1
\]

\(v_1\)是特徵值為0對應的特徵向量,\(\tilde x_1\)是x在特徵值為0這一頻率對應的傅立葉係數。

可以證明\(v_1=\tilde D^{\frac{1}{2}}1\)(用到拉普拉斯矩陣存在全為1的特徵向量,對應特徵值為0),這裡1表示全為1的向量。這是一個固定的向量,說明如果不斷地進行GCN層的計算,最後圖訊號實際上會處處相等,也就是學不到東西了。

空域視角

空域視角比較直觀,一層GCN是聚合了一層鄰居節點的資訊,那兩層就是兩跳鄰居的資訊...最後足夠多層的GCN就會聚合全圖的資訊,並且對每個節點來說學習的都是全圖的資訊,導致節點之間沒有區分性。

解決GCN的過度平滑問題也是研究的熱點,書中舉了JK-Net的例子,其主要的解決方法是:

加入跳躍連線來聚合每層節點的輸出,而不是直接使用最後一層節點的,對應的樸素想法就是可以給不同層加權重使得越近的鄰居聚合的資訊權重越大,當然也可以用更高階一點的方法。總之最後對於任意一個節點而言,既不會因為聚合半徑過大而出現過平滑的問題,也不會因為聚合半徑過小,使得節點的結構資訊不能充分被學習。

還可以從頻域角度出發,重新分配權重來增加\(\tilde A\)中節點自連線的權重,來加速/減緩模型低通濾波的效應。(這段書裡寫的比較簡略,我沒太懂,所以不細展開,當然這一段也是來自某paper的方法,感興趣可以直接讀原paper)。