EvolveGCN阅读笔记

952 阅读2分钟

EvolveGCN: Evolving Graph Convolutional Networks for Dynamic Graphs

目录

1、问题描述

问题:以前的动态图模型都是将每一层的节点表示h通过RNN来进行时序建模(节点表示的演化),但是当节点集频繁变化时,这种方法就不太适用了。

解决:将每一层GCNConv的W通过RNN来进行时序建模(GCN权重演化)。

2、EvolveGCN

image.png

image.png

2.1 EvolveGCN-H(GRU)

2.1.1 GRU更新W(Weight Evolution)

当前层当前时刻的节点表示H和当前层上一时刻的权重W作为输入,经过GRU得到hidden state,作为新的W:

Wt(l)=GRU(Ht(l),Wt1(l))W^{(l)}_t = GRU(H^{(l)}_t, W^{(l)}_{t-1})

2.1.2 用更新后的W来做GCNConv

当前层当前时刻的节点表示H和更新后的W,进行GCNConv,得到下一层的节点表示:

Ht(l+1)=GCNConv(At,Ht(l),Wt(l))H^{(l+1)}_t = GCNConv(A_t, H^{(l)}_t, W^{(l)}_t)

2.2 EvolveGCN-O(LSTM)

2.2.1 LSTM更新W(Weight Evolution)

Wt(l)=LSTM(Wt1(l))W^{(l)}_t = LSTM(W^{(l)}_{t-1})

2.2.2 用更新后的W来做GCNConv

当前层当前时刻的节点表示H和更新后的W,进行GCNConv,得到下一层的节点表示:

Ht(l+1)=GCNConv(At,Ht(l),Wt(l))H^{(l+1)}_t = GCNConv(A_t, H^{(l)}_t, W^{(l)}_t)
问题解释
什么时候需要用H版本,什么时候需要用O版本?1)节点特征信息比较丰富时,一般用H版本,因为更新W的时候H作为输入2)如果节点特征信息量不大,而图数据结构起着更重要的作用,则O版本侧重于结构的变化,可能更有效

3、实验

官方:github.com/IBM/EvolveG…

3.1 数据集

多为比特币和社交网络演化的数据集。

  • Stochastic Block Model(SBM)一种广泛用于模拟群落结构和演化的随机图模型。

  • Bitcoin OTC (BC-OTC)和Bitcoin Alpha (BC-Alpha)可以看做是比特币上的社交网络,对比特币地址间的可信任程度进行打分。

  • UC Irvine messages(UCI)、Autonomous systems(AS)社交网络。

  • Reddit Hyperlink Network(Reddit)是超链接网络。

  • Elliptic是比特币交易网络,节点为交易,边为比特币流动。

image.png

3.2 baseline

静态图模型:

  • GCN

动态图模型:

  • GCN-GRU。也是一个单一的GCN模型,但是它在节点嵌入上与一个GRU协同训练。
  • DynGEM
  • dyngraph2vec

3.3 评价指标

动态连接预测:

  • mean average precision (MAP)
  • mean reciprocal rank (MRR)

边分类:

  • precision
  • recall
  • F1

节点分类:

  • precision
  • recall
  • F1

3.4 实验结果

和baseline的比较:

链接预测:

image.png

边分类:

image.png

节点分类:

image.png