2019 Presentation
Graph Convolutional Network (GCN)
Introduction to GCN
Donghyeon Kim
2019.05.07
2 / 51
Acknowledgement
 2019 KAIST 딥러닝 홀로서기 세미나
• Ideafactory KAIST
(https://github.com/heartcored98/Standalone-DeepLearning)
• 카이스트 대학원생들이 만든 꿀강좌!
3 / 51
Contents
 Data Representation: Graph
 Graph Structure
 Graph Convolutional Network (GCN) 기초 개념
 Advanced GCN 소개
 BrainNetCNN 소개
전반적으로 아직 수학적인 내용을 음미하지 못했습니다
다음 기회에 세부적으로 상세한 내용을 다뤄 보겠습니다..!
4 / 51
Data Representation
 Image & Sequential Data
• 이미지: 2차원 평면에 그려진 시각적 표현 – 각각의 픽셀마다 값이 표현
• 시계열 데이터: 시간 별로 구성된 값의 집합
· 음성, 자연 언어, 센서 데이터, 주가 등
http://minecraftpixelartbuildingideas.blogspot.com/2013/02/basic-pixel-art-iron-man-collection.html#
http://matlabcode.blogspot.com/2007/06/blog-post_9726.html
5 / 51
Data Representation
 Graph
• 일부 객체들의 쌍들이 서로 연관된 객체의 집합을 이루는 구조
https://blog.searchmetrics.com/us/google-and-the-social-graph-more-data-to-feed-the-beast/
https://www.slideshare.net/LucBrun2/graph-kernels
https://www.neurobureau.org/matlab-handle-graphics-3/
6 / 51
Graph Structure
 Vertex (Node) 와 Edge 로 정의
 종류
• Directed / Un-directed
• Weighted / Un-weighted
7 / 51
Graph Structure
 Edge 정보: Adjacency Matrix (A)
 Node 정보: Node Feature Matrix (X)
1
2
3
5
4
8 / 51
Graph Structure
 Edge 정보: Adjacency Matrix (A)
 Node 정보: Node Feature Matrix (X)
1
2
3
5
4
0 1 1 0 0
1 0 1 1 1
1 1 0 1 1
0 1 1 0 1
0 1 1 1 0
Adjacency Matrix A (n x n)
Node 1
Node 2
Node 3
Node 4
Node 5
Node 1 Node 2 Node 3 Node 4 Node 5
각각의 row: 노드의 연결 정보
[참고] n: 노드의 수
9 / 51
Graph Structure
 Edge 정보: Adjacency Matrix (A)
 Node 정보: Node Feature Matrix (X)
1
2
3
5
4
0 1 1 0 0
1 0 1 1 1
1 1 0 1 1
0 1 1 0 1
0 1 1 1 0
1 1 1 0 0
1 1 1 1 1
1 1 1 1 1
0 1 1 1 1
0 1 1 1 1
Adjacency Matrix A (n x n) Feature Matrix X (n x f)
Node 1
Node 2
Node 3
Node 4
Node 5
Node 1 Node 2 Node 3 Node 4 Node 5
예시) X = A + I
Node 1
Node 2
Node 3
Node 4
Node 5
Feat. 1 Feat. 2 Feat. 3 Feat. 4 Feat. 5
각각의 row: 노드의 연결 정보 각각의 row: 노드의 특징 벡터 정보
[참고] n: 노드의 수 / f: 특징의 수
10/ 51
(Remind) Convolution
http://cs231n.stanford.edu/slides/2017/cs231n_2017_lecture6.pdf
11 / 51
(Remind) Convolution
http://cs231n.stanford.edu/slides/2017/cs231n_2017_lecture6.pdf
12/ 51
(Remind) Convolution
 Convolution 연산의 특징
• 적은 수의 파라미터 (계산량이 적고, 오버피팅 위험도 적다)
• 지역적인 특성 학습
• Translational invariances
 Convolutional Neural Network (CNN)
• CNN은 합성곱(convolution) 연산을 사용하는 네트워크로, 적합한
convolution (=weight, =filter) 값을 스스로 학습한다
• CNN은 각 레이어의 activation maps의 값들을 업데이트한다
13/ 51
(Remind) Convolution
 Convolution 연산의 특징
• 적은 수의 파라미터 (계산량이 적고, 오버피팅 위험도 적다)
• 지역적인 특성 학습
• Translational invariances
 Convolutional Neural Network (CNN)
• CNN은 합성곱(convolution) 연산을 사용하는 네트워크로, 적합한
convolution (=weight, =filter) 값을 스스로 학습한다
• CNN은 각 레이어의 activation maps의 값들을 업데이트한다
 이미지에 대한 CNN 연산을 그래프에 대해 적용한다면?  GCN
14/ 51
Graph Convolutional Network (GCN)
 CNN  GCN
https://towardsdatascience.com/a-comprehensive-guide-to-convolutional-neural-networks-the-eli5-way-3bd2b1164a53
https://tkipf.github.io/graph-convolutional-networks/
15/ 51
Graph Convolutional Network (GCN)
 CNN  GCN
https://towardsdatascience.com/a-comprehensive-guide-to-convolutional-neural-networks-the-eli5-way-3bd2b1164a53
https://tkipf.github.io/graph-convolutional-networks/
각 레이어를 거치면서
Convolution 연산을 수행하고
픽셀 값을 업데이트
16/ 51
Graph Convolutional Network (GCN)
 CNN  GCN
https://towardsdatascience.com/a-comprehensive-guide-to-convolutional-neural-networks-the-eli5-way-3bd2b1164a53
https://tkipf.github.io/graph-convolutional-networks/
각 레이어를 거치면서
Convolution 연산을 수행하고
픽셀 값을 업데이트
17/ 51
Graph Convolutional Network (GCN)
 CNN  GCN
https://towardsdatascience.com/a-comprehensive-guide-to-convolutional-neural-networks-the-eli5-way-3bd2b1164a53
https://tkipf.github.io/graph-convolutional-networks/
각 레이어를 거치면서
Convolution 연산을 수행하고
픽셀 값을 업데이트
각 레이어를 거치면서
Convolution 연산을 수행하고
그래프 값을 업데이트
18/ 51
Graph Convolutional Network (GCN)
 CNN  GCN
https://towardsdatascience.com/a-comprehensive-guide-to-convolutional-neural-networks-the-eli5-way-3bd2b1164a53
https://tkipf.github.io/graph-convolutional-networks/
각 레이어를 거치면서
Convolution 연산을 수행하고
픽셀 값을 업데이트
각 레이어를 거치면서
Convolution 연산을 수행하고
그래프 값을 업데이트
 노드의 feature 값 업데이트
19/ 51
Graph Convolutional Network
 Concept (Example)
• 4 Nodes
• 5 Features for each node 1 1 1 1
1 1 0 0
1 0 1 0
1 0 0 1
Adjacency Matrix A (4 x 4)
Feature Matrix X (4 x 5)
1
2 3
4
20/ 51
Graph Convolutional Network
 Concept (Example)
• Want to update feature values
1
2 3
4
1
2 3
4
?
+ Weight Sharing
+ 주변 노드 정보 활용
21/ 51
Graph Convolutional Network
 Update node feature values
1
2 3
4
1
2 3
4
𝐻1
(𝑙+1)
= 𝜎 𝐻1
(𝑙)
𝑊(𝑙)
+ 𝐻2
(𝑙)
𝑊(𝑙)
+ 𝐻3
(𝑙)
𝑊(𝑙)
+ 𝐻4
(𝑙)
𝑊(𝑙)
+ 𝑏(𝑙)
𝐻𝑖
(𝑙)
: 𝑙번째 레이어의 𝑖번째 노드 feature
𝜎 ∙ : activation function
𝑊(𝑙)
, 𝑏(𝑙)
: 𝑙번째 레이어의 weight 와 bias
22/ 51
Graph Convolutional Network
 Update node feature values
𝐻1
(𝑙+1)
= 𝜎 𝐻1
(𝑙)
𝑾(𝒍)
+ 𝐻2
(𝑙)
𝑾(𝒍)
+ 𝐻3
(𝑙)
𝑾(𝒍)
+ 𝐻4
(𝑙)
𝑾(𝒍)
+ 𝑏(𝑙)
Weight Sharing
𝑾(𝒍)
1
2 3
4
1
2 3
4
23/ 51
Graph Convolutional Network
 Update node feature values
1
2 3
4
1
2 3
4
𝐻2
(𝑙+1)
= 𝜎 𝐻1
(𝑙)
𝑊(𝑙)
+ 𝐻2
(𝑙)
𝑊(𝑙)
+ 𝐻3
(𝑙)
𝑊(𝑙)
+ 𝐻4
(𝑙)
𝑊(𝑙)
+ 𝑏(𝑙)
𝑊(𝑙)
24/ 51
Graph Convolutional Network
 Update node feature values
1
2 3
4
1
2 3
4
𝐻2
(𝑙+1)
= 𝜎 𝐻1
(𝑙)
𝑊(𝑙)
+ 𝐻2
(𝑙)
𝑊(𝑙)
+ 𝐻3
(𝑙)
𝑊(𝑙)
+ 𝐻4
(𝑙)
𝑊(𝑙)
+ 𝑏(𝑙)
0 0
주변 노드 정보 활용
𝑊(𝑙)
25/ 51
Graph Convolutional Network
 Update node feature values
1
2 3
4
1
2 3
4
𝐻3
(𝑙+1)
= 𝜎 𝐻1
(𝑙)
𝑊(𝑙)
+ 𝐻3
(𝑙)
𝑊(𝑙)
+ 𝑏(𝑙)
𝑊(𝑙)
26/ 51
Graph Convolutional Network
 Update node feature values
1
2 3
4
1
2 3
4
𝐻4
(𝑙+1)
= 𝜎 𝐻1
(𝑙)
𝑊(𝑙)
+ 𝐻4
(𝑙)
𝑊(𝑙)
+ 𝑏(𝑙)
𝑊(𝑙)
27/ 51
Graph Convolutional Network
 Update node feature values
1
2 3
4
1
2 3
4
𝐻𝑖
(𝑙+1)
= 𝜎 ෍
𝑗∈𝑁(𝑖)
𝐻𝑗
(𝑙)
𝑊(𝑙) + 𝑏(𝑙)
𝐻(𝑙+1) = 𝜎 𝐴𝐻(𝑙) 𝑊(𝑙) + 𝑏(𝑙)
(𝑙 + 1) 번째 레이어(𝑙) 번째 레이어
or
28/ 51
Graph Convolutional Network
 Update node feature values
1
2 3
4
(𝑙 + 1) 번째 레이어
1 1 1 1
1 1 0 0
1 0 1 0
1 0 0 1
Adjacency Matrix A (4 x 4)
Feature Matrix X (4 x 5)
29/ 51
Graph Convolutional Network
 How to update hidden states in GCN (Matrix 연산으로 이해하기)
1 1 0 0 1
1 1 1 1 1
0 1 1 1 0
0 1 1 1 1
1 1 0 1 1
Adjacency Matrix
A (5 x 5)
Feature Matrix
X = H0 (5 x 3)
(예시) 이름 성별 나이
각 노드는 3개의
feature 값을 갖는다
30/ 51
Graph Convolutional Network
 How to update hidden states in GCN (Matrix 연산으로 이해하기)
1 1 0 0 1
1 1 1 1 1
0 1 1 1 0
0 1 1 1 1
1 1 0 1 1
A (5 x 5) X = H0 (5 x 3)
W0 (3 x 4)
Weight filter 4개
𝐻(𝑙+1)
= 𝜎 𝑨𝑯(𝒍)
𝑾(𝒍)
+ 𝑏(𝑙)
Learnable Parameters
31/ 51
Graph Convolutional Network
 How to update hidden states in GCN (Matrix 연산으로 이해하기)
1 1 0 0 1
1 1 1 1 1
0 1 1 1 0
0 1 1 1 1
1 1 0 1 1
A (5 x 5) X * W0 (5 x 4)
𝐻(𝑙+1)
= 𝜎 𝐴𝑯(𝒍)
𝑾(𝒍)
+ 𝑏(𝑙)
32/ 51
Graph Convolutional Network
 How to update hidden states in GCN (Matrix 연산으로 이해하기)
1 1 0 0 1
1 1 1 1 1
0 1 1 1 0
0 1 1 1 1
1 1 0 1 1
A (5 x 5) X * W0 (5 x 4)
𝐻(𝑙+1)
= 𝜎 𝐴𝐻(𝑙)
𝑊(𝑙)
+ 𝑏(𝑙)
33/ 51
Graph Convolutional Network
 How to update hidden states in GCN (Matrix 연산으로 이해하기)
A * X * W0 (5 x 4)
𝐻(𝑙+1)
= 𝜎 𝑨𝑯(𝒍)
𝑾(𝒍)
+ 𝑏(𝑙)
34/ 51
Graph Convolutional Network
 How to update hidden states in GCN (Matrix 연산으로 이해하기)
1 1 0 0 1
1 1 1 1 1
0 1 1 1 0
0 1 1 1 1
1 1 0 1 1
A (5 x 5) X = H0 (5 x 3)
𝐻(𝑙+1)
= 𝜎 𝐴𝐻(𝑙)
𝑊(𝑙)
+ 𝑏(𝑙)
35/ 51
Graph Convolutional Network
 How to update hidden states in GCN (Matrix 연산으로 이해하기)
1 1 0 0 1
1 1 1 1 1
0 1 1 1 0
0 1 1 1 1
1 1 0 1 1
A (5 x 5) X = H0 (5 x 3)
𝐻(𝑙+1)
= 𝜎 𝐴𝐻(𝑙)
𝑊(𝑙)
+ 𝑏(𝑙)
1 1 0 0 1
1 1 1 1 1
0 1 1 1 0
0 1 1 1 1
1 1 0 1 1
A (5 x 5) H1 (5 x 4)
36/ 51
Graph Convolutional Network
 How to update hidden states in GCN (Matrix 연산으로 이해하기)
𝐻(𝑙+1)
= 𝜎 𝐴𝐻(𝑙)
𝑊(𝑙)
+ 𝑏(𝑙)
Adjacency Matrix
A (n x n)
Feature Matrix
X (n x f)
Weight Matrix
W (f x d)
(참고) n: 노드의 수 / f: 특징 수 / d: 필터수 (depth)
결국 d가 다음 레이어의 f 값이 된다
37/ 51
Graph Convolutional Network
 Readout: Permutation Invariance
노드 순서에 따라 값의 변동이 있을 수 있다
a
b
c
a b c d
d c a b
c
a
b
38/ 51
Graph Convolutional Network
 Readout: Permutation Invariance
노드 순서에 따라 값의 변동이 있을 수 있다
𝑧 𝐺 = 𝜎 ෍
𝑖∈𝐺
𝑀𝐿𝑃(𝐻𝑖
(𝑙)
)
Readout 방법 중 한가지: Node-wise summation
a
b
c
a b c d
d c a b
c
a
b
39/ 51
Graph Convolutional Network
 Readout: Permutation Invariance
a
b
c
a b c d
d c a b
c
a
b
노드 순서에 따라 값의 변동이 있을 수 있다
𝑧 𝐺 = 𝜎 ෍
𝑖∈𝐺
𝑀𝐿𝑃(𝐻𝑖
(𝑙)
)
Readout 방법 중 한가지: Node-wise summation
𝑀𝐿𝑃(𝐻𝑖
(𝑙)
) 𝜎 ෍
𝑖∈𝐺
∙
40/ 51
Graph Convolutional Network
 Overall Structure of GCN
딥러닝 홀로서기
https://arxiv.org/pdf/1805.10988.pdf
41/ 51
Advanced GCN
 Skip Connection & Gated Skip Connection
딥러닝 홀로서기
https://arxiv.org/pdf/1805.10988.pdf
42/ 51
Advanced GCN
 Skip Connection & Gated Skip Connection
딥러닝 홀로서기
https://arxiv.org/pdf/1805.10988.pdf
43/ 51
Advanced GCN
 Attention
딥러닝 홀로서기
https://arxiv.org/pdf/1805.10988.pdf
44/ 51
문득 떠오르는 의문..?
Node의 feature 값 업데이트도 중요한 건 알겠는데,
Edge 값을 업데이트 하는 게 더 필요한 경우도 있지 않을까?
45/ 51
BrainNetCNN
 다중 센서 신호 상관관계 (인접행렬) 정보가 중요한 경우가 있다
• Correlation-coefficient / Mutual Information, Coherence, Granger causality..
Racz, F. S. et al., (2018). Multifractal dynamics of resting-state functional connectivity in the prefrontal cortex. Physiological measurement, 39(2), 024003.
Kawahara, J. et al., (2017). BrainNetCNN: convolutional neural networks for brain networks; towards predicting neurodevelopment. NeuroImage, 146, 1038-1049.
46/ 51
BrainNetCNN
 인접행렬에 적합한 컨벌루션 필터를 적용해서 CNN 적용하기
http://brainnetcnn.cs.sfu.ca/About.html
Kawahara, J. et al., (2017). BrainNetCNN: convolutional neural networks for brain networks; towards predicting neurodevelopment. NeuroImage, 146, 1038-1049.
47/ 51
갈 길은 멀다
48/ 51
갈 길은 멀다
DL on Graph
Survey
2018
GNN
2009
GNN Review
2019
GCN
2017
GNN
Survey
2019
Relational
Inductive
Biases
2018
49/ 51
갈 길은 멀다
Zhou, J., Cui, G., Zhang, Z., Yang, C., Liu, Z., & Sun, M. (2018). Graph neural networks: A review of methods and applications. arXiv preprint arXiv:1812.08434.
50/ 51
Summary
 그래프 (Node와 Edge) 로 표현되는 데이터의 Node feature 속성을
Edge값을 고려하여 충분히 이용하기 위해 GCN 을 사용한다
 GCN의 연산에는 두 가지 input이 필요하고, Weight 를 학습해야 한다
• Adjacency Matrix (A), Node Feature Matrix (X)
 Advanced GCN이 가능하다
• Skip-connection/ gate/ attention
 Node feature 업데이트 뿐만 아니라, Edge feature 업데이트도 가능하다
• 데이터 특성과 필요한 기법에 따라 적용이 달라진다
Thank You
2019 Presentation

[기초개념] Graph Convolutional Network (GCN)

  • 1.
    2019 Presentation Graph ConvolutionalNetwork (GCN) Introduction to GCN Donghyeon Kim 2019.05.07
  • 2.
    2 / 51 Acknowledgement 2019 KAIST 딥러닝 홀로서기 세미나 • Ideafactory KAIST (https://github.com/heartcored98/Standalone-DeepLearning) • 카이스트 대학원생들이 만든 꿀강좌!
  • 3.
    3 / 51 Contents Data Representation: Graph  Graph Structure  Graph Convolutional Network (GCN) 기초 개념  Advanced GCN 소개  BrainNetCNN 소개 전반적으로 아직 수학적인 내용을 음미하지 못했습니다 다음 기회에 세부적으로 상세한 내용을 다뤄 보겠습니다..!
  • 4.
    4 / 51 DataRepresentation  Image & Sequential Data • 이미지: 2차원 평면에 그려진 시각적 표현 – 각각의 픽셀마다 값이 표현 • 시계열 데이터: 시간 별로 구성된 값의 집합 · 음성, 자연 언어, 센서 데이터, 주가 등 http://minecraftpixelartbuildingideas.blogspot.com/2013/02/basic-pixel-art-iron-man-collection.html# http://matlabcode.blogspot.com/2007/06/blog-post_9726.html
  • 5.
    5 / 51 DataRepresentation  Graph • 일부 객체들의 쌍들이 서로 연관된 객체의 집합을 이루는 구조 https://blog.searchmetrics.com/us/google-and-the-social-graph-more-data-to-feed-the-beast/ https://www.slideshare.net/LucBrun2/graph-kernels https://www.neurobureau.org/matlab-handle-graphics-3/
  • 6.
    6 / 51 GraphStructure  Vertex (Node) 와 Edge 로 정의  종류 • Directed / Un-directed • Weighted / Un-weighted
  • 7.
    7 / 51 GraphStructure  Edge 정보: Adjacency Matrix (A)  Node 정보: Node Feature Matrix (X) 1 2 3 5 4
  • 8.
    8 / 51 GraphStructure  Edge 정보: Adjacency Matrix (A)  Node 정보: Node Feature Matrix (X) 1 2 3 5 4 0 1 1 0 0 1 0 1 1 1 1 1 0 1 1 0 1 1 0 1 0 1 1 1 0 Adjacency Matrix A (n x n) Node 1 Node 2 Node 3 Node 4 Node 5 Node 1 Node 2 Node 3 Node 4 Node 5 각각의 row: 노드의 연결 정보 [참고] n: 노드의 수
  • 9.
    9 / 51 GraphStructure  Edge 정보: Adjacency Matrix (A)  Node 정보: Node Feature Matrix (X) 1 2 3 5 4 0 1 1 0 0 1 0 1 1 1 1 1 0 1 1 0 1 1 0 1 0 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 Adjacency Matrix A (n x n) Feature Matrix X (n x f) Node 1 Node 2 Node 3 Node 4 Node 5 Node 1 Node 2 Node 3 Node 4 Node 5 예시) X = A + I Node 1 Node 2 Node 3 Node 4 Node 5 Feat. 1 Feat. 2 Feat. 3 Feat. 4 Feat. 5 각각의 row: 노드의 연결 정보 각각의 row: 노드의 특징 벡터 정보 [참고] n: 노드의 수 / f: 특징의 수
  • 10.
  • 11.
    11 / 51 (Remind)Convolution http://cs231n.stanford.edu/slides/2017/cs231n_2017_lecture6.pdf
  • 12.
    12/ 51 (Remind) Convolution Convolution 연산의 특징 • 적은 수의 파라미터 (계산량이 적고, 오버피팅 위험도 적다) • 지역적인 특성 학습 • Translational invariances  Convolutional Neural Network (CNN) • CNN은 합성곱(convolution) 연산을 사용하는 네트워크로, 적합한 convolution (=weight, =filter) 값을 스스로 학습한다 • CNN은 각 레이어의 activation maps의 값들을 업데이트한다
  • 13.
    13/ 51 (Remind) Convolution Convolution 연산의 특징 • 적은 수의 파라미터 (계산량이 적고, 오버피팅 위험도 적다) • 지역적인 특성 학습 • Translational invariances  Convolutional Neural Network (CNN) • CNN은 합성곱(convolution) 연산을 사용하는 네트워크로, 적합한 convolution (=weight, =filter) 값을 스스로 학습한다 • CNN은 각 레이어의 activation maps의 값들을 업데이트한다  이미지에 대한 CNN 연산을 그래프에 대해 적용한다면?  GCN
  • 14.
    14/ 51 Graph ConvolutionalNetwork (GCN)  CNN  GCN https://towardsdatascience.com/a-comprehensive-guide-to-convolutional-neural-networks-the-eli5-way-3bd2b1164a53 https://tkipf.github.io/graph-convolutional-networks/
  • 15.
    15/ 51 Graph ConvolutionalNetwork (GCN)  CNN  GCN https://towardsdatascience.com/a-comprehensive-guide-to-convolutional-neural-networks-the-eli5-way-3bd2b1164a53 https://tkipf.github.io/graph-convolutional-networks/ 각 레이어를 거치면서 Convolution 연산을 수행하고 픽셀 값을 업데이트
  • 16.
    16/ 51 Graph ConvolutionalNetwork (GCN)  CNN  GCN https://towardsdatascience.com/a-comprehensive-guide-to-convolutional-neural-networks-the-eli5-way-3bd2b1164a53 https://tkipf.github.io/graph-convolutional-networks/ 각 레이어를 거치면서 Convolution 연산을 수행하고 픽셀 값을 업데이트
  • 17.
    17/ 51 Graph ConvolutionalNetwork (GCN)  CNN  GCN https://towardsdatascience.com/a-comprehensive-guide-to-convolutional-neural-networks-the-eli5-way-3bd2b1164a53 https://tkipf.github.io/graph-convolutional-networks/ 각 레이어를 거치면서 Convolution 연산을 수행하고 픽셀 값을 업데이트 각 레이어를 거치면서 Convolution 연산을 수행하고 그래프 값을 업데이트
  • 18.
    18/ 51 Graph ConvolutionalNetwork (GCN)  CNN  GCN https://towardsdatascience.com/a-comprehensive-guide-to-convolutional-neural-networks-the-eli5-way-3bd2b1164a53 https://tkipf.github.io/graph-convolutional-networks/ 각 레이어를 거치면서 Convolution 연산을 수행하고 픽셀 값을 업데이트 각 레이어를 거치면서 Convolution 연산을 수행하고 그래프 값을 업데이트  노드의 feature 값 업데이트
  • 19.
    19/ 51 Graph ConvolutionalNetwork  Concept (Example) • 4 Nodes • 5 Features for each node 1 1 1 1 1 1 0 0 1 0 1 0 1 0 0 1 Adjacency Matrix A (4 x 4) Feature Matrix X (4 x 5) 1 2 3 4
  • 20.
    20/ 51 Graph ConvolutionalNetwork  Concept (Example) • Want to update feature values 1 2 3 4 1 2 3 4 ? + Weight Sharing + 주변 노드 정보 활용
  • 21.
    21/ 51 Graph ConvolutionalNetwork  Update node feature values 1 2 3 4 1 2 3 4 𝐻1 (𝑙+1) = 𝜎 𝐻1 (𝑙) 𝑊(𝑙) + 𝐻2 (𝑙) 𝑊(𝑙) + 𝐻3 (𝑙) 𝑊(𝑙) + 𝐻4 (𝑙) 𝑊(𝑙) + 𝑏(𝑙) 𝐻𝑖 (𝑙) : 𝑙번째 레이어의 𝑖번째 노드 feature 𝜎 ∙ : activation function 𝑊(𝑙) , 𝑏(𝑙) : 𝑙번째 레이어의 weight 와 bias
  • 22.
    22/ 51 Graph ConvolutionalNetwork  Update node feature values 𝐻1 (𝑙+1) = 𝜎 𝐻1 (𝑙) 𝑾(𝒍) + 𝐻2 (𝑙) 𝑾(𝒍) + 𝐻3 (𝑙) 𝑾(𝒍) + 𝐻4 (𝑙) 𝑾(𝒍) + 𝑏(𝑙) Weight Sharing 𝑾(𝒍) 1 2 3 4 1 2 3 4
  • 23.
    23/ 51 Graph ConvolutionalNetwork  Update node feature values 1 2 3 4 1 2 3 4 𝐻2 (𝑙+1) = 𝜎 𝐻1 (𝑙) 𝑊(𝑙) + 𝐻2 (𝑙) 𝑊(𝑙) + 𝐻3 (𝑙) 𝑊(𝑙) + 𝐻4 (𝑙) 𝑊(𝑙) + 𝑏(𝑙) 𝑊(𝑙)
  • 24.
    24/ 51 Graph ConvolutionalNetwork  Update node feature values 1 2 3 4 1 2 3 4 𝐻2 (𝑙+1) = 𝜎 𝐻1 (𝑙) 𝑊(𝑙) + 𝐻2 (𝑙) 𝑊(𝑙) + 𝐻3 (𝑙) 𝑊(𝑙) + 𝐻4 (𝑙) 𝑊(𝑙) + 𝑏(𝑙) 0 0 주변 노드 정보 활용 𝑊(𝑙)
  • 25.
    25/ 51 Graph ConvolutionalNetwork  Update node feature values 1 2 3 4 1 2 3 4 𝐻3 (𝑙+1) = 𝜎 𝐻1 (𝑙) 𝑊(𝑙) + 𝐻3 (𝑙) 𝑊(𝑙) + 𝑏(𝑙) 𝑊(𝑙)
  • 26.
    26/ 51 Graph ConvolutionalNetwork  Update node feature values 1 2 3 4 1 2 3 4 𝐻4 (𝑙+1) = 𝜎 𝐻1 (𝑙) 𝑊(𝑙) + 𝐻4 (𝑙) 𝑊(𝑙) + 𝑏(𝑙) 𝑊(𝑙)
  • 27.
    27/ 51 Graph ConvolutionalNetwork  Update node feature values 1 2 3 4 1 2 3 4 𝐻𝑖 (𝑙+1) = 𝜎 ෍ 𝑗∈𝑁(𝑖) 𝐻𝑗 (𝑙) 𝑊(𝑙) + 𝑏(𝑙) 𝐻(𝑙+1) = 𝜎 𝐴𝐻(𝑙) 𝑊(𝑙) + 𝑏(𝑙) (𝑙 + 1) 번째 레이어(𝑙) 번째 레이어 or
  • 28.
    28/ 51 Graph ConvolutionalNetwork  Update node feature values 1 2 3 4 (𝑙 + 1) 번째 레이어 1 1 1 1 1 1 0 0 1 0 1 0 1 0 0 1 Adjacency Matrix A (4 x 4) Feature Matrix X (4 x 5)
  • 29.
    29/ 51 Graph ConvolutionalNetwork  How to update hidden states in GCN (Matrix 연산으로 이해하기) 1 1 0 0 1 1 1 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 0 1 1 Adjacency Matrix A (5 x 5) Feature Matrix X = H0 (5 x 3) (예시) 이름 성별 나이 각 노드는 3개의 feature 값을 갖는다
  • 30.
    30/ 51 Graph ConvolutionalNetwork  How to update hidden states in GCN (Matrix 연산으로 이해하기) 1 1 0 0 1 1 1 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 0 1 1 A (5 x 5) X = H0 (5 x 3) W0 (3 x 4) Weight filter 4개 𝐻(𝑙+1) = 𝜎 𝑨𝑯(𝒍) 𝑾(𝒍) + 𝑏(𝑙) Learnable Parameters
  • 31.
    31/ 51 Graph ConvolutionalNetwork  How to update hidden states in GCN (Matrix 연산으로 이해하기) 1 1 0 0 1 1 1 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 0 1 1 A (5 x 5) X * W0 (5 x 4) 𝐻(𝑙+1) = 𝜎 𝐴𝑯(𝒍) 𝑾(𝒍) + 𝑏(𝑙)
  • 32.
    32/ 51 Graph ConvolutionalNetwork  How to update hidden states in GCN (Matrix 연산으로 이해하기) 1 1 0 0 1 1 1 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 0 1 1 A (5 x 5) X * W0 (5 x 4) 𝐻(𝑙+1) = 𝜎 𝐴𝐻(𝑙) 𝑊(𝑙) + 𝑏(𝑙)
  • 33.
    33/ 51 Graph ConvolutionalNetwork  How to update hidden states in GCN (Matrix 연산으로 이해하기) A * X * W0 (5 x 4) 𝐻(𝑙+1) = 𝜎 𝑨𝑯(𝒍) 𝑾(𝒍) + 𝑏(𝑙)
  • 34.
    34/ 51 Graph ConvolutionalNetwork  How to update hidden states in GCN (Matrix 연산으로 이해하기) 1 1 0 0 1 1 1 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 0 1 1 A (5 x 5) X = H0 (5 x 3) 𝐻(𝑙+1) = 𝜎 𝐴𝐻(𝑙) 𝑊(𝑙) + 𝑏(𝑙)
  • 35.
    35/ 51 Graph ConvolutionalNetwork  How to update hidden states in GCN (Matrix 연산으로 이해하기) 1 1 0 0 1 1 1 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 0 1 1 A (5 x 5) X = H0 (5 x 3) 𝐻(𝑙+1) = 𝜎 𝐴𝐻(𝑙) 𝑊(𝑙) + 𝑏(𝑙) 1 1 0 0 1 1 1 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 0 1 1 A (5 x 5) H1 (5 x 4)
  • 36.
    36/ 51 Graph ConvolutionalNetwork  How to update hidden states in GCN (Matrix 연산으로 이해하기) 𝐻(𝑙+1) = 𝜎 𝐴𝐻(𝑙) 𝑊(𝑙) + 𝑏(𝑙) Adjacency Matrix A (n x n) Feature Matrix X (n x f) Weight Matrix W (f x d) (참고) n: 노드의 수 / f: 특징 수 / d: 필터수 (depth) 결국 d가 다음 레이어의 f 값이 된다
  • 37.
    37/ 51 Graph ConvolutionalNetwork  Readout: Permutation Invariance 노드 순서에 따라 값의 변동이 있을 수 있다 a b c a b c d d c a b c a b
  • 38.
    38/ 51 Graph ConvolutionalNetwork  Readout: Permutation Invariance 노드 순서에 따라 값의 변동이 있을 수 있다 𝑧 𝐺 = 𝜎 ෍ 𝑖∈𝐺 𝑀𝐿𝑃(𝐻𝑖 (𝑙) ) Readout 방법 중 한가지: Node-wise summation a b c a b c d d c a b c a b
  • 39.
    39/ 51 Graph ConvolutionalNetwork  Readout: Permutation Invariance a b c a b c d d c a b c a b 노드 순서에 따라 값의 변동이 있을 수 있다 𝑧 𝐺 = 𝜎 ෍ 𝑖∈𝐺 𝑀𝐿𝑃(𝐻𝑖 (𝑙) ) Readout 방법 중 한가지: Node-wise summation 𝑀𝐿𝑃(𝐻𝑖 (𝑙) ) 𝜎 ෍ 𝑖∈𝐺 ∙
  • 40.
    40/ 51 Graph ConvolutionalNetwork  Overall Structure of GCN 딥러닝 홀로서기 https://arxiv.org/pdf/1805.10988.pdf
  • 41.
    41/ 51 Advanced GCN Skip Connection & Gated Skip Connection 딥러닝 홀로서기 https://arxiv.org/pdf/1805.10988.pdf
  • 42.
    42/ 51 Advanced GCN Skip Connection & Gated Skip Connection 딥러닝 홀로서기 https://arxiv.org/pdf/1805.10988.pdf
  • 43.
    43/ 51 Advanced GCN Attention 딥러닝 홀로서기 https://arxiv.org/pdf/1805.10988.pdf
  • 44.
    44/ 51 문득 떠오르는의문..? Node의 feature 값 업데이트도 중요한 건 알겠는데, Edge 값을 업데이트 하는 게 더 필요한 경우도 있지 않을까?
  • 45.
    45/ 51 BrainNetCNN  다중센서 신호 상관관계 (인접행렬) 정보가 중요한 경우가 있다 • Correlation-coefficient / Mutual Information, Coherence, Granger causality.. Racz, F. S. et al., (2018). Multifractal dynamics of resting-state functional connectivity in the prefrontal cortex. Physiological measurement, 39(2), 024003. Kawahara, J. et al., (2017). BrainNetCNN: convolutional neural networks for brain networks; towards predicting neurodevelopment. NeuroImage, 146, 1038-1049.
  • 46.
    46/ 51 BrainNetCNN  인접행렬에적합한 컨벌루션 필터를 적용해서 CNN 적용하기 http://brainnetcnn.cs.sfu.ca/About.html Kawahara, J. et al., (2017). BrainNetCNN: convolutional neural networks for brain networks; towards predicting neurodevelopment. NeuroImage, 146, 1038-1049.
  • 47.
  • 48.
    48/ 51 갈 길은멀다 DL on Graph Survey 2018 GNN 2009 GNN Review 2019 GCN 2017 GNN Survey 2019 Relational Inductive Biases 2018
  • 49.
    49/ 51 갈 길은멀다 Zhou, J., Cui, G., Zhang, Z., Yang, C., Liu, Z., & Sun, M. (2018). Graph neural networks: A review of methods and applications. arXiv preprint arXiv:1812.08434.
  • 50.
    50/ 51 Summary  그래프(Node와 Edge) 로 표현되는 데이터의 Node feature 속성을 Edge값을 고려하여 충분히 이용하기 위해 GCN 을 사용한다  GCN의 연산에는 두 가지 input이 필요하고, Weight 를 학습해야 한다 • Adjacency Matrix (A), Node Feature Matrix (X)  Advanced GCN이 가능하다 • Skip-connection/ gate/ attention  Node feature 업데이트 뿐만 아니라, Edge feature 업데이트도 가능하다 • 데이터 특성과 필요한 기법에 따라 적용이 달라진다
  • 51.