나의 이름은...
Rethinking pooling in graph neural networks (NIPS 2020) 요약 본문
요즘 graph pooling에 대해 공부해보고 있다. 관련된 논문들을 찾아보던 중 Neurips 2020 논문인 'Rethinking pooling in graph neural networks'라는 논문이 눈길을 끌어서 읽어보게 되었다. 아래는 논문의 링크이다.
https://arxiv.org/abs/2010.11418
Rethinking pooling in graph neural networks
Graph pooling is a central component of a myriad of graph neural network (GNN) architectures. As an inheritance from traditional CNNs, most approaches formulate graph pooling as a cluster assignment problem, extending the idea of local patches in regular g
arxiv.org
논문 내용을 간단하게 요약하자면 다음과 같다.
1. graph pooling을 할 때, 보통 locality를 preserve하는게 되게 중요하다고 생각한다. 그래서 많은 method들이 근처에 있는 node들을 cluster로 coarsen하고자 한다.
2. 근데, 과연 이게 진짜 의미가 있는 걸까?
3. adjacency matrix를 반대로(0→1, 1→0) 바꿔보기도 하고, cluster assignment matrix를 random하게 바꾸기도 하고, local clustering을 enforce하는 loss term을 바꿔보기도 하고 등등 해서 pooling을 해봤다. 결과는 아래 표에서 볼 수 있듯이 유의미한 차이가 없었다.
4. 그 이유에 대해 분석한 결과,
pooling layer 이전에 convolution을 하면서 이미 smooth한 node representation을 얻는데(pooling 전에 이미 모든 node들은 다 서로 similar한 embedding 값을 갖고 있다), 이게 중요한 거고,
그 이후에 pooling을 할 때는 node들이 어떻게 clustering되는지는 아무런 영향이 없다.
왜냐면, 이미 다 비슷비슷한 상황에서 누구끼리 합치든, 결과는 다 비슷하게 만들어지는 거다.
5. 결론: pooling layer는 specific한 cluster assignment에 invariant하다 & clustering-enforcing regularization도 의미 없다. local pooling은 global pooling strategy(global mean pooling 등)와 비교했을 때 유의미한 차이가 없다.
라고 이해를 했는데, 혹시 잘못된 내용이 있다면 댓글로 알려주시면 감사하겠습니다. (_ _)
'컴퓨터💻' 카테고리의 다른 글
[Anaconda] 가상환경 관련 명령어 정리 (0) | 2023.05.16 |
---|