유튜브 Idea Factory KAIST 채널의 "Basic of Graph Convolution Network - 딥러닝 홀로서기" 강의를 듣고 정리하였다.
What is Graph?

- 그래프란? vertices의 set과 edge의 set으로 이루어진 것

- vertex는 node라고도 부른다.
- 방향이 있는 경우 그래프(directed graph)도 있다.
- edge에 값을 넣는 그래프(weighted graph)도 있다.
- 그래프를 어떻게 표현하는가?

- Node Feature Matrix : 노드의 정보들을 나타내는 행렬
- f(feature 개수)*n(node 개수) 크기
- Adjacency Matrix : 노드간의 connectivity들을 나타내는 행렬
- n개의 노드 → n*n 크기
- 엣지가 없으면 0, 있으면 1
Graph Convolution Network

-
그래프를 Convolution Network에 적용하려면?
- 한 노드는 주변에 있는 노드들과 비슷한 특성을 가질 것이다. → Hidden State는 근처에 있는 노드의 가중치를 적용한다. 즉, 인접한 state들과 같은 Weight를 사용(Weight Sharing) 한다.
- 1번 노드는 1,2,3,4번 노드의 영향을 받는다. 만약 4번 노드에 5번 노드가 연결되어 있다면 1번에는 5번의 가중치가 적용되지 않는다. (Learn Local Feature)
-
실제 구현할때는? 노드가 많아지면 for문으로 다 해야하는가? No!
- 행렬 연산으로 한다.

-
한번 레이어를 거치면 해당 노드는 주변 노드의 정보를 함께 담고있는 것이기 때문에 연속적으로 레이어를 거치게 된다면 하나의 노드에는 더욱더 확장된 범위에서의 지역적인 정보를 담고있다.
