本文主要是介绍EvolveGCN: Evolving Graph Convolutional Networks for Dynamic Graphs,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 1 前言
- 2 问题定义
- 3 EvolveGCN思路
- 4 方法的优势与局限性
- 4.1 优势
- 4.2 局限性
- 论文地址:https://arxiv.org/pdf/1902.10191
- 来源:AAAI, 2020
- 源码地址:EvolveGCN
- 关键词:Dynamic Graphs, GCN
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 t−1时的结点表征和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 Wt−1(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 Wt−1(l) GCN weights )
从上可以得到,动态图的变化都保存在了GCN的参数中。在实现时,需要对RNN进行如下更改:
- 将RNN单元的输入与隐状态扩展为矩阵形式,因为GCN的参数和结点表征都是矩阵的形式
- 将输入的列与隐状态的列相匹配
论文中针对参数的更新了进行了较详细的阐述,具体可以参考论文。
4 方法的优势与局限性
4.1 优势
- 对动态图的表征学习提出了可行的解决方法
- 将RNN和GCN相结合,利用RNN来进化GCN的参数,能够应对变化频繁的graph,而且不需要提前预知结点的所有变化
4.2 局限性
- 虽然不需要提前预知结点的所有变化,但是需要预知graph中的所有结点,不能应对结点的变化
- 使用RNN来进化GCN的参数,将graph的动态性保存在参数中,一个训练好的模型也许只能捕捉一种动态性
欢迎访问我的个人博客~~~
这篇关于EvolveGCN: Evolving Graph Convolutional Networks for Dynamic Graphs的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!