Deep Learning/GNN

EvolveGCN

zooyeonii 2021. 8. 29. 23:00

이 논문은 official code가 있다. 
https://github.com/IBM/EvolveGCN  IBM에서 발표한 논문이다.. 

https://arxiv.org/pdf/1902.10191.pdf  AAAI 2020 


dynamic graph를 다루기 위해 GNN+RNN을 결합시켰다. 
기존 GNN+RNN 의 결합은, GNN은 feature 추출용으로, RNN은 추출된 feature, sequence learning 용으로 쓰였었는데, 
하지만 이럴 경우 새로운 노드의 학습이 어렵고, 노드가 on/off 되는 경우의 학습이 어렵다. 

EvolveGCN은 RNN으로 GCN parameter를 업데이트하면서 GCN parameter가 historical information, 즉 과거 그래프의 정보를 포함하게 된다. 
근데 사실상 RNN 이 다 한다. RNN input으로, 또는 hidden state 로 GCN parameter를 넣어서 업데이트 시키자. 가 일종의 아이디어랄까..? 

EvolveGCN Overview

EvolveGCN 은 두가지 버전이 있다. 
-H 와 -O 
EvolveGCN -H : GCN 파라미터가 RNN의 hidden state이고, node embedding 이 RNN의 input으로 들어가서 GCN 파라미터를 업데이트한다. 
RNN에 node embedding이 input으로 들어가서 다시 GCN 파라미터를 업데이트하는 모습으로, GCN파라미터 업데이트에 node feature의 영향력이 있다. 현재 그래프의 node feature가 중요할 경우, -H version 을 선택하는 것이 좋겠다. 

빨간색이 input, 파란색이 output 이다. 

EvolveGCN -O : GCN파라미터가 RNN의 input / output 이다. node embedding은 전달되지 않고, 오직 파라미터만 들어간다. 좀 더 그래프 구조 위주로 업데이트가 될 것이라 예상할 수 있다. 

실험 결과는 Link prediction, edge classification(link prediction과 사실상 같음) 에서 좋은 성능을 보인다. 
node classification에서는 눈에 띌 정도의 성능은 보이지 못했다. 

F1 score. 높을 수록 좋은 성능을 보이는 것이라 할 수 있음. Evolve -H&-O version 이 상대적으로 높은 성능을 보이고 있음. 하지만 일부 데이터셋에 한정된 모습...
(좌) edge classification, (우) node classification

node classification에 쓰인 데이터는 Elliptic dataset으로, 각 노드가 트랜잭션이고 fraud 행위를 하는 노드를 찾아내는 문제인데, 곤두박질치고 있는 시점부터 노드들이 fraud행위를 시작했다고 보면 된다. GCN, GCN+RNN 다른 알고리즘, EvolveGCN 모두 별로 좋은 성능을 보이지 않는다. Elliptic dataset이 워낙 방대한 데이터이다 보니 그런 것 같기도 한데.. 좋은 성능을 보이지 못하는데 굳이 논문에 언급한 이유는 무엇일지 궁금하다. 

 

'Deep Learning > GNN' 카테고리의 다른 글

GNN cs224w 2강, 6강, 10강  (0) 2021.08.01