Foundations and modelling of dynamic networks using Dynamic Graph Neural Networks: A survey
本文首先给出了动态网络的定义和分类,然后分别从编码和解码的角度介绍了图神经网络模型如何用于动态图的嵌入表示以及完成链路预测任务
动态网络
定义
- 动态网络是随时间变化的复杂网络。链接和节点可能出现和消失。
- 一个 动态网络可以表示为一个图 G = ( V , E ) G=(V, E) G=(V,E),其中 V = { ( v , t s , t e ) } V=\{(v, t_s, t_e)\} V={ (v,ts,te)}, v v v是网络的节点, t s , t e t_s, t_e ts,te表示节点出现和消失的时间;集合 E = { ( u , v , t s , t e ) } E=\left\{\left(u, v, t_{s}, t_{e}\right)\right\} E={ (u,v,ts,te)} ,其中 u , v ∈ V u, v \in V u,v∈V是网络中的节点, t s , t e t_{s}, t_{e} ts,te表示链接的出现和消失时间。
- 动态网络一般指无标记和无向网络
按网络的粒度和表示分类
动态网络表示可以按时间粒度划分为四个不同的层次:静态网络(Static Networks)、边加权网络(Edge Weighted Networks)、离散网络(Discrete Networks)、连续网络(Continuous Networks)
- 静态网络不使用时间信息
- 边加权网络把时间信息(比如最后一次活跃的时间)保存在边和/或节点上
- 离散网络用网络在不同时间间隔的多个快照来表示, D G = { G 1 , G 2 , … , G T } DG=\{G^1, G^2, \dots, G^T\} DG={ G1,G2,…,GT},该方法的优势在于可以对每个快照使用静态网络分析方法。
- 连续网络携带了最多信息也最复杂
- 基于事件的表示(The Event-based Representation):这种表示将节点之间有连边视为一个事件发生,并使用一个四元组来记录网络的时序信息: E B = { ( u i , v i , t i , Δ i ) ; i = 1 , 2 , … } E B=\left\{\left(u_{i}, v_{i}, t_{i}, \Delta_{i}\right) ; i=1,2, \ldots\right\} EB={ (ui,vi,ti,Δi);i=1,2,…}, u i u_{i} ui和 v i v_{i} vi构成一个节点对, t i t_{i} ti表示边的出现时间, Δ i \Delta_{i} Δi表示边的持续时间
- 接触序列表示(The Contact Sequence Representation):这种表示是对上一种表示的简化,忽视了动态网络中边的持续时间,适用于链接持续时间极短或者不重要的网络: C S = { ( u i , v i , t i ) ; i = 1 , 2 , … } C S=\left\{\left(u_{i}, v_{i}, t_{i}\right) ; i=1,2, \ldots\right\} CS={ (ui,vi,ti);i=1,2,…}
- 流图表示(The Graph Stream Representation):这种表示将链接的出现和消失视为两个不同的事件: G S = { e 1 , e 2 , … } G S=\left\{e_{1}, e_{2}, \ldots\right\} GS={ e1,e2,…}, e i = ( u i , v i , t i , δ i ) e_{i}=\left(u_{i}, v_{i}, t_{i}, \delta_{i}\right) ei=(ui,vi,ti,δi),其中 δ i ∈ { − 1 , 1 } \delta_{i} \in \{-1,1\} δi∈{ −1,1}表示事件的类型,即链接的出现或消失
- 前两种表示适用于边的持续时间不长的情况,后一种表示适用于边有较长持续时间的情况
按链接的持续时间分类
交互网络(Interaction Networks)和严格演化网络(Strictly Evolving Networks)处于时间轴的两端,分别表示链接出现后瞬间消失和永久存在。两者中间是时序网络(Temporal Networks)和演化网络(Evolving Networks)。
- 交互网络适用于连续网络中的接触序列表示
- 时序网络适用于连续网络中基于事件的表示
- 演化网络适用于离散网络或者连续网络中的流图表示
按节点的动态性分类
- 静态(Static):节点数量始终不变
- 动态(Dynamic):节点会出现或消失
- 增长(Growing):节点只会出现,不会消失
排列组合对网络进行分类
动态网络模型
- 参考模型(Reference models):用于静态网络的分析,以研究静态网络拓扑特征的重要性和作用。其特点是会保持某些重要的特征,例如节点度数分布等,而在其他特征上是随机的,以便比较观察到的网络与具有某些相同特征的随机网络之间的区别
- 现实模型(Realistic models):尽可能复制现实网络的变化情况,以完成预测任务
按照具体的建立网络的方法,可以将模型分为以下几种
扫描二维码关注公众号,回复: 12582432 查看本文章
动态图的深度学习模型可分为两种:时间限制玻尔兹曼机(Temporal Restricted Boltzman Machines)是应用于动态链接预测问题的概率生成模型。动态图神经网络(Dynamic Graph Neural Networks)通常是GNN和RNN相结合的形式,用GNN处理网络,用RNN处理时序信息。
动态图神经网络
伪动态模型
模型的动态属性不适合动态数据
离散动态图神经网络
离散表示的动态网络进行建模有一个很大的优点,即可以使用静态的图模型处理每一个快照,然后在使用RNN/Self Attention等模型处理时序信息。离散DGNN可以进一步细分成堆叠型DGNN(Stacked DGNNs)、整合型DGNN(Integrated DGNNs)和动态图自动编码器与生成模型(Dynamic graph autoencoders and generative models)
考虑一个离散图 D G = { G 1 , G 2 , … , G T } D G=\left\{G^{1}, G^{2}, \ldots, G^{T}\right\} DG={ G1,G2,…,GT},假设 z i t z_i^t zit是节点i在时间t由GNN生成的表示,f为时序建模的网络如RNN,则通用的计算框架为:
矩阵表示为:
堆叠型DGNN
使用一个单独的GNN处理图的每个快照,并用RNN等时序模型处理GNN的输出,完成图信息在时间轴上的传递和编码
-
GCRN-M1:谱GCN+peephole LSTM
-
DyGGNN:门控GNN+LSTM
-
WD-GCN:GCN+节点级LSTM
整合型DGNN
将GNN和RNN组合在一层,从而将空间域和时间域的建模结合在一层
-
GCRN-M2:GCN+LSTM, 将LSTM中的线性变换用图卷积操作代替,得到如下模型,其中*表示图卷积
-
EvolveGCN:使用一个RNN来更新GCN的权重,可以将权重视作RNN的隐藏状态或输出
-
GC-LSTM:LSTM处理邻接矩阵,GNN处理LSTM的隐藏状态
-
LRGCN:RGCN+LSTM
-
RE-Net:RGCN+RNN
动态图自动编码器与生成模型
- 动态图嵌入模型(DynGEM):在静态图自编码器的基础上做了一些微小的改动,用前一个快照的权重初始化自动编码器,并能在嵌入维度保持不变的情况下对编码器和解码器的维度进行扩展,以适应新增的节点
- Dyngraph2vec:在DynGEM的基础上扩展了算法处理快照的窗口,使用快照 A t , … , A t + l A^{t}, \ldots, A^{t+l} At,…,At+l预测 A t + l + 1 A^{t+l+1} At+l+1
- E-LSTM-D:编码出的隐藏向量输入到一个LSTM中以预测新的嵌入
- VGRNN:变分自编码器版本
- GCN-GAN:生成器生成接近真实的邻接矩阵以执行链路预测任务
连续动态图神经网络
目前有两种DGNN连续建模方法。一种是基于RNN的方法,其中节点嵌入由基于RNN的结构维护;以及基于时间点的方法,其中时间点过程由神经网络参数化。
基于RNN的模型
这些模型的一个共同特征是,一旦事件发生或网络发生变化,交互节点的嵌入就会更新。这类模型可以分为两种:处理流图的SGNN和对交互网络进行编码的JODIE
- SGNN:包括一个更新组件和传播组件,更新组件负责更新交互中涉及的节点的状态,传播组件将更新传播到涉及的节点邻居
- JODIE:使用两个RNN分别维护用户节点和商品节点的嵌入,当发生交互时对嵌入进行更新
基于TPP的模型
- DyREP模型:TPP被用于表示网络的拓扑演化和节点通信两种动态过程。
链路预测
前一部分主要是讲了encoder,即如何从输入的动态图中获取嵌入;这一部分的主要内容是decoder和loss function,如何从嵌入出发完成链路预测的任务
解码器
预备知识
- 解码器的输出是下一时刻的概率邻接矩阵 A ^ τ , τ = t + 1 \hat{A}^{\tau}, \tau = t+1 A^τ,τ=t+1
- 编码器的输出结果是 H ∈ R n × s × d h H \in \mathbb{R}^{n \times s \times d_{h}} H∈Rn×s×dh,其中n为节点数,s为快照数, d h d_{h} dh为嵌入维度。由于解码器只需要输出下一个快照的结果,因此需要对H通过前馈网络转换维度得到 Z ∈ R n × d z Z \in \mathbb{R}^{n \times d_{z}} Z∈Rn×dz,或者直接取最后一次快照的输出 Z = H ∈ R n × d h Z = H \in \mathbb{R}^{n\times d_{h}} Z=H∈Rn×dh
具体实现
- 使用逻辑回归从Z计算 A ^ τ \hat{A}^{\tau} A^τ
- 使用前馈网络从Z计算 A ^ τ \hat{A}^{\tau} A^τ
- 从Z中提取对应位置的向量计算内积
- GraphRNN:序列生成模型
损失函数
链路预测
-
二元交叉熵损失
自编码器
-
加权重构误差
p i j = 1 p_{i j}=1 pij=1 if A i j t = 0 A_{i j}^{t}=0 Aijt=0 and p i j = β > 1 p_{i j}=\beta>1 pij=β>1 if A i j t = 1 A_{i j}^{t}=1 Aijt=1
评估指标
- AUC:ROC曲线之下的面积
- PRAUC:precision recall曲线下的面积,通常用在信息检索领域中类别分布不均衡的场景下。
- Fixed-threshold metrics:top k的预测值的准确率
- Mean average precision (MAP)
- Sum of absolute differences (SumD):衡量被误分类的链接数
- Error rate
- GMAUC
A Comprehensive Survey on Graph Neural Networks
Spatial-temporal Graph Neural Networks (STGNNs)
- 和动态图神经网络相比,时空图神经网络的拓扑结构保持不变,但节点特征是动态变化的
- 其关键思想是同时考虑了空间依赖性和时间依赖性,用图卷积来捕获空间依赖性,用RNN或CNN对时间依赖性进行建模
基于RNN的方案
不考虑空间依赖时,一个简单的RNN可以写作下式,其中 X ( t ) ∈ R n × d \mathbf{X}^{(t)} \in \mathbf{R}^{n \times d} X(t)∈Rn×d是t时刻节点的特征矩阵:
考虑空间依赖后,改写为以下形式
- Graph Convolutional Recurrent Network (GCRN):LSTM+ChebNet
- Diffusion Convolutional Recurrent Neural Network (DCRNN):GRU+diffusion graph convolutional
- Structural-RNN:node-RNN + edge-RNN
- GaAN:采取注意力机制,使用RNN根据node特征更新图上边的权重以学习动态空间依赖
基于CNN的方案
基于CNN的方法以非递归的方式处理时空图,和基于RNN的方法相比具有并行计算、稳定梯度和低内存需求的优点。
假设时空图的输入为 X ∈ R T × n × d \mathcal{X} \in R^{T \times n \times d} X∈RT×n×d,则使用一维的卷积处理 X [ : , i , : ] \mathcal{X}_{[:, i,:]} X[:,i,:]获取时间依赖,使用图卷积处理 X [ i , : , : ] \mathcal{X}_{[i, :,:]} X[i,:,:]获取空间依赖
- CGCN:一维CNN+ChebNet/GCN
- ST-GCN:一维CNN+PGC
- WaveNet:自动学习图邻接矩阵 A a d p = SoftMax ( ReLU ( E 1 E 2 T ) ) \mathbf{A}_{a d p}=\operatorname{SoftMax}\left(\operatorname{ReLU}\left(\mathbf{E}_{1} \mathbf{E}_{2}^{T}\right)\right) Aadp=SoftMax(ReLU(E1E2T))
- MTGCN:Wavenet升级版
- ASTGCN:同时包括了空间和时间注意力机制来捕捉动态信息