圖片來源:Graph Pooling for Graph Neural Networks: Progress, Challenges, and Opportunities
其實 graph pooling 跟 CNN 中的 pooling 一樣,簡單來說就是對原始的 graph 做 downsampling。
BTW,另外還有一個很容易跟 graph pooling 搞混(類似)的名詞叫做,graph sparsification(稀疏化)。但這兩個名詞究竟有什麼差別,我也不是很確定。
根據這篇 Graph Summarization Methods and Applications: A Survey,感覺 sparsification 的假設是把「不重要的」節點刪掉也不會對結構造成太大的影響。(所以可能在研究什麼叫做/定義不重要的節點(雜訊)....嗎???
Simplification or sparsification based
These methods streamline an input graph by removing less “important” nodes or edges, resulting in a sparsified graph.
而 pooling 的重點應該在研究有沒有一種方法可以在把 graph downsampling 後「維持原始的結構」。(所以就算是雜訊,也跟著保留下來了
參考資料:Graph Pooling for Graph Neural Networks: Progress, Challenges, and Opportunities
通常在什麼樣的 task 中會用到 graph pooling?
又稱作「graph readout operation」。大多數的 flat pooling 都是對 graph 中的 node 做 average 或 sum。
flat pooling 的要求:
通過將 graph coarsening(粗糙化)成較小尺寸的 graph,以保留具有 hierarchical structure 的資訊。
Hierarchical Pooling 的方法分成兩種:
@article{liu2018graph,
title={Graph summarization methods and applications: A survey},
author={Liu, Yike and Safavi, Tara and Dighe, Abhilash and Koutra, Danai},
journal={ACM computing surveys (CSUR)},
volume={51},
number={3},
pages={1--34},
year={2018},
publisher={ACM New York, NY, USA}
}
@article{liu2022graph,
title={Graph pooling for graph neural networks: Progress, challenges, and opportunities},
author={Liu, Chuang and Zhan, Yibing and Wu, Jia and Li, Chang and Du, Bo and Hu, Wenbin and Liu, Tongliang and Tao, Dacheng},
journal={arXiv preprint arXiv:2204.07321},
year={2022}
}