반응형
Contents 1. GAT 기본 개념 1.1 Linear transformation 1.2 Activation function 1.3 Softmax normalization 1.4 Multi-head attention 1.5 Improved graph attention layer 2. Numpy로 graph attention layer 구현하기 3. GAT 구현하기 이전 포스팅에서는 서로 다른 이웃 수를 가진 노드 degree를 정규화하여 이웃 정보를 학습하는 GCN 알고리즘을 알아보았습니다. 이번 포스팅에서 다룰 Graph Attention Network (GAT)는 GCN에서 한층 더 발전된 알고리즘입니다. GAT의 핵심 아이디어는 노드 간 상호작용을 모델링하기 위해, 그래프의 각 노드가 이웃 노드..
Contents 1. GCN이란? 2. GCN 구현하기 3. 마무리 이전 포스팅에서 인접 행렬 정보를 반영한 신경망 모델인 GNN을 살펴보았습니다. 이때 일반적인 딥러닝 모델과 같이, 행렬곱 연산을 통해 노드의 정보를 학습했습니다. 이번 포스팅에서 알아볼 GCN (Graph Convolutional Networks)은 이웃 노드의 정보를 aggregation하는 방식으로 레이어를 구성합니다. GCN은 이름에서도 알 수 있듯이, CNN의 아이디어를 가져온 것입니다. 2017년에 논문을 통해 등장한 GCN은 현재 그래프 기반 연구에서 baseline이 되는 기법이라고 할 수 있습니다. 이러한 GCN의 기초 개념과 간단한 코드 구현을 살펴보겠습니다. 본 포스팅에서도 수식과 개념을 다루겠지만, 보다 엄밀하고 정..
Contents 1. 그래프 기반 데이터 세트 2. GNN 직접 구현하기 3. 마무리 이전 포스팅에서 그래프에 대한 기본 이론과 노드를 임베딩하는 개념에 대해 알아보았습니다. 이번 포스팅부터는 본격적으로 그래프 기반 데이터를 neural network를 통해 학습하는 방법을 배우겠습니다. 먼저 가장 기초적인 GNN (graph neural network)를 직접 코드로 구현해보고, 실제 데이터 세트에 적용해보겠습니다. 1. 그래프 기반 데이터 세트 GNN (graph neural network) 기초를 살펴보기 전에, PyTorch Geomatric을 사용하여 대표적인 그래프 기반 데이터 세트를 살펴보겠다. 1) The Cora dataset 그래프 학습과 노드 분류에 주로 사용되는 데이터 세트이다. 각..
Contents 1. 노드 표현 1.1 DeepWalk 1.2 Word2Vec 2. Node2Vec 2.1 Biased randomwalk 2.2 간단한 추천 시스템 구현 Node representation은 그래프에서 각 노드를 벡터 형태로 나타내는 방법입니다. 노드 표현은 그래프 기반 분석 및 다양한 그래프 기계 학습 작업에서 노드의 특성을 나타낼 때 사용합니다. 이번 포스팅에서는 두 가지 주요한 노드 표현 방법인 Word2Vec과 DeepWalk에 대해 알아보겠습니다. 이후 이 두가지 표현 방법에서 발전하여 노드에 대한 임베딩을 수행하는 Node2Vec 기법을 알아보고 간단한 추천 시스템을 구현해보겠습니다. 본 포스팅부터 본격적으로 그래프 뉴럴 네트워크에 대한 deep walk를 시작하겠습니다. 1..
Contents 1. 그래프 구조 1.1 그래프 종류 1.2 그래프 표현 2. 그래프 탐색 알고리즘 2.1 Breadth-first search 2.2 Depth-first search 3. 그래프 측정 본 포스팅에서는 이후 GNN을 다루기 위해 필요한 그래프에 대한 기본 개념들을 소개하겠습니다. 여러 그래프 구조와 그래프 알고리즘을 살펴볼 예정입니다. 본 포스팅에서는 networkx를 사용하여 코드를 통해 그래프를 그려볼 예정입니다. 필요한 라이브러리 networkx==2.8.8 matplotlib==3.6.3 1. 그래프 구조 1.1 그래프 종류 그래프에서 특정 엔티티를 나타내는 노드(node)는 vertice라고도 표현한다. 따라서 노드를 V, 엣지를 E로 표현하면, 전체 그래프 G는 아래 수식과 ..
Contents 1. Why graph? 2. Graph learning 3. Graph neural network 최근 그래프 뉴럴 네트워크(GNN)은 다양한 딥러닝, 머신러닝 분야에서 중요하게 적용되고 있습니다. 특히 추천 시스템의 경우, 학회에 나오는 최신 모델들은 대부분 그래프 기반 모델을 채택하고 있습니다. 이번 포스팅을 시작으로, 앞으로 Graph Neural Networks (GNN)에 대한 포스팅을 진행할 예정입니다. 기본적인 그래프 이론부터, 전통적인 그래프 모델, 코드를 살펴보겠습니다. 최종 목표는 그래프 이론을 기반으로 한 최신 추천 시스템 모델을 이해하는 것입니다. 그 전에, 본 포스팅에서는 먼저 왜 그래프 이론이 중요하고, 어떻게 적용되는지를 살펴보겠습니다. 1. Why graph..