圖神經網絡 GCN 等綜述


20.4.29更新 

寫在前頭,由於畢設的需要,我一直在學習圖神經網絡,看了很多文章解析,以及頂會使用上了gcn的各個領域開源代碼,我還是不太懂它為什么會有作為,現在的方法大多數是 第一步查看自己任務怎么能表示成圖,一般就是有節點特征和鄰接矩陣后,直接上gcn,我感覺 論文的 why部分,講的不是很好,感覺有一種為了 gcn而gcn的感覺,所以到底為什么好呢??gcn,它推理能力真的強嗎。可能現在的我水平還不到家,希望gcn的火熱能直到我很好的用上它,並完全理解它把!(●'◡'●)

一、加更 gnn 的基礎理解篇,反正我感覺我能看懂= =,其他的我真的...沒時間的科研人員只想知道,這玩意到底為什么能有用和怎么用....

1.如果你時間很多,建議看 survey 按照下面連接順序看

知乎——綜述|從10篇研究綜述看圖神經網絡GNN的最新研究進展

2.圖卷積神經網絡基礎理解篇

1)看得懂的:(個人觀點,不喜勿噴)

知乎——何時能懂你的心——圖卷積神經網絡(GCN) 他的第二篇也建議康康

知乎——2020年,我終於決定入門GCN

GCN,圖卷積神經網絡,實際上跟CNN的作用一樣,就是一個特征提取器,只不過它的對象是圖數據。GCN精妙地設計了一種從圖數據中提取特征的方法,從而讓我們可以使用這些特征去對圖數據進行節點分類(node classification)、圖分類(graph classification)、邊預測(link prediction),還可以順便得到圖的嵌入表示(graph embedding),可見用途廣泛。因此現在人們腦洞大開,讓GCN到各個領域中發光發熱。

如何理解 Graph Convolutional Network(GCN)?

 

========================================================================以下是高贊回答=========================================================================

由於高贊答案說的太好,我很怕萬一作者想不開刪去怎么辦,所以我決定copy下來。(●'◡'●)

縱橫 作者 (手動艾特)

鳥瞰圖卷積

圖卷積的核心思想是利用『邊的信息』對『節點信息』進行『聚合』從而生成新的『節點表示』

有的研究在此基礎上利用『節點表示』生成『邊表示』或是『圖表示』完成自己的任務

矩陣式聚合:在早期的研究中,由於沒有什么並行庫支持聚合節點信息,而圖的規模往往很大。學術大佬們主要 利用鄰接矩陣的變換來完成這種聚合,然后使用 Pytorch 和 Tensorflow 這類庫為矩陣運算加速。為了證明變換的有效性和合理性,很多工作借鑒了信號處理的思路,進行圖上的傅里葉變換
消息式聚合:隨着圖卷積越來越火,工業界逐漸加入了基礎設施建設的隊伍。借鑒 GraphX 等思路,出現一些不依賴鄰接矩陣(或是屏蔽了鄰接矩陣細節的)的消息聚合庫,比較有名的有 PyG(比較早,實現多)和 DGL(比較新,易上手)。 在這些庫中,節點可以發出信息,並接受周圍節點的信息,顯式地完成消息聚合。在這種情況下,越來越多復雜的聚合方法出現了(論文的一般都不用,不要問為什么,因為論文我們的實驗的圖一般不是很大,我看過pyg和dgl實現的,但是大部分就是 A 和 X 結構,對了pyg特別難安裝= =)

羅馬是六天建成的

這里從簡單到復雜講解幾種我們常用的圖卷積公式(有時候簡單的效果也不錯)。在開始前先說明幾個符號的含義:

 

 

 

 

 

 

 有很多工作都是在研究如何更巧妙的構建有權圖(比如用節點間的相似度等等)。一般看過的論文都會需要自己構建,畢竟很多任務都不是標准的圖結構

 

 

看到的第一眼,想到的是 利用 殘差網絡 。
 

Nothing is all you need

當然,聚合的方法有很多種,CNN 已經為我們提供了很多參(照)考(抄)。

Attention 的思路很棒,有 GAT 和 AGNN。——attention這個很多用上,但不是gat

Pooling 的思路很棒,有 GraphSAGE。——拓展 graph pooling 也是一個很有研究價值的課題

Deep 的思路很棒,有 DeepGCN。—— 今年cvpr有人用上了

擴大感受野的思路也很棒,比如 High-Order GCN(矩陣式)和 PinSAGE(消息式)。

這幾篇論文都有 認真細讀的價值。

=========================================================================以上是高贊回答========================================================================

 

2)看的不懂,但是感覺有干貨的 

萬字長文入門gcn ——知乎自己搜哈

3)視頻類的

北京智源——里面第三個老師講的,中科院的老師,講的非常好。

 

我覺得gcn和gat這兩個模型挺有意思,一個考慮了圖空間的關系(概率傳導矩陣)但沒辦法動態學習鄰居權重。一個動態學習鄰居權重,但忽略了節點之間本身存在的關系。雖然有些工作在算attention的時候把兩個node之間的weight作為額外的一維特征,但我覺得應該有更聰明的辦法把兩種關系合理結合
—— 作者:全大蔥

二、記錄了想看還未看,但覺得有意思的圖文章:

1.Graph Sequential Network for Reasoning over Sequences

為什么說Transformer就是圖神經網絡?

A Comprehensive Survey on Graph Neural Networks 

摘要:將現有最好的圖神經網絡分成四類:recurrent graph neural networks, convolutional graph neural networks, graph autoencoders, and spatial-temporal graph neural networks。

1.介紹

可以用歐幾里得空間中的規則網格來表示圖像。所以CNN可以用來提取特征,可是在現有的世界中,很多數據都是圖類的數據。

 

 

 2.對比

文中進行了和network embedding以及 graph kernel methods  的對比

介紹看這個

3.符號的對應

 

 

 4.GNN的分類:

               1. 循環gnn是covgnn的前任。

               2.covGNN分類:譜圖和空間。節點上的分類     和      圖的分類

 

 

                               3. GAE:

 

 

                                 4. 時空圖:一般用在探究下一個時間段node的狀態,在交通用的比較多,我還看到過 行人的預測。

 

 5.現有的方法及其復雜度:

 

 

 

6.CovGNN 和 RecGNN 的 對 比

 

 

 

 

 7.Graph Pooling Modules 

我這里跳過了一節,這節是pool操作

Pooling的好處: (1) the pooling operation aims to reduce the size of parameters by down-sampling the nodes to generate smaller representations and thus avoid overfitting, permutation invariance, and computational complexity issues; (2) the readout operation is mainly used to generate graph-level representation based on node representations.

8.總體來說:

     整個文章其實是從四個類的GNN來進行闡述,每個類分別有分支,這篇博客記錄有一些亂,主要是給自己看的。我覺得感興趣的地方。還有 諸如,圖的生成(自編碼)、時序圖等。目前還沒有了解 , 主要是感興趣的。.... 大家有機會還是直接看原文。

 

  

 

圖神經網絡 GNN 包括了兩個關鍵詞,圖和神經網絡。圖是一種由節點和邊組成的數據結構。從簡單的地鐵路線圖,到RB Tree,到社交網絡,知識網絡,再到復雜的化學分子結構都可以看作是一種圖。神經網絡是一種由參數權重組成,能基於反向傳播端到端訓練學習的模型統稱。


免責聲明!

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



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