论文笔记:Semi-Supervised Classification with Graph Convolutional Networks
生活随笔
收集整理的這篇文章主要介紹了
论文笔记:Semi-Supervised Classification with Graph Convolutional Networks
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Semi-Supervised Classification with Graph Convolutional Networks
1、四個問題
- 半監督任務。給定一個圖,其中一部節點已知標簽,剩下的未知,要對整個圖上的節點進行分類。
- 提出了一種卷積神經網絡的變種,即提出了一種新的圖卷積方法。
- 使用譜圖卷積(spectral graph convolution)的局部一階近似,來確定卷積結構。
- 所提出的的網絡可以學習圖上局部結構的特征,并進行編碼。
- 在引文網絡(citation network)和知識圖譜(knowledge graph)等的數據集上比其之前的方法效果更好。
- 最大的問題就是對GPU顯存的占用較大,要使用較大規模的圖來訓練網絡只能用CPU替代。
- 文中的模型只是為無向圖設計的,并不支持對邊特征的提取。盡管能夠將一個有向圖看做一個無向加權聯合圖,但這個模型對于有向圖的支持能力還是有限。
2、論文概述
1、簡介
- 使用神經網絡f(X,A)f(X, A)f(X,A)對圖的結構進行編碼,對所有帶標簽的節點進行有監督訓練。
- XXX是輸入數據,AAA是圖鄰接矩陣。
- 在圖的鄰接矩陣上調整f(?)f(\cdot)f(?)能讓模型從監督損失L0L_0L0?。
2、圖上的快速近似卷積
- 圖卷積的前向傳播公式:
(1)H(l+1)=σ(D~?12A~D~?12H(l)W(l))H^{(l+1)} = \sigma( \tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}} H^{(l)} W^{(l)} ) \tag{1}H(l+1)=σ(D~?21?A~D~?21?H(l)W(l))(1)
- $ \tilde{A} = A + I_N $ 是無向圖GGG的自環鄰接矩陣。
- INI_NIN?是單位矩陣。
- $ \tilde{D}{ii} = \sum_j \tilde{A}{ij} $ 是A~\tilde{A}A~的度矩陣。
- W(l)W^{(l)}W(l)是可訓練的權重矩陣,即網絡的參數。
- σ(?)\sigma(\cdot)σ(?)是激活函數,比如ReLU。
- H(l)∈RN×DH^{(l)} \in \mathbb{R}^{N \times D}H(l)∈RN×D是第lll層的激活矩陣,即網絡的輸出。H(0)=XH^{(0)}=XH(0)=X,第一層為輸入。
2、譜圖卷積
2.1、原始GCN
- 將圖卷積通過傅里葉變換拓展到圖的頻域中。
- 對于一個輸入信號x∈RNx \in \mathbb{R}^Nx∈RN,在傅里葉域中取一個θ∈RN\theta \in \mathbb{R}^Nθ∈RN為參數的濾波器gθ=diag(θ)g_{\theta} = diag(\theta)gθ?=diag(θ):
- (2)gθ?x=UgθU?xg_{\theta} \star x=U g_{\theta} U^{\top} x \tag{2}gθ??x=Ugθ?U?x(2)
- UUU是圖的拉普拉斯矩陣LLL的特征向量矩陣。
- 拉普拉斯矩陣:L=IN?D?12AD?12=UΛUTL=I_N - D^{-\frac{1}{2}} A D^{-\frac{1}{2}} = U \Lambda U^TL=IN??D?21?AD?21?=UΛUT。
- Λ\LambdaΛ是拉普拉斯矩陣LLL的特征值組成的對角矩陣。
- UTxU^T xUTx就是圖上的傅里葉變換。
- 也可以將gθg_{\theta}gθ?看成是拉普拉斯矩陣LLL的一系列特征值組成的對角矩陣gθ(Λ)g_{\theta}(\Lambda)gθ?(Λ)。
- 公式(2)中做的事就是,借助傅里葉變換,將原始信號xxx變換到頻域,在頻域乘上一個信號,再做傅里葉逆變換還原到空域。由傅里葉變換的特性有,在頻域相乘相當于空域卷積,這樣就回避了空域上對不確定結構的圖進行卷積的問題。
- 這是最原始的GCN,但是這套方法的缺點就是計算非常復雜,每次需要對矩陣進行分解,如果圖的規模非常大,這會帶來巨大的計算開銷。
2.2、加速版本的GCN
- 為了減少計算量,有人提出一個特殊的卷積核設計方法,即:將gθ(Λ)g_{\theta}(\Lambda)gθ?(Λ)用切比雪夫多項式進行KKK階逼近。
- 切比雪夫多項式:
- T0(x)=1T_0 (x) = 1T0?(x)=1
- T1(x)=xT_1(x) = xT1?(x)=x
- Tk(x)=2xTk?1(x)?Tk?1(x)T_k(x) = 2x T_{k-1}(x) - T_{k-1}(x)Tk?(x)=2xTk?1?(x)?Tk?1?(x)
- 改進的卷積核:
- (3)gθ′(Λ)≈∑k=0Kθk′Tk(Λ~)g_{\theta^{\prime}}(\Lambda) \approx \sum_{k=0}^{K} \theta_{k}^{\prime} T_{k}(\tilde{\Lambda}) \tag{3}gθ′?(Λ)≈k=0∑K?θk′?Tk?(Λ~)(3)
- Λ~=2λmax?Λ?IN\tilde{\Lambda}=\frac{2}{\lambda_{\max }} \Lambda-I_{N}Λ~=λmax?2?Λ?IN?。λmax\lambda_{max}λmax?是拉普拉斯矩陣LLL中最大的特征值。
- θ′∈RK\theta^{\prime} \in \mathbb{R}^{K}θ′∈RK是切比雪夫多項式的系數。
- (3)gθ′(Λ)≈∑k=0Kθk′Tk(Λ~)g_{\theta^{\prime}}(\Lambda) \approx \sum_{k=0}^{K} \theta_{k}^{\prime} T_{k}(\tilde{\Lambda}) \tag{3}gθ′?(Λ)≈k=0∑K?θk′?Tk?(Λ~)(3)
- 將該卷積核代入圖卷積的公式:
- (4)gθ′?x≈∑k=0Kθk′Tk(L~)xg_{\theta^{\prime}} \star x \approx \sum_{k=0}^{K} \theta_{k}^{\prime} T_{k}(\tilde{L}) x \tag{4}gθ′??x≈k=0∑K?θk′?Tk?(L~)x(4)
- L~=2λmax?L?IN\tilde{L}=\frac{2}{\lambda_{\max }} L-I_{N}L~=λmax?2?L?IN?。
- 這個公式為拉普拉斯算子的KKK階切比雪夫多項式形式,即它受到距離中央節點KKK步以內的節點影響。
- (4)gθ′?x≈∑k=0Kθk′Tk(L~)xg_{\theta^{\prime}} \star x \approx \sum_{k=0}^{K} \theta_{k}^{\prime} T_{k}(\tilde{L}) x \tag{4}gθ′??x≈k=0∑K?θk′?Tk?(L~)x(4)
- 這里的加速版本的GCN,將參數減少到了KKK個,并且不再需要對拉普拉斯矩陣做特征分解,直接使用即可。
2.3、線性模型
- K=1K=1K=1時,模型有兩個參數,GCN公式:
- (4)gθ′?x≈∑k=0Kθk′Tk(L~)xg_{\theta^{\prime}} \star x \approx \sum_{k=0}^{K} \theta_{k}^{\prime} T_{k}(\tilde{L}) x \tag{4}gθ′??x≈k=0∑K?θk′?Tk?(L~)x(4)
- 這里的公式(4)就對應一個GCN層。
- 作者在論文中提到,通過使用這種形式的GCN,我們可以緩解模型在圖的局部結構上的過擬合。此外,很大程度上減小了計算開銷,使得我們可以堆疊多個GCN來獲得一個更深的模型,提取特征。
- 近似地認為λmax≈2\lambda_{max} \approx 2λmax?≈2,公式(5)可以簡化為下式:
- (5)gθ′?x≈θ0′x+θ1′(L?IN)x=θ0′x?θ1′D?12AD?12xg_{\theta^{\prime}} \star x \approx \theta_{0}^{\prime} x+\theta_{1}^{\prime}\left(L-I_{N}\right) x=\theta_{0}^{\prime} x-\theta_{1}^{\prime} D^{-\frac{1}{2}} A D^{-\frac{1}{2}} x \tag{5} gθ′??x≈θ0′?x+θ1′?(L?IN?)x=θ0′?x?θ1′?D?21?AD?21?x(5)
- 這里有兩個自由參數:θ0′\theta_0^{\prime}θ0′?和θ1′\theta_1^{\prime}θ1′?。濾波器的參數在整個圖上共享。
- 通過連續堆疊這種形式的濾波器,可以作用到卷積節點的KKK階領域上,其中KKK是卷積層的個數。
- 進一步簡化公式(5)中的模型,公式如下:
- (6)gθ?x≈θ(IN+D?12AD?12)xg_{\theta} \star x \approx \theta\left(I_{N}+D^{-\frac{1}{2}} A D^{-\frac{1}{2}}\right) x \tag{6}gθ??x≈θ(IN?+D?21?AD?21?)x(6)
- 這里令θ=θ0′=?θ1′\theta=\theta_{0}^{\prime}=-\theta_{1}^{\prime}θ=θ0′?=?θ1′?,將公式(5)中的兩個參數都替換成了θ\thetaθ。
- 但是,這里的IN+D?12AD?12I_{N}+D^{-\frac{1}{2}} A D^{-\frac{1}{2}}IN?+D?21?AD?21?的特征值范圍為[0,2][0, 2][0,2],這可能會導致數值不穩定和梯度消失/爆炸。所以還需要增加一步歸一化操作。
- 歸一化:
- IN+D?12AD?12→D~?12A~D~?12I_{N}+D^{-\frac{1}{2}} A D^{-\frac{1}{2}} \rightarrow \tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}}IN?+D?21?AD?21?→D~?21?A~D~?21?
- A~=A+IN\tilde{A}=A+I_{N}A~=A+IN?
- D~ii=∑jA~ij\tilde{D}_{i i}=\sum_{j} \tilde{A}_{i j}D~ii?=j∑?A~ij?
- 現在可以將卷積操作推廣到信號X∈RC×FX \in \mathbb{R}^{C \times F}X∈RC×F,輸入通道數為CCC,有FFF個濾波器。推廣的圖卷積形式如下:
- (7)Z=D~?12A~D~?12XΘZ=\tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}} X \Theta \tag{7}Z=D~?21?A~D~?21?XΘ(7)
- Θ∈RC×F\Theta \in \mathbb{R}^{C \times F}Θ∈RC×F是濾波器的參數矩陣。
- Z∈RN×FZ \in \mathbb{R}^{N \times F}Z∈RN×F是卷積后輸出的信號矩陣。
3、半監督節點分類
- 回到半監督任務上,前面介紹了優化后的圖卷積結構。在現在的半監督任務中,作者希望通過已知的數據XXX和鄰接矩陣AAA來訓練圖卷積網絡f(X,A)f(X, A)f(X,A)。 作者認為,在鄰接矩陣中包含了一些XXX中沒有的隱含的圖的結構信息,而我們可以利用這些信息進行推理。
- 下圖中,左圖是一個GCN網絡示意圖,輸入有CCC維特征,輸出有FFF維特征,中間有若干隱藏層,XXX是訓練數據,YYY是標簽。右圖是使用一個兩層GCN在Cora數據集上(只是用了5%的標簽)得到的可視化結果。
3.1、實例
- 在預處理中,首先計算好:A^=D~?12A~D~?12\hat{A}=\tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}}A^=D~?21?A~D~?21?。
- 然后,前向傳播的模型可以寫成下式:
- (8)Z=f(X,A)=softmax?(A^ReLU?(A^XW(0))W(1))Z=f(X, A)=\operatorname{softmax}\left(\hat{A} \operatorname{ReLU}\left(\hat{A} X W^{(0)}\right) W^{(1)}\right) \tag{8}Z=f(X,A)=softmax(A^ReLU(A^XW(0))W(1))(8)
- 這是一個很簡單的兩層GCN。
- W(0)∈RC×HW^{(0)} \in \mathbb{R}^{C \times H}W(0)∈RC×H是輸入到隱藏層的權重矩陣,隱藏層上的特征維度是HHH。
- W(1)∈RH×FW^{(1)} \in \mathbb{R}^{H \times F}W(1)∈RH×F是隱藏層到輸出的權重矩陣。
- softmaxsoftmaxsoftmax就不多說了。
- 損失函數采用交叉熵,評估所有有標簽的數據:
- (9)L=?∑l∈YL∑f=1FYlfln?Zlf\mathcal{L}=-\sum_{l \in \mathcal{Y}_{L}} \sum_{f=1}^{F} Y_{l f} \ln Z_{l f} \tag{9}L=?l∈YL?∑?f=1∑F?Ylf?lnZlf?(9)
- YL\mathcal{Y}_{L}YL?為帶標簽節點組成的集合。
- 訓練:SGD,引入了BN和Dropout。
4、實驗
- 數據集描述:
- 半監督分類準確率:
3、參考資料
- Semi-Supervised Classification with Graph Convolutional Networks
總結
以上是生活随笔為你收集整理的论文笔记:Semi-Supervised Classification with Graph Convolutional Networks的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 论文笔记:CycleGAN
- 下一篇: 论文笔记:Spherical CNN