dyngraph2vec-Capturing Network Dynamics using Dynamic Graph Representation Learning
作者是Palash Goyal,Sujit Rokka Chhetri,Arquimedes Canedo,于Knowledge-Based Systems 2020 发表。
1 问题背景
现在图表示学习的有2种方法:
- aggregated,把时间T之前的所有边构造成一个图
- snapshot,分成多个时间片t
2 相关工作
- Static Graph Embedding
- Dynamic Graph Embedding
- Dynamic Link Prediction
3 模拟实例
已知动态图可表示为多个时间快照:
其中初始G1用Stochastic Block Model产生,2个community各500个。
evolution pattern分为3步:
- 从黄色社区中随机、统一地选择10个节点(图中红色表示其中的2个节点)
- 在第一步中选择的每个节点和靛蓝社区中的随机节点之间随机添加30条边。
- 步骤2中选择的节点的社区成员从黄色变为靛蓝色。类似地,边(图中红色)被删除或添加,以反映跨块和块内连接的概率。
任务是学习10个节点的社区变化的嵌入预测。图2显示了演化的第一步之后节点的嵌入。为社区转换选择的节点用红色表示。 以下是各种方法的示例:
- DynGEM将红色节点移到黄色社区的边缘,但不会将任何节点移到其他社区
- optimalsvd方法不能移动任何节点
- DynamicTriad结果显示,在下一步中,它只将1到4个节点移动到它的实际社区
- d-f是本文方法,可以很好地捕捉动态,并把10个节点中的大部分保留在靛蓝社区。
这表明,捕捉动态是理解网络进化的关键。
4 本文方法
问题描述
图用G(V,E)表示,A是带有权重的邻接矩阵,不支持新节点产生,节点间的边会以特定的temporal pattern而变化。
目标是为每个节点用向量表达:如在时刻 i 节点v的embedding:
dyngraph2vec
算法流程
时间步 t+d 的embedding用到 t,t+1,…t+l 的图,l称为temporal look back:
损失函数:
其中B的作用如下:
Variant
一共有3种变体,f 不相同:
- (i) dyngraph2vecAE,以直接的方式将自动编码器扩展到动态设置;
- (ii) dyngraph2vecRNN 和 (iii) dyngraph2vecAERNN,捕捉动态信息,克服模型多参数的限制。
dyngraph2vecAE
使用多个完全连接的层来建模时间内和时间跨节点的互连.
节点u 的邻居向量集合为:
第k层的表达为:
dyngraph2vecRNN
使用LSTM处理长期信息。但这种方法参数依然很多。
如果将稀疏邻域向量简化为低维表示,LSTM网络可能能够更好地学习时间表示。于是有了第三种方法。
dyngraph2vecAERNN
使用全连接编码器来初始获取低维隐藏表示,p是全连接编码器输出层。
然后传递给LSTM:
然后隐藏层的表示再传递给一个全连接层。
优化
梯度:W_K代表了三个模型的倒数第二层权重,使用了SGD。
5 实验
数据集
2个真实数据集Hep-th和Autonomous Systems,1个合成数据集Stochastic Block Model(社区消失)
Baseline
OptimalSVD,IncSVD,RerunSVD,dynamicTriad,dynGEM
评价指标
MAP
实验结果
本文dyngraph2vec和其他的动态模型(如DynGEM等)代码实现:
Github
6 总结思考
本文提出了一个使用全连接层和递归层学习动态图embedding的方法,有些部分我还不是特别理解它的可解释性。值得肯定的是,本篇论文的作者实现了一个动态模型的库,方便我们使用。