GNN中的Graph Pooling

前言

GNN/GCN在非歐數據中的應用具有極大的挖掘價值。通常,GNN的應用分爲兩種:1,節點分類;2,圖分類。

節點分類可以用在點雲分割,社交網絡節點分類,推薦算法等等。

圖分類可以用在姿態估計,蛋白質分類等等,當然,也可以用在圖像分類。

對於節點分類而言,圖結構在forward階段是不會改變的,改變的只是節點的隱藏層屬性。如下:

對於圖分類而言,圖結構在前傳的時候會downsize,最後聚合成一個點的feature再做MLP:

截圖來自論文:https://arxiv.org/abs/1901.00596 

圖分類所用的downsize便是本文的主角graph pooling。--終於引出來了..


Graph Pooling

GNN/GCN 最先火的應用是在Node classification,然後先富帶動後富,Graph classification也越來越多人研究。所以,Graph Pooling的研究其實是起步比較晚的

Pooling就是池化操作,熟悉CNN的朋友都知道Pooling只是對特徵圖的downsampling。不熟悉CNN的朋友請按ctrl+w。對圖像的Pooling非常簡單,只需給定步長和池化類型就能做。但是Graph pooling,會受限於非歐的數據結構,而不能簡單地操作。

簡而言之,graph pooling就是要對graph進行合理化的downsize。

目前有三大類方法進行graph pooling:

1. Hard rule

hard rule很簡單,因爲Graph structure是已知的,可以預先規定池化節點:

如圖,咱們預先規定[1,2,3,5]節點,[6,7]節點和[4]節點合併,得到新的a,b,c節點。這便是硬規定下的池化方法。比較好理解。

2. Graph coarsening

圖粗略化是現在的主流可學習池化方法之一。

代表論文:DiffPool

論文鏈接:https://arxiv.org/abs/1806.08804

這種方法是hard rule的trainable版本,先對節點進行聚類,然後合成一個超級節點,以達到池化效果。

思想流程大概是:soft clustering -> super node -> coarsening

3. Node selection

節點選擇就是選擇一些重要節點去代替原圖

代表論文:self-attention graph pooling

論文鏈接:https://arxiv.org/pdf/1904.08082.pdf

這個self-attention類似於分析節點的重要性,方法類似節點分類的操作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章