《SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS》論文閱讀(一)


背景簡介

  GCN的提出是為了處理非結構化數據(相對於image像素點而言)。CNN處理規則矩形的網格像素點已經十分成熟,其最大的特點就是利用卷積進行①參數共享②局部連接,如下圖:

那么類比到非結構數據圖(graph),CNN能直接對非結構數據進行同樣類似的操作嗎?如果不能,我們又該采用其他什么方式呢?

首先思考能不能,答案是不能。至少我們無法將graph結構的數據規整到如上圖所示的矩形方格中,否則結點之間的邊無法很好表示。還可以考慮卷積核這一點,我們知道不管我的圖(image)如何變化(圖片變大或變小,圖中狗數量多一只),我們設計好的提取特征的卷積核都不需要變化,但是試想,graph還能這樣嗎,照貓畫虎(就是隨意猜想),如果我們也設計和圖一樣的卷積核,如下圖。可見怎么設計可復用發提取有效特征的卷積核就不能單純從拓撲結構上考慮。

 

GCN卷積思路

  卷積(數學上概念)在CNN中使用起來看起來很簡單,通過卷積核和輸入image的像素進行對應位置相乘並相加,這符合離散卷積的概念。

  那么人們(這方面的研究在很早之前就有,這篇文章也算是“集大成者+新的idea”)如何考慮在Graph上進行卷積呢?總的來說分為兩種

①spatial domain

大致了解了下,抽象來看,和CNN算是有點異曲同工的味道。具體論文還沒看過,先不展開細說。

②spectral domain

  • 聯想到我們graph層面的卷積,也要符合數學層面的意義,但是數學上還有一處和卷積 密切相關——卷積定理(指的是將卷積轉化成傅里葉變換來完成,即實現卷積的問題==》變成實現傅里葉變換的問題)。
  • 那么傅里葉變換——(將一個函數展開成正交函數基的線性組合,類比一個$N$ 維空間,只要找到該空間的基,該空間的任意向量就都可以由正交基的線性組合完成,傅里葉變換也是此道理,只不過傅里葉變換將向量變成了函數,找的是正交函數基)如何在graph上實現呢?我們做進一步推廣,在graph上找正交基(graph層面的),所以完成graph上的傅里葉變換問題==》需要完成graph上的基的尋找
  • 總的來說找到graph上的基===》就能完成圖上的傅里葉變換===》利用卷積定理,就能通過傅里葉變換完成卷積

這篇論文就是從譜方法展開的,這就同spatial角度差了挺遠的了。其靈感應該是從信號處理的傅里葉變換時域與頻域轉換而來,后文詳細說明。

 

傅里葉變換

  回顧高數中的傅里葉變換,傅里葉的理論依據就是任何周期非周期(即周期無窮)的的函數都可以由一組正交基($cosx,sinx$)函數通過線性組合表示,如下圖第一個公式,$a_{n}$,$b_{n}$可以通過公式計算。然后通過歐拉公式,進一步轉換得到如下傅里葉變換和逆變換:

其中逆變換中$F(w)$就是$f(t)$第一個等式基函數的系數。

  從信號處理角度來說,可以理解成將一個時域下的周期函數(坐標軸:時間+幅值),分解成頻域下的周期函數(坐標軸:頻率$w$+幅值,對應上圖的$F\{f\}(w)$,也對應下面我截圖備注的藍色頻率軸,頻率$w$和幅值對應上圖$f(t)$中展開式的一個波函數)

  具體動圖

 

 

傅里葉變換函數的基

  傅里葉變換的關鍵點就是,我們通過一組函數的基:三角函數系。類似於空間向量中,我們通過找到一組基,然后進行線性組合,可以表示該空間中的任何一個向量。

   以上,我們只需要知道的就是傅里葉變換是什么,使用了基本函數基的原理

 

卷積定理

  卷積定理:卷積定理是傅立葉變換滿足的一個重要性質。卷積定理指出,函數卷積的傅立葉變換是函數傅立葉變換的乘積。換句話說,$$F(f\star g)
=F(f)\cdot F(g)$$,其中符號 $\star $ 代表卷積的意思(CNN中卷積就是離散卷積,兩個函數分別是卷積核和圖片像素值),$F()$代表傅里葉變換。那么更進一步,兩邊同時傅里葉逆變換:

$$F^{-1}{\begin{Bmatrix}
F(f\star g)
\end{Bmatrix}}
=F^{-1}\begin{Bmatrix}
F(f)\cdot F(g)
\end{Bmatrix} \\
f\star g
=F^{-1}\begin{Bmatrix}
F(f)\cdot F(g)
\end{Bmatrix}$$

所以,我們求兩個函數的卷積的時候,可以分別求兩個函數的傅里葉變換,然后再做一次逆傅里葉變換得到

 

 

為什么要引入拉普拉斯矩陣?

  想必都有這么個疑惑,不用拉普拉斯矩陣行嗎?或者拉普拉斯矩陣有什么優勢?

  我只能淺顯的說自己的直覺(不保證完全正確,供參考)。

  首先,我們前文說了,需要在圖上進行傅里葉變換,而傅里葉變換重要的准備工作就是找正交基,那么問題來了?圖上怎么找正交基?——答案就是拉普拉斯矩陣可以給我們提供完備的正交基(點擊:向圖拉普拉斯矩陣性質

  (可跳過這段話,這一點好像在后面推導沒有體現出來,雖然的確有這個性質,但是感覺未在GCN中使用啊)其次,可以看看拉普阿拉斯算子的特性(點擊),拉普拉斯算子能夠算出一個節點出現擾動之后,對周圍鄰接結點的產生的總正或負效益(也就是對整個graph的效益,因為其他沒有相連接點自然沒有影響),而拉普拉斯算子$\Delta = L = D-W$,其中 L 就是拉普拉斯矩陣所以我們希望能將拉普拉在算子衡量擾動效益的功能遷移到graph上,而在graph上的拉普拉斯算子就是 $L$,即拉普拉斯矩陣。總之:$\Delta $作用於graph===》等於 $L \cdot f$,其中$f$就是graph,$L$ 是拉普拉斯矩陣詳見拉普拉斯算子

Lf

  

拉普拉斯算子

  拉普拉斯算子的定義是:

$$\bigtriangleup f=\sum \frac{\partial  f}{\partial ^{2}x}$$

是由散度推導而來的,$\Delta $ 就是拉普拉斯算子,$f$ 是函數

  上式是$f$對$x$求二階偏導。那么回憶數字圖像處理中離散情況下,做一個近似的二階求解

  $f(x-1,y)$  
$f(x,y-1)$ $f(x,y)$ $f(x,y+1)$
  $f(x+1,y)$  

$$\begin{aligned} \Delta f &= \frac{\partial f}{\partial ^{2}x} + \frac{\partial f}{\partial ^{2}y} \\ &=f(x+1,y) + f(x-1,y) - 2f(x,y) + f(x, y+1)+f(x,y-1)-2f(x,y)  \\ & = f(x+1,y) + f(x-1,y) + f(x, y+1)+f(x,y-1)-4f(x,y)   \end{aligned}$$

也就是說,拉普拉斯算子可以描述某個結點進行擾動之后(周圍值-4*中心點值),所帶來的給相鄰結點變化的總收益

那么進行推廣:我們希望能將拉普拉斯算子用到graph中,希望能衡量一個結點變化之后,對其他相鄰結點(也可以說是整個graph)的干擾總收益

所以,當某點發生變化時,只需要將所有相鄰的點相加再減去該中心點*相鄰個數(與上面方格計算二階偏導類似) 。

 而拉普拉斯矩陣$L=D-W$($D$是度矩陣,$W$是鄰接矩陣,下文有介紹。和上圖差個負號,好比向量方向,暫且忽略),所以$$\Delta f=(D-W)f=L\cdot f$$,其中$f$是$N*M$代表$N$個結點和每個結點$M$維特征的graph。

 

這就是為什么GCN中使用拉普拉斯矩陣的原因:需要對圖$f$做拉普拉斯算子變換,需要實現$\Delta f$===>等同於$L\cdot f$

 總之,$\Delta = L = D-W$

 

拉普拉斯矩陣

  拉普拉斯矩陣的由來是從譜聚類說起,下面是幾種場見的拉普拉斯矩陣形式

 

拉普拉斯矩陣定義

   對於圖$G=(V, E)$,拉普拉斯的普通形式是$$L=D-A$$,其中$D$是對角頂點度矩陣(零階矩陣的一行和),$A$是圖的鄰接矩陣,如下圖

$L$中的元素分別為:

$$L_{i,j}=\left\{\begin{matrix}
 &diag(v_{i})  &i=j \\
 &-1  &i\neq j\,\,and\,\,v_{i}\,\,is\,\,adjacent\,\,to\,\,v_{j} \\  
 &0  &otherwise
\end{matrix}\right.$$

 

對稱歸一化的拉普拉斯矩陣(Symmetric normalized Laplacian)

$$L^{sys}=D^{-1/2}LD^{-1/2}=I-D^{-1/2}AD^{-1/2}$$

其中$L$的各項內容為:

$$L^{sys}_{i,j}=\left\{\begin{matrix}
 &1  &i=j\,and\,\,diag(v_{i})\neq 0 \\
 &-\frac{1}{\sqrt{diag(v_{i})diag(v_{j})}}  \,\,\,\,&i\neq j\,\,and\,\,v_{i}\,\,is\,\,adjacent\,\,to\,\,v_{j} \\  
 &0  &otherwise
\end{matrix}\right.$$

 

隨機游走歸一化拉普拉斯矩陣(Random walk normalized Laplacian)

   $$L^{rw}=D^{-1}L=I-D^{-1}A$$

其中$L$的各項內容為:

$$L^{rw}_{i,j}=\left\{\begin{matrix}
 &1  &i\neq j\,and\,\,diag(v_{i})\neq 0 \\
 &-\frac{1}{diag(v_{i})}  \,\,\,\,&i\neq j\,\,and\,\,v_{i}\,\,is\,\,adjacent\,\,to\,\,v_{j} \\  
 &0  &otherwise
\end{matrix}\right.$$

 

無向圖拉普拉斯的性質

①拉普拉斯矩陣是實對稱矩陣,可以對角化

②拉普拉斯矩陣是半正定的(譜聚類中可以根據定義證明$f(x)=x^{T}Ax$,對於任意$x\neq 0$,均有$f(x)\geq 0$)

③最小特征值是0(半正定),對於的特征向量是$1$,容易驗證$L1=01$

 

拉普拉斯矩陣譜分解

  根據上一條拉普拉斯矩陣的性質,是對稱的,所以一定可以進行對角化,也就是找到一堆正交基

$$L=U\begin{pmatrix}
 &\lambda _{1}  & &\\
 &  &\ddots  &\\
 &  & &\lambda _{n}
\end{pmatrix}U^{-1}$$

且其中$U$是單位矩陣,$$UU^{T}=I$$

 

圖上的傅里葉變換

  首先,我們的目標始終是要對圖 $f$ 做卷積操作,假設卷積核為 $g$,而根據卷積定理有$$  f\star g =F^{-1}\begin{Bmatrix} F(f)\cdot F(g) \end{Bmatrix}$$所以,我們重點需要計算$F(f)$,而$F(g)$就可以當作參數去訓練,那么如何計算出前者呢?

  類比數學上傅里葉的思路,是需要找到一組正交的函數基,那么同理現在對於圖(graph) $f$ , 我們也需要找到一組定義在圖上的正交基,而上文已經解釋了圖上的拉普拉斯矩陣$L$ 天然可譜分解,也就是對角化找到一組正交基 

$$LU=\lambda U  \,\,\,\,\,\,\,UU^{T}=UU^{-1}=I$$  

  同時可以證明$$\Delta e^{-iwt} = \frac{\partial e^{-iwt}}{\partial ^{2}t} = - w^2 e^{-iwt} $$

 $e^{-iwt}$ 就是變換 $\Delta $ 的特征函數,$w$和特征值密切相關。而又因為$LU=\lambda U$,所以我們類比 $U$ 等同於 $e^{-iwt} $,也就是找到了圖上的一組正交基($L$的特征向量)。

$$ F(\lambda _{l})=\hat{f}(\lambda _{l})=\sum_{i=1}^{N}f(i)u^{*}_{l}(i)$$

$f$ 是 graph 上的 $N$ 維向量(一個結點),$f(i)$ 與graph的頂點一一對應,$u_{l}(i)$ 表示第 $l$ 個特征向量的第 $i$ 個分量。那么特征值(頻率)$\lambda _{l}$ 下的,$f$ 的graph 傅里葉變換就是與 $\lambda _{l}$ 對於的特征向量 $u_{l}$ 進行內積運算。所以圖$f*u^{*}_{l}$ 得到一個離散的值,如我們常見到的頻域下的一個幅度值。

===>推廣到矩陣下形式

 

 其中左邊的是傅里葉變換,右邊的$u_{i}(j) $表示第 $i$ 個特征向量的第 $j$ 維,所以圖 $f$ 的傅里葉變換可以寫成$$\hat{f} = U^{T} f$$,其中$U^T$是$L$的特征向量,也即是當前空間的一組基

 

圖上的逆傅里葉變換

  

 

內容匯總:拉普拉斯矩陣/算子,傅里葉變換,GCN

   前面介紹了傅里葉變換,又提到了拉普拉斯矩陣/算子,這和GCN有什么關系呢?

現在我們可以進一步考慮具體的卷積了,也就是 $$  f\star g =F^{-1}\begin{Bmatrix} F(f)\cdot F(g) \end{Bmatrix}$$

其中$$F(f) = \hat{f} = U^Tf$$ 

而 $F(g)$ 是卷積核$g$ 的傅里葉變換,我們可以寫成對角線形式(為了矩陣相乘),$\bigl(\begin{smallmatrix}
\hat{h}(\lambda 1) &  & &\\
 &  & \ddots  & \\
 &  & &\hat{h}(\lambda n)
\end{smallmatrix}\bigr)$

其中

 所以兩者的傅里葉變換乘機為:

 再照顧最外層的$F^{-1}{}$,那就是再左乘$U$:$$(f\star g)=U\begin{pmatrix}
 &\hat{h}(\lambda_{1})  & \\
 &  &\ddots  \\
 &  & &\hat{h}(\lambda_{n})
\end{pmatrix}U^{T}f$$

以上,我們算是完整得到了如何再圖上做卷積的公式:先得到圖的拉普拉斯矩陣$L$,得到$L$的對應特征向量$U$

 

圖卷積的改進

  上文我們已經知道了 $f\star g$的計算,但是其中一個問題就是$L$矩陣的特征向量$U$計算是費時的復雜度太高

所以提出如下近似多項式形式$$\hat{h}(\lambda_{l})\approx \sum_{K}^{j=0}\alpha _{j}\lambda^{j}_{l}$$

也就是:

 最后卷積變成了:

  $$y_{out}= \sigma(\sum_{j=0}^{K-1}  \alpha _{j}L^{j}x)$$

這樣就不需要進行特征值分解,直接使用$L^{j}$,即拉普拉斯矩陣的階數

改進一

  其實是進一步簡化,將上圖的(4)式子 $L^{j}$使用切比雪夫展開式來近似【和用多項式近似想法一模一樣】,首先將上式$$\boldsymbol{g}_{\boldsymbol{\theta^{\prime}}}(\boldsymbol{\Lambda}) \approx \sum_{k=0}^K \theta_k^{\prime} T_k(\tilde{\boldsymbol{\Lambda}})$$

其中$\tilde{\boldsymbol{\Lambda}}=\frac{2}{\lambda_{max}}\boldsymbol{\Lambda}-\boldsymbol{I}_n$,$\lambda _{max}$ 是矩陣$L$的最大特征值(譜半徑)。再利用切比雪夫多項式遞推公式:

$$T_k(x)=2xT_{k-1}(x)-T_{k-2}(x)$$

$$T_0(x)=1,T_1(x)=x$$

所以有因為$L^{j}x$,那么

$$\begin{aligned} \boldsymbol{g(\wedge )}_{\boldsymbol{\theta^{\prime}}} * \boldsymbol{x} &\approx \boldsymbol{U} \sum_{k=0}^K \theta_k^{\prime} T_k(\tilde{\boldsymbol{\Lambda}}) \boldsymbol{U}^T \boldsymbol{x} \ \\ &= \sum_{k=0}^K \theta_k^{\prime} (\boldsymbol{U}  T_k(\tilde{\boldsymbol{\Lambda}}) \boldsymbol{U}^T) \boldsymbol{x} \\ &=\sum_{k=0}^K \theta_k^{\prime} T_k(\tilde{\boldsymbol{L}}) \boldsymbol{x} \end{aligned}$$

其中$\tilde{\boldsymbol{L}}=\frac{2}{\lambda_{max}} \boldsymbol{L}- \boldsymbol{I}_n$

所以有$$\boldsymbol{y}_{output} = \sigma(\sum_{k=0}^K \theta_k^{\prime} T_k(\tilde{\boldsymbol{L}}) \boldsymbol{x})$$

 

改進二

  主要對上式做了簡化處理,取 $K=1$,設置$\lambda_{max}\approx 2$,帶入簡化模型:

$$\begin{aligned} \boldsymbol{g}_{\boldsymbol{\theta^{\prime}}} * \boldsymbol{x} &\approx \theta_0^{\prime} \boldsymbol{x} + \theta_1^{\prime}(\boldsymbol{L}- \boldsymbol{I}_n) \boldsymbol{x} \\ &= \theta_0^{\prime} \boldsymbol{x} - \theta_1^{\prime}(\boldsymbol{D}^{-1/2} \boldsymbol{W} \boldsymbol{D}^{-1/2}) \boldsymbol{x} \end{aligned}$$

  上述用到了歸一化的拉普拉斯矩陣,$$\boldsymbol{L}=\boldsymbol{D}^{-1/2}(\boldsymbol{D}-\boldsymbol{W})\boldsymbol{D}^{-1/2}=\boldsymbol{I_n}-\boldsymbol{D}^{-1/2} \boldsymbol{W} \boldsymbol{D}^{-1/2}$$

  進一步假設$\theta_0^{\prime}=-\theta_1^{\prime}$

$$\boldsymbol{g}_{\boldsymbol{\theta^{\prime}}} * \boldsymbol{x} = \theta(\boldsymbol{I_n} + \boldsymbol{D}^{-1/2} \boldsymbol{W} \boldsymbol{D}^{-1/2}) \boldsymbol{x}$$

但是考慮到$\boldsymbol{I_n} + \boldsymbol{D}^{-1/2} \boldsymbol{W} \boldsymbol{D}^{-1/2}$的特征值范圍是$[0, 2]$,會引起梯度消失問題(這點暫不清楚why),所以再修改為:

$$\boldsymbol{I_n} + \boldsymbol{D}^{-1/2} \boldsymbol{W} \boldsymbol{D}^{-1/2} \rightarrow \tilde{\boldsymbol{D}}^{-1/2}\tilde{\boldsymbol{W}} \tilde{\boldsymbol{D}}^{-1/2}$$

$\tilde{\boldsymbol{W}}=\boldsymbol{W}+\boldsymbol{I}_n$ 相當於鄰接矩陣中對叫上加了$1$,$\tilde{D}$ 也是在鄰接矩陣加上$I$之后的度矩陣

最后就是論文中提到的形式:

$$\boldsymbol{Z}_{\mathbb{R}^{N \times F}} = (\tilde{\boldsymbol{D}}^{-1/2}\tilde{\boldsymbol{W}} \tilde{\boldsymbol{D}}^{-1/2})_{\mathbb{R}^{N \times N}} \boldsymbol{X}_{\mathbb{R}^{N \times C}} \ \ \boldsymbol{\Theta}_{\mathbb{R}^{C \times F}}$$

 

 GCN定義

一種簡單的形式  

 

 

 

 

 

 

 

 

參考文獻:

https://www.zhihu.com/question/54504471

http://tkipf.github.io/graph-convolutional-networks/

https://www.davidbieber.com/post/2019-05-10-weisfeiler-lehman-isomorphism-test/#

https://arxiv.org/abs/1609.02907


免責聲明!

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



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