近年來(lái),深度學(xué)習(xí)領(lǐng)域關(guān)于圖神經(jīng)網(wǎng)絡(luò)(Graph Neural Networks,GNN)的研究熱情日益高漲,圖神經(jīng)網(wǎng)絡(luò)已經(jīng)成為各大深度學(xué)習(xí)頂會(huì)的研究熱點(diǎn)。GNN處理非結(jié)構(gòu)化數(shù)據(jù)時(shí)的出色能力使其在網(wǎng)絡(luò)數(shù)據(jù)分析、推薦系統(tǒng)、物理建模、自然語(yǔ)言處理和圖上的組合優(yōu)化問(wèn)題方面都取得了新的突破。圖神經(jīng)網(wǎng)絡(luò)有很多比較好的綜述[1][2][3]可以參考,更多的論文可以參考清華大學(xué)整理的GNN paper list[4] 。本篇文章將從一個(gè)更直觀的角度對(duì)當(dāng)前經(jīng)典流行的GNN網(wǎng)絡(luò),包括GCN、GraphSAGE、GAT、GAE以及graph pooling策略DiffPool等等做一個(gè)簡(jiǎn)單的小結(jié)。
筆者注:行文如有錯(cuò)誤或者表述不當(dāng)之處,還望批評(píng)指正!
一、為什么需要圖神經(jīng)網(wǎng)絡(luò)?
隨著機(jī)器學(xué)習(xí)、深度學(xué)習(xí)的發(fā)展,語(yǔ)音、圖像、自然語(yǔ)言處理逐漸取得了很大的突破,然而語(yǔ)音、圖像、文本都是很簡(jiǎn)單的序列或者網(wǎng)格數(shù)據(jù),是很結(jié)構(gòu)化的數(shù)據(jù),深度學(xué)習(xí)很善于處理該種類(lèi)型的數(shù)據(jù)(圖1)。
圖1然而現(xiàn)實(shí)世界中并不是所有的事物都可以表示成一個(gè)序列或者一個(gè)網(wǎng)格,例如社交網(wǎng)絡(luò)、知識(shí)圖譜、復(fù)雜的文件系統(tǒng)等(圖2),也就是說(shuō)很多事物都是非結(jié)構(gòu)化的。
圖2相比于簡(jiǎn)單的文本和圖像,這種網(wǎng)絡(luò)類(lèi)型的非結(jié)構(gòu)化的數(shù)據(jù)非常復(fù)雜,處理它的難點(diǎn)包括:
圖的大小是任意的,圖的拓?fù)浣Y(jié)構(gòu)復(fù)雜,沒(méi)有像圖像一樣的空間局部性
圖沒(méi)有固定的節(jié)點(diǎn)順序,或者說(shuō)沒(méi)有一個(gè)參考節(jié)點(diǎn)
圖經(jīng)常是動(dòng)態(tài)圖,而且包含多模態(tài)的特征
那么對(duì)于這類(lèi)數(shù)據(jù)我們?cè)撊绾谓D??能否將深度學(xué)習(xí)進(jìn)行擴(kuò)展使得能夠建模該類(lèi)數(shù)據(jù)呢?這些問(wèn)題促使了圖神經(jīng)網(wǎng)絡(luò)的出現(xiàn)與發(fā)展。
二. 圖神經(jīng)網(wǎng)絡(luò)是什么樣子的?
相比較于神經(jīng)網(wǎng)絡(luò)最基本的網(wǎng)絡(luò)結(jié)構(gòu)全連接層(MLP),特征矩陣乘以權(quán)重矩陣,圖神經(jīng)網(wǎng)絡(luò)多了一個(gè)鄰接矩陣。計(jì)算形式很簡(jiǎn)單,三個(gè)矩陣相乘再加上一個(gè)非線性變換(圖3)。
圖3因此一個(gè)比較常見(jiàn)的圖神經(jīng)網(wǎng)絡(luò)的應(yīng)用模式如下圖(圖4),輸入是一個(gè)圖,經(jīng)過(guò)多層圖卷積等各種操作以及激活函數(shù),最終得到各個(gè)節(jié)點(diǎn)的表示,以便于進(jìn)行節(jié)點(diǎn)分類(lèi)、鏈接預(yù)測(cè)、圖與子圖的生成等等任務(wù)。
圖4上面是一個(gè)對(duì)圖神經(jīng)網(wǎng)絡(luò)比較簡(jiǎn)單直觀的感受與理解,實(shí)際其背后的原理邏輯還是比較復(fù)雜的,這個(gè)后面再慢慢細(xì)說(shuō),接下來(lái)將以幾個(gè)經(jīng)典的GNN models為線來(lái)介紹圖神經(jīng)網(wǎng)絡(luò)的發(fā)展歷程
三、圖神經(jīng)網(wǎng)絡(luò)的幾個(gè)經(jīng)典模型與發(fā)展
1 . Graph Convolution Networks(GCN)[5]GCN可謂是圖神經(jīng)網(wǎng)絡(luò)的“開(kāi)山之作”,它首次將圖像處理中的卷積操作簡(jiǎn)單的用到圖結(jié)構(gòu)數(shù)據(jù)處理中來(lái),并且給出了具體的推導(dǎo),這里面涉及到復(fù)雜的譜圖理論,具體推到可以參考[6][7]。推導(dǎo)過(guò)程還是比較復(fù)雜的,然而最后的結(jié)果卻非常簡(jiǎn)單( 圖5)。
圖5我們來(lái)看一下這個(gè)式子,天吶,這不就是聚合鄰居節(jié)點(diǎn)的特征然后做一個(gè)線性變換嗎?沒(méi)錯(cuò),確實(shí)是這樣,同時(shí)為了使得GCN能夠捕捉到K-hop的鄰居節(jié)點(diǎn)的信息,作者還堆疊多層GCN layers,如堆疊K層有:
上述式子還可以使用矩陣形式表示如下,
其中是歸一化之后的鄰接矩陣,相當(dāng)于給層的所有節(jié)點(diǎn)的embedding做了一次線性變換,左乘以鄰接矩陣表示對(duì)每個(gè)節(jié)點(diǎn)來(lái)說(shuō),該節(jié)點(diǎn)的特征表示為鄰居節(jié)點(diǎn)特征相加之后的結(jié)果。(注意將換成矩陣就是圖3所說(shuō)的三矩陣相乘)那么GCN的效果如何呢?作者將GCN放到節(jié)點(diǎn)分類(lèi)任務(wù)上,分別在Citeseer、Cora、Pubmed、NELL等數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),相比于傳統(tǒng)方法提升還是很顯著的,這很有可能是得益于GCN善于編碼圖的結(jié)構(gòu)信息,能夠?qū)W習(xí)到更好的節(jié)點(diǎn)表示。
圖6當(dāng)然,其實(shí)GCN的缺點(diǎn)也是很顯然易見(jiàn)的,第一,GCN需要將整個(gè)圖放到內(nèi)存和顯存,這將非常耗內(nèi)存和顯存,處理不了大圖;第二,GCN在訓(xùn)練時(shí)需要知道整個(gè)圖的結(jié)構(gòu)信息(包括待預(yù)測(cè)的節(jié)點(diǎn)), 這在現(xiàn)實(shí)某些任務(wù)中也不能實(shí)現(xiàn)(比如用今天訓(xùn)練的圖模型預(yù)測(cè)明天的數(shù)據(jù),那么明天的節(jié)點(diǎn)是拿不到的)。2. Graph Sample and Aggregate(GraphSAGE)[8]為了解決GCN的兩個(gè)缺點(diǎn)問(wèn)題,GraphSAGE被提了出來(lái)。在介紹GraphSAGE之前,先介紹一下Inductive learning和Transductive learning。注意到圖數(shù)據(jù)和其他類(lèi)型數(shù)據(jù)的不同,圖數(shù)據(jù)中的每一個(gè)節(jié)點(diǎn)可以通過(guò)邊的關(guān)系利用其他節(jié)點(diǎn)的信息。這就導(dǎo)致一個(gè)問(wèn)題,GCN輸入了整個(gè)圖,訓(xùn)練節(jié)點(diǎn)收集鄰居節(jié)點(diǎn)信息的時(shí)候,用到了測(cè)試和驗(yàn)證集的樣本,我們把這個(gè)稱(chēng)為T(mén)ransductive learning。然而,我們所處理的大多數(shù)的機(jī)器學(xué)習(xí)問(wèn)題都是Inductive learning,因?yàn)槲覀兛桃獾膶颖炯譃橛?xùn)練/驗(yàn)證/測(cè)試,并且訓(xùn)練的時(shí)候只用訓(xùn)練樣本。這樣對(duì)圖來(lái)說(shuō)有個(gè)好處,可以處理圖中新來(lái)的節(jié)點(diǎn),可以利用已知節(jié)點(diǎn)的信息為未知節(jié)點(diǎn)生成embedding,GraphSAGE就是這么干的。GraphSAGE是一個(gè)Inductive Learning框架,具體實(shí)現(xiàn)中,訓(xùn)練時(shí)它僅僅保留訓(xùn)練樣本到訓(xùn)練樣本的邊,然后包含Sample和Aggregate兩大步驟,Sample是指如何對(duì)鄰居的個(gè)數(shù)進(jìn)行采樣,Aggregate是指拿到鄰居節(jié)點(diǎn)的embedding之后如何匯聚這些embedding以更新自己的embedding信息。下圖展示了GraphSAGE學(xué)習(xí)的一個(gè)過(guò)程,
圖7第一步,對(duì)鄰居采樣第二步,采樣后的鄰居embedding傳到節(jié)點(diǎn)上來(lái),并使用一個(gè)聚合函數(shù)聚合這些鄰居信息以更新節(jié)點(diǎn)的embedding第三步,根據(jù)更新后的embedding預(yù)測(cè)節(jié)點(diǎn)的標(biāo)簽接下來(lái),我們?cè)敿?xì)的說(shuō)明一個(gè)訓(xùn)練好的GrpahSAGE是如何給一個(gè)新的節(jié)點(diǎn)生成embedding的(即一個(gè)前向傳播的過(guò)程),如下算法圖:
首先,(line1)算法首先初始化輸入的圖中所有節(jié)點(diǎn)的特征向量,(line3)對(duì)于每個(gè)節(jié)點(diǎn),拿到它采樣后的鄰居節(jié)點(diǎn)后,(line4)利用聚合函數(shù)聚合鄰居節(jié)點(diǎn)的信息,(line5)并結(jié)合自身embedding通過(guò)一個(gè)非線性變換更新自身的embedding表示。注意到算法里面的,它是指聚合器的數(shù)量,也是指權(quán)重矩陣的數(shù)量,還是網(wǎng)絡(luò)的層數(shù),這是因?yàn)槊恳粚泳W(wǎng)絡(luò)中聚合器和權(quán)重矩陣是共享的。網(wǎng)絡(luò)的層數(shù)可以理解為需要最大訪問(wèn)的鄰居的跳數(shù)(hops),比如在圖7中,紅色節(jié)點(diǎn)的更新拿到了它一、二跳鄰居的信息,那么網(wǎng)絡(luò)層數(shù)就是2。為了更新紅色節(jié)點(diǎn),首先在第一層(k=1),我們會(huì)將藍(lán)色節(jié)點(diǎn)的信息聚合到紅色解節(jié)點(diǎn)上,將綠色節(jié)點(diǎn)的信息聚合到藍(lán)色節(jié)點(diǎn)上。在第二層(k=2)紅色節(jié)點(diǎn)的embedding被再次更新,不過(guò)這次用到的是更新后的藍(lán)色節(jié)點(diǎn)embedding,這樣就保證了紅色節(jié)點(diǎn)更新后的embedding包括藍(lán)色和綠色節(jié)點(diǎn)的信息,也就是兩跳信息。為了看的更清晰,我們將更新某個(gè)節(jié)點(diǎn)的過(guò)程展開(kāi)來(lái)看,如圖8分別為更新節(jié)點(diǎn)A和更新節(jié)點(diǎn)B的過(guò)程,可以看到更新不同的節(jié)點(diǎn)過(guò)程每一層網(wǎng)絡(luò)中聚合器和權(quán)重矩陣都是共享的。
圖8那么GraphSAGESample是怎么做的呢?GraphSAGE是采用定長(zhǎng)抽樣的方法,具體來(lái)說(shuō),定義需要的鄰居個(gè)數(shù),然后采用有放回的重采樣/負(fù)采樣方法達(dá)到。保證每個(gè)節(jié)點(diǎn)(采樣后的)鄰居個(gè)數(shù)一致,這樣是為了把多個(gè)節(jié)點(diǎn)以及它們的鄰居拼接成Tensor送到GPU中進(jìn)行批訓(xùn)練。那么GraphSAGE 有哪些聚合器呢?主要有三個(gè),
這里說(shuō)明的一點(diǎn)是Mean Aggregator和GCN的做法基本是一致的(GCN實(shí)際上是求和)。到此為止,整個(gè)模型的架構(gòu)就講完了,那么GraphSAGE是如何學(xué)習(xí)聚合器的參數(shù)以及權(quán)重矩陣呢?如果是有監(jiān)督的情況下,可以使用每個(gè)節(jié)點(diǎn)的預(yù)測(cè)lable和真實(shí)lable的交叉熵作為損失函數(shù)。如果是在無(wú)監(jiān)督的情況下,可以假設(shè)相鄰的節(jié)點(diǎn)的embedding表示盡可能相近,因此可以設(shè)計(jì)出如下的損失函數(shù),
那么GrpahSAGE的實(shí)際實(shí)驗(yàn)效果如何呢?作者在Citation、Reddit、PPI數(shù)據(jù)集上分別給出了無(wú)監(jiān)督和完全有監(jiān)督的結(jié)果,相比于傳統(tǒng)方法提升還是很明顯。
至此,GraphSAGE介紹完畢。我們來(lái)總結(jié)一下,GraphSAGE的一些優(yōu)點(diǎn),(1)利用采樣機(jī)制,很好的解決了GCN必須要知道全部圖的信息問(wèn)題,克服了GCN訓(xùn)練時(shí)內(nèi)存和顯存的限制,即使對(duì)于未知的新節(jié)點(diǎn),也能得到其表示(2)聚合器和權(quán)重矩陣的參數(shù)對(duì)于所有的節(jié)點(diǎn)是共享的(3)模型的參數(shù)的數(shù)量與圖的節(jié)點(diǎn)個(gè)數(shù)無(wú)關(guān),這使得GraphSAGE能夠處理更大的圖(4)既能處理有監(jiān)督任務(wù)也能處理無(wú)監(jiān)督任務(wù)(就喜歡這樣解決了問(wèn)題,方法又簡(jiǎn)潔,效果還好的idea?。。。┊?dāng)然,GraphSAGE也有一些缺點(diǎn),每個(gè)節(jié)點(diǎn)那么多鄰居,GraphSAGE的采樣沒(méi)有考慮到不同鄰居節(jié)點(diǎn)的重要性不同,而且聚合計(jì)算的時(shí)候鄰居節(jié)點(diǎn)的重要性和當(dāng)前節(jié)點(diǎn)也是不同的。3. Graph Attention Networks(GAT)[9]為了解決GNN聚合鄰居節(jié)點(diǎn)的時(shí)候沒(méi)有考慮到不同的鄰居節(jié)點(diǎn)重要性不同的問(wèn)題,GAT借鑒了Transformer的idea,引入masked self-attention機(jī)制,在計(jì)算圖中的每個(gè)節(jié)點(diǎn)的表示的時(shí)候,會(huì)根據(jù)鄰居節(jié)點(diǎn)特征的不同來(lái)為其分配不同的權(quán)值。具體的,對(duì)于輸入的圖,一個(gè)graph attention layer如圖9所示,
圖9其中采用了單層的前饋神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn),計(jì)算過(guò)程如下(注意權(quán)重矩陣對(duì)于所有的節(jié)點(diǎn)是共享的):
計(jì)算完attention之后,就可以得到某個(gè)節(jié)點(diǎn)聚合其鄰居節(jié)點(diǎn)信息的新的表示,計(jì)算過(guò)程如下:
為了提高模型的擬合能力,還引入了多頭的self-attention機(jī)制,即同時(shí)使用多個(gè)計(jì)算self-attention,然后將計(jì)算的結(jié)果合并(連接或者求和):
此外,由于GAT結(jié)構(gòu)的特性,GAT無(wú)需使用預(yù)先構(gòu)建好的圖,因此GAT既適用于Transductive Learning,又適用于Inductive Learning。那么GAT的具體效果如何呢?作者分別在三個(gè)Transductive Learning和一個(gè)Inductive Learning任務(wù)上進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如下:
無(wú)論是在Transductive Learning還是在Inductive Learning的任務(wù)上,GAT的效果都要優(yōu)于傳統(tǒng)方法的結(jié)果。至此,GAT的介紹完畢,我們來(lái)總結(jié)一下,GAT的一些優(yōu)點(diǎn),(1)訓(xùn)練GCN無(wú)需了解整個(gè)圖結(jié)構(gòu),只需知道每個(gè)節(jié)點(diǎn)的鄰居節(jié)點(diǎn)即可(2)計(jì)算速度快,可以在不同的節(jié)點(diǎn)上進(jìn)行并行計(jì)算(3)既可以用于Transductive Learning,又可以用于Inductive Learning,可以對(duì)未見(jiàn)過(guò)的圖結(jié)構(gòu)進(jìn)行處理(仍然是簡(jiǎn)單的idea,解決了問(wèn)題,效果還好?。。。┑酱耍覀兙徒榻B完了GNN中最經(jīng)典的幾個(gè)模型GCN、GraphSAGE、GAT,接下來(lái)我們將針對(duì)具體的任務(wù)類(lèi)別來(lái)介紹一些流行的GNN模型與方法。四、無(wú)監(jiān)督的節(jié)點(diǎn)表示學(xué)習(xí)(Unsupervised Node Representation)由于標(biāo)注數(shù)據(jù)的成本非常高,如果能夠利用無(wú)監(jiān)督的方法很好的學(xué)習(xí)到節(jié)點(diǎn)的表示,將會(huì)有巨大的價(jià)值和意義,例如找到相同興趣的社區(qū)、發(fā)現(xiàn)大規(guī)模的圖中有趣的結(jié)構(gòu)等等。
圖10這其中比較經(jīng)典的模型有GraphSAGE、Graph Auto-Encoder(GAE)等,GraphSAGE就是一種很好的無(wú)監(jiān)督表示學(xué)習(xí)的方法,前面已經(jīng)介紹了,這里就不贅述,接下來(lái)將詳細(xì)講解后面兩個(gè)。
Graph Auto-Encoder(GAE)[10]
在介紹Graph Auto-Encoder之前,需要先了解自編碼器(Auto-Encoder)、變分自編碼器(Variational Auto-Encoder),具體可以參考[11],這里就不贅述。理解了自編碼器之后,再來(lái)理解變分圖的自編碼器就容易多了。如圖11輸入圖的鄰接矩陣和節(jié)點(diǎn)的特征矩陣,通過(guò)編碼器(圖卷積網(wǎng)絡(luò))學(xué)習(xí)節(jié)點(diǎn)低維向量表示的均值和方差,然后用解碼器(鏈路預(yù)測(cè))生成圖。
圖11編碼器(Encoder)采用簡(jiǎn)單的兩層GCN網(wǎng)絡(luò),解碼器(Encoder)計(jì)算兩點(diǎn)之間存在邊的概率來(lái)重構(gòu)圖,損失函數(shù)包括生成圖和原始圖之間的距離度量,以及節(jié)點(diǎn)表示向量分布和正態(tài)分布的KL-散度兩部分。具體公式如圖12所示:
圖12另外為了做比較,作者還提出了圖自編碼器(Graph Auto-Encoder),相比于變分圖的自編碼器,圖自編碼器就簡(jiǎn)單多了,Encoder是兩層GCN,Loss只包含Reconstruction Loss。那么兩種圖自編碼器的效果如何呢?作者分別在Cora、Citeseer、Pubmed數(shù)據(jù)集上做Link prediction任務(wù),實(shí)驗(yàn)結(jié)果如下表,圖自編碼器(GAE)和變分圖自編碼器(VGAE)效果普遍優(yōu)于傳統(tǒng)方法,而且變分圖自編碼器的效果更好;當(dāng)然,Pumed上GAE得到了最佳結(jié)果??赡苁且?yàn)镻umed網(wǎng)絡(luò)較大,在VGAE比GAE模型復(fù)雜,所以更難調(diào)參。
五、Graph PoolingGraph pooling是GNN中很流行的一種操作,目的是為了獲取一整個(gè)圖的表示,主要用于處理圖級(jí)別的分類(lèi)任務(wù),例如在有監(jiān)督的圖分類(lèi)、文檔分類(lèi)等等。
圖13Graph pooling的方法有很多,如簡(jiǎn)單的max pooling和mean pooling,然而這兩種pooling不高效而且忽視了節(jié)點(diǎn)的順序信息;這里介紹一種方法:Differentiable Pooling (DiffPool)。1.DiffPool[12]在圖級(jí)別的任務(wù)當(dāng)中,當(dāng)前的很多方法是將所有的節(jié)點(diǎn)嵌入進(jìn)行全局池化,忽略了圖中可能存在的任何層級(jí)結(jié)構(gòu),這對(duì)于圖的分類(lèi)任務(wù)來(lái)說(shuō)尤其成問(wèn)題,因?yàn)槠淠繕?biāo)是預(yù)測(cè)整個(gè)圖的標(biāo)簽。針對(duì)這個(gè)問(wèn)題,斯坦福大學(xué)團(tuán)隊(duì)提出了一個(gè)用于圖分類(lèi)的可微池化操作模塊——DiffPool,可以生成圖的層級(jí)表示,并且可以以端到端的方式被各種圖神經(jīng)網(wǎng)絡(luò)整合。DiffPool的核心思想是通過(guò)一個(gè)可微池化操作模塊去分層的聚合圖節(jié)點(diǎn),具體的,這個(gè)可微池化操作模塊基于GNN上一層生成的節(jié)點(diǎn)嵌入以及分配矩陣,以端到端的方式分配給下一層的簇,然后將這些簇輸入到GNN下一層,進(jìn)而實(shí)現(xiàn)用分層的方式堆疊多個(gè)GNN層的想法。(圖14)
圖14那么這個(gè)節(jié)點(diǎn)嵌入和分配矩陣是怎么算的?計(jì)算完之后又是怎么分配給下一層的?這里就涉及到兩部分內(nèi)容,一個(gè)是分配矩陣的學(xué)習(xí),一個(gè)是池化分配矩陣。
分配矩陣的學(xué)習(xí)
這里使用兩個(gè)分開(kāi)的GNN來(lái)生成分配矩陣和每一個(gè)簇節(jié)點(diǎn)新的嵌入,這兩個(gè)GNN都是用簇節(jié)點(diǎn)特征矩陣和粗化鄰接矩陣作為輸入,
池化分配矩陣
計(jì)算得到分配矩陣和每一個(gè)簇節(jié)點(diǎn)新的嵌入之后,DiffPool層根據(jù)分配矩陣,對(duì)于圖中的每個(gè)節(jié)點(diǎn)/簇生成一個(gè)新的粗化的鄰接矩陣與新的嵌入矩陣,
總的來(lái)看,每層的DiffPool其實(shí)就是更新每一個(gè)簇節(jié)點(diǎn)的嵌入和簇節(jié)點(diǎn)的特征矩陣,如下公式:
至此,DiffPool的基本思想就講完了。那么效果如何呢?作者在多種圖分類(lèi)的基準(zhǔn)數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),如蛋白質(zhì)數(shù)據(jù)集(ENZYMES,PROTEINS,D&D),社交網(wǎng)絡(luò)數(shù)據(jù)集(REDDIT-MULTI-12K),科研合作數(shù)據(jù)集(COLLAB),實(shí)驗(yàn)結(jié)果如下:
其中,GraphSAGE是采用全局平均池化;DiffPool-DET是一種DiffPool變體,使用確定性圖聚類(lèi)算法生成分配矩陣;DiffPool-NOLP是DiffPool的變體,取消了鏈接預(yù)測(cè)目標(biāo)部分。總的來(lái)說(shuō),DiffPool方法在GNN的所有池化方法中獲得最高的平均性能。為了更好的證明DiffPool對(duì)于圖分類(lèi)十分有效,論文還使用了其他GNN體系結(jié)構(gòu)(Structure2Vec(s2v)),并且構(gòu)造兩個(gè)變體,進(jìn)行對(duì)比實(shí)驗(yàn),如下表:
可以看到DiffPool的顯著改善了S2V在ENZYMES和D&D數(shù)據(jù)集上的性能。
而且DiffPool可以自動(dòng)的學(xué)習(xí)到恰當(dāng)?shù)拇氐臄?shù)量。至此,我們來(lái)總結(jié)一下DiffPool的優(yōu)點(diǎn),(1)可以學(xué)習(xí)層次化的pooling策略(2)可以學(xué)習(xí)到圖的層次化表示(3)可以以端到端的方式被各種圖神經(jīng)網(wǎng)絡(luò)整合然而,注意到,DiffPool也有其局限性,分配矩陣需要很大的空間去存儲(chǔ),空間復(fù)雜度為,為池化層的層數(shù),所以無(wú)法處理很大的圖。
責(zé)任編輯:lq
-
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4814瀏覽量
103697 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5561瀏覽量
122811 -
GNN
+關(guān)注
關(guān)注
1文章
31瀏覽量
6566
原文標(biāo)題:圖神經(jīng)網(wǎng)絡(luò)入門(mén)必讀: 一文帶你梳理GCN, GraphSAGE, GAT, GAE, Pooling, DiffPool
文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺(jué)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
20個(gè)經(jīng)典模擬電路及詳細(xì)分析答案
兩個(gè)EMC抗干擾的經(jīng)典案例

國(guó)產(chǎn)RISC-V車(chē)規(guī)芯片當(dāng)前現(xiàn)狀分析 ——從市場(chǎng)與技術(shù)角度出發(fā)
20個(gè)經(jīng)典電路分享

SOLIDWORKS 2025直觀的用戶界面
經(jīng)典圖神經(jīng)網(wǎng)絡(luò)(GNNs)的基準(zhǔn)分析研究

一文看懂刻蝕角度與ICP-RIE射頻功率的關(guān)系
從時(shí)域和頻域兩個(gè)角度對(duì)信號(hào)進(jìn)行分析

SONiC網(wǎng)絡(luò)操作系統(tǒng)中的安全啟動(dòng)

光纖的折彎角度限制是多少
電子產(chǎn)品方案開(kāi)發(fā)公司常用的15個(gè)單片機(jī)經(jīng)典電路分享!
如何控制普通電機(jī)的轉(zhuǎn)動(dòng)角度
一個(gè)socket對(duì)應(yīng)一個(gè)連接嗎
使用SOLIDWORKS的直觀體驗(yàn)

評(píng)論