부스트캠프 AI Tech 1기 [T1209 최보미]/U stage

Day25 학습정리 - GNN 기초 & GNN 심화

B1001101 2021. 2. 26. 23:43

강의복습

1. 그래프 신경망이란 무엇일까? (기본)

더보기

1) 정점 표현 학습

  • 그래프의 정점들을 벡터로 표현하는 것 (정점 임베딩)
  • 그래프에서 정점 사이의 유사성을 계산하는 방법에 따라 인접성, 거리, 경로, 중첩, 임의보행 등 여러 접근법으로 구분됨
  • 귀납식 정점 표현 학습의 장점
    • 학습이 진행된 이후에 추가된 정점에 대해서도 임베딩을 얻을 수 있음
    • 모든 정점에 대한 임베딩을 미리 계산하여 저장해둘 필요가 없음
    • 정점이 속성(Attribute) 정보를 가진 경우 이를 활용할 수 있음

2) 그래프 신경망 기본

  • 그래프 신경망: 그래프와 정점의 속성 정보를 입력으로 받음
  • 이웃 정점들의 정보를 집계하는 과정을 반복하여 임베딩을 얻음
  • 각 집계 단계를 층이라고 부름
  • 계산 그래프(Computation Graph): 대상 정점 별 집계되는 구조 
  • 서로 다른 대상 정점간에도 층별 집계 함수 공유
    • 집계 함수: 이웃들 정보의 평균을 계산한 후 신겅망에 적용
    • 출력 임베딩: 마지막 층에서의 정점 별 임베딩
    • 학습 변수(Trainable Parameter): 층 별 신경망의 가중치
  • 손실함수: 정점간 거리 보존 목표
  • 후속 과제(Downstream Task)의 손실함수를 사용해 종단종(End-to-End) 학습이 가능함
  • 학습된 그래프 신경망을 학습에서 제외된 정점, 새롭게 추가된 정점, 새로운 그래프에 적용 가능

 

3) 그래프 신경망 변형

  • 그래프 합성곱 신경망(Graph Convolutional Network, GCN)
  • GraphSAGE: 이웃들의 임베딩을 AGG 함수를 이용해 합친 후 자신의 임베딩과 연결(Concatenation)
    • AGG 함수: Mean, Pool, LSTM 등

4) 합성곱 신경망과의 비교

  • 그래프 형태의 데이터에는 합성곱 신경망이 아닌 그래프 신경망을 사용해야 효과적

5) 실습: DGL 라이브러리와 GraphSAGE를 이용한 정점 분류

2. 그래프 신경망이란 무엇일까? (심화)

더보기

1) 그래프 신경망 복습

2) 그래프 신경망에서의 어텐션

  • 그래프 어텐션 신경망은 이웃 정점들의 임베딩을 평균내는 과정에서의 가중치도 함께 학습함

3) 그래프 표현 학습과 그래프 풀링

  • 정점 임베딩으로부터 그래프 풀링을 통해 전체 그래프 임베딩, 즉 전체 그래프의 벡터 표현을 얻음

4) 지나친 획일화 문제

  • 그래프 신경망의 층수를 증가시킬 때, 정점 임베딩이 서로 유사해지고, 후속 과제의 정확도가 떨어지는 현상

5) 그래프 데이터 증강

  • 그래프에 간선을 추가한 뒤 그래프 신경망을 학습시키는 방법으로 후속 과제의 정확도가 향상 시킴

6) 실습: GraphSAGE의 집계 함수 구현


코멘트

벌써 5주차가 끝났다. 이번주는 추천시스템의 기본적인 내용만 배워서 그런지 저번주에 배웠던 자연어처리보다는 쉬웠지만 그래도 강의를 완벽하게 소화하지는 못했다. 다음주는 특강이라서 좀 여유가 있을 것 같은데 그 때 다시 복습해야겠다.