GNN 개요

최창우·2022년 12월 16일
0

GNN

목록 보기
2/4
post-thumbnail

📌목차

1. 들어가기에 앞서
2. Graph 개요
3. GNN 개요
4. GNN 학습 개요

📕 들어가기에 앞서

현재 연구가능성이 크고 인기가 많은 분야는 GNN인거 같다.

우리가 딥러닝으로 처리하고자 하는 데이터는 처리의 용이성을 위해 구조화 작업을 거쳐주었지만, 실제로 많은 데이터들은 격자형태의 일관된 형태를 가지고 있지 않다.
그래서 기존 딥러닝 기법(예:CNN계열)은 적용하는데 한계가 존재한다.

하지만, 'Graph'라는 구조는 비구조적이며 관계형구조를 가져서 데이터들간의 관계와 상호작용을 표현하고 분석하는데 아주 적합하다.

📖 Main Question

여기서 중요한 질문은 우리가 어떻게하면 관계형 구조의 장점을 살려서 예측 성능을 높일수 있을까?

그래프의 데이터간의 관계를 명시적으로 잘 모델링하는것이 중요하다

  • 대부분의 딥러닝에서 수행되는 초기 Feature Engineering 과정은 생략
  • 그래프가 특징을 자동으로 추출하여 학습을 한다.
  • 위말은 즉슨 데이터를 특징벡터로 변환시 Neural Network를 통과한다는 의미

📕 Graph 개요

Graph는 자료구조의 형식중 하나로 다음과 같은 형태를 지닌다.

  • Node or Vertex : 그래프에서 꼭지점에 해당하는 부분 (그림에서 원)
  • Edge or Link : 노드를 연결하는 선 (그림에서 선)
  • Degree : 하나의 노드에서 이웃과 연결된 Edge 수
  • Adjacency matrix : 인접행렬 ( 연결된경우 1 아닌경우 0 )
  • Degree matrix : 각 노드의 Degree를 대각원소에 나타낸 행렬

📕 GNN 개요

위 그래프 형태의 데이터를 사용해서 원하는 출력을 얻어내는 딥러닝 구조가 GNN

📖 GNN 기본 Tasks

  1. Node Level
    • Node 에 대한 분류/회귀 등 Node에 대한 작업을 수행
  2. Edge Level
    • Edge 에 대한 분류/회귀 등 Edge에 대한 작업을 수행
    • Node와 Node 간의 관계성을 예측하는등...
  3. Graph Level
    - Graph 에 대한 분류/회귀 등 Graph에 대한 작업을 수행

📖 GNN 추가 Tasks

  1. Community
    • Community 에 대한 분류/회귀 등 Community에 대한 작업을 수행
  2. Graph Embedding
    • Graph를 특정한 일련의 숫자형태로 임베딩하는 작업
  3. Graph Generation
    - 입력값을 받아서 Graph를 생성하는 작업

📕 GNN 학습 개요

여태까지 나온 GNN 논문들에 대해 Servey 한 논문에서 제시하기를 GNN 학습에 대한 종류를 다음처럼 분류하였음

  • RecGNNs (Recurrent Graph Neural Networks)
    - Recurrent를 기반으로 iteration을 통해 Node를 학습함
  • ConvGNNs (Convolutional Graph Neural Networks)
    - CNN을 기반으로 Node 또는 Edge의 정보를 계산하여 학습
  • GAEs (Graph AutoEncoders)
    - 위 GNN Tasks에서 5번과 6번에 해당한다
  • STGNNs (Spatial-Temporal Graph Neural Networks)
    - 공간과 순서를 고려하여 학습하는 방법

📚 Reference

https://tootouch.github.io/research/gnn_summary/
https://www.youtube.com/watch?v=NSjpECvEf0Y
https://medium.com/@gwakhyoeun/til-%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-graph-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-6f92fd87a0bd
https://towardsdatascience.com/graph-convolutional-networks-deep-99d7fee5706f
https://www.youtube.com/watch?v=JAB_plj2rbA&list=PLRQmQC3wIq9z_a_usSH4SN8IkZ6EDcpDi&index=2

profile
유능한 개발자가 되고 싶은 헬린이

0개의 댓글