그래프와 추천시스템(8. GNN)

skh951225·2022년 8월 22일
0
post-thumbnail

그래프 신경망 기초

그래프 신경망 구조

  • 그래프 신경망은 그래프정점의 속성 정보를 입력으로 받습니다.
  • 그래프 신경망은 이웃 정점들의 정보를 집계하는 과정을 반복하여 임베딩을 얻습니다.
  • 각 집계 단계를 층(Layer)라고 부르고, 각 층마다 임베딩을 얻습니다.
  • 대상 정점마다 집계되는 정보가 상이합니다. 이러한 구조를 Computation Graph라고 부릅니다.
  • 서로 다른 대상 정점간에도 층 별 집계 함수는 공유합니다.

그래프 신경망의 학습

  • 집계 함수는 이웃들 정보의 평균을 계산하고 신경망에 적용하는 단계를 거칩니다.
  • 후속 과제(Downstream Task)의 손실함수를 이용한 종단종(End-to-End) 학습도 가능합니다.

그래프 신경망의 활용

  • 학습된 신경망을 적용하여, 학습에 사용되지 않은 정점의 임베딩을 얻을 수 있습니다.
  • 학습된 그래프 신경망을, 새로운 그래프에 적용할 수도 있습니다.

그래프 신경망 변형

그래프 합성곱 신경망

  • 소개한 것 이외에도 다양한 형태의 집계 함수를 사용할 수 있습니다.
  • 아래 그림은 GCN(Graph Convolutional Network) 의 집계함수와 기존 집계함수의 비교입니다.
  • GraphSAGE의 집계함수입니다. 자신의 임베딩과 연결(Concatenation)하는 점이 독특합니다.
  • 그 밖에 집계함수(AGG)는 목적에 따라 평균, 폴링, LSTM등이 사용될 수 있습니다.

합성곱 신경망과 그래프 신경망의 공통점/차이점

공통점

  • 모두 이웃의 정보를 집계하는 과정을 반복

차이점

  • 합성곱 신경망에서의 이웃의 수가 균일하지만, 그래프 신경망에서는 그렇지 않음
  • 합성곱 신경망에서는 인접 픽셀이 유용한 정보를 담고 있을 가능성이 높지만 그래프의 인접 행렬에서의 인접원소는 제한된 정보를 가지며 인접 행렬의 행과 열의 순서가 임의로 결정되는 경우가 많음

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

기본 그래프 신경망의 한계

기본 그래프 신경망에서는 이웃들의 정보를 동일한 가중치로 평균을 냅니다. 그래프 합성곱 신경망에서 역시 단순히 연결성을 고려한 가중치로 평균을 냅니다.

그래프 어텐션 신경망

그래프 어텐션 신경망(Graph Attention Network, GAT)에서는 가중치 자체도 학습합니다. 실제 그래프에서는 이웃 별로 미치는 영향이 다를 수 있기 때문입니다. 가중치를 학습하기 위해서 Self-Attention이 사용됩니다.

각 층에서 정점 i 로부터 이웃 j 로의 가중치 aij는 세 단계를 통해 계산합니다.
(1) 해당 층의 정점 i 의 임베딩 hi에 신경망 W를 곱해 새로운 임베딩을 얻습니다.

(2) 정점 i와 정점 j의 새로운 임베딩을 연결한 후, 어텐션 계수 a를 내적합니다. 어텐션 계수 a는 모든 정점이 공유하는 학습 변수입니다.

(3) (2)의 결과에 Softmax를 적용합니다.

여러개의 어텐션을 동시에 학습한 뒤, 결과를 연결하여 사용합니다. 이를 Multi-head Attention이라고 부릅니다.

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

그래프 표현 학습

  • 그래프 표현 학습, 혹은 그래프 임베딩은 그래프 전체를 벡터의 형태로 표현하는 것입니다.
  • 그래프 임베딩은 그래프 분류 등에 활용됩니다.

그래프 풀링

그래프 풀링(Graph Pooling)이란 정점 임베딩들로 부터 그래프 임베딩을 얻는 과정입니다.


아래 그림의 미분가능한 풀링(Differentiable Pooling, DiffPool)은 군집 구조를 활용 임베딩을 계층적으로 집계합니다.

지나친 획일화 문제

  • 지나친 획일화(Over-smoothing) 문제란 그래프 신경망의 층의 수가 증가하면서 정점의 임베딩이 서로 유사해지는 현상을 의미합니다.
  • 지나친 획일화 문제는 작은 세상 효과와 관련이 있습니다. 적은 수의 층으로도 다수의 정점에 의해 영향을 받게 됩니다.
  • 지나친 획일화의 결과로 그래프 신경망의 층의 수를 늘렸을 때, 후속 과제에서의 정확도가 감소하는 현상이 발견되었습니다.
  • 아래 그림에서 보듯이 그래프 신경망의 층이 2개 혹은 3개 때 정확도가 가장 높습니다.

지나친 획일화 문제에 대한 대응

  • Residual을 넣는 것, 즉 이전 층의 임베딩을 한 번 더 더해주는 것만으로는 효과가 제한적입니다.
  • JK 네트워크(Jumping Knowledge Network)는 마지막 층의 임베딩 뿐 아니라, 모든 층의 임베딩을 함께 사용합니다.
  • APPNP는 0번째 층을 제외하고는 신경망 없이 집계 함수를 단순화하였습니다.

그래프 데이터의 증강

  • 데이터 증강(Data Augmentation)은 다양한 기계학습 문제에서 효과적입니다.
  • 그래프에도 누락되거나 부정확한 간선이 있을 수 있고, 이를 데이터 증강을 통해 보완할 수 있습니다.
  • 임의 보행을 통해 정점간 유사도를 계산하고, 유사도가 높은 정점 간의 간선을 추가하는 방법이 제안되었습니다.

0개의 댓글