이 논문은 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 은 두가지 버전이 있다.
-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 을 선택하는 것이 좋겠다.
EvolveGCN -O : GCN파라미터가 RNN의 input / output 이다. node embedding은 전달되지 않고, 오직 파라미터만 들어간다. 좀 더 그래프 구조 위주로 업데이트가 될 것이라 예상할 수 있다.
실험 결과는 Link prediction, edge classification(link prediction과 사실상 같음) 에서 좋은 성능을 보인다.
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 |
---|