桂智明,李壮壮,郭黎敏
北京工业大学 信息学部,北京 100124
根据公安部交通管理局发布的数据,截止到2019年6月,全国机动车保有量达3.4亿辆,机动车驾驶人达4.2 亿人。随着全国机动车保有量的不断增加,城市交通拥堵问题越来越严重。交通拥堵不仅耽误人们出行,减少社会活动效率,造成经济损失,还会浪费大量资源,造成城市空气污染。为了解决交通拥堵问题,智能交通系统(Intelligent Transport System,ITS)应运而生。交通流预测是ITS 的核心功能之一。由于交通流具有时变性,所以一般采用短时预测来对交通系统进行诱导。短时交通流预测是指利用地磁、传感线圈等设备实时获取的交通流数据去预测未来半小时内的交通流量。通过预测短时交通流不仅可以为公众出行提供服务,改善导航系统,还可以为交通管理部门提供有效技术支持,提高道路资源的利用率。
道路交通系统是一个典型的复杂系统,周末节假日、交通出行早晚高峰、天气状况等因素以非线性方式相互作用,导致传统的浅层预测模型在实际应用中往往失效。近年来,深度学习在图像识别、自然语言处理等研究领域取得了一系列突破。交通流数据与深度学习常用领域中的研究数据类似,具有丰富的时空特征,结合深度学习进行短时交通流预测具有很大的研究价值。
本文将卷积神经网络(Convolutional Neural Network,CNN)、门控循环单元(Gated Recurrent Unit,GRU)以及注意力机制技术应用到交通流预测领域,提出基于深度神经网络的短时交通流预测模型,准确预估未来时刻的交通流量。本文的主要贡献总结为:
(1)提出了一种结合注意力机制的卷积门控循环单元预测模型,利用CNN和GRU提取交通流数据的时空特征,通过引入注意力机制,计算不同时刻交通流特征的重要性,同时利用交通流数据的周相似性提取周期特征。
(2)在公开交通数据集上,对所提出的短时交通流预测模型进行实验验证,并与传统预测模型进行对比分析。实验表明,本文提出的模型提升了交通流的预测精度,可以更好地解决短时交通流预测问题。
国内外很多学者都对短时交通流预测进行了研究,使用的统计理论模型主要包括历史平均模型、卡尔曼滤波模型和差分自回归移动平均模型(ARIMA)。Zhang等人[1]提出了具有周期性的季节性ARIMA 模型的一般表达式,给出了利用季节性ARIMA 模型建模和预测交通流的步骤,研究实验表明,季节ARIMA模型可以对实际高速公路交通流进行建模和预测,获取较好的预测效果。Kumar 等人[2]提出了一种基于季节的ARIMA(SARIMA)预测模型,该模型相比传统的ARIMA 考虑了不同季节对交通流量的影响。
由于交通流具有非线性和随机性特点,为了更好地捕获交通流数据之间的特征,一些机器学习方法被广泛应用于短时交通流预测。Hong[3]使用混沌模拟退火算法优化SVR 的参数,提升了支持向量机回归模型的学习能力,并以台湾北部的交通流量数据为例,验证了所提出模型的预测准确率。Hu 等人[4]将粒子群优化(PSO)算法和SVR 算法相结合,采用PSO 来优化SVR的参数,从而提升了交通流的预测效果。为了提高短时交通流预测的准确率,Liu等人[5]基于非参数回归和SVR提出了一种KNN-SVR 模型,采用k近邻算法重建与当前交通流相似的历史交通流序列,然后利用SVR 进行交通流预测。
随着深度学习在语音、图像和自然语言处理等研究领域的广泛应用,人们提出了许多深度学习方法来预测短时交通流[6-7]。Tian等人[8]发现大多数时间序列预测模型的输入长度是静态的,不能准确地确定最佳的时间滞后,因此使用长短期记忆网络(LSTM)预测交通流量序列,克服了最佳时间滞后的确定问题,并将LSTM 与支持向量机、单层前馈神经网络和层叠自动编码器等几个著名模型进行了比较。Fu 等人[9]分别使用LSTM、GRU和ARIMA三个模型进行短时交通流预测,并通过PeMS公开交通数据集论证了GRU 网络具有最好的预测效果。王祥雪等人[10]首先对交通流时间序列进行重构和标准化处理,然后使用LSTM神经网络预测短时交通流量,对比BP网络模型,预测精度得到了大幅改进。
由于LSTM 和GRU 只关注交通流数据的时间特征,忽略了空间特征,而CNN 网络更关注空间特征,因此出现了很多CNN-RNN预测模型。晏臻等人[11]提出将CNN和LSTM相结合的短时交通流预测模型,并验证了考虑时空特征进行交通流预测的有效性。Liu等人[12]将CNN 中的一维卷积和LSTM 相结合,构成Conv-LSTM模块提取交通流的时空特征,并使用Bi-LSTM 模块提取交通流的周期特征,最后将特征融合,获取交通流量的预测值。闫杨等人[13]用GRU代替LSTM,结合 Conv-GRU 和 Bi-GRU 预测交通流量,与 Conv-LSTM 方法相比,训练时间更短且不失预测性能。
为了更好地挖掘交通流时空特征,一些学者将注意力机制应用到短时交通流预测。李志帅等人[14]结合图卷积网络获取路网流量的空间特征,并使用注意力机制调整网络输出,进而提升交通流预测精度。Guo等人[15]提出一种结合注意力机制的时空图卷积网络来解决交通流预测问题,通过注意力机制有效捕获交通数据中的动态时空关联。
基于上述研究,本文将CNN 和GRU 相结合,构成卷积门控循环单元有效提取交通流数据的时空特征,并利用交通流数据的周相似性提取周期特征。考虑到不同时刻的交通流特征对预测时刻流量的影响具有差异性,在GRU层后面引入注意力机制层,自动捕获不同时刻输入特征的影响,形成含有注意力概率分布的交通流特征表示,以提升交通流的预测效果。
交通流数据具有很强的规律性,通过分析交通流数据的特点,可以为短时交通流预测模型的建立提供参考依据。与常规时间序列预测数据不同,交通流数据具有以下几个特点:
(1)交通流数据具有丰富的时空特征。在时间上,一个观测点可以在各个时刻持续收集交通流数据,形成一个随时间变化的交通流量序列。由于道路上车辆的聚集和发散是一个渐进过程,所以之前时刻的交通流量会影响下一时刻的交通流量。在空间上,相邻观测点之间的交通流量是密切相关的。单个道路上下游观测点的交通流量存在时延关系,分叉道路不同观测点的交通流量存在和差关系。
(2)交通流数据具有周期特征。人们每天的工作时间通常是固定的,因此出行产生的交通流量存在以日、周、月为单位的相似规律。在各个周期单位中,以周为时间尺度的交通流量具有最强的相似规律,如星期二的交通流量曲线与上周星期二的交通流量曲线趋势相似,相似度较高,与本周星期一和上周末的交通流量曲线相似度较低。
(3)交通流数据构成的时间序列具有复杂的相关性。通常来说,交通流量在相邻时间点之间会表现出更强的相关性。然而,交通流量会受到天气、交通拥堵等外部因素的影响,对于交通流预测,较远过去时间点的重要性不一定低于较近过去时间点。不能只依靠时间上的临近程度去区分不同时刻的重要程度。
短时交通流预测的难点在于如何有效利用数据的时空特征、周期特征和时间上的复杂相关性。交通流数据复杂多变,不同观测点和不同时间点上的交通流量相互影响,使得准确预测交通流变得十分困难。
针对交通流数据的特点,本文提出了一种结合注意力机制的卷积门控循环单元预测模型(Attention-based CNN-GRU,ACGRU)。如图1 所示,ACGRU 模型主要由四部分构成,第一部分使用CNN 层提取交通流的空间特征;第二部分是时间特征提取,使用一个引入注意力机制的GRU 网络完成,注意力机制可以计算交通流特征在各个时间步的重要性,综合考虑各个时间步上的信息;第三部分是另一个通道上的周期特征提取,同样使用一个引入注意力机制的GRU 网络;第四部分是一个全连接层,综合时空特征和周期特征进行回归预测。下面的章节将对模型各部分进行详细介绍。
道路上某个观测点的交通流量不仅与自身历史交通流量有关,还与相邻观测点上的交通流量有关。卷积神经网络是一种经典的深度学习网络架构,具有强大的特征提取能力。本文选用卷积神经网络来挖掘交通流数据的空间特征。卷积神经网络主要由卷积层、池化层和全连接层三部分组成,具有局部连接和权值共享等特性。这些特性可以大大减少网络的参数数量,加速训练速度,降低特征提取的复杂度。
为了充分提取交通流数据的时空特征,首先需要将原始一维交通流数据转换为二维的交通流量矩阵,矩阵的两个维度分别为时间维度和空间维度。假设需要对S个观测点的交通流量进行预测,每个观测点收集了连续T个时刻的交通流数据,用xts表示第s个观测点在t时刻收集到的交通流量,那么所有观测点在t时刻的交通流量可以表示为F=(xt1,xt2,…,xts),将S个观测点T个时刻的交通流数据进行组合得到的交通流量输入矩阵可以表示为:
卷积层主要是使用不同的卷积核来对上一层的输入特征进行卷积运算来提取不同的局部特征,卷积核的所有参数通过反向传播算法计算。本文使用一维卷积来处理交通流量输入矩阵中的每一行元素,通过滑动一维卷积的卷积核获取相邻观测点的空间特征。本文使用以下公式表示卷积操作:
公式中,Wc、bc为需要学习的参数,f表示激活函数。因为短时交通流预测任务中交通数据的空间维度往往是有限的,为了充分保留特征,不使用池化层来对特征矩阵进行压缩,只使用卷积层提取特征。
RNN 是一种用于处理时间序列数据的神经网络。与基础的神经网络不同,RNN 隐藏层中的节点不再是无连接的而是有连接的,隐藏层的输入不仅含有输入层的输出,还含有上一时刻隐藏层的输出。传统的RNN网络处理长期依赖问题时存在梯度消失问题,LSTM神经网络的提出解决了该问题,被广泛运用在时间序列数据预测领域中。然而LSTM的内部结构十分复杂,导致网络训练需要耗费大量时间,因此在LSTM的基础上又出现了GRU 网络。与LSTM 相比,GRU 的网络参数更少,容易进行训练,同时还保持了LSTM 的预测效果。GRU单元通过以下公式计算得到隐藏层状态ht:
图1 ACGRU模型结构图
图2 观测点分布图
公式中,zt和rt分别表示更新门和重置门,表示ht的候选状态,σ表示sigmoid 激活函数,W*,U*,b*为需要学习的参数。更新门为LSTM 遗忘门和输入门的组合,用于控制前一时刻有多少状态信息被带入到当前状态,重置门控制前一时刻状态信息的忽略程度。本文将CNN 层提取的流量模式作为GRU 层的输入,使交通流量模式保持时间上的连续性。
注意力机制通过模拟人脑注意力的特点,对重要的信息给予更多的关注。由于各个时刻的交通流特征对预测时刻流量的影响程度不同,所以需要在传统的GRU 层后面,引入注意力机制层。通过注意力机制计算各个时刻输入特征的重要性,生成含有注意力概率分布的交通流特征表示。针对GRU单元输出的隐藏层状态ht,本文采用以下注意力机制公式:
公式中,ve,We,be为需要学习的参数,et为第t个时刻GRU单元输出向量ht对应的注意力评分值。本文使用softmax函数对et进行归一化得到αt,然后将各个时刻对应的权重系数αt和输出ht相乘求和得到输出c。向量c对GRU 单元的输出进行了加权,表示含有注意力概率分布的交通流特征。
受人们每天的作息规律影响,交通流数据具有周期特征。对于预测时刻的交通流,前一周相同时刻和前后相邻时刻的交通流都包含有用信息。本文利用交通流数据的周相似性建立以周为单位的周期特征,构造周期流量输入矩阵如下:
其中,t表示预测时刻在前一周相对应的同一时刻,n表示周期时间步长,本文取前一周相同预测时刻和该时刻前后各n个时刻的数据作为输入,S表示需要预测的观测点的数量。对于周期特征,不同观测点的空间影响较小,仅需提取时序特征,因此使用一个引入注意力机制的GRU网络进行特征提取。通过去掉周期通道上的空间卷积可以减小ACGRU模型的网络规模,加快模型的训练速度。将提取的周期特征和时空特征合并,一起输入到全连接层中处理,最终输出所有观测点下一时刻的交通流量。
为了评估本文模型的有效性,选取美国加利福尼亚州的交通局性能测量系统(Caltrans Performance Measurement System,PeMS)数据集进行分析,该数据集是短时交通流预测最常用的数据集。PeMS系统通过布设在道路上的各种传感器,包括感应线圈探测器、高频雷达等,持续地检测交通流数据,并以30 s 一次的频率向工作站发送检测数据。这些交通流数据(包括交通流量、占有率和速度)被聚合成间隔为5 min的聚合数据发布到网络上,供人们出行参考和学术研究。本文选取I10高速公路上连续16个观测点作为预测的目标站点,观测点的分布如图2 所示。以2018 年5 月26 日到2018年7月31日共67天的交通流量作为实验数据,并选取前60天的数据作为训练数据,后7天的数据作为测试数据。
图3 为 2018 年 6 月 18 日 到 2018 年 7 月 9 日连续四周每个周一的交通流数据折线图。从图中可以看出交通流数据具有强烈的周相似性,早高峰和晚高峰的时间基本一致,反映了人们在工作日的出行规律。
图3 连续四个周一的交通流
本文选用回归问题最常用的三个评价指标来对短时交通流预测模型进行评价,三个指标分别是平均绝对误差(MAE)、均方根误差(RMSE)和平均绝对百分比误差(MAPE)。三个指标的定义如下所示:
公式中,Pi表示观测点的交通流预测值,Fi表示相应的交通流真实值,N是预测值的个数。MAE、RMSE和MAPE的值越小,表明模型的预测效果越好。
本实验将时间窗口设置为12,即使用之前60 min的数据去预测未来5 min 的交通流量,周期窗口设置为13,将前一周相同预测时刻和该时刻前后各30 min的数据作为辅助输入代表周期特征。本文提出的ACGRU模型主要有5个网络参数需要调节,分别是CNN层卷积核的个数m,卷积核的大小s,CNN 的层数n,GRU 层的隐藏单元数p,GRU 的层数q。使用网格搜索对这些参数寻优,多次实验表明CNN 设置为2 层,每层卷积核个数设置为12,卷积核大小设置为3,GRU 设置为2层,每层单元个数设置为48,在测试集上可以达到最佳预测效果。模型训练阶段,将批大小(Batch Size)设为64,训练轮数设为100,采用Adam 优化器,学习率设为0.001,使用早停法(Early Stop)防止过拟合。
4.4.1 模型预测结果
本文选取第9号观测点在7月30日的交通流量进行分析,预测结果如图4 所示。从图中可以看出ACGRU预测模型具有良好的预测效果,各个时间点的预测值与真实值基本吻合,较为准确地反映了交通流的变化趋势。
图4 第9号观测点的交通流预测结果
4.4.2 基准模型比较
为了比较ACGRU模型的预测性能,本文选取了已有工作中的五个经典预测模型作为基准对比模型。五个模型分别是:线性回归算法LASSO[16]、非线性回归算法SVR、栈式自编码神经网络SAE[17]、卷积神经网络(CNN)和门控循环单元(GRU)。其中LASSO是带有正则项的线性回归模型,相比传统的线性回归模型可以有效防止过拟合。SVR采用径向基函数作为核函数,惩罚参数C设置为1.0。SAE是由多个隐含层构成的深度学习模型,不同于传统的BP网络,SAE网络隐含层的权重参数通过预训练得到,隐含层可以看成对原始数据的抽象表示。SAE 在预训练结束后,需要加入一个BP 网络来实现回归。
表1 给出了所有模型的预测结果误差。从该表中可以看出,ACGRU 模型相对其他基准模型的各类误差均更小,RMSE指标平均降低了9%,相比最好的基准模型GRU 降低了5%。该结果表明,本文提出的ACGRU模型的预测性能相对基准模型而言有明显的提高。
表1 模型预测性能比较
为了更加直观比较模型预测效果,本文选取预测性能较好的CNN、GRU 模型来与ACGRU 模型对比。预测目标为4 号观测点早上8 点到8 点55 分的交通流量。对比结果如图5 所示,从图中可见ACGRU 模型的拟合效果最好。
图5 模型预测结果对比
图6为所有模型对各个观测点的RMSE指标对比,从图中可见,ACGRU模型在16个观测点的预测误差都比基准模型低。
图6 各个观测点预测性能评估
4.4.3 变体模型比较
为评估ACGRU 模型各个模块的有效性,本小节将ACGRU 模型与其他变体模型相比较,变体模型如下所示。
(1)ACGRU-nCNN 模型:在 ACGRU 模型基础上,去掉提取空间特征的卷积层。
(2)ACGRU-nPeriod 模型:在ACGRU 模型基础上,去掉周期特征提取模块。
(3)ACGRU-nAttention 模型:在ACGRU 模型基础上,去掉注意力机制层。
表2 给出了所有变体模型的实验结果。从该表中可以看出,相比三个变体模型,ACGRU模型的各个误差指标均最小,表明ACGRU 模型的各个模块均有作用,组合在一起可以获得最好的预测性能。因为CNN网络可以有效提取交通流数据的空间特征,所以ACGRU-nCNN模型的预测效果比ACGRU模型差。对比ACGRU模型和ACGRU-nPeriod 模型可以发现,周期特征可以作为交通流预测的一个辅助特征,提升预测准确率。将ACGRU模型和ACGRU-nAttention模型对比可以发现,引入注意力机制层可以计算不同时刻交通流特征的重要性,使模型更关注重要性大的交通流特征,从而提升交通流预测效果。
表2 变体模型预测性能比较
本文提出了一种ACGRU 深度学习模型来进行短时交通流预测。该模型利用CNN 和GRU 提取交通流数据的时空特征,并在GRU层后面引入注意力机制层,综合考虑各个时刻的交通流特征,同时添加周期特征作为辅助模块来提升预测性能。实验结果表明,ACGRU预测模型可以有效提升短时交通流预测的预测精度,与CNN 模型和GRU 模型相比,误差评价指标MAE 和RMSE值均有明显降低,其预测结果对缓解城市交通压力有着十分重要的意义。然而,本文预测的交通流区域不够大,以后可以扩大研究范围,采用更加复杂的路网数据进行实验。交通流会受到天气、交通事故等其他因素的影响,如何利用这些辅助信息来提高预测精度也是以后的重要研究点。