본문 바로가기
공부/GCN

GCN : Graph Convolution Network (1)

by DSLAB_JS 2021. 10. 20.

GCN에 대해서 공부를 하는 중이다.

 

공부를 시작할 때 도움을 많이 받은 유투브 채널이다. 참고하시면 좋을 것 같습니다.

https://www.youtube.com/channel/UCPq01cgCcEwhXl7BvcwIQyg

 

고려대학교 산업경영공학부 DSBA 연구실

고려대학교 산업경영공학부 Data Science & Business Analytics Lab입니다.

www.youtube.com

https://www.youtube.com/channel/UCueLU1pCvFlM8Y8sth7a6RQ

 

‍김성범[ 소장 / 인공지능공학연구소 ]

 

www.youtube.com

 

    • GCN은 말 그대로 Graph Convolution Network으로써, Graph로 이루어진 데이터를 바탕으로 학습을 시켜서 예측을 하는 방법이라고 보면 된다.
    • GCN에 앞서 GNN부터 공부하고 있다.
    • Graph에는 2가지 구성요소로 이루어진 데이터 구조이다.
      G = (V,E)로 정의, V는 node 집합, E는 edge 집합

  • 노드와 에지는 일반적으로 풀고자하는 문제에 대한 지식이나 직관등에 의해 구성된다. Ex) Directed, Undirected
  • Graph는 인접행렬 A로도 표현이 된다. N개의 node를 가진다면,  A는 NxN차원을 가지게 된다.
  • Node들을 설명하기 위해서 Feature matrix (X)(ex. 특징, 성별, 나이)를 제공한다. 각각의 노드들이 피처들의 F 수를 가지면, X는 NxF차원을 가진다.
    Graph와 Adjacency Matrix, Feature Matrix
  • 위의 그림을 보면 Undirected로 그려져 있기 때문에 방향성과 관계 없이 1로 Adjacency Matrix A가 그려지게 된다. 그러므로 Undirected의 그래프의 A는 항상 대칭행렬을 가지게 된다.
  • 반대로 Directed한 그래프를 가지게 된다면 연결된 지점만 1로 표시를 하면 된다.
  • Self Loop라고 부르는 자기 자신으로 연결된 노드를 표현하기 위해서는 +1을 추가로 더해줘서 표현하면 된다.
  • 예를들어, 각 Edge에 Binary가 아닌 숫자(Weight)이 있다면 그 숫자에 맞게 Adjaency Matrix를 나타낼 수 있다.

 

  • GNN을 해결하는 Task로는 크게 3가지로 분류가 된다.
    • Node Level -> ex) 단어의 품사를 분류하는 Task 등
    • Edge Level -> ex) Node와 Node간의 관계가 어떤 관계인지 분류하는 Task 등
    • Graph Level -> ex) 긍정 / 부정 , 신뢰성 판단하는 Task 등
  • GNN을 할 때, 고려해야 할점
    • 노드 간의 순서가 없다.
    • 노드와 엣지간의 구성에 따라 다양하게 구조가 가능
    • 하나의 노드에 따라 인접한 노드들이 다양하다
    • edge를 따라서 노드에 정보를 어떻게 pass시킬건지
    • Target노드는 여러 개의 이웃 노드에 영향을 받는다.
    • 순서가 없기때문에 동시에 정보를 pass시켜야한다

이어서 GNN Layer가 어떻게 학습이되는지 작성하겠다.

 

'공부 > GCN' 카테고리의 다른 글

GCN : Graph convolution Network (2)  (0) 2021.11.02