Data Science/Graph

Graph Machine Learning #1 - GNN (Stanford CS224W)

PM스터 2023. 2. 5. 01:45
반응형

본 블로그는 Stanford의 'CS224W: Machine Learning with Graphs'를 요약한 글임을 밝힙니다.

출처:http://web.stanford.edu/class/cs224w/

 

CS224W | Home

Content What is this course about? Complex data can be represented as a graph of relationships between objects. Such networks are a fundamental tool for modeling social, technological, and biological systems. This course focuses on the computational, algor

web.stanford.edu

0. 용어 정리

  • V: Vertex/Node set (노드 집합)
    • v: V집합 내 특정 노드 
    • N(v): v노드의 이웃 노드 집합 
  • A: Adjacency matrix (인접 행렬)
  • Node features는 아래와 같이 표현한다. 

$$ X ∈  R^{m * |V|} $$

  • Node Features의 예시는 아래와 같습니다. 
    • 소셜 네트워크(Social Networks): 유저 프로필, 유저 이미지
    • 생물학적 네트워크(Biological Networks): 유전형질 프로필, 유전 함수 정보
  • Node Feature가 그래프 Dataset에 없는 경우 아래와 같이 표현합니다. 
    • Indicator vectors (노드 one-hot encoding)
    • 1의 상수 vector([1,1,...1])

1. Network 기본 개념

1) Tasks on Networks 

  • Node Classification
    • 특정 노드 타입 예측
  • Link Prediction
    • 노드간 연결 관계 예측
  • Community detection
    • 밀집 노드 군집(densely-linked cluster) 분류
  • Network Similarity
    • 두 sub-network간 유사도 판단

2) Network 모델 활용이 어려운 이유

  • 대부분의 ML 모델들은 정형적인 Grid Dataset(Image) 혹은 Sequential Dataset(Text/Speech)를 사용한다.
  • Graph Dataset은 정형적인 모양을 띄고 있지 않다.
    • No ordering (순서 없음)
    • No reference point (시작 지점 없음)
    • Often Multimodal features (다양한 종류의 데이터 타입이 혼재됨)

2. Deep Learning for graphs

1) 시도1 - Naiive approach (DNN)

  • 그래프를 인접 행렬(adjacency matrix)로 표현하여 DNN에 feed forward하는 방식
  • 문제점
    • O(|V|)만큼의 파라미터를 갖음 
    • 다른 크기의 그래프에 적용할 수 없음
    • 순서에 민감함

2) 시도2 - Convolutional Networks (CNN)

  • 그래프를 convolution함수를 통해 계산하는 방식 (Text / Image)
  • 문제점
    • Graph에는 고정된 지역성(locality)이 없다.
    • 고정된 윈도우(window) 크기도 없다.
    • 순열이 불변(Permutation Invariant)한다

(1) Permutation Invariance란? 

  • 그래프는 위의 그림과 같이 노드별로 명칭을 정한 후 인접행렬(adjacency matrix)의 형태로 표현할 수 있다. 
  • But, 이름을 어떻게 붙이느냐에 따라서 인접행렬(adjacency matrix)의 형태가 판이하게 달라진다.
    • 이때, 명명하는 순열(Permutation)에 상관없이 모든 쌍(ex. order_1 ↔ order_2)은 같은 정보(node representation)을 표현한다. 
    • 즉. 순열에 관계없이 함수 f(A,X)가 같은 결과값을 반환한다.  
  • 때문에 순열에 관계없이 함수 f(A, X)가 같은 결과값을 반환하는 함수를 Permutation Invariance function이라 한다.
    • f(A_i, X_j) = f(A_j, X_j) 

(2) Permutation Equivariance란?

  • 위의 그림과 같이 노드는 다양한 순열에 따라 명명할 수 있다. 
  • 하지만 명명에 관계 없이 동일한 노드를 가리키는 명명간에는 동일한 이웃(neighborhood)정보를 포함하고 있다. 
  • 때문에 순열에 관계없이 함수 f(A, X)가 같은 pair의 순서쌍을 나타내는 함수를 Permutation Equivariance function이라 한다.

3) Graph Neural Network Overview

  • GNN은 여러쌍의 multiple permutation equivariant / invariant function들을 포함한다.
  • 이는 다른 MLP들과는 구별되는 특징이다.
    • 다른 DNN모델들은 데이터의 순서가 변하는 경우 값이 달라짐 
    • Ex. 홍김길철동수 ↔ 김홍철길수동

2. GCN: Graph Convolutional Networks

  • 개념: 노드와 이웃들의 관계를 기반으로 Computation Graph를 정의해보자
  • 목표: Node feature를계산하기 위해 graph에서 정보가 어떤식으로 전파되어가는지 확인한다.
  • 기타 설명: 위의 그래프는 depth가 k=2만큼인 Tree구조로도 볼 수 있다. 

1) 아이디어1 - Aggregate Neighbors

  • 핵심 개념: 
    • 근접 이웃 네트워크(local network neighborhood)를 기반으로 임베딩을 생성한다.
    • 각 노드들의 정보를 Neural Networks를 통해 결합한다. 
      • 즉, Target Node와 연결된 모든 이웃들의 임베딩을 다시 NN을 통해 결합(Aggregate)하여 Target Node의 임베딩을 산출하는 방식
      • 이때, 이웃 노드들의 임베딩 또한 연결된 모든 노드들의 정보를 결합(Aggregate)하여 생성

(1) 특징1 - Computational graph 

  • 모든 노드들은 이웃들을 기반으로 각각 Computation Graph를 표현할 수 있다. 

(2) 특징2 - Deep Model (Many Layers) 

  • 모델은 임의적인 깊이(arbitrary depth)를 갖는다. 
    • Layer-0 임베딩은 input feature인 x_v이다. 
    • Layer-K 임베딩은K hop만큼 떨어진 정보를 지니고 있다.
      • 즉, K번 aggregate된 정보를 지니고 있다. 

(3) 특징3 - Neighborhood Aggregation

 

  • Information을 얼마나 다양한 방식으로 결합할지가 중요하다. 
  • Basic Approach:
    • 1) 이웃 임베딩들의 정보를 평균낸다. 
    • 2) 이 정보들을 NN을 거쳐 계산한다.

(4) K번째 Embedding 계산 공식 

  • h0: 최초 h0 임베딩은 node feature와 동일하다.
  • z = Neighbor Aggregation의 결과로써 나온 임베딩 z는 h와 동일하다. 
  • sigma = 활성화 함수를 나타낸다. (e.g., sigmoid, ReLU 등) 
  • K = 전체 Layer의 개수를 나타낸다. 
  • h(k) = k번째 layer의 임베딩을 나타낸다. 
  • ∑h(k)_N(v) / |N(V)| = k번째 노드 v의 이웃 노드 임베딩들의 평균이다.\ 

  • W_k = 이웃 노드 임베딩들의 정보에 대한 학습 가중치이다.
  • B_k = 자신 노드 임베딩에 대한 학습 가중치이다. 
  • W_k와 B_k는 학습 가능한 파라미터이다. (Trainable parameter)
  • SGD방식을 통해 파라미터를 학습할 수 있다. 

3. CNNs과 Transformers를 포함하는 개념인 GNNs

(1) CNN - Convolutional Neural Networks 

  • CNN은 fixed neighbor size와 fixed ordering을 가진 GNN으로도 볼 수 있다.
    • CNN은 filter 사이즈가 pre-defined되어 있다. 
    • GNN의 장점은 각각의 node들에 대해 각기 다른 임의의 depth를 가진 그래프를 계산할 수 있다는 점이다. 
  • CNN은 순열 불변(Permutation equivariant)하지 않다. 
    • 픽셀들의 순서를 바꾸면 다른 이미지가 된다. 

(2) Transformer - self-attention

  • Transformer는 Sequential 모델링에서 많이 쓰이는 구조이다. 
    • self-attention은 Token들간의 모든 관계를 포함한다. 
    • self-attention이 다른 모든 단어들과의 관계를 참조하기 때문에 fully-connected-"word"-GNN으로도 볼 수 있다. 
반응형