728x90
반응형
- 강의 목록
- 그래프 신경망이란 무엇일까? (기본)
- 그래프 신경망이란 무엇일까? (심화)
- 요약
강의
피어세션
- 학습정리
정점 표현 학습
- 그래프의 정점들을 벡터의 형태로 표현하는 것
- 정점 임베딩 (Node Embedding)이라고도 부른다.
- 그래프를 입력으로 받아 벡터 표현 (정점 임베딩)을 출력으로 내준다.
- 그래프에서의 정점간 유사도를 임베딩 공간에서도 보존하는 것을 목표로 한다.
- 그래프에서의 두 정점간 유사도는 인접성, 거리, 경로, 중첩, 임의보행 기반 접근법으로 측정할 수 있다.
- 이러한 정점 임베딩 방법들은 변환식 (Transductive) 방법이다.
- 변환식 방법은 학습의 결과로 정점의 임베딩 자체를 얻는다.
- 출력으로 임베딩 자체를 얻는 임베딩 방법은 여러 한계를 갖는다.
- 학습이 진행된 이후 추가된 정점에 대한 임베딩 획득 불가
- 모든 정점에 대한 임베딩을 미리 계산해 저장해야 함
- 정점이 속성 정보를 가진 경우 활용 불가능
- 반대로 정점 임베딩 자체가 아닌, 인코더를 얻는 귀납식 (Inductive) 방법이 있다.
- 출력으로 인코더를 얻으면 이러한 장점을 갖는다.
- 학습이 진행된 이후 추가된 정점에 대한 임베딩을 얻을 수 있다.
- 모든 정점에 대한 임베딩을 미리 계산해 저장할 필요가 없다.
- 정점이 속성 정보를 가진 경우도 활용할 수 있다.
- 그래프 신경망 (Graph Neural Network)은 대표적인 귀납식 임베딩 방법이다.
그래프 신경망
그래프 신경망 구조
- 그래프 신경망은 그래프와 정점의 속성 정보를 입력으로 받는다.
- 이후 이웃 정점들의 정보를 집계하는 과정을 반복하여 임베딩을 얻는다.
- 각 집계 단계를 층 (Layer)라고 부르고, 각 층마다 임베딩을 얻는다.
- 0번 층은 정점의 속성 벡터를 입력으로 사용하고, n번 층은 n-1번 층의 임베딩을 입력으로 받는다.
- 집계 함수는 아래의 단계를 거친다.
- 이웃들 정보의 평균 계산
- 신경망에 적용
- 마지막 층에서의 정점 별 임베딩이 해당 정점의 출력 임베딩이다.
- 또한 그래프 신경망의 학습 변수는 층 별 신경망의 가중치이다.
- 대상 정점에 따라 집계되는 정보는 상이하다.
- 대상 정점별 집계되는 구조를 계산 그래프라고 부른다.
- 하지만 서로 다른 대상 정점 간에도 층 별 집계 함수는 공유한다.
그래프 신경망 학습
- 그래프 신경망은 비지도 학습과 지도 학습 모두 가능하다.
- 그래프 신경망의 학습 대상인 학습 변수 (Trainable Parameter)는 층 별 신경망의 가중치이다.
- 학습을 위해 손실함수를 먼저 결정해야 하는데, 정점 간 거리를 보존하는 것을 목표로 한다.
- 후속 과제의 손실함수를 이용한 종단종 (End-to-End) 학습도 가능하다.
- 예를 들어 그래프 신경망을 이용해 정점의 임베딩을 얻어 정점의 유형을 분류하는 경우,
- 즉 정점 분류가 최종 목적인 경우 교차 엔트로피를 손실함수로 사용하여 학습을 진행할 수 있다.
- 그래프 신경망의 종단종 학습을 통한 분류는 변환적 정점 임베딩 이후에 별도의 분류기를 학습하는 것보다 정확도가 대체로 높다.
- 손실함수를 정의한 후에는 학습에 사용할 대상 정점을 결정하여 학습 데이터를 구성한다.
- 굳이 전체 정점이 아닌, 일부 정점만 골라도 된다.
- 그 후에는 오차역전파를 통해 손실함수를 최소화하는 방향으로 신경망의 학습 변수들을 학습한다.
- 그렇게 학습된 신경망을 적용하면 학습에 사용되지 않은 정점의 임베딩을 얻을 수 있다.
- 입력으로 모든 정점이 아닌 일부 정점만 골라도 되는 이유.
- 같은 측면에서 학습 이후에 추가된 정점의 임베딩을 얻을 수 있다.
- 또한 학습된 그래프 신경망을 새로운 그래프에 적용할 수도 있다.
그래프 신경망 변형
그래프 합성곱 신경망 (Gtaphic Convolution Network, GCN)
- 그래프 신경망에서는 다양한 형태의 집계 함수를 사용할 수 있다.
- 그래프 합성곱 신경망은 다음의 집계 함수를 사용하는 신경망이다.
- 기존의 집계 함수에 비해 위와 같은 차이가 존재하는데, 작은 차이지만 큰 성능의 향상으로 이어졌다.
GraphSAGE
- 이웃들의 임베딩을 AGG 함수를 이용해 합친 후 자신의 임베딩과 연결하는 집계 함수를 사용한다.
- AGG 함수로는 평균, 풀링, LSTM 등이 사용될 수 있다.
합성곱 신경망과 그래프 신경망 (CNN and GNN)
- 합성곱 신경망은 이미지에 많이 사용된다.
- 합성곱 신경망과 그래프 신경망 모두 이웃의 정보를 집계하는 과정을 반복한다.
- 구체적으로 말하면 합성곱 신경망은 이웃 픽셀의 정보를 집계하는 과정을 반복한다.
- 하지만 합성곱 신경망은 이웃의 수가 균일하지만 그래프 신경망은 아니다.
- 그래프 신경망은 정점 별로 집계하는 이웃의 수가 다른데, 합성곱 신경망은 이웃 픽셀들이 이웃이기 때문.
- 그래프의 인접 행렬에 합성곱 신경망을 적용하면 안된다.
- 그래프에는 합성곱 신경망이 아닌 그래프 신경망을 적용해야 한다.
- 합성곱 신경망이 주로 쓰이는 이미지에서는 인접 픽셀이 유용한 정보를 담고 있다.
- 하지만 그래프의 인접 행렬에서의 인접 원소는 제한된 정보를 가지는데, 특히 인접 행렬의 행과 열의 순서는 임의로 결정되는 경우가 많다.
- 이런 이유로 그래프 데이터에서는 CNN 말고 GNN이나 GCN을 사용해야 한다.
귀납식 정점 표현 학습
- 정점을 임베딩 하는 함수인 인코더를 학습하는 학습
- 그래프 신경망 (GNN)이 대표적인 귀납식 임베딩 방법이다.
그래프 신경망
- 이웃 정점들의 정보를 집계하는 과정을 반복해 임베딩을 얻는다.
- 집계 함수의 형태에 따라 그래프 신경망, 그래프 합성곱 신경망, GraphSAGE 등으로 구분된다.
- 비지도, 지도 학습 모두 가능하며, 비지도 학습에서는 정점간 거리를 보존하는 것을 목표로 하고, 지도 학습에서는 후속 과제의 손실함수를 이용해 종단종 학습을 진행한다.
그래프 신경망의 어텐션
기존 그래프 신경망의 한계
- 기본 그래프 신경망에서는 이웃들의 정보를 동일한 가중치로 평균을 낸다.
- 그래프 합성곱도 역시 단순한 연결성을 고려한 가중치로 평균을 낸다.
- 하지만 그래프에서의 이웃들은 Dense하게 연결된 것이 아니다.
- 예를들어 SNS 친구들 중에도 친밀도와 영향도가 전부 다르다.
- 그렇기에 이들을 전부 같은 가중치로 평균을 내서는 안된다.
- 이러한 단점을 극복하기 위해 그래프 어텐션 신경망이 등장했다.
그래프 어텐션 신경망 (Graph Attention Network, GAT)
- 실제 그래프에서는 이웃 별로 미치는 영향이 다를 수 있기 때문에, 그 가중치를 학습하기 위해 Self-attention을 사용한다.
- 각 층에서 정점 i로부터 이웃 j로의 가중치 a(i,j)는 세 단계를 통해 계산된다.
- 여러 개의 어텐션을 동시에 학습한 뒤 결과들을 연결하여 사용한다.
- 이를 Multi-head Attention이라고 부른다.
그래프 표현 학습과 그래프 풀링
그래프 표현 학습
- 그래프 표현 학습은 그래프 임베딩이라고도 부른다.
- 그래프 전체를 벡터의 형태로 표현하는 것이다.
- 그래프 임베딩은 벡터의 형태로 표현된 그래프 그 자체를 의미하기도 한다.
- 그래프 임베딩은 그래프 분류 등에 활용되는데, 그래프 형태로 표현된 화합물의 분자 구조로부터 특성을 예측하는 것이 한 가지 예시이다.
그래프 풀링
- 정점 임베딩들로부터 그래프 임베딩을 얻는 과정이다.
- 평균 등 단순한 방법보다 그래프의 구조를 고려한 방법을 사용할 경우 그래프 분류 등 후속 과제에서 더 높은 성능을 얻을 수 있다.
지나친 획일화 문제 (Over-smoothing)
- 그래프 신경망의 층의 수가 증가하며 정점의 임베딩이 서로 유사해지는 현상을 의미한다.
- 작은 세상 효과와 관련이 있는데, 적은 수의 층으로도 다수의 정점에 의해 영향을 받게 된다.
- 지나친 획일화의 결과로 그래프 신경망의 층의 수를 늘렸을 때 후속 과제에서의 정확도가 감소하는 현상이 발견된다.
- 획일화 문제에 대한 대응으로 JK 네트워크 (Jumping Knowledge Network)는 마지막 층의 임베딩 뿐 아니라 모든 층의 임베딩을 함께 사용한다.
- APPNP는 0번째 층을 제외하고는 신경망 없이 집계 함수를 단수화했다.
- APPNP의 경우 층의 수 증가에 따라 정확도 감소 효과가 없는 것을 확인했다.
그래프 데이터의 증강
- 데이터 증강 (Data Augmentation)은 다양한 머신러닝 문제에서 효과적이다.
- 그래프에서도 누락되거나 부정확한 간선이 존재할 경우 데이터 증강을 통해 보완할 수 있다.
- 임의 보행을 통해 정점간 유사도를 계산하고, 유사도가 높은 정점 간의 간선을 추가하는 방법이 제안되었다.
- 그래프 데이터 증강의 결과로 정점 분류의 정확도가 개선된다.
- 피어세션 회의 내용
- 해야할 일
728x90
반응형
'BOOSTCAMP AI TECH > 5주차_Machine Learning with Graphs' 카테고리의 다른 글
[BOOSTCAMP AI TECH] 24일차_정점 표현 & 추천 시스템 (심화) (0) | 2021.02.25 |
---|---|
[BOOSTCAMP AI TECH] 23일차_군집 탑색 & 추천 시스템 (0) | 2021.02.24 |
[BOOSTCAMP AI TECH] 22일차_페이지랭크 & 전파 모델 (0) | 2021.02.23 |
[BOOSTCAMP AI TECH] 21일차_그래프 이론 기초 & 그래프 패턴 (0) | 2021.02.22 |