【GNN】第九章:序列图神经网络TGNN

前面讲的各种图卷积网络都是用来处理静态图数据的,本章讲如何处理动态图数据
看到动态图,我们第一时间肯定会联想到序列数据、时序数据,而且第一时间会想到RNN、LSTM、GRU、transformer等序列模型。对的,就是这样的!我们可以照葫芦画瓢,或者重新排列组合,推陈出新。

一、动态图的界定、及其应用领域

动态图也就是序列图数据,其对应的网络叫序列图神经网络Temporal Graph Neural Networks,TGNN,也叫时空图神经网络

动态图分两种动法:
一种是随着时间的推移,图中的节点的特征向量会发生变化,也就是我们传入图卷积层的data.x会发生变化,但图中的节点的个数不变、以及图中的不会变化,也就是图的邻接矩阵不随时间而变化的,也是我们传入图卷积层的data.edge_index不会变化的。本章节我们研究的是这种动图,就是下图中的情况1。

另外一种是随着时间的推移,图中的节点的个数都已经发生了变化,也就是data.x变了,而且data.edge_index也变了,就是邻接矩阵也变了。这种情况比较复杂,就是下图中的情况2,本章不研究。

TGNN是一种结合时间动态与图结构特性的深度学习模型,广泛应用于交通流量预测、社交网络分析等领域。

比如上图的道路交通预测,道路上的红绿灯、十字路口、监控摄像头等等都可以看作是节点,这些节点一般不会经常变化。所以交通道路的图的节点和边一般不会变,变的只是随时间节点的特征在变化,比如节点的车流随时间在变化。我们的任务就是比如预测每个节点在下一时刻的车流量,判断这个节点是否会发生交通拥堵等,都可以看作是TGNN的任务。

再比如疾病蔓延,把地区看作是节点,疾病蔓延一方面与当地的特点有关,另一方面就是和时间有关。我们就可以用TGNN来预测某些地区的疾病蔓延速度。

比如行为识别-手势识别,从手部区域提取20个点,这20个基本就是手部的每个骨关节,把这20个点看作是节点,节点和节点之间的连接不会发生变化,但节点和节点之间的距离会随着手的姿势的变动而变动,就可以看作是节点的特征是时序变化的。我们就可以用TGNN预测这个手势是什么意思。

二、网络架构设计

序列模型其实非常通俗易懂,就是图卷积网络+序列模型构成的。下图是TGCN论文中的模型架构:

上左图的第一层是各个时刻的图数据,具体的说就是图中的所有节点的特征向量组成的矩阵。前面说过,每个时刻的图数据仅仅是节点的特征向量发生了变化,图的邻接矩阵是不变的。
上左图的第二层是图卷积层。我们知道图卷积层是重构特征的,所以每个时刻的图数据先喂入图卷积层,生成更好的节点的特征向量。因为越好的节点特征,下游任务的效果就越好。这个层是用来提取空间特征的,所以你可以用GCN、GAT、GraphSAGE等图卷积层都是可以的。
上左图的第三层是序列模型的层。当我们把各个时刻的特征都做得非常好时,就可以依次喂入序列模型了,序列模型最后生成的特征就可以进行图分类了。所以序列模型你可以用简单的循环网络RNN、LSTM或GRU,也可以用transformers等任何序列模型。

所以典型的时序图模型有TGCN、TGAT等。其中:
TGCN = GCN + RNN、LSTM或GRU
TGAT = GAT + RNN、LSTM或GRU

三、案例:

待续。。。。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐