2020 GCN(Graph Convolutional Network)小結(jié)

backgroud:圖網(wǎng)絡(luò)數(shù)據(jù)普遍存在,要解決的問(wèn)題是將原始的網(wǎng)絡(luò)結(jié)構(gòu)映射到低維向量空間,并保持相似性,進(jìn)而可以用到各種機(jī)器學(xué)習(xí)算法中。

network embedding產(chǎn)出方法大致可以分為兩類:淺層、深層網(wǎng)絡(luò)

淺層網(wǎng)絡(luò):deepwalk 基于同線性越多,歐式空間表示越像的想法,解決思路是MF矩陣分解,重點(diǎn)在于similarity function構(gòu)建,不足是網(wǎng)絡(luò)節(jié)點(diǎn)增加需要重新訓(xùn)練網(wǎng)絡(luò)學(xué)的embedding向量。

深層網(wǎng)絡(luò):deeplearn 基于CNN卷積核提取特征的想法,困難在于語(yǔ)音、圖片數(shù)據(jù)具有平移不變性,圖數(shù)據(jù)沒(méi)有,目前大致有兩大類方法:Spectral based GCN? ? (譜方法),Spatial based GCN? (空間方法)。

1、GCN(Graph Convolutional Network)

GCN定義:

GCN定義

2、GCN SGAE

GCN的缺點(diǎn):Transductive learning的方式,需要把所有節(jié)點(diǎn)都參與訓(xùn)練才能得到node embedding,無(wú)法快速得到新node的embedding。

得到新節(jié)點(diǎn)的表示的難處:要想得到新節(jié)點(diǎn)的表示,需要讓新的graph或者subgraph去和已經(jīng)優(yōu)化好的node embedding去“對(duì)齊”。然而每個(gè)節(jié)點(diǎn)的表示都是受到其他節(jié)點(diǎn)的影響,因此添加一個(gè)節(jié)點(diǎn),意味著許許多多與之相關(guān)的節(jié)點(diǎn)的表示都應(yīng)該調(diào)整。這會(huì)帶來(lái)極大的計(jì)算開銷,即使增加幾個(gè)節(jié)點(diǎn),也要完全重新訓(xùn)練所有的節(jié)點(diǎn)。

因此我們需要換一種思路:既然新增的節(jié)點(diǎn),一定會(huì)改變?cè)泄?jié)點(diǎn)的表示,那么我們干嘛一定要得到每個(gè)節(jié)點(diǎn)的一個(gè)固定的表示呢?我們何不直接學(xué)習(xí)一種節(jié)點(diǎn)的表示方法。這樣不管graph怎么改變,都可以很容易地得到新的表示。

基本思想:去學(xué)習(xí)一個(gè)節(jié)點(diǎn)的信息是怎么通過(guò)其鄰居節(jié)點(diǎn)的特征聚合而來(lái)的。學(xué)習(xí)到了這樣的“聚合函數(shù)”,而我們本身就已知各個(gè)節(jié)點(diǎn)的特征和鄰居關(guān)系,我們就可以很方便地得到一個(gè)新節(jié)點(diǎn)的表示了。

GCN等transductive的方法,學(xué)到的是每個(gè)節(jié)點(diǎn)的一個(gè)唯一確定的embedding;而GraphSAGE方法學(xué)到的node embedding,是根據(jù)node的鄰居關(guān)系的變化而變化的,也就是說(shuō),即使是舊的node,如果建立了一些新的link,那么其對(duì)應(yīng)的embedding也會(huì)變化,而且也很方便地學(xué)到。

大致的思路是:假設(shè)我們要聚合K次,則需要有K個(gè)聚合函數(shù)(aggregator),可以認(rèn)為是N層。每一次聚合,都是把上一層得到的各個(gè)node的特征聚合一次,在假設(shè)該node自己在上一層的特征,得到該層的特征。如此反復(fù)聚合K次,得到該node最后的特征。最下面一層的node特征就是輸入的node features。

圖示

前面一直都沒(méi)討論一個(gè)點(diǎn),那就是如何選擇一個(gè)節(jié)點(diǎn)的鄰居以及多遠(yuǎn)的鄰居。這里作者的做法是設(shè)置一個(gè)定值,每次選擇鄰居的時(shí)候就是從周圍的直接鄰居(一階鄰居)中均勻地采樣固定個(gè)數(shù)個(gè)鄰居。

鄰居選擇

3、GCN ATTENTION

為何要GAT

因?yàn)镚CN是無(wú)法解決動(dòng)態(tài)的圖,而且GCN給每個(gè)鄰居節(jié)點(diǎn)都分配相同的權(quán)值,但每個(gè)鄰居節(jié)點(diǎn)的重要性都是相同的,得出了GAT要解決的兩個(gè)問(wèn)題,首先是如何確定每個(gè)節(jié)點(diǎn)對(duì)其不同鄰居的權(quán)重,然后是如何將處理好的鄰居特征與自身特征結(jié)合在一起。

左:生成權(quán)重的過(guò)程,右:在生成了權(quán)重后計(jì)算新特征的過(guò)程
兩過(guò)程解釋

(1)權(quán)重的確定

權(quán)重的確定

(2)特征的結(jié)合

特征結(jié)合K*F'
特征變換1*F'


參考文獻(xiàn):

1、深度學(xué)習(xí)新星 | 圖卷積神經(jīng)網(wǎng)絡(luò)(GCN)有多強(qiáng)大?

https://zhuanlan.zhihu.com/p/37894842

2、GraphSAGE:我尋思GCN也沒(méi)我厲害!

https://blog.csdn.net/dQCFKyQDXYm3F8rB0/article/details/98540692

3、圖卷積網(wǎng)絡(luò)之GAT(Graph Attention Networks)

https://zhuanlan.zhihu.com/p/82477223

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容