본문 바로가기

Graph(Graph Neural Network)

Graph Structure

1. Graph Structure

그림1. Graph 구조

Graph란 방향성이 있거나(directed) 없는(undirected) 엣지(edge)로 연결된 노드(node=vertices)들의 집합이다. [그림1]에서 볼 수 있듯이 Grpah는 EdgeVertices로 이루어져 있다.  Edge는 Link, Vertices는 node라고도 불린다. Node와 Edge는 일반적으로 풀고자 하는 문제에 대한 전문가의 지식이나 직관 등에 의해 구성된다. Edge는 중요도를 나타내는 것과 연결 여부만 나타내는 것에 따라 두 종류로 나뉜다.  그래프구조의 유연성으로 인해 자연적으로 그래프 형태를 가지는 소셜 네트워크 데이터, 분자 구조 등 뿐만 아니라, 기존에 다른 형태로 표현되던 이미지 데이터 등도 그래프로 나타낼 수 있다.

 

1.1  Adjency Matrix & Node Feature Matrix

컴퓨터에게는 언제나 정보의 형태, 즉 discrete한 형태로 줘야한다. Graph Structure에는 중요한 두 가지 행렬이 있다.

그림 2. Node Feature Matrix & Adjency Matrix

먼저, Node Feature Matrix에 대해 살펴보겠다. Node Feature Matrix각 노드들의 feature를 나타낸 행렬을 의미한다. 예를 들어, Social 관계망이라고 가정하면, 각 node는 사람이 될 것이고,  feature는 성별, 연령 등의 정보가 된다. 위 그림을 보면, N by F (N = node, F = feature) 행렬로 node는 수는 5개, 각 node당 feature는 5개인 것을 알 수 있다.  

 

다음으로, Adjacency Matirx에 대해 살펴보겠다. 각 row와 column이 순서대로 node를 의미한다(-> 행렬의 사이지는 N by N, N = node의 수). 각 node가 연결되어 있는지(혹은, 두 node 사이에 edge가 있는지 여부)를 정수로 나타난 행렬로써 표기한다. Graph의 종류에 따라 단순 0, 1로 element들이 채워지지 않고, 실수가 되기도 한다. 위 그림을 예시로 보면, 1번 node는 2번 node, 3번 node와 연결되어 있는 것을 볼 수 있다. 따라서, Adjency Matrix에서 첫 번째 row와 column은 [0, 1, 1, 0, 0]으로 채워져 있다. 마찬가지로, 4번 node는 2번 node, 3번 node, 5번 node와 연결되어 있는 것을 확인할 수 있다. 따라서, Adjency Matrix에서 네 번째 row와 column은 [0, 1, 1, 0 ,1]로 채워져 있는 것을 알 수 있다.

 

2. Data Representation - Graph

Vertices - user(사람들의 정보) / Edge - relationship(유저간의 관계)
vertices - 원자, edge - 결합(1차 결합, 2차 결합, 공유 결합 등..)

 

 

3. Graph 활용의 유용성

1. 그래프는 유연한 데이터 구조를 가지고, 다양한 데이터 구조로 일반화 가능

     ex) 얼굴 인식 문제를 다양한 형태의 graph로 표현 가능

 

2. 사전 지식을 이용해 데이터에 bias를 주는 것도 가능

     ex) 포즈 추정 문제에서 인간 관절 움직에 대한 해부학적 지식을 모델에 주는 식

 

3. 데이터 그 자체가 자연스럽게 graph로 표현되는 경우도 존재

    ex) 분자 구조, 소셜 네트워크 등

 

4. 기존에는 어려웠던 문제들(암 치료제 개발/ 뇌 커넥텀에 대한 이해 / 에너지 물질 발견 등)에 활용 가능