[부스트캠프 AI Tech 5기] Graph Neural Networks

박상우·2023년 5월 6일
0

부스트캠프

목록 보기
51/53
post-thumbnail

GNN과 GCN

Graph Data Structure

  • 노드와 엣지는 정의에 따라 달라짐

  • 그래프는 directed/undirected, weighted/unweighted 등으로 나뉘어 짐

Representation Learning

  • 어떤 특징을 추출하는가?
  • GNN은 그래프 구조를 통해 특징을 추출

  • 일련의 과정을 통해 Node를 분류, Graph를 분류, 새로운 Link를 예측하는 3가지 Task로 나뉨

Brief History

  • Spectral 방법론에서, GCN의 등장으로 Spatial filtering 위주의 방법론으로 바뀜
  • GCN과 GAT를 공부할 예정
  • Spatial GCN : Neighborhood aggregation

Matrix Representatoin

Adjacency Matrix

  • Self Loop 등이 포함될 수 있으며, Undirected일 경우에는 대칭행렬이 아닐 것
  • 이외에도 Node Feature matrix, Degree Matrix, Laplacian Matrix 등이 있음
  • 그래프를 Matrix로 변환한 뒤, NN을 통과시켜 학습 시킬 것

GCN

  • 이미지와 Sequence도 어떻게 보면 Graph의 형태
  • 차이점이라면, CNN은 Locality가 중요함 (거리가 중요)
  • Graph는 거리는 상관 없고, 관계성이 중요
  • EX) Social Networks, E-commerce

  • 인접 노드의 벡터들을 CNN 처럼 중간으로 모으는 과정

  • 결국 AHW가 GCN의 수식
  • CNN의 Convolution과 의미상으로 같다는 것

  • 인접행렬 A는 neighbor node의 연결만 표현하기에, 노드 자체의 feature를 고려한 Identity matrix를 더해줘야 함
  • A는 정규화되어 있지 않기에, 차수로 정규화 해주어야 함

Graph Attention Network (GAT)



  • 주변 정보를 가져올 때, Attention Score 만큼 가중치를 주겠다는 아이디어
  • GAT의 Multi-head Attention은 Attention을 여러번 수행하여 Concat or Average 하는 것
  • Attention Score는 dot product, weighted dot product 등 다양한 방법이 있는데 concat한 후 mlp를 통과시키는 방법도 존재

Receptive Field

  • CNN에서 Layer가 깊어질 수록 이웃 정보가 넓어지는 것 처럼 GCN에서도 동일한 구조
  • GCN에서는 K-hop으로 표현

Over-Smoothing

  • hop이 늘어날수록 노드의 representation이 모두 유사해져버리는 단점 over smoothing이 존재
  • 실험적으로 4~5 hop 이상이면 over smoothing이 발생한다고 알려져 있음
  • Node dropout(노드와 연결된 모든 엣지가 사라짐), Edge dropout(엣지가 사라짐), Layer-Wise Edge Dropout(Random Walk), PairNorm(Centering 하고 Rescailing을 통해 node를 펼침) 등을 통해 이 현상을 방지할 수 있음

결론

  • GNN은 Node feature matrix와 Adjacency Matrix를 통해 aggregate 및 combine으로 효율적인 node embedding을 찾는 과정
  • 여기서 graph 단위의 task를 수행할때에는 node를 더하거나, concat하는 readout 과정이 수행 됨
profile
세상아 덤벼라

0개의 댓글