오늘은 Graph Convolutional Network에 대해 소개하겠습니다. 우리 살아가는 인간관계처럼 우리 주변에는 수많은 그래프가 있고 그것을 잘 이해하기 위한 획기적인 모델입니다. 본 글은 Semi-Supervised Classification with Graph Convolutional Network 논문을 바탕으로 설명하는 글입니다.

Introduction
우리가 다루는 많은 정보는 graph의 형태로 이해할 수 있는데, 이 구조를 기존의 Convolution 또는 Recurrent Model로는 제대로 다루기 어렵습니다. 그 이유는 크게 세가지가 있는데,
- 격자grid 구조로 그래프를 다룰 수 없다. 그래프란 이미지나 다른 데이터와는 달리 그 구조적인 형태가 매우 자유롭다
- 서로 다른 두 node의 관계를 보다 풍부하게 표현할 필요가 있다.
- 그래프 내에는 여러 가지 성질을 가진 entity가 있어 이들을 동등하게 고려하는 것은 불공평하다.
때문에 우리는 그래프를 그래프답게 다뤄야 하는데, 이 논문이 그 중에 가장 유명합니다. 그 이유는 Convolution의 개념을 그래프에 도입하여 우수한 성능을 보여줬기 때문입니다.
이 논문이 주목 받은 이유는 아래의 두가지 이유가 주요한데,
- Node-level Semi-supervised Learning
우리가 가지고 있는 그래프에는 모든 node가 레이블링 되어 있지는 않다 몇개는되어있고,몇개는안되어있다. 그렇다면 우리가 알고 있는 node를 활용하여 정체를 모르는 node들을 맞출 수 있을까?? - Graph Convolutional Network
기존 많은 딥러닝 연구에서 큰 성공을 거둔 convolution-based 방법을 그래프에도 도입시킬 수 있지 않을까??
결과적으로First−orderapproximationofspectralgraphconvolution이라는방법으로graph에convolution을성공적으로도입
이제 차근차근 알아보겠습니다.
Graph Convolution의 의미
신호처리 문제에서 convolution은 두 신호
아무튼 두 데이터 간의 상관관계를 파악하는데 참 좋은 방법이 convolution입니다.
그래프에 convolution을 적용한다는 말은, 그게 가능하다면 임의의 두 node 사이의 관계의 정도를 파악하는데 매우 효과적이라고 예상할 수 있겠죠?
정리하자면 그래프 내의 임의의 node 사이의 관계를 추론함으로써, 정체를 알고 있는 node를 활용하여 정체를 모르는 node들을 알아내는 것이 이 논문의 목적입니다. 참고로 기존에 Graph Laplacian을 활용한 Graph Smoothing을 했던 연구가 있었습니다 그목적은똑같이Semi−supervised입니다.
Method
이제 Graph Convolution이 대체 무슨 의미인가 겉핥기로 알아봤으니 이것을 어떻게 할 수 있는가 살펴보겠습니다 (이 블로그에 너무도 자세히 설명되어 있으니 참고하자).
이게 그래프에서 Convolution을 수행하는 방식이고 변수는
: Node feature 각노드의상태를나타내는것X : 인접 행렬 Adjacencyfeature,각노드간의연결을나타내는것A :H(l) 번째 layer의 hidden state입니다. 참고로l , 즉 Initial node feature입니다.H(0)=X :˜A . 인접 행렬에 자기자신노드에의 연결을 추가한 행렬입니다.A+IN :˜D . 이건 각 노드의 degree. 즉 다른 노드와 얼마나 강하게 연결되어 있는가를 나타냅니다.˜Dii=∑j˜Aij :W(l) 번째 layer의 learnable parameter입니다. 결론적으로 이걸 학습하는 것.l : Activation Functionσ
이것은 사실 그래프 내에서 각 노드 간의 convolution을 수행하는 과정에서 얻을 수 있는 결론입니다.
사실은 Spectral Convolution을 수행하고, 그것이 너무나 많은 연산량
Experiments
실험에서는 여러 데이터셋에 대해 Semi-supervised Learning을 수행했습니다. 다시금 말하지만 이것은 '정체를 아는 일부의 노드를 통해 정체를 모르는 노드의 정체를 까발리는 것'입니다.

제가 그린 그림에서는 정체를 아는 노드가 참 많지만 실험에서는 아주 일부 노드의 정체를 알고 있습니다. 그리고 나머지의 정체를 추론해야 하는 난이도가 사악한 과제입니다.

GCN의 결과는 실험한 모든 데이터셋에 대해 기존 모델들을 상회했습니다. 숫자를 잘 보면 예를 들어 Citeseer 데이터셋에 대해 ICA와 비등한 수준을 보였지만 ICA는 NELL 데이터셋에 대해 어마어마한 차이를 보이는 등 기존에는 모든 데이터셋에 대해 우수한 성능을 보인 모델이 없었습니다.
하지만 GCN은 모든 데이터셋에 대해 전에 없던 우수한 성능을 거둠으로써 Graph 구조의 이해에 GCN이 정말 효과적임을 보였습니다.

'기술 이야기 > 논문 리뷰' 카테고리의 다른 글
[논문 리뷰] VideoMAE - Masked Autoencoders are Date-Efficient Learners for Self-supervised Video Pre-Training 0 | 2023.04.18 |
---|---|
[논문 리뷰] Consistency Models 리뷰 4 | 2023.04.13 |
[논문 리뷰] Segment Anything 설명 코드살짝포함 5 | 2023.04.09 |
[논문 리뷰] Mixed Precision Training MP,AMP 0 | 2023.03.29 |
[논문 리뷰] Recurring the Transformer for Video Action Recognition 0 | 2023.03.28 |
댓글