728x90

 Variational graph auto-encoder는 그래프 형태의 데이터에 VAE를 적용시킴으로써 그래프의 latent space를 학습하고, 이 latent variable을 활용하는 방법을 제시한 방법이다. VGAE 논문에서는 간단하게 그래프를 latent repersentation으로 학습하는 것을 목표로 하는 Graph auto-encoder (GAE)와, 이에 variational approach를 추가한 variational graph auto-encoder (VGAE) 두 가지를 제시하고 있다. 이번 글에서는 이들에 대해서 알아보겠다. 

Graph auto-encoder (GAE)

Graph auto-encoder는 말 그대로 오토인코더를 그래프에 적용시키는 것으로, 1) 그래프를 latent space (low dimensional vector space)로 매핑하는 encoder와 2) 이 latent vector를 해당하는 그래프로 다시 reconstruct하는 decoder로 이루어져 있다. 

Encoder

 Encoder는 앞서 언급했듯이 그래프를 latent space로 매핑하는 역할을 한다. 이 때, 이 encoder는 그래프의 정보를 받아야 하기 때문에, GNN 아키텍처를 사용한다. VGAE 논문에서는 GNN 아키텍처로 다음과 같은 GCN을 사용한다.

GAE의 encoder

 위 식에서 X는 node feature matrix, A는 adjacency matrix, W들은 학습되는 weight matrix, 그리고 $\tilde{A}=\$는 다음과 같이 정의되는 normalized adjacency matrix이다. 아래 식에서 D는 diagonal이 각 노드의 degree인 degree matrix를 의미한다.

Normalized adjacency matrix

위에서 정의된 GCN에 그래프의 adjacency matrix와 node feature를 넣으면 다음과 같이 latent vector가 된다.

Latent vector

Decoder

 Decoder latent vector를 그래프로 다시 reconstruct한다. 즉, input으로 넣은 그래프가 encoder와 decoder를 거치면서 다시 원래의 input 그래프와 같은 형태가 되도록 weight matrix를 학습하는 것이 GAE의 목표인 것이다. Reconstruction은 다음과 같은 간단한 식을 통해서 이루어진다.

Reconstructed adj. matrix

Variational Graph auto-encoder (VGAE)

 Variational graph auto-encoder는 graph auto-encoder에 variational approach를 접목시킨 것이다. VAE가 auto-encoder에 variational approach를 접목시켰듯이, VGAE는 graph auto-encoder에 이를 접목시킨 것이다. 즉, 그래프를 하나의 latent vector로 매핑하는 것이 아닌, 각 그래프의 distribution을 표현하는 latent space로 매핑하는 것을 목적으로 한다. VGAE 또한 1) 그래프를 latent variable의 probability distribution으로 매핑하는 encoder와 2) 이 latent variable의 distribution으로부터 얻은 샘플을 그래프로 다시 reconstruct하는 decoder로 이루어져 있다.

Encoder

 Encoder그래프를 latent variable의 probability distribution으로 매핑한다. 이를 간단한 문제로 만들기 위해서 probability distribution은 VAE와 마찬가지로 정규분포로 정의하고, 이 정규분포의 평균과 분산을 모델링한다. 이를 식으로 나타내면 다음과 같다.

VGAE의 encoder

 이 때, 위 식의 평균과 표준편차는 다음과 같은 GCN으로 표현된다.

VGAE 정규분포의 평균
VGAE 정규분포의 표준편차

위 식에서의 GCN은 GAE에서 사용한 것과 마찬가지로 다음과 같은 GCN을 의미한다.

VGAE의 GCN

이 때, 평균과 표준편차에 해당하는 두 GCN은 $W_0$은 공유하고, $W_1$은 다르게 학습한다. 

Decoder

 Decoderlatent variable의 distribution으로부터 얻은 샘플을 그래프로 다시 reconstruct한다. 샘플링한 latent variable로부터 다음과 같이 adjacency matrix를 만들게 된다.

VGAE의 decoder

Loss function

 VGAE의 loss function은 VAE의 evidende lower bound와 거의 비슷한 형태로 다음과 같이 정의된다.

VGAE의 loss function

 위 식에서 $p(Z)$는 다음과 같이 간단한 Gaussian prior로 정의한다.

Loss function의 prior

 Loss function에서 첫 번째 term은 encoder와 decoder가 autoencoder처럼 reconstruction을 잘 할 수 있게 만들어주는 reconstruction error의 역할을 한다. 두 번째 항은 posterior $q(Z|X,A)$와 prior $p(z)$ 간의 KL divergence와 같고, 이는 posterior와 prior가 최대한 비슷하게 만들어주는 regularization error의 역할을 한다.

Experiments

 GAE와 VGAE가 잘 작동하는지는 각 노드 사이에 엣지가 존재하는지를 예측하는 link prediction task에 대해서 평가한다. 아래 표에서 GAE*와 VGAE*는 node feature 없이 학습을 진행한 결과이다. Node feature가 없을 때도 competitive한 결과를 보여주지만, node feature를 넣음으로써 더 좋은 성능을 보여주는 것을 알 수 있다. 

 다음으로, 학습된 latent space가 얼마나 잘 노드들을 표현하는지를 나타낸 그래프이다. 각 색깔은 학습할 때 input으로 사용되지 않는 node class를 의미하는데, 같은 색깔들이 latent space 상에서 비슷한 위치에 몰려 있는 것으로 보아 latent space의 학습이 잘 된 것을 알 수 있다.

VGAE의 latent space

 

 이번 글에서는 link prediction task에 처음으로 node feature를 고려할 수 있게 한 모델인 GAE와 VGAE에 대해 알아보았다. 올해에 200개는 채워야 하는데 5개 남았다~ 화이팅~ 비행기에서 10개써~

300x250
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기