IJCAI2019 长时段交通预测解决方案

Graph WaveNet for Deep Spatial-Temporal Graph Modeling

一 作者介绍

本文的作者是悉尼科技大学的Zonghan Wu博士,师从IEEE member Shirui Pan,作者还发表了一篇GNN的综述[《A Comprehensive Survey on Graph Neural Networks》](https://arxiv.org/pdf/1901.00596v2.pdf),引用量达到600多。这里是作者团队的主页:https://shiruipan.github.io/。

二 摘要:

本文提出了一个新的时空图建模方式,并以交通预测问题作为案例进行全文的论述和实验。交通预测属于时空任务,其面临的挑战就是复杂的空间依赖性和时间依赖性。近年来由于图卷积的火热,加上路网结构和图卷积的契合,在交通领域的应用达到了不错的效果。然而,之前的工作存在一些不足。对空间层面而言,之前的工作往往是在一张固定的图结构上取捕获空间依赖特征,假设实体之间的基本关系是预先确定的,但是,固定的图结构(关系)并不一定反映真实的依赖关系,反过来讲,真实的关系可能由于数据中不完整的连接而缺失。对时间层面而言, 往往采用的是基于RNNs的模型,并不能很好的捕获到长期依赖。用一般的RNN的方法,会出现梯度消失或梯度爆炸的问题;用LSTM等RNN的变体模型去训练,需要更多的资源,难以训练,而且不能处理大量更长的序列预测问题。

针对这两项不足,本文提出了一个新的时空图建模的方式Graph WaveNet,该模型在空间依赖的获取方面采用了图卷积的方式,同时增加了一个网络不全的方式,即根据数据自适应的学习出一个新的邻接矩阵;在时间依赖的获取方面,采用了扩张卷积的方式,不需要RNNs的循环、递归,用一种简单的卷积神经网络实现,在效果和运行时间上都占有很大优势。最后在两个真实的数据集上得以验证,取得了state-of-the-art的效果。

三 文章亮点:

本文解决的是时空问题,因此分别从时间和空间两个角度进行分析。针对上面提到的固定图结构,本文提出了自适应邻接矩阵,也就是对固定图结构的补充;针对时间的长期依赖问题,使用LSTM经过多层的迭代,会导致很久以前的信息逐渐消失,那么本文采用dilated conv不需要考虑太久之前的信息消失问题,可以提取比LSTM更长的时间依赖。

  • 空间依赖:GCN + adaptive adjacency matrix + diffusion convolution

  • 时间依赖:dilated casual convolution + gated mechanism

四 详细内容:

4.1 模型定义:

给定初始化图结构,以及数据预处理得出的邻接矩阵(通过计算节点之间的距离得到的),N表示路网中的节点数,X表示输入的特征向量,在这里表示t时刻的交通流。D表示每个节点的特征数,预测问题的目标就是用前S个时间步的车流量来预测未来T个时间步的车流量,这里的车流量一般指的是每一个时间段的平均车速。

  • Given:
    • Graph:

    • Adjacency matrix:

    • Dynamic feature matrix:

  • Target:

下面看一下模型的框架结构。左边是模型的输入部分,堆叠了K层时空层,提取时空依赖特征。每个时空层包括一个gated TCN块和GCN块,其中的gated TCN用于提取时间依赖,包括两个TCN模块,分别是TCN-aTCN-b。TCN模块提取到时间依赖特征之后,传到GCN层提取空间依赖特征。右侧是输出层,相当于一个MLP(多层感知器)。下面我来分别介绍时空层的两个组件。

4.2 时间依赖:

首先是TCN模块,TCN这个组件解决的问题是前面提到的时间依赖的提取,特别是对长期依赖的处理。关于时间依赖特征提取,需要同时考虑到短期内相邻时间数据的影响,也要考虑到长期的时间周期性影响。在之前的工作中,采用的都是基于RNN的循环卷积,计算量很大,训练模型不容易。因此本文采用了一种特殊的TCN模块,基于一般的卷积神经网络进行操作。

4.2.1【Gate Mechanism】

本模型的TCN组件采用了门限机制,包括两个TCN块,这两个TCN使用了不同的激活函数,TCN-a使用tanh,是神经网络训练过程中的最常使用的激活函数(非线性映射),右侧TCN-b使用sigmoid激活函数,然后将二者的值按元素进行乘积。(此处需要对这两种激活函数有所了解)

此处用到了门(gate)的概念。门实际上是一种对向量的控制机制,它的输入是一个向量,输出是一个0到1之间的实数向量,使用方法就是用门的输出向量按元素乘以我们需要控制的那个向量。W是门的权重向量,b是偏置项,那么门可以表示为:。可以看出来,该公式和一般神经网络是一样的,只是激活函数用了函数,因为它的值域是,当门输出为0时,任何向量与之相乘都会得到0向量,这就相当于该信息不可以通过;输出为1时,任何向量与之相乘都不会有任何改变,这就相当于信息可以通过。所以门的状态都是半开半闭的。

这里的门限机制和LSTM中的是一致的,作用就是控制有效信息的流入和无效信息的丢弃。

在Gated-TCN中,TCN-a就相当于input(被控制的向量),TCN-B就是gate,最后将两者的值进行乘积得到该组件的输出,公式表示:χʘσχ,其中Θ1和Θ2,b,c分别是可学习参数,表示卷积。

4.2.2【Dilated Casual Conv】

在TCN中采用Dilated Casual Conv(扩张因果卷积),将所有的输入数据以时间维度为轴看作一维向量,对所有的输入向量进行1D卷积操作。

Casual Conv(因果卷积)就是某时刻的预测值仅仅和历史时刻的值相关,保证了在预测任务中,只是用历史信息进行预测,不包含未来的信息。在时间序列分析方面,因为模型只有因果卷积,而没有递归连接,模型的训练速度要比RNN快得多,特别对于很长的序列。用式子表示:。下图是因果卷积的示意图:

然而,对于因果卷积,存在的一个问题是如果要提取很久以前的信息,就需要很多层或者很大的filter来增加卷积的感受野。卷积层数的增加可能会产生梯度消失,训练复杂等问题,为了解决这个问题,在因果卷积的基础上增加了扩张卷积。

Dilated conv(扩张卷积、膨胀卷积、空洞卷积),相比于标准卷积增加了扩张因子,是在标准的卷积核中加入空洞,增加卷积核的提取范围。如该动图显示,下面深色部分移动的就是扩张因子为2的卷积核,较小的扩张率往往关注的是短距离的特征,而较大的扩张率往往关注的是长距离的特征。使用扩张卷积用很少的层数,就可以大大扩大感受野的范围。

这个动图就是结合了扩张卷积的因果卷积的执行状态,扩张因子分别是1、2、4、8,可以得到比之前单纯用因果卷积更大的感受野。

本文对于TCN的数学定义,给出一维序列和filter,进行扩张因果卷积。和普通卷积不一样之处就是,d指的是扩张因子,决定了空洞的大小。s表示卷积所在的层数,一般越高的层数会设置越大的扩张因子,式子表示为:

最终的TCN的式子:χʘσχ

4.3 空间依赖:

在空间部分提出的创新就是网络的填补,关于只用路网结构表示节点间的关系而言,是很不全面的。如下图所示,路段1和路段2处于同一段公路上,随着时间的变化,二者的变化曲线非常相似,也就是说交通状况非常相关;路段1和路段3处于公路的相反方向,虽然欧氏距离很接近,但是路网距离差异很大,因此速度应该也有很大差异。这就意味着交通领域的路网结构在空间上是非欧氏和定向的。因此,本文通过考虑输入信号X中提取出来的一些隐含的节点表示信息,自适应的学习出一个新的邻接矩阵,就可以在一定程度上补充路网结构告诉我们的节点间关系的不足。

4.3.1 【Diffusion conv】

首先,图卷积从路网结构中提取空间特征:

图卷积网络可以从给定的结构信息中提取出节点的特征,是基于谱的GCN定义,是归一化的拉普拉斯矩阵,X表示输入向量,W表示权重矩阵。拉普拉斯矩阵由邻接矩阵和度矩阵计算得出:。A表示邻接矩阵,D表示度矩阵。

本文的图卷积在一般谱图卷积的基础上,采用DCRNN扩散卷积的思想,DCRNN是2018年发表的交通预测的论文,DCRNN将图上的信息传递看作是随机游走,这个随机游走是一个马尔可夫过程。他们用K个有限步来来模拟图信号的扩散过程。这里的P表示转移矩阵,P的K次方表示随机游走K步。转移矩阵是通过邻接矩阵A除以A的行元素之和,可以获得A中每一个元素在下一个时刻游走到其他节点的概率:

我们将扩散卷积推广到图卷积,产生扩散图卷积的表示:

由下图可以知道,路网是有向的,如果考虑到有向图,将扩散过程分为前向和反向传播两种,在交通预测中,这两个方向就分别表示节点的上游和下游,其转移矩阵分别用和表示,用相同的方法,计算出两个方向的转移矩阵,得到双向的扩散图卷积。 , ,

4.3.2 【self-adaptive adjacency matrix】

本文采用了一种新型的自适应矩阵,补充了从固定拓扑结构中提取特征的不足。这种自适应邻接矩阵不需要任何先验知识,是可以通过随机梯度下降学习到的。通过自适应邻接矩阵让模型自己去寻找隐层之间的联系。自适应矩阵的实现,通过随机初始化两个具有可学习参数e1e2的节点嵌入来实现。E1 & E2,表示N个节点的c维特征,e1表示原节点嵌入,e2表示目标节点嵌入,通过可以得到原节点到目标节点之间的空间依赖权重。结果是N*N的,表示新的邻接矩阵。Relu的作用是去除邻接矩阵中比较接近0的值,也就是去除图中的弱连接,减少训练参数。然后通过softmax进行一次normalization, 目的就是为了使自适应邻接矩阵可以看作是扩散过程的转移矩阵。自适应邻接矩阵的生成方式如下式子所示:

结合上一部分从路网中提取到的空间依赖关系和自学习隐藏图依赖关系,本文的图卷积层定义为这个式子:

 

如果当网络结构不可用时,也可以单独使用自适应邻接矩阵来捕获隐藏的空间依赖关系:

 

【Framework summary】最后,再来回顾一下整个模型。首先input经过一层linear把维度升高,然后将输入数据输入到gated TCN中,捕获时间依赖,然后传入GCN中提取节点之间的空间信息,然后与最初的输入进行残差连接,防止循环次数过程中信息的丢失。然后堆叠K层,通过不同大小的扩张因子,先后提取短期时间依赖和长期,逐步扩大感受野。在底层,也就是k比较小的时候,GCN获取到的是短期的时间依赖;K比较大时,接收到的时长期的时间依赖。经过多层的迭代,时空层就可以捕捉到长短期的时间依赖以及不同程度的空间依赖关系了。右侧的输出部分就是MLP的结构,将K个时空层的结果concatenate,然后通过两个线性层得到输出序列。这里的输入和输出对应的维度分别是输入序列和输出序列的长度。只要运行一次就可以得到想要的输出,这样做的好处是,每一层都可以得到一个输出,这样相比于RNN系列方法,可以提高效率。

五 实验部分:

5.1 数据集:

本实验用到了两个大规模真实数据集,分别是META-LA和PEMS-BAY。META-LA是洛杉矶公路探测器收集到的交通数据,有207个传感器搜集了四个月的数据(2012.3.1~2012.6.30);PEMS-BAY是加州交通部门Performance Measurement System搜集到的交通数据,有325个传感器搜集了六个月的数据(2017.1.1~2017.5.31)。数据的时间间隔为5min。

  • META-LA: A records four months of statistics on traffic speed on 207 sensors on the highways of Los Angeles County.

  • PEMS-BAY: contains six months of traffic speed information on325 sensorsin the Bay area.

这两张图分别是两个数据集传感器的分布情况,每一个黑点表示一个传感器。

为了构造传感器的路网图,通过计算两两传感器之间的路网距离来构建传感器的邻接矩阵,此处使用了带阈值的高斯核计算节点间的相似度,作为拓扑结构的邻接矩阵。就表示节点之间的边的权重。也就是路网拓扑结构的矩阵表示。距离超过阈值就认为两个节点不相关。公式表示:,if ,otherwise 0

5.2 baseline:

Baseline 考虑了三个处理序列问题的模型以及三个用于时空预测的模型。

  1. ARIMA: 分析历史数据,找到他的周期波动规律,来对未来数据进行预测。广泛应用于时间序列预测,然而时间序列受到平稳假设的限制,无法考虑时空依赖性

  2. FC-LSTM:带有全连接的LSTM隐藏单元的递归神经网络,最初使用在翻译任务上,适合处理一些序列问题。

  3. WaveNet:是2016年谷歌提出来用于语音合成的一个模型,采用带有dilation conv的卷积层,对序列问题有着很好的效果。

  4. DCRNN: 应该是第一篇结合graph来进行交通预测的文章,也是之前提到的。

  5. GGRU: 采用基于门限机制的图递归网络,引用了attention机制进行交通预测

  6. STGCN:应用于交通预测领域,首次提出了GCN和TCN模块分别对空间依赖和时间依赖进行特征提取,并且提出来在TCN模块用1D卷积。

5.3 setting

参数设定部分,主要就是时空层层数和扩张因子的设置。采取8层时空层,扩张因子分别对应8层时空层的取值分别是1和2。这么设置的原因,本实验中时间序列以12为单位,也就是将数据集以12个时间段为单位进行数据的划分,5min的间隔,就刚好是一个小时。

5.3 结果分析:

在这里插入图片描述 实验比较了GWN和各个baseline在两个数据集上的15min、30min、60min的预测效果。可以看出来,GWN在很大程度上比时间序列模型ARIMA、FC-LSTM和wave net表现要好,可见空间依赖提取的重要性;和其他的时空模型相比,GWN比基于卷积的STGCN,比基于递归的DCRNN,以及GGRU要好。和GWN效果最接近的GGRU在15min的实验中只有很小的提升,不过在60min的实验中提升很高。这个现象可以说明GWN的体系结构更有能力在每个时间阶段处理空间依赖关系。 在这里插入图片描述 这个对比实验是为了比较自适应矩阵的效果,用5种不同的邻接矩阵训练模型,第一种将邻接矩阵换成单位矩阵,就是去除了路网拓扑信息,可以看到误差还是挺大的;然后第二种变体考虑前向传播,也就是原始的邻接矩阵,进行一般的GCN操作,加上路网信息的模型效果比单位阵的效果好了很多。第三种是在没有路网结构的基础上,只使用前面提到的自适应邻接矩阵,通过节点嵌入自己生成一个邻接矩阵,相比于第一种提升也很明显。前后向都考虑的双向自适应矩阵在两个数据集上都有很好的效果。最终前后向和自适应同时考虑的效果最好。因此,该实验得出的结论就是,在没有路网结构的情况下,自适应的矩阵会给模型带来很大的提升。这也为我们提供了一种很好的网络图补全的方式。

左边这张图是基于forward-backward-adaptive在METR_LA数据集上学到的自适应矩阵取值的热力图,可以看到有的节点相对于其他节点有多个比较高的值,比如节点9和节点47,这表明节点9对路网图中更多的节点会产生影响,而节点47能影响到的节点并不多。右图是相应的路网图,可以看到节点9处于多条主要道路的交叉口,而节点47处于单挑道路上。同样,验证了自适应邻接矩阵的有效性。

这里是三个交通预测模型在两个数据集上运行时间的对比,GWN比DCRNN的五倍还快,但是比STGCN的两倍要慢。右侧是数据是在验证集上实验的结果,此时GWN比二者都快很多。这是因为GWN运行一次就可以得到12个预测值,而DCRNN和STGCN必须基于前一个时间的预测结果来得到预测值,因此GWN的运行速度上占有很大优势。

六 总结:

本文提出了一个新的图神经网络模型 Graph WaveNet 用于时空图建模,这个模型是一个通用模型,适合于很多时空领域的建模。其中包括两个组件,一个是自适应依赖矩阵(adaptive dependency matrix),通过节点嵌入进行训练,用来精确建模节点的空间相关性。另一个是堆叠的 1D 扩张卷积(stacked dilated 1D convolution)提取时域的特征。

其中这两个创新点,也带给我们更多的处理时空问题的思路,比如网络补全,给定的邻接矩阵并不能很好的表示真实的节点关系。还有时间序列的建模,可以不用RNN相关的方法去迭代,而选择在时间维度用一维卷积进行特征提取,避免了LSTM不能处理过长期依赖,还有训练难等问题。

七 参考:

  1. TCN部分动图

  2. 公路图、数据可视化来源于论文DCRNN

  3. GWN代码

  4. Graph WaveNet for Deep Spatial-Temporal Graph Modeling, IJCAI 2019

需要详细了解请看原论文和代码,如有问题请指正,谢谢您!

猜你喜欢

转载自blog.csdn.net/huang_shao1/article/details/108040642