深入淺出圖神經網絡 第6章 GCN的性質 讀書筆記


第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}\)可以有如下頻率響應函數的圖像:

image-20210715004122600

注意到在低頻上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的例子,其主要的解決方法是:

image-20210715011123563

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM