<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          終于有人總結(jié)了圖神經(jīng)網(wǎng)絡(luò)!

          共 8515字,需瀏覽 18分鐘

           ·

          2021-06-27 14:33

          點(diǎn)擊上方“程序員大白”,選擇“星標(biāo)”公眾號(hào)

          重磅干貨,第一時(shí)間送達(dá)

          作者 |  yyHaker
          編輯 | 極市平臺(tái)
          來(lái)源丨h(huán)ttps://zhuanlan.zhihu.com/p/136521625

          導(dǎo)讀

           

          本文從一個(gè)更直觀的角度對(duì)當(dāng)前經(jīng)典流行的GNN網(wǎng)絡(luò),包括GCN、GraphSAGE、GAT、GAE以及graph pooling策略DiffPool等等做一個(gè)簡(jiǎn)單的小結(jié)。 

          近年來(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)包括:
          1. 圖的大小是任意的,圖的拓?fù)浣Y(jié)構(gòu)復(fù)雜,沒(méi)有像圖像一樣的空間局部性
          2. 圖沒(méi)有固定的節(jié)點(diǎn)順序,或者說(shuō)沒(méi)有一個(gè)參考節(jié)點(diǎn)
          3. 圖經(jīng)常是動(dòng)態(tài)圖,而且包含多模態(tài)的特征
          那么對(duì)于這類(lèi)數(shù)據(jù)我們?cè)撊绾谓D兀磕芊駥⑸疃葘W(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è)稱為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)?span style="color: rgb(2, 30, 170);">每一層網(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
          那么GraphSAGE Sample是怎么做的呢?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)題,效果還好!!!)
          到此,我們就介紹完了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è)。
          1. 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 Pooling
          Graph pooling是GNN中很流行的一種操作,目的是為了獲取一整個(gè)圖的表示,主要用于處理圖級(jí)別的分類(lèi)任務(wù),例如在有監(jiān)督的圖分類(lèi)、文檔分類(lèi)等等。
          圖13
          Graph 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-NOLPDiffPool的變體,取消了鏈接預(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ú)法處理很大的圖。

          參考

          • 【1】^Graph Neural Networks: A Review of Methods and Applications. arxiv 2018 https://arxiv.org/pdf/1812.08434.pdf

          • 【2】^A Comprehensive Survey on Graph Neural Networks. arxiv 2019. https://arxiv.org/pdf/1901.00596.pdf

          • 【3】^Deep Learning on Graphs: A Survey. arxiv 2018. https://arxiv.org/pdf/1812.04202.pdf

          • 【4】^GNN papers https://github.com/thunlp/GNNPapers/blob/master/README.md

          • 【5】^Semi-Supervised Classification with Graph Convolutional Networks(ICLR2017) https://arxiv.org/pdf/1609.02907

          • 【6】^如何理解 Graph Convolutional Network(GCN)?https://www.zhihu.com/question/54504471

          • 【7】^GNN 系列:圖神經(jīng)網(wǎng)絡(luò)的“開(kāi)山之作”CGN模型 https://mp.weixin.qq.com/s/jBQOgP-I4FQT1EU8y72ICA

          • 【8】^Inductive Representation Learning on Large Graphs(2017NIPS) https://cs.stanford.edu/people/jure/pubs/graphsage-nips17.pdf

          • 【9】^Graph Attention Networks(ICLR2018) https://arxiv.org/pdf/1710.10903

          • 【10】^Variational Graph Auto-Encoders(NIPS2016) https://arxiv.org/pdf/1611.07308

          • 【11】^VGAE(Variational graph auto-encoders)論文詳解 https://zhuanlan.zhihu.com/p/78340397

          • 【12】^Hierarchical Graph Representation Learning withDifferentiable Pooling(NIPS2018) https://arxiv.org/pdf/1806.08


          國(guó)產(chǎn)小眾瀏覽器因屏蔽視頻廣告,被索賠100萬(wàn)(后續(xù))

          年輕人“不講武德”:因看黃片上癮,把網(wǎng)站和786名女主播起訴了

          中國(guó)聯(lián)通官網(wǎng)被發(fā)現(xiàn)含木馬腳本,可向用戶推廣色情APP

          張一鳴:每個(gè)逆襲的年輕人,都具備的底層能力


          關(guān)


          學(xué)西學(xué)學(xué)運(yùn)營(yíng)護(hù)號(hào)樂(lè)質(zhì)結(jié)識(shí)關(guān)[]學(xué)習(xí)進(jìn)


          瀏覽 55
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  爱爱无码| 91免费吃鸡巴视频 | 台湾中文无码 | 亚洲AV无码乱码国产精品蜜芽 | 色老板成人 |