GCN


REFERENCE:
https://www.jianshu.com/p/ad528c40a08f
https://www.zhihu.com/question/54504471

圖有兩個基本的特性: 一是每個節點都有自己的特征信息。比如針對上圖,我們建立一個風控規則,要看這個用戶的注冊地址、IP地址、交易的收貨地址是否一樣,如果這些特征信息不匹配,那么系統就會判定這個用戶就存在一定的欺詐風險。這是對圖節點特征信息的應用。 二是圖譜中的每個節點還具有結構信息。如果某段時間某個IP節點連接的交易節點非常多,也就是說從某個IP節點延伸出來的邊非常多,那么風控系統會判定這個IP地址存在風險。這是對圖節點結構信息的應用。 總的來說,在圖數據里面,我們要同時考慮到節點的特征信息以及結構信息,如果靠手工規則來提取,必將失去很多隱蔽和復雜的模式,那么有沒有一種方法能自動化地同時學到圖的特征信息與結構信息呢?——圖卷積神經網絡

Notes:

離散卷積的本質是加權求和
CNN中的卷積本質上就是利用一個共享參數的過濾器(kernel),通過計算中心像素點以及相鄰像素點的加權和來構成feature map實現空間特征的提取,當然加權系數就是卷積核的權重系數。 那么卷積核的系數如何確定的呢?是隨機化初值,然后根據誤差函數通過反向傳播梯度下降進行迭代優化。這是一個關鍵點,卷積核的參數通過優化求出才能實現特征提取的作用,GCN的理論很大一部分工作就是為了引入可以優化的卷積參數。

CNN在Computer Vision里效果為什么好呢?原因:可以很有效地提取空間特征。
但是有一點需要注意:CNN處理的圖像或者視頻數據中像素點(pixel)是排列成成很整齊的矩陣。(歐幾里得距離Euclidean Structure)

與之相對應,科學研究中還有很多Non Euclidean Structure的數據,如圖3所示。社交網絡、信息網絡中有很多類似的結構。

Graph Convolutional Network中的Graph是指數學(圖論)中的用頂點和邊建立相應關系的拓撲圖。
那么為什么要研究GCN?
原因有三:
1)CNN無法處理Non Euclidean Structure的數據,學術上的表達是傳統的離散卷積(如問題1中所述)在Non Euclidean Structure的數據上無法保持平移不變性。通俗理解就是在拓撲圖中每個頂點的相鄰頂點數目都可能不同,那么當然無法用一個同樣尺寸的卷積核來進行卷積運算。 (所謂的歐氏(歐幾里德)數據指的是類似於grids, sequences… 這樣的數據,例如圖像就可以看作是2D的grid數據,語音信號就可以看作是1D的grid數據。但是現實的處理問題當中還存在大量的 Non-Euclidean Data,如社交多媒體網絡(Social Network)數據,化學成分(Chemical Compound)結構數據,生物基因蛋白(Protein)數據以及知識圖譜(Knowledge Graphs)數據等等,這類的數據屬於圖結構的數據(Graph-structured Data)。CNN等神經網絡結構則並不能有效的處理這樣的數據,可以參考https://www.leiphone.com/news/201706/ppA1Hr0M0fLqm7OP.html)

2)由於CNN無法處理Non Euclidean Structure的數據,又希望在這樣的數據結構(拓撲圖)上有效地提取空間特征來進行機器學習,所以GCN成為了研究的重點。
3)讀到這里大家可能會想,自己的研究問題中沒有拓撲結構的網絡,那是不是根本就不會用到GCN呢?其實不然,廣義上來講任何數據在賦范空間內都可以建立拓撲關聯,譜聚類就是應用了這樣的思想(譜聚類(spectral clustering)原理總結)。所以說拓撲連接是一種廣義的數據結構,GCN有很大的應用空間。 綜上所述,GCN是要為除CV、NLP之外的任務提供一種處理、研究的模型。

3 提取拓撲圖空間特征的兩種方式 GCN的本質目的就是用來提取拓撲圖的空間特征,那么實現這個目標只有graph convolution這一種途徑嗎?
當然不是,在vertex domain(spatial domain)和spectral domain實現目標是兩種最主流的方式。

(1)vertex domain(spatial domain)是非常直觀的一種方式。顧名思義:提取拓撲圖上的空間特征,那么就把每個頂點相鄰的neighbors找出來。
這里面蘊含的科學問題有二:
a.按照什么條件去找中心vertex的neighbors,也就是如何確定receptive field?
b.確定receptive field,按照什么方式處理包含不同數目neighbors的特征?
根據a,b兩個問題設計算法,就可以實現目標了。推薦閱讀這篇文章Learning Convolutional Neural Networks for Graphs(圖4是其中一張圖片,可以看出大致的思路)。

這種方法主要的缺點如下: c.每個頂點提取出來的neighbors不同,使得計算處理必須針對每個頂點 d.提取特征的效果可能沒有卷積好

(2)spectral domain就是GCN的理論基礎了。這種思路就是希望借助圖譜的理論來實現拓撲圖上的卷積操作。
從整個研究的時間進程來看:首先研究GSP(graph signal processing)的學者定義了graph上的Fourier Transformation,進而定義了graph上的convolution,最后與深度學習結合提出了Graph Convolutional Network。 認真讀到這里,腦海中應該會浮現出一系列問題: Q1 什么是Spectral graph theory? Spectral graph theory請參考這個,簡單的概括就是借助於圖的拉普拉斯矩陣的特征值和特征向量來研究圖的性質 Q2 GCN為什么要利用Spectral graph theory? 這應該是看論文過程中讀不懂的核心問題了,要理解這個問題需要大量的數學定義及推導,沒有一定的數學功底難以駕馭(我也才疏學淺,很難回答好這個問題)。 所以,先繞過這個問題,來看Spectral graph實現了什么,再進行探究為什么?

4 什么是拉普拉斯矩陣?為什么GCN要用拉普拉斯矩陣?
Graph Fourier Transformation及Graph Convolution的定義都用到圖的拉普拉斯矩陣,那么首先來介紹一下拉普拉斯矩陣。 對於圖 G=(V,E),其Laplacian 矩陣的定義L=D-A ,其中 L是Laplacian 矩陣, D是頂點的度矩陣(對角矩陣),對角線上元素依次為各個頂點的度, A是圖的鄰接矩陣。看圖5的示例,就能很快知道Laplacian 矩陣的計算方法。

常用的拉普拉斯矩陣實際有三種:
No.1 L=D-A 定義的Laplacian 矩陣更專業的名稱叫Combinatorial Laplacian
No.2 Lsys=D(-1/2)LD^(-1/2)定義的叫Symmetric normalized Laplacian,很多GCN的論文中應用的是這種拉普拉斯矩陣
No.3 Lrw=D(-1)L定義的叫Random walk normalized Laplacian,有讀者的留言說看到了Graph Convolution與Diffusion相似之處,當然從Random walk normalized Laplacian就能看出了兩者確有相似之處(其實兩者只差一個相似矩陣的變換

為什么GCN要用拉普拉斯矩陣?
拉普拉斯矩陣矩陣有很多良好的性質,這里寫三點我感觸到的和GCN有關之處
(1)拉普拉斯矩陣是對稱矩陣,可以進行特征分解(譜分解),這就和GCN的spectral domain對應上了
(2)拉普拉斯矩陣只在中心頂點和一階相連的頂點上(1-hop neighbor)有非0元素,其余之處均為0
(3)通過拉普拉斯算子與拉普拉斯矩陣進行類比(詳見第6節)

5 拉普拉斯矩陣的譜分解(特征分解)
GCN的核心基於拉普拉斯矩陣的譜分解,文獻中對於這部分內容沒有講解太多,初學者可能會遇到不少誤區,所以先了解一下特征分解。
矩陣的譜分解,特征分解,對角化都是同一個概念(特征分解_百度百科)。
不是所有的矩陣都可以特征分解,其充要條件為n階方陣存在n個線性無關的特征向量。
但是拉普拉斯矩陣是半正定對稱矩陣(半正定矩陣本身就是對稱矩陣,半正定矩陣_百度百科,此處這樣寫為了和下面的性質對應,避免混淆),有如下三個性質:
對稱矩陣一定n個線性無關的特征向量
半正定矩陣的特征值一定非負
對陣矩陣的特征向量相互正交,即所有特征向量構成的矩陣為正交矩陣。
由上可以知道拉普拉斯矩陣一定可以譜分解,且分解后有特殊的形式。 對於拉普拉斯矩陣其譜分解為:

6 如何從傳統的傅里葉變換、卷積類比到Graph上的傅里葉變換及卷積?
把傳統的傅里葉變換以及卷積遷移到Graph上來,核心工作其實就是把拉普拉斯算子的特征函數 e^(-iwt)變為Graph對應的拉普拉斯矩陣的特征向量。
(1)推廣傅里葉變換
(a)Graph上的傅里葉變換


2)推廣卷積 在上面的基礎上,利用卷積定理類比來將卷積運算,推廣到Graph上。 卷積定理:函數卷積的傅里葉變換是函數傅立葉變換的乘積,即對於函數 與 兩者的卷積是其函數傅立葉變換乘積的逆變換:

7 為什么拉普拉斯矩陣的特征向量可以作為傅里葉變換的基?特征值表示頻率?
(1)為什么拉普拉斯矩陣的特征向量可以作為傅里葉變換的基? 傅里葉變換一個本質理解就是:把任意一個函數表示成了若干個正交函數(由sin,cos 構成)的線性組合。

8 Deep Learning中的Graph Convolution
Deep learning 中的Graph Convolution直接看上去會和第6節推導出的圖卷積公式有很大的不同,但是萬變不離其宗,(1)式是推導的本源。
第1節的內容已經解釋得很清楚:Deep learning 中的Convolution就是要設計含有trainable共享參數的kernel,從(1)式看很直觀:graph convolution中的卷積參數就是diag(h^(lamad_l))

9 在GCN中的Local Connectivity和Parameter Sharing

CNN中有兩大核心思想:網絡局部連接,卷積核參數共享。
https://link.zhihu.com/?target=https%3A//www.sciencedirect.com/science/article/pii/S0968090X18315389%3Fdgcid%3Dcoauthor

12 GCN的相關資料
——————GCN的綜述與論文合輯

https://mp.weixin.qq.com/s/WW-URKk-fNct9sC4bJ22eg
https://mp.weixin.qq.com/s/3CYkXj2dnehyJSPLBTVSDg

觀點2:
先說問題的本質:圖中的每個結點無時無刻不因為鄰居和更遠的點的影響而在改變着自己的狀態直到最終的平衡,關系越親近的鄰居影響越大。 要想理解GCN以及其后面一系列工作的實質,最重要的是理解其中的精髓Laplacian矩陣在干什么。知道了Laplacian矩陣在干什么后,剩下的只是解法的不同——所謂的Fourier變換只是將問題從空域變換到頻域去解,所以也有直接在空域解的(例如GraphSage)。

同理,在高維的歐氏空間中,一階導數就推廣到梯度,二階導數就是我們今天討論的主角——拉普拉斯算子:


恆溫熱源的存在,正是我們跨向半監督學習的橋梁。 我們把問題向廣告和推薦場景去類比,在這個場景下,某些結點有着明確的label,例如某個廣告被點擊,某個廣告的ctr是多少,某個item被收藏,這些帶着label的結點有着相對的確定性——它們可以被看作是這個結點的溫度,這些有標簽的結點正是恆溫熱源。那么,這些圖的其他參與者,那些等待被我們預測的結點正是這張圖的無源部分,它們被動的接受着那些或近或遠的恆溫熱源傳遞來的Feature,改變着自己的Feature,從而影響自己的label。 讓我們做個類比: 溫度 好比 label 是狀態量 恆溫熱源 好比 有明確 label的結點,它們把自己的Feature傳遞給鄰居,讓鄰居的Feature與自己趨同從而讓鄰居有和自己相似的label 結點的熱能就是Feature,無標簽的、被預測的結點的Feature被有明確label的結點的Feature傳遞並且影響最終改變自己 需要說明的一點是,無論是有源還是無源,當有新的結點接入已經平衡的系統,系統的平衡被打破,新的結點最終接受已有結點和恆溫熱源的傳遞直到達到新的平衡。所以我們可以不斷的用現有的圖去預測我們未見過的結點的性質,演化和滾大這個系統。


免責聲明!

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



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