[ Day 25 ]

Dongbin Lee·2021년 2월 26일
0

2021부캠AI

목록 보기
23/24

2021 부스트캠프 Day 25.

[Day 25] Graph


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

변환식 정점 표현 학습과 귀납식 정점 표현 학습

  • 이전의 정점 임베딩 방법들은 변환식(Transductive)방법이다.

  • 변환식(Transductive) 방법은 학습의 결과로 정점의 임베딩 자체를 얻는다는 특성이 있다.

  • 정점을 임베딩으로 변화시키는 함수, 즉 인코더를 얻는 귀납식(Inductive) 방법과 대조된다.

  • 출력으로 임베딩 자체를 얻는 변환식 임베딩 방법은 여러 한계를 갖는다.

    • 학습이 진행된 이후에 추가된 정점에 대해서는 임베딩을 얻을 수 없다.
    • 모든 정점에 대한 임베딩을 미리 계산하여 저장해두어야 한다.
    • 정점이 속성(Attribute) 정보를 가진 경우에 이를 활용할 수 없다.
  • 출력으로 인코더를 얻는 귀납식 임베딩 방법은 여러 장점을 갖는다.

    • 학습이 진행된 이후에 추가된 정점에 대해서도 임베딩을 얻을 수 있다.
    • 모든 정점에 대한 임베딩을 미리 계산하여 저장해둘 필요가 없다.
    • 정점이 속성(Attribute) 정보를 가진 경우에 이를 활용할 수 있다.

그래프 신경망 기본

그래프 신경망 구조

  • 그래프와 정점의 속성 정보를 입력으로 받는다.

  • 그래프의 인접 행렬을 A라고 하면, A는 |V| X |V|의 이진 행렬이다.

  • 각 정점 u의 속성(Attribute) 벡터를 Xu라고 하면, 이는 m차원 벡터이고 m은 속성의 수를 의미한다.

  • 정점의 속성의 예시:

    • 온라인 소셜 네트워크에서 사용자의 지역, 성별, 연령, 프로필 사진 등
    • 논문 인용 그래프에서 논문에 사용된 키워드에 대한 원-핫벡터 등
  • 그래프 신경망은 이웃 정점들의 정보를 집계하는 과정을 반복하여 임베딩을 얻는다.

  • 아래의 예시에서 대상 정점의 임베딩을 얻기 위해 이웃들 그리고 이웃의 이웃들의 정보를 집계한다.

  • 각 집계 단계가 layer이고, 각 layer마다 임베딩을 얻게된다.

  • 각 layer에서는 이웃들의 이전 층 임베딩을 집계하여 새로운 임베딩을 얻는다.
    0번 층, 즉 입력 층의 임베딩으로는 정점의 속성 벡터를 사용한다.

  • 대상 정점마다 집계되는 정보가 상이하다.

  • 대상 정점 별 집계되는 구조를 계산 그래프(Computation Graph)라고 부른다.

  • 서로 다른 대상 정점간에도 층 별 집계 함수는 공유한다.

  • 입력의 크기가 가변적이여도 처리할수 있어야 한다. 어떻게 구성해야 할까?

  • 집계 함수는 두 단계를 거친다.

    • 이웃들 정보의 평균을 계산
    • 신경망에 적용

  • 마지막 층에서의 정점 별 임베딩이 해당 정점의 출력 임베딩이다.

그래프 신경망 학습

  • 그래프 신경망의 학습 변수는 층 별 신경망의 가중치이다.

  • 손실함수를 결정할 때, 정점간 거리를 "보존"하는 것을 목표로 할 수있다.
    만약 인접성을 기반으로 유사도를 정의한다면, 손실함수는 다음과 같다.

  • Downstream Task의 손실함수를 이용한 End-to-End 학습도 가능하다.

  • 정점 분류가 목표인 경우를 생각하면,

    • 그래프 신경망을 이용하여 정점의 임베딩을 얻고
    • 이를 분류기(Classifier)의 입력으로 사용하여
    • 각 정점의 유형을 분류
    • 이 경우 분류기의 손실함수를 예를 들어 Cross Entropy를 손실함수로 사용할 수 있다.
  • 다양한 데이터에서의 정점 분류의 정확도

  • 학습에 사용할 대상 정점을 결정하여 학습 데이터를 구성하고, 선택한 대상 정점들에 대한 계산 그래프를 구성한다.

  • 마지막으로 오차 역전파(Backpropagation)을 통해 손실함수를 최소화한다.

그래프 신경망 활용

  • 학습된 신경망을 적용하여, 학습에 사용되지 않은 정점의 임베딩을 얻을 수 있다.

  • 학습된 그래프 신경망을, 새로운 그래프에 적용할 수도 있다.

    • 예를 들어, A종의 단백질 상호 작용 그래프에서 학습한 그래프 신경망을 B종의 단백질 상호작용 그래프에 적용할 수 있다.

그래프 신경망 변형

그래프 합성곱 신경망(Graph Convolutional Network, GCN)

  • 집계함수는 아래와 같다. 기존의 집계함수와는 작은 차이지만 큰 성능의 향상으로 이어지기도 한다.

GraphSAGE

  • 이웃들의 임베딩을 AGG 함수를 이용해 합친 후, 자신들의 임베딩과 연결(Concatenation)하는 점이 독특하다.

  • AGG 함수로는 평균, 풀링, LSTM 등이 사용될 수 있다.

합성곱 신경망과의 비교

합성곱 신경망과 그래프 신경망의 유사성

  • 합성곱 신경망과 그래프 신경망은 모두 이웃의 정보를 집계하는 과정을 반복한다.

  • 구체적으로, 합성곱 신경망은 이웃 픽셀의 정보를 집계하는 과정을 반복한다.

합성곱 신경망과 그래프 신경망의 차이

  • 합성곱 신경망에서는 이웃의 수가 균일하지만, 그래프 신경망에서는 아니다.

  • 그래프 신경망에서는 정점 별로 집계하는 이웃의 수가 다르다.

  • Q : 그래프의 인접 행렬에 합성곱 신경망을 적용하면 효과적일까?

    • 그래프에는 합성곱 신경망이 아닌 그래프 신경망을 적용하여야 한다.
      흔히 범하는 실수이다.

    • 합성곱 신경망이 주로 쓰이는 이미지에서는 인접 픽셀이 유용한 정보를 담고 있을 가능성이 높다.

    • 하지만, 그래프의 인접 행렬에서의 인접 원소는 제한된 정보를 가진다.
      특히나, 인접 행렬의 행과 열의 순서는 임의로 결정되는 경우가 많다.


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

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

기본 그래프 신경망의 한계

  • 기본 그래프 신경망에서는 이웃들의 정보를 동일한 가중치로 평균을 낸다.

  • 그래프 합성곱 신경망에서는 단순히 연결성을 고려한 가중치로 평균을 낸다.

그래프 어텐션 신경망(Graph Attention Network, GAT)

  • 가중치 자체도 학습한다.

  • 실제 그래프에서는 이웃 별로 미치는 영향이 다를 수 있기 때문이다.
    가중치를 학습하기 위해서 Self-Attention이 사용된다.

  • 각 충에서 정점 i로부터 이웃 j로의 가중치 aaij는 세 단계를 통해 계산한다.

    • 해당 층의 정점 i의 임베딩 hi에 신경망 W를 곱해 새로운 임베딩을 얻는다.
    • 정점 i와 정점 j의 새로운 임베딩을 연결한 후, 어텐션 계수 aa를 내적한다.
      어텐션 계수 aa는 모든 정점이 공유하는 학습 변수이다.
    • softmax를 적용한다.
  • Multi-head Attention(여러개의 어텐션을 동시에 학습)한뒤, 결과를 연결하여 사용한다.

  • 결과

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

그래프 표현 학습

  • 그래프 표현 학습, 혹은 그래프 임베딩이란 그래프 전체를 벡터의 형태로 표현하는 것

  • 개별 정점을 벡터의 형태로 표현하는 정점 표현 학습과 구분된다.
    그래프 임베딩은 벡터의 형태로 표현된 그래프 자체를 의미하기도 한다.

  • 그래프 임베딩은 그래프 분류 등에 활용된다.
    그래프 형태로 표현된 화합물의 분자 구조로부터 특성을 예측하는 것이 한가지 예시이다.

그래프 풀링

  • 정점 임베딩들로부터 그래프 임베딩을 얻는 과정

  • 평균 등 단순한 방법보다 그래프의 구조를 고려한 방법을 사용할 경우 그래프 분류 등의 후속 과제에서 더 높은 성능을 얻는 것으로 알려져 있다.

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

지나친 획일화(Over-smoothing) 문제

지나친 획일화 문제

  • 그래프 신경망의 층의 수가 증가하면서 정점의 임베딩이 서로 유사해지는 현상이 생기며 후속과제에서의 정화곧가 감소하는 현상이 발생한다.

  • 지나친 획일화 문제는 작은 세상 효과와 관련이 있다.

  • 적은 수의 층으로도 다수의 정점에 의해 영향을 받게 된다.

  • 아래의 그림에서 보듯이 그래프의 신경망의 층이 2개 혹은 3개일 때 정확도가 가장 높다.

  • Residual을 넣는 것, 즉 이전 층의 임베딩을 한 번 더 더해주는 것 만으로는 효과가 제한적이다.

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

  • JK 네트워크(Jumping Knowledge Network)는 마지막 층의 임베딩 뿐 아니라, 모든 층의 임베딩을 함께 사용한다.

  • APPNP는 0번째 층을 제외하고는 신경망 없이 집계 함수를 단순화 하였다.

  • APPNP의 경우, 층의 수 증가에 따른 정확도 감소 효과가 없는 것을 확인하였다.

그래프 데이터 증강

그래프 데이터 증강

  • 데이터 증강(Data Augmentation)은 다양한 기계학습에서의 효과적이다.

  • 그래프에도 누락되거나 부정확한 간선이 있을 수 있고, 데이터 증강을 통해 보완할 수 있다.

  • 임의 보행을 통해 정점간 유사도를 계산하고, 유사도가 높은 정점 간의 간선을 추가하는 방법이 제안되었다.

그래프 데이터 증강에 따른 효과

  • 그래프 데이터 증강의 결과 정점 분류의 정확도가 개선 되는 것을 확인할수 있다.
    Heat와 PPR은 유사도를 계산하는 방법이다.
profile
Preparation student who dreams of becoming an AI engineer.

0개의 댓글