EvolveGCN: Evolving Graph Convolutional Networks for Dynamic Graphs

1 前言

该论文解决的是不断进化(evolve)的graph的表征问题。以往的方法主要将结点的表征通过RNN来学习不断进化的graph,这种方法在学习表征时需要知道结点在所有时间区间上的变化(相当于是transductive的),并且在变化比较频繁的graph上不太友好。论文提出EvolveGCN,将GCN和RNN结合,使用RNN来学习GCN的参数,以此来捕捉动态图的动态性。

2 问题定义

对于一个动态图 G G G,在每一个时间点 t t t上,可以将 G G G表示为 ( A t , X t ) (A_t,X_t) (At,Xt),分别表示时间 t t t时的邻接矩阵和特征矩阵。最终要学习的是 G G G中每个结点在各个时间点上的结点表征。

3 EvolveGCN思路

在这里插入图片描述
如上图所示,在时间点 t t t时,将 ( A t , X t ) (A_t,X_t) (At,Xt)输入到模型中,可以学习到 t t t时的结点表征。注意,GCN的参数并不是训练得来的,而是通过RNN计算得到的。GCN在EvolveGCN中起的作用:通过 ( A t , X t ) (A_t,X_t) (At,Xt)得到结点表征,但是并不会在计算表征的过程中更新GCN各层的参数。RNN在EvolveGCN中起的作用:在 t − 1 t-1 t1时的结点表征和GCN参数的基础上更新GCN的参数,更新公式如下:
W t ( l ) ⏟ hidden state  ⏞ GCN weights  = GRU ⁡ ( H t ( l ) ⏞ node embeddings  ⏟ input  , W t − 1 ( l ) ⏟ hidden state  ⏞ GCN weights  ) \overbrace{\underbrace{W_{t}^{(l)}}_{\text {hidden state }}}^{\text {GCN weights }}=\operatorname{GRU}(\underbrace{\overbrace{H_{t}^{(l)}}^{\text {node embeddings }}}_{\text {input }}, \overbrace{\underbrace{W_{t-1}^{(l)}}_{\text {hidden state }}}^{\text {GCN weights }}) hidden state  Wt(l) GCN weights =GRU(input  Ht(l) node embeddings ,hidden state  Wt1(l) GCN weights )

W t ( l ) ⏟ GCN weights  ⏞ output  = LSTM ⁡ ( W t − 1 ( l ) ⏟ input  ⏞ GCN weights  ) \overbrace{\underbrace{W_{t}^{(l)}}^{\text {GCN weights }}}_{\text {output }}=\operatorname{LSTM}(\overbrace{\underbrace{W_{t-1}^{(l)}}_{\text {input }}}^{\text {GCN weights }}) Wt(l)GCN weights  output =LSTM(input  Wt1(l) GCN weights )
从上可以得到,动态图的变化都保存在了GCN的参数中。在实现时,需要对RNN进行如下更改:

  • 将RNN单元的输入与隐状态扩展为矩阵形式,因为GCN的参数和结点表征都是矩阵的形式
  • 将输入的列与隐状态的列相匹配

论文中针对参数的更新了进行了较详细的阐述,具体可以参考论文。

4 方法的优势与局限性

4.1 优势

  • 对动态图的表征学习提出了可行的解决方法
  • 将RNN和GCN相结合,利用RNN来进化GCN的参数,能够应对变化频繁的graph,而且不需要提前预知结点的所有变化

4.2 局限性

  • 虽然不需要提前预知结点的所有变化,但是需要预知graph中的所有结点,不能应对结点的变化
  • 使用RNN来进化GCN的参数,将graph的动态性保存在参数中,一个训练好的模型也许只能捕捉一种动态性


欢迎访问我的个人博客~~~

猜你喜欢

转载自blog.csdn.net/Miha_Singh/article/details/114261282