1. 為什么會出現圖卷積神經網絡?
普通卷積神經網絡研究的對象是具備Euclidean domains的數據,Euclidean domains data數據最顯著的特征是他們具有規則的空間結構,如圖片是規則的正方形,語音是規則的一維序列等,這些特征都可以用一維或二維的矩陣來表示,卷積神經網絡處理起來比較高效。
CNN的【平移不變性】在【非矩陣結構】數據上不適用
- 平移不變性(translation invariance):比較好理解,在用基礎的分類結構比如ResNet、Inception給一只貓分類時,無論貓怎么扭曲、平移,最終識別出來的都是貓,輸入怎么變形輸出都不變這就是平移不變性,網絡的層次越深這個特性會越明顯。
- 平移可變性(translation variance):針對目標檢測的,比如一只貓從圖片左側移到了右側,檢測出的貓的坐標會發生變化就稱為平移可變性。當卷積網絡變深后最后一層卷積輸出的feature map變小,物體在輸入上的小偏移,經過N多層pooling后在最后的小feature map上會感知不到,這就是為什么R-FCN原文會說網絡變深平移可變性變差。
離散卷積本質就是一種加權求和。CNN中的卷積就是一種離散卷積,本質上就是利用一個共享參數的過濾器(kernel),通過計算中心像素點以及相鄰像素點的加權和來構成feature map實現空間特征的提取,當然加權系數就是卷積核的權重系數(W)。
那么卷積核的系數如何確定的呢?是隨機化初值,然后根據誤差函數通過反向傳播梯度下降進行迭代優化。這是一個關鍵點,卷積核的參數通過優化求出才能實現特征提取的作用,GCN的理論很大一部分工作就是為了引入可以優化的卷積參數。
生活中很多數據不具備規則的空間結構,稱為Non Euclidean data,如,推薦系統、電子交易、分子結構等抽象出來的圖譜。這些圖譜中的每個節點連接不盡相同,有的節點有三個連接,有的節點只有一個連接,是不規則的結構。對於這些不規則的數據對象,普通卷積網絡的效果不盡人意。CNN卷積操作配合pooling等在結構規則的圖像等數據上效果顯著,但是如果作者考慮非歐氏空間比如圖(即graph,流形也是典型的非歐結構,這里作者只考慮圖),就難以選取固定的卷積核來適應整個圖的不規則性,如鄰居節點數量的不確定和節點順序的不確定。
例如,社交網絡非常適合用圖數據來表達,如社交網絡中節點以及節點與節點之間的關系,用戶A(有ID信息等)、用戶B、帖子都是節點,用戶與用戶之間的關系是關注,用戶與帖子之間的關系可能是發布或者轉發。通過這樣一個圖譜,可以分析用戶對什么人、什么事感興趣,進一步實現推薦機制。
總結一下,圖數據中的空間特征具有以下特點:
1) 節點特征:每個節點有自己的特征;(體現在點上)
2) 結構特征:圖數據中的每個節點具有結構特征,即節點與節點存在一定的聯系。(體現在邊上)
總地來說,圖數據既要考慮節點信息,也要考慮結構信息,圖卷積神經網絡就可以自動化地既學習節點特征,又能學習節點與節點之間的關聯信息。
綜上所述,GCN是要為除CV、NLP之外的任務提供一種處理、研究的模型。
圖卷積的核心思想是利用邊的信息對節點信息進行聚合從而生成新的節點表示。
2. 圖卷積網絡的兩種理解方式
GCN的本質目的就是用來提取拓撲圖的空間特征。 而圖卷積神經網絡主要有兩類,一類是基於空間域或頂點域vertex domain(spatial domain)的,另一類則是基於頻域或譜域spectral domain的。通俗點解釋,空域可以類比到直接在圖片的像素點上進行卷積,而頻域可以類比到對圖片進行傅里葉變換后,再進行卷積。
2.1 vertex domain(spatial domain):頂點域(空間域)
基於空域卷積的方法直接將卷積操作定義在每個結點的連接關系上,它跟傳統的卷積神經網絡中的卷積更相似一些。在這個類別中比較有代表性的方法有 Message Passing Neural Networks(MPNN), GraphSage, Diffusion Convolution Neural Networks(DCNN), PATCHY-SAN等。
2.2 spectral domain:頻域方法(譜方法)
這就是譜域圖卷積網絡的理論基礎了。這種思路就是希望借助圖譜的理論來實現拓撲圖上的卷積操作。從整個研究的時間進程來看:首先研究GSP(graph signal processing)的學者定義了graph上的Fourier Transformation,進而定義了graph上的convolution,最后與深度學習結合提出了Graph Convolutional Network。
基於頻域卷積的方法則從圖信號處理起家,包括 Spectral CNN, Cheybyshev Spectral CNN(ChebNet), 和 First order of ChebNet(1stChebNet)等
論文Semi-Supervised Classification with Graph Convolutional Networks就是一階鄰居的ChebNet
Spectral graph theory簡單的概括就是借助於圖的拉普拉斯矩陣的特征值和特征向量來研究圖的性質。
3. 什么是拉普拉斯矩陣?
3.1 無向圖的拉普拉斯矩陣有什么性質
(1)拉普拉斯矩陣是半正定矩陣。(最小特征值大於等於0)
(2)特征值中0出現的次數就是圖連通區域的個數。
(3)最小特征值是0,因為拉普拉斯矩陣(普通形式:L = D − A )每一行的和均為0,並且最小特征值對應的特征向量是每個值全為1的向量;
(4)最小非零特征值是圖的代數連通度。
3.2 為什么GCN要用拉普拉斯矩陣?
- 拉普拉斯矩陣是對稱矩陣,可以進行特征分解(譜分解)
- 由於卷積在傅里葉域的計算相對簡單,為了在graph上做傅里葉變換,需要找到graph的連續的正交基對應於傅里葉變換的基,因此要使用拉普拉斯矩陣的特征向量。
3.3. 拉普拉斯矩陣的譜分解(特征分解)
GCN的核心基於拉普拉斯矩陣的譜分解,文獻中對於這部分內容沒有講解太多,初學者可能會遇到不少誤區,所以先了解一下特征分解。
特征分解,又稱譜分解。是將矩陣分解為由其特征值和特征向量表示的矩陣之積的方法。只有對可對角化矩陣或有n個線性無關的特征向量的矩陣才可以施以特征分解。
不是所有的矩陣都可以特征分解,其充要條件為n階方陣存在n個線性無關的特征向量。
但是拉普拉斯矩陣是半正定矩陣(半正定矩陣本身就是對稱矩陣),有如下三個性質:
- 對稱矩陣一定n個線性無關的特征向量
- 半正定矩陣的特征值一定非負
- 對陣矩陣的不同特征值對應的特征向量相互正交,這些正交的特征向量構成的矩陣為正交矩陣。
由上拉普拉斯矩陣對稱知一定可以譜分解,且分解后有特殊的形式。
對於拉普拉斯矩陣其譜分解為:
4. 如何通俗易懂地理解卷積?
4.1 連續形式的一維卷積
在泛函分析中,卷積是通過兩個函數f(x)和g(x)生成第三個函數的一種算子,它代表的意義是:兩個函數中的一個(取g(x),可以任意取)函數,把g(x)經過翻轉平移,然后與f(x)的相乘,得到的一個新的函數,對這個函數積分,也就是對這個新的函數求它所圍成的曲邊梯形的面積。
5. 傅里葉變換
略
6. Graph上的傅里葉變換及卷積
把傳統的傅里葉變換以及卷積遷移到Graph上來,核心工作其實就是把拉普拉斯算子的特征函數變為Graph對應的拉普拉斯矩陣的特征向量。
傅立葉變換與拉普拉斯矩陣的關系:傳統傅立葉變換的基,就是拉普拉斯矩陣的一組特征向量。
6.1 圖上的傅里葉變換
在處理Graph時,用到的是傅里葉變換的離散形式。由於拉普拉斯矩陣進行譜分解以后,可以得到n個線性無關的特征向量,構成空間中的一組正交基,因此歸一化拉普拉斯矩陣算子的特征向量構成了圖傅里葉變換的基。圖傅里葉變換將輸入圖的信號投影到了正交空間,相當於把圖上定義的任意向量,表示成了拉普拉斯矩陣特征向量的線性組合。
7. 深度學習中GCN的演變
7.1 Spectral CNN
第一代的參數方法存在着一些弊端,主要在於:
(1)計算復雜:如果一個樣本一個圖,那么每個樣本都需要進行圖的拉普拉斯矩陣的特征分解求U矩陣計算復雜;對於大規模的graph,計算的代價較高,需要O ( n 2 ) 的計算復雜度
(2)是非局部性連接的
(3)卷積核需要N個參數,當圖中的節點N很大時是不可取的
由於以上的缺點第二代的卷積核設計應運而生。
7.2 Chebyshev譜CNN(ChebNet)
Chebyshev譜CNN源於論文(M. Defferrard, X. Bresson, and P. Vandergheynst, “Convolutional neural networks on graphs with fast localized spectral filtering,”in Advances in Neural Information Processing Systems, 2016)。Defferrard等人提出ChebNet,定義特征向量對角矩陣的切比雪夫多項式為濾波器,也就是
7.3一階ChebNet(1stChebNet)-GCN
一階ChebNet源於論文(T. N. Kipf and M.Welling, “Semi-supervised classification with graph convolutional networks,” in Proceedings of the International Conference on Learning Representations, 2017)。這篇論文基於前面的工作,正式成為GCN的開山之作,后面很多變種都是基於這篇文章的。
該篇論文貢獻有兩點:
- 作者對於直接操作於圖結構數據的網絡模型根據頻譜圖卷積(Hammond等人於2011年提出的Wavelets on graphs via spectral graph theory)使用一階近似簡化計算的方法,提出了一種簡單有效的層式傳播方法。
- 作者驗證了圖結構神經網絡模型可用於快速可擴展式的處理圖數據中節點半監督分類問題,作者通過在一些公有數據集上驗證了自己的方法的效率和准確率能夠媲美現有的頂級半監督方法。
GCN的優點
1)、權值共享,參數共享,從 AXW可以看出每一個節點的參數矩陣都是W,權值共享;
2)、具有局部性Local Connectivity,也就是局部連接的,因為每次聚合的只是一階鄰居;
上述兩個特征也是CNN中進行參數減少的核心思想
3)、感受野正比於卷積層層數,第一層的節點只包含與直接相鄰節點有關的信息,第二層以后,每個節點還包含相鄰節點的相鄰節點的信息,這樣的話,參與運算的信息就會變多。層數越多,感受野越大,參與運算的信息量越充分。也就是說隨着卷積層的增加,從遠處鄰居的信息也會逐漸聚集過來。
4)、復雜度大大降低,不用再計算拉普拉斯矩陣,特征分解
GCN的不足
1)、擴展性差:由於訓練時需要需要知道關於訓練節點、測試節點在內的所有節點的鄰接矩陣A,因此是transductive的,不能處理大圖,然而工程實踐中幾乎面臨的都是大圖問題,因此在擴展性問題上局限很大,為了解決transductive的的問題,GraphSAGE:Inductive Representation Learning on Large Graphs 被提出;
2)、局限於淺層:GCN論文中表明,目前GCN只局限於淺層,實驗中使用2層GCN效果最好,為了加深,需要使用殘差連接等trick,但是即使使用了這些trick,也只能勉強保存性能不下降,並沒有提高,Deeper Insights into Graph Convolutional Networks for Semi-Supervised Learning一文也針對When GCNs Fail ?這個問題進行了分析。雖然有一篇論文:DeepGCNs-Can GCNs Go as Deep as CNNs?就是解決GCN局限於淺層的這個問題的,但個人覺得並沒有解決實質性的問題,這方面還有值得研究的空間。
3)、不能處理有圖:理由很簡單,推導過程中用到拉普拉斯矩陣的特征分解需要滿足拉普拉斯矩陣是對稱矩陣的條件;
原文來自:https://blog.csdn.net/yyl424525/article/details/100058264