作者 | 大阳Vinc
前言
时空序列问题包含两种形态:表格化数据和图片数据。
而在这个系列此篇之前的文章所介绍的模型都是针对于解决图片数据问题。
在这篇文章中,给大家介绍一种表格化数据的时空预测问题以及对应的一种模型。
一、Address
这是一篇IJCAI2018年的论文,来自北大的团队
Spatio-Temporal Graph Convolutional Networks: A Deep Learning Framework for Traffic Forecasting
二、Introduction and Model
2.1 交通流预测问题
假如我是道路上的一个摄像头,就负责数经过的汽车数量,没过五分钟我就记录一下这段时间总共有多少车经过,那么一段时间后便可以得到一个时间序列数据。由此可见,交通流预测问题是典型的时间序列问题。而如果我们针对的是某一区域的多条道路以及其上的多个摄像头而言,那么得到的这若干个时间序列就又有了空间信息,即不同摄像头所处的不同的空间位置。因此,我们可以把交通流预测问题看作一个时空序列问题,即利用数据之中所蕴含的时间、空间信息来对未来的区域内不同道路的交通流量进行预测。
如果表示成数学公式的话,那么交通流预测的主要问题就是:
即求得在已知t-M+1到t时间点内的交通流量,去求t+1到t+H时间点的交通流量。
图结构交通数据如下所示:
2.2 问题研究历史及本文创新
文章开头老生常谈的介绍了一下交通流预测问题的重要性以及在这一领域惯用的方法:动态建模和数据驱动方法两种方式。由于使用算法复杂度太高、计算成本大、以及过多的对现实理想化的假设,使用数学和物理知识建模基本上已经被抛弃啦。而传统统计学、机器学习方法虽然可以在中短期交通流预测中实现较好的预测,但是无法再长期预测中达到较好的结果。
于是目光就转到具有强悍的表示能力的深度学习模型。此文之前的深度学习模型大多采用传统CNN和LSTM(GRU)来分别学习空间和时间特征,然而问题就在于传统CNN只能处理标准的网格数据(例如图片),而LSTM因为是迭代训练容易发生误差积累,而且计算量大不说还挺难训练。
于是,机智的作者设计了一种时空卷积神经网络,纯粹采用卷积层来设计神经网络进行时空预测,不但参数更少,训练的还更快了,真香!
2.3 模型
2.3.1 网络结构
上面夸了那么多,接下来就让我们来看看这个时空图卷积网络到底是怎么一回事。
时空卷积网络(ST-GCN)包括两个时空图卷积块(ST-Conv Block)和一个输出全连接层(Output Layer)。作为网络结构核心的时空卷积块又由两个时间门控卷积和中间的一个空间图卷积组成,就像一个三明治一样。
等等,STGCN这个名字是不是有点熟悉?如果你还记得的话,在系列的【时空序列第三篇】中,曾介绍了一种名为ST-LSTM(清华ST-LSTM北大ST-GCN还行),其中提出的一个重要的思想就是要把时间信息和空间信息编码到一个记忆模块里,只不过那篇文章是通过构建了Spatiotemporal LSTM实现的,而这里是利用Spatiotemporal GCN来实现的。下面就来为大家具体拆解ST-GCN,看看它是如何实现同时提取时间和空间信息的。
2.3.2 GCN提取空间特征
关于图卷积文章,更详细的介绍可以见(#GCN链接)。下面我按照论文中的叙述仅给出数学上的公式推导。
- 图卷积(Convolutions on Graphs)
图卷积最早来源于图频谱理论,将图卷积定义为信号x和图核的乘积,即
其中,图傅里叶基(n为图的顶点个数)是归一化的图拉普拉斯矩阵 (是单位矩阵, 是对角矩阵,)的特征向量矩阵, 是由图拉普拉斯矩阵L的特征值组成的对角矩阵,图核也是对角矩阵。
以下的切比雪夫多项式和一阶多项式近似都是为了使得图卷积的运算复杂度降得更低而采取的手段:
- 切比雪夫多项式
其中,, k为切比雪夫多项式的阶数(可以理解为CNN中的kernel_size);。公式(3)相较公式(2)的计算复杂度大为较低,节省较多算力()。
- 一阶多项式近似() 假定, 则公式3可以简化为:
其中, 是图核的共享参数。为了约束参数并为稳定数值计算,和用一个参数θ来替换,=-;W和D是通过和重新归一化得到的。这样,图卷积就可以表示为:
纵向堆叠一阶近似的图卷积可以获得和横向的K阶卷积相同的效果,所有的卷积可以从一个顶点的K−1阶近邻中获取信息。K是连续卷积运算的次数或是模型中的卷积层数。另外,针对层的线性结构是节省参数的,并且对大型的图来说效率很高,因为多项式近似的的阶数为1。
最后对图卷积运算进行泛化(即统一表达形式):
- 图卷积的泛化(Generation of Graph Convolution)
定义于n维向量上的图卷积运算∗g也可以应用到多维张量上。对于一个有着Ci个通道的信号,图卷积操作可以扩展为:
其中,切比雪夫系数有个向量(, 分别是输入和输出特征值的大小)。针对二维变量的图卷积表示为,其中。需要注意的是,输入的交通预测是由M帧路网组成的,如图1所示。每帧可以被视为一个矩阵,它的第i列是图中第i个顶点的一个为维的值,也就是(本例中,)。对于M中的每个时间步t,相同的核与相同的图卷积在中并行运算。因此,图卷积操作也可以泛化至三维,记为,其中。
2.3.3 提取时间特征的门控卷积神经网络
相较于传统时空模型,作者最大的创新点就在于使用一维卷积进行时间维度的信息学习。所以作者在这里再次强调RNN和CNN在时间序列预测方面的差异:
即循环神经网络家族对于交通预测这种数据集比较大的问题而言,迭代训练和复杂的门控机制太消耗算力和时间。而且由于循环神经网络的状态严重依赖于上一步的记忆信息,因此很难捕捉剧烈的数据波动(在交通流预测问题中,表现为早晚高峰车流量的剧烈波动)。与之相反,卷积神经网络因可以更好的并行训练而耗时低,而且不受之前时间点预测数据的限制使得它能更好的捕捉数据的剧烈变化。当然具体效果咱们还得实验看。下面先来介绍一下这个时间维度卷积神经网络的结构。
时间卷积层包含了一个一维卷积,卷积核的宽度为,之后接一门控线性单元激活。对于图g中的每个顶点,时间卷积对输入元素的个近邻进行运算,以致每次将序列长度缩短(no padding)。因此,每个顶点的时间卷积的输入可以看作是长度为M的序列,有个通道,记作。卷积核是映射到一单一输出(P, Q为通道数一半)。时间门控卷积公式为:
其中,P, Q分别是GLU的门输入,表示哈达玛积(即元素对应相乘),sigmoid门控制当前状态的哪个输入P与时间序列中的组成结构和动态方差相关。这里GLU门以及作者论文中提到的时间卷积网络中的短路连接(residual connection)实际上都是为了防止梯度消失、而设计的。
2.3.4 时空卷积块
如图二所示,时空卷积块包括两个时间卷积层和一个空间卷积层。处于中间的时间卷积层,承接两个时间卷积层,可取得使空间状态能够从图卷积到时间卷积快速传播。这种网络结构也助于充分应用瓶颈策略(bottleneck strategy)来实现通过压缩通道C来进行规模缩放和特征压缩(目的是为了减少学习参数)。另外,每个时空块都使用层归一化(batchnormalization)抑制过拟合。
时空块的输入和输出都是三维张量。块的输入和输出通过下式计算:
其中,和是块的上下两个时间核,是图卷积的谱核,是激活函数。
在两个时空卷积块后,连接一个时间卷积层和全连接层作为最终的输出层。时间卷积层将最后一个时空块(ST_Conv block)的输出映射为一个单步预测。从模型得到输出之后,通过一个跨C通道的线性变化 得到n个节点的速度预测值。
模型采用如下L2损失函数:
其中,是模型的训练参数, 是实际值,表示模型的预测值。
三、Experiments
3.1 数据集
接下来就到了验证阶段了,前面说了那么多,实践是检验真理的唯一标准。先看数据集,论文作者分别采用北京交委和美国加利福尼亚运输部提供的数据BJER4和PeMSD7进行了测试。每个站点的速度为5分钟间隔的数据。
3.2 数据预处理
输入交通流数据用Z-Score方法进行了标准化处理。PeMSD7数据集中,道路的邻接矩阵是根据交通路网的速度监测站点间的空间距离计算的。权重邻接矩阵W根据下式计算(进行稀疏化):
3.3 实验设置
实验硬件配置如下面黄色标注部分文字。速度的历史数据为过去一小时的数据(即过去12个时间戳的数据M=12),预测接下来的15分钟,30分钟,45分钟的交通速度(H=3,6,9)(分别对应短、中、长期预测)。
3.4 实验结果
评估不同模型的标准为平均绝对误差(MAE),平均绝对百分误差(MAPE)和均方误差(RMSE)。相关结果如下:
可见论文提出的模型在短、中、长期预测中都实现了十分好的效果。
早晚高峰速度预测:
下表不同模型训练时间对比, 从数据看,本论文建议的模型在时间消耗上有很大优势。