Contents
Graph Neural Network (GNN)을 다루기 위해서는 일단 그래프가 어떤건지부터 이해하고 넘어가야 한다. 아래의 엄청 간단한 그래프 구조 예시를 통해 쉽게 설명이 가능하다.

우리는 이러한 그래프를 아래와 같은 간단한 수식으로 표현할 수 있다.
그래프는 노드와 엣지로 구성되어 있으며, 각각의 크기가 존재한다. 그렇다면 노드가 5개 존재하고, 엣지가 10개 존재하는 경우와 노드가 5개 존재하고, 엣지가 5인 경우 두 그래프의 크기는 같을까? 다를까? 그래프의 크기를 나타낼 때에는 노드의 수로 표현한다. 앞선 예시의 경우, 두 그래프의 크기는 동일하다. 즉, 노드의 크기가 같다면 동일한 크기의 그래프라 한다.
그래프는 유향그래프와 무향그래프로 나눌 수 있다. 유향은 방향성이 존재하는 것을 의미하고, 무향은 방향성이 존재하지 않는 것을 의미한다. 수식으로 표현하면, 유향인 경우
지금까지 그래프를 그림으로 어떻게 구성되었는지 확인하였다. GNN 혹은 GCN (Graph Convolutional Network)로 만들어 학습하기 위해서는 수치로 표현되어야 하는 것이 당연하다. 그렇다면, 이전까지 예시로 사용한 그래프를 한 번 행렬로 표현해보자.

각각의 노드를 연결하는 엣지가 존재하는 경우 1로 표기할 수 있다. 또한, 노드 자기 자신과 연결된 엣지는 존재하지 않기 때문에 행렬의 대각선의 성분은 모두 0이 된다. 우리는 이러한 행렬을 인접 행렬(adjacency matrix)라고 부른다. 이번 글에서는 행렬을 수식적으로 깊게 다루진 않는다. 만약 상세한 내용 및 수식을 다루고 싶다면 여기를 참고하길 바란다.
첫번째,
Degree
Degree는 노드
이때 m은 엣지의 개수를 의미한다. .모든 차수의 합을 구할 경우 엣지가 중복으로 계산되기 때문에
들어오는 차수의 경우 열을 기준으로 합산하여 계산할 수 있고, 나가는 차수의 경우 행을 기준으로 계산할 수 있다. 이를 합치면 바로 해당 노드의 차수가 된다.
'Deep Learning > Graph Neural Network' 카테고리의 다른 글
그래프 중심성(Katz, Engenvector, PageRank, etc..) (0) | 2022.06.22 |
---|---|
Spatial Graph Convolution Network based on MPNN (0) | 2022.06.16 |
Spectral Graph Convolution Network (0) | 2022.05.26 |
그래프의 종류 (0) | 2022.05.13 |
Graph Neural Network 시작하기 (0) | 2022.04.27 |