赵嘉雨,段亚茹,何立明
(长安大学 信息工程学院,陕西 西安 710064)
交通速度预测是智慧交通系统[1]的主要研究课题之一。早期的方法包括历史平均模型,其中使用历史时期的交通量的平均值作为预测值。该方法不能很好地拟合时间特征,并且预测精度较低。以下统计学预测模型,应用在交通预测模型上可以更好捕捉交通序列的动态变化。例如,文献[2]使用的指数平滑模型和文献[3]使用的自回归移动平均模型(autoregressive integrated moving average model,ARIMA)。随着交通预测研究的不断深入,许多交通速度预测模型使用机器学习来提高预测精度,机器学习可以重新组织已有的结构使之不断改善模型性能。文献[4]使用支持向量回归(support vector regression,SVR)来构造模型,文献[5]使用贝叶斯网络来构造模型,使得交通预测模型的精度得到很大的提升。
深度学习是目前研究的主要方向,弥补了机器学习方法需要构建特征工程和难以捕捉交通流序列长期记忆的缺点,可以很好地学习到交通数据的动态特征。使用深度学习来进行交通预测,可以分为两大类,一类方法考虑时间依赖性,一类方法考虑空间依赖性。以下方法只考虑了时间依赖性。例如,文献[6]使用深度置信网络(DBN)和回归模型组成的模型,从多个数据集上的交通数据中捕获随机特征。此外,文献[7]使用长短时记忆网络(long-short term memory networks,LSTM)来构建模型,LSTM通过自循环机制,更好地捕捉了时间依赖性,用于预测交通速度可以获得更好的预测结果。文献[8]使用门控循环单元(gated recurrent unit,GRU)来构建模型,GRU与LSTM提取时间特征的思想类似,但是GRU比LSTM训练速度更快。以上交通预测模型没有考虑空间依赖性,获取到的交通数据的变化没有受到城市道路网的约束,因此不能准确预测道路上的交通状态。文献[9]使用循环神经网络(CNN)来实现交通速度预测任务,该模型可以获取空间特征。为了更好地描述空间特征和时间特征,许多研究做出了改进。文献[10]提出了一个模型,该模型是将卷积神经网络(convolutional neural network,CNN)与LSTM结合,从而可以获取到交通序列的时空特征,使得预测的结果更加准确。在时间序列中,考虑前向和后向数据的变化规律有助于提高模型的拟合精度,文献[11]利用双向长短时记忆网络 (bi-directional long-short term memory,Bi-LSTM) 模型对高速公路交通流进行预测,结果表明Bi-LSTM模型预测结果比LSTM模型更接近真实值。文献[12]为了充分发挥CNN对空间特征的选择提取能力,同时利用Bi-LSTM提取时间特征,构建复合模型,通过实验证明该模型的预测值与真实值更贴合,证明了Bi-LSTM挖掘数据特征能力比LSTM更强,对于复杂的回归问题具有较好的拟合性能。CNN适用于欧几里得数据,如图像和网格,所以CNN在具有非欧几里得结构的交通网络中存在局限性。图卷积网络(graph convolutional network,GCN)[13-14]可以克服上述局限性,捕捉网络的结构特征,可以更好地应用于复杂的道路结构。
现有先进的模型结合了GRU和GCN,文献[15]使用T-GCN模型获取时空特征。文献[16]引入了注意力机制(attention mechanism),ST-AGTCN模型可以更好地捕捉时空依赖性,进而提高了预测交通速度精度。
近些年在计算机视觉、自然语言处理等领域对比学习得到了广泛应用。对比学习主要工作是: 将一个样本的不同的、增强过的新样本在嵌入空间中尽可能近,然后让不同的样本之间尽可能远。由此极大地提高了模型的鲁棒性。文献[17]介绍了正则化Dropout (regularized dropout,R-Drop ),R-Drop是对比学习的一种方式,将R-Drop思想应用在有监督任务上使得很多模型的实验结果都取得了明显的提升。
为此,提出了GRU-GCN-RDrop模型用于交通预测任务。GRU-GCN-RDrop模型结合了GCN和GRU,并引入了R-Drop方法。GRU-GCN-RDrop模型不仅可以捕获时空特征,而且通过对比学习提高了模型的泛化能力。
交通速度预测任务是一个典型的时间序列预测任务,文中的研究数据是交通速度,表示为X∈RN×T。通过输入历史交通速度X={xt-h+1,xt-h+2,…,xt}∈RN×H和对应时刻的路网结构G,其中H为输入数据的个数,预测未来Tp时段所有节点的交通速度数据Y={yt+1,yt+2,…,yt+Tp}∈RN×Tp。用函数F来表示这一过程,如下:
Y=F[X,G]
(1)
由于道路结构复杂多样,对网络的空间依赖建模在具体预测任务中是必不可少的。此外,在现实世界中,交通状态可以随着时间的推移而不断变化。为了实现捕获真实交通数据中的时空依赖性,GRU-GCN-RDrop模型将图卷积网络和门控循环单元组合起来,在子模型基础上使用了对比学习提高模型鲁棒性。
交通预测问题中要解决的一个重要问题就是获取复杂的空间依赖关系。卷积神经网络可以获得空间特征,欧式数据可以使用CNN模型进行空间建模,常见的欧式数据有图像、语音和常规网格。城市道路网格是非欧式数据,这类数据不能使用CNN模型来捕捉空间依赖性,图卷积网络可以弥补CNN的缺点。GCN是CNN的推广,可以对复杂拓扑结构提取空间关系。
如图1所示,获取图的空间特征时需要处理中心节点和周围节点的拓扑关系。在预测交通速度模型中,利用GCN模型可以提取到中心道路和周围道路的空间关系,进行信息聚合后捕捉到空间依赖性。GRU-
图1 GCN模型框架
GCN-RDrop模型中使用了一个2层的GCN模型,公式表示如下:
(2)
交通预测问题中要解决的另一个重要问题就是获取时间依赖关系。循环神经网络(RNN)虽然可以处理序列数据,但是存在局限性。门控循环单元网络(GRU)和长短期记忆网络(LSTM)是基于RNN的改进模型,可以解决RNN无法处理长序列依赖关系捕捉等问题。GRU-GCN-RDrop模型选择了GRU模型来从交通数据中获得时间依赖性,是因为GRU模型的结构比LSTM的简单,需要训练的参数也更少,训练时间也就更短,极大地提高了训练效率。
如图2所示,GRU中的隐藏单元是一个特殊的细胞结构。GRU使用门控机制可以捕捉长序列依赖关系特征,在其内部结构中存在重置门和更新门。
图2 GRU模型
各个门控的计算公式如下:
ut=σ(Wu[f(A,Xt),ht-1]+bu)
(3)
rt=σ(Wr[f(A,Xt),ht-1]+br)
(4)
ct=tanh(Wc[f(A,Xt),(rt*ht-1)]+bc)
(5)
ht=ut*ht-1+(1-ut)*ct
(6)
其中,ht-1表示t-1时刻的输出同时也是t时刻的输入;rt表示重置门;ut表示更新门;ct表示当前记忆内容;f(A,Xt)表示图的卷积过程,W和b表示训练过程中的权重和偏差。
结合GCN的GRU可以从交通数据中获取空间和时间上的依赖性,在此基础上加入对比学习方法R-Drop,从而构建了GRU-GCN-DRrop模型,如图3所示。
图3 GRU-GCN-RDrop模型
该模型中使用了对比学习中的R-Drop方法,即通过增加一个正则项,来强化模型对Dropout的鲁棒性,使得不同的Dropout下模型的输出基本一致,从而使得简单Dropout的效果等价于多Dropout模型融合的结果,提升模型最终性能。
图3中左右两部分运作过程相同,第一步经过两层图卷积网络后可以捕获交通路网的空间特征。第二步是将带有空间结构的时间序列数据输入到门控循环单元,从而就得到数据的时空特征。第三步是经过dropout层,使得左右两部分的训练不一致。当整个历史序列输入完并处理完成后,左右两部分得到两个概率分布。
在每个小批量训练中,每个数据样本经过两次前向传播,每次经过都由不同的子模型处理,随机删除一些隐藏单元。通过最小化两个分布之间的双向KL散度(Kullback-Leibler divergence),迫使两个子模型输出的相同数据样本的两个分布彼此一致。GRU-GCN-RDrop对训练中每个数据样本中随机抽样的两个子模型的输出进行正则化,可以缓解训练阶段和推理阶段之间的不一致性。
(7)
式中,前两项用来最小化实际车速和预测值之间的误差,第二项对称KL散度,用来规范模型预测,α是一个权重系数。
总之,GRU-GCN-DRrop模型可以处理交通数据中复杂的时空特征。利用GCN来捕获城市道路网络的拓扑结构,以获得空间依赖性。利用GRU捕获道路上交通信息的动态变化,获得时间依赖性。利用对比学习方法R-Drop提高模型泛化能力使得预测精度提高,最终完成交通速度预测任务。
利用SZ-taxi数据集进行实验。SZ-taxi数据集采集到的数据为深圳出租车轨迹数据,此次实验选取的研究区域为罗湖区,数据集采集时间段为2015年的1月份,共31天。有两个矩阵表示数据,使用一个邻接矩阵表示156个主要道路,大小为156*156。另一个矩阵中每个元素代表不同道路在不同时间段上的交通速度,行代表道路信息,列代表时间信息。该数据集中采样周期为15分钟,每15分钟计算一次每条路上的车速,共为2 977组数据。
实验中,训练集为数据集的前80%,测试集为数据集的后20%。对输入数据进行预处理,输入数据被归一化到区间[0,1]。
GRU-GCN-RDrop模型对实验中参数的设置如下: 学习系数为0.001,,批量大小为64,隐藏单元的数量为100和R-Drop权重系数为0.1.
由于KL散度在训练初期表现得不是很稳定,所以训练初期不加入KL散度,只训练带有dropout的模型,训练次数设定为1 000次,再将此模型加上KL散度训练,训练次数设定为300次。
为了评估GRU-GCN-RDrop模型的预测性能,使用5个指标来评估真实交通信息和预测值之间的差异,RMSE和MAE来衡量真实值和预测值之间的误差,Accuracy来衡量预测精度,R2和Var来衡量预测值是否可以代表真实值。
(1)均方根误差(RMSE):
(8)
(2)平均绝对误差(MAE):
(9)
(3)精度(Accuracy):
(10)
(4)判定系数(R2):
(11)
(5)解释方差(Var):
(12)
为了进一步评价提出的GRU-GCN-RDrop模型的性能,与以下模型进行对比分析:
(1) HA:历史平均模型。HA模型通过计算历史交通速度的平均值作为下一时间段的交通速度预测值。
(2) ARIMA:自回归差移动平均模型。ARIMA模型预测的序列规律性越强,预测结果越好。
(3) SVR:支持向量机回归模型。SVR模型通过学习到数据中的非线性关系来对未来交通数据进行预测。
(4) GCN:图卷积网络。GCN模型捕获空间特征进行交通速度的预测。
(5) GRU:门控循环单元网络。GRU模型捕获时间特征进行交通速度的预测。
实验对GRU-GCN-RDrop模型及其他基线方法进行15分钟、30分钟、45分钟和60分钟的预测。
实验结果如表1所示,*表示该值太小,可以忽略不计,说明该模型的预测效果较差。
表1 GRU-GCN-RD模型和其他基线方法在SZ-taxi数据集上的预测结果
从表1可以看出,在这五个评估指标下,提出的GRU-GCN-RDrop在SZ-taxi数据集上都是最佳表现,本节从三个方面来分析模型GRU-GCN-RDrop的优势。
(1)GRU-GCN-RDrop模型的预测精度高。基于深度学习的模型一般比基于统计理论的模型具有更好的预测精度和更低的均方根误差。例如,15 min的交通速度预测任务,GRU-GCN-RDrop模型和GRU模型的均方根误差分别比SVR模型低了约46.2%和46.3%,准确率分别提高了4.2%和1.8%。这主要是由于基于统计理论的模型只擅长处理简单的、平稳的时间序列数据。
(2)GRU-GCN-RDrop模型的时空预测能力强。对比GCN模型和GRU模型,可以清楚地从表1中看到组合模型(GRU-GCN-RDrop)比单因素的模型(GCN,GRU)有更好的预测能力。以15 min的交通速度预测为例,GRU-GCN-RDrop的均方根误差相比GCN的均方根误差低了56.7%,比GRU的均方根误差低了5.3%,表明GRU-GCN-RDrop模型可以从交通数据中捕获时空特征。
(3)GRU-GCN-RDrop模型的长期预测能力强。图4显示了GRU-GCN-RDrop模型在不同预测范围内的均方根误差和精度的变化,在不同的预测范围中,误差和精度的变化不大,具有一定的稳定性。图5显示了不同基准模型的均方根误差比较。可以看出,无论预测范围如何,GRU-GCD-RDrop模型都能达到最好的结果。
图4 模型在不同预测范围内的均方根误差和精度
图5 不同基准方法在不同预测范围内的均方根误差
(4)GRU-GCN-RDrop模型的泛化能力强。与现有先进的模型T-GCN和ST-AGTCN进行比较,这三种模型都捕捉到了时空依赖关系,GRU-GCN-RDrop模型使用R-Drop提升泛化能力使得均方根误差降低。从表1中可以看出,GRU-GCN-RDrop模型的均方根误差在不同预测范围内都是最低的。
从对数据集中任意两个路段提前15分钟和提前30分钟预测情况的可视化图中可以发现,GRU-GCN-RDrop模型对于交通速度的预测可以得到良好的结果,如图6~图9所示。
图6 节点1在预测范围为15 min内可视化结果
图7 节点1在预测范围为30 min内可视化结果
图8 节点2在预测范围为15 min内可视化结果
图9 节点2在预测范围为30 min内可视化结果
(1)设计了基于GRU-GCN-RDrop组合模型框架,是将GRU和GCN模型结合,并使用对比学习方法,改善了现有模型预测能力。
(2)通过与5种基准方法进行对比,实验表明所提出的交通速度预测模型在RMSE、MAE、R2_score、Accuracy、var五个指标上均表现为最佳。
(3)该模型的搭建为交通速度预测提供了更准确的信息,可对交通部门提供帮助,提高行人出行效率。
(4)为进一步推广交通速度预测模型的应用,在未来工作中,对交通速度的预测可以从单步预测转换为多步预测,提升整个智能交通系统的实用性。