GNN (Graph Neural Network)

Taehong Jang·2022년 3월 31일
0

DeepLearning

목록 보기
1/1

정리했는데 내가 정리한 내용이 씨알이 없다

원문

본 내용 : GNN소개-기초부터 논문까지

Graph Neural Network

그래프에 직접 적용할 수 있는 신경망
점(node) 레벨, 선(edge) 레벨, 그래프 레벨에서 예측 가능

그래프의 경우 컴퓨터에서 연산을 위해 보통 행렬로 표현된다.

노드를 기준 - Feature matrix
엣지를 기준 - Adjacency matrix

노드의 경우 그 노드에 해당하는 자체에 대한 정보이고
엣지의 경우 그 노드들 간의 관계와 관련한 정보를 담음

ex)노드 = 사람 , 엣지 = 관계 이라고 하면

feature matrix = 노드의 정보 = 사람의 어떤 정보
adjacency matrix = 노드간의 정보 = 사람의 지인 여부(0,1) or 사람간의 친밀도(0~10)...

  • feature matrix
성별나이외향적
사람10200
사람21321
............
사람n1130
  • node에 대한 정보를 vector화하여 저장하므로 node embedding이라고 부른다고 함

  • adjacency matrix(지인여부)
사람1사람2...사람n
사람110...1
사람201...1
...
사람n11...1
  • 표현하기 나름이니깐 엣지의 feature도 만들수도 있고, 정해진 건 없음.

지금까지 논문들로는 3부류로 나뉨(2020년 3월 기준일 듯)

  1. Recurrent GNN
  2. Spatial Convolutional Network
  3. Spectral Convolutional Network

Recurrent GNN

Banach Fixed-point Theorem을 기초

그 내용은,

xx에 mapping T 를 적용 할 때, kk가 충분히 크면
T를 kk번 적용한 값과 k+1k+1번 적용한 값이 거의 같다.

connected = co, neighbor =ne

노드의 상태 업데이트 함수 : fwf_w

노드 n의 feature(=label) : lnl_n
노드 n에 연결된 엣지들의 feature(=label) : lco[n]l_{co[n]}
노드 n의 이웃한 노드들의 states : xne[n]x_{ne[n]}
노드 n의 이웃한 노드들의 feature(=label) : lne[n]l_{ne[n]}

xn=fw(ln,lco[n],xne[n],lne[n])x_n = f_w(l_n,l_{co[n]},x_{ne[n]},l_{ne[n]})

kk번 반복 업데이트 후 마지막 state와 xnx_n, feature lnl_n결과 값을 이용해 ono_n을 얻음

on=gw(xn,ln)o_n = g_w(x_n,l_n)

>>해당 논문

의문사항 :
1. 적당한 kk 값을 정하는 기준은?
2. gwg_wfwf_w의 식의 실제 모습은 어떨지 궁금 -->(논문에 있다고 함)
3. 결과값 OnO_n이 그래서 뭐고?

Spatial Convolutional Network

CNN이 학습 가능한 필터로 주변 픽셀과 합쳐서 feature를 고도화 하듯이, 주변 노드를의 특징을 활용한다는 것

Spectral Convolutional Network

>>해당 논문

해당 내용의 경우 PPT로 한번 정리했으므로 내용 생략

GNN의 활용

GNN이 문제해결하는 방법은 크게 3가지 정도

  1. Node Classification
  2. Link Prediction
  3. Graph Classification

이 후 내용은 본 내용에 정리된 그대로 이해함

0개의 댓글