宋瑞蓉, 王斌君*, 仝 鑫, 刘文懋
(1.中国人民公安大学信息网络安全学院, 北京 100038; 2.绿盟科技集团股份有限公司, 北京 100089)
随着汽车数量的大幅攀升,缓解交通拥堵越来越成为城市发展所要面对的重大课题。构建完善的智能交通预测系统,是一项重要的应对措施。准确的交通流量预测能够辅助有关部门进行决策,提前采取相关预警措施,促进管理体系和管理能力现代化,给人们出行提供更加合理的建议,减缓交通拥堵。
现有文献对交通流量预测进行了广泛的研究,预测方法可以分为四类:线性模型、非线性模型、组合模型以及交通仿真模型[1]。其中,组合模型是近些年研究的热点,通过组合能够综合不同模型的优势,提取不同维度、不同层面的交通流量特征,从而提取到更加全面的交通流量信息,做出更为精准的交通流量预测。
在组合模型中,基于时空融合的组合模型由于其能够提取到更为全面的特征而被广泛研究。组合模型可以分为三类:时序与非时序模型的组合、线性与非线性模型的组合以及多个非线性神经网络模型的组合。文献[2]组合了时序预测方法霍尔特-温特(Holt-Winters)与线性回归模型,对高铁的客流量进行预测,综合提取了时序与非时序特征。文献[1]将非线性模型小波神经网络与线性模型卡尔曼滤波进行组合,能对交通流数据中的线性部分和非线性部分进行充分提取,更为完整地描述了交通流特征,从而对交通流更加准确地做出预测。将优化算法与预测模型相结合可以提高模型预测精度,如文献[3]中利用粒子群算法优化支持向量回归模型,从而对高速公路做出交通流预测。集成模型也是交通流预测中常采用的方法,文献[4]中提出了一种双机制Stacking集成模型可以更好克服单一模型存在的不足,从而做出更精确的预测。
在神经网络组合模型中,基于时空融合的组合模型是研究的热点。由于交通流的变化在时间维度上具有明显的时序传递性的同时,也会受空间维度上相邻路段的影响,所以时空融合方法能够更加全面地考虑影响交通流变化的因果关系,从而提供更为准确的预测。文献[5]提出了一种注意力交通流机制(attentive traffic flow machine,ATFM),用于提取交通流的时间与空间特征。采用注意力机制自适应地对相关部分予以关注,从而能端到端地生成交通流预测图。文献[6]对提取交通流空间特征的有向性和动态性进行了改进,通过双流图卷积层提取空间相关性的稳定分量和动态分量,最后将所提取的时空相关性进行融合,从而得到较好的预测结果。文献[7]提出了基于CNN-ResNet-LSTM的网络结构,通过残差单元加深网络深度,提高预测准确度,同时充分提取交通流的时空特征。文献[8]利用图卷积网络(graph convolutional networks,GCN)对路网的空间结构进行拓扑关系建模,将其输出作为门控循环单元(gate recurrent unit,GRU)的输入,用于提取时间特征。文献[9]使用卷积-门控循环单元和双向门控循环单元分别提取时空特征,将融合后的特征用于对交通流预测。文献[10]构建了空间邻接矩阵作为空间相关性的量化指标,从而建立交通预测模型。文献[11]提出了一种多图注意力网络(graph multi-attention network, GMAN),使用多个时空注意力块作为编码器和解码器来模拟时空因素对交通状况的影响。文献[12]提出了一种优化的图卷积神经网络,避免了CNN会对路网空间结构产生破坏,用图来表示网络的空间信息。文献[13]提出了基于注意力机制的Conv-LSTM网络结构,综合提取交通流中的时间特征、空间特征以及周期特征。文献[14]考虑到距离较远的路段可可能对当前路段的交通状况产生重要的影响,提出了深度学习框架T-MGCN,对路网中的全局特征进行联合建模,从而进行预测。文献[15]提出了一种新的时空图神经网络,以综合捕捉交通流的时空模式。文献[16]用卷积神经网络提取日间的交通模式,然后输入长短期记忆神经网络来提取日内交通流随时间演化的特征。文献[17] 结合了卷积神经网络(convolutional neural networks,CNN)、长短时记忆网络(long-short term memory,LSTM)和支持向量回归(support vector regression,SVR),将CNN与LSTM提取的空间与时间特征输入SVR进行交通流预测。文献[18]将注意力机制与LSTM相结合,提出了一种端到端的时空注意力模型STATF,来自适应地学习交通流中的时空依赖性。
从时空融合出发,构建一个多维时空特征提取的组合模型,充分考虑影响交通流量变化的线性和非线性因素,从而提高交通流量预测的准确度,以飨读者。
现有文献多基于神经网络模型的组合进行展开。神经网络组合模型能够综合不同模型的优势,全面提取交通流中隐藏的时空特征,在各种预测任务中表现出较好的效果。但神经网络属于非线性模型,无法很好地提取交通流中的线性部分特征。基于此,提出神经网络与线性模型卡尔曼滤波组合的交通流预测模型。神经网络部分由卷积-长短期记忆网络(convolutional long-short term memory, Conv-LSTM)层、双向长短期记忆网络(bidirectional long-short term memory,BiLSTM)层、全连接(densely connected convolutional networks,Dense)层构成,分别用于提取交通流中的时空特征、周期特征以及外部特征,利用卡尔曼滤波预测交通流中的线性部分,从而构建多维时空特征融合的交通流预测CLABEK(CNN_LSTM_attention_BiLSTM_extra feature_Kalman filtering)模型,模型总体流程如图1所示。
为线性部分的预测值;为非线性部分的预测值
CLABEK模型将交通流数据分解为线性部分Lt与非线性部分Ut,对两部分分别进行预测,表达式[1]为
yt=Lt+Ut+ξt
(1)
式(1)中:ξt表示预测过程中出现的随机误差。
(2)
(3)
式(3)中:εt表示随机误差。
(4)
CLABEK模型将交通流分为线性和非线性两个部分分别进行预测,从而更加全面地提取交通流特征,做出更为准确地预测。
组合神经网络模型用于提取交通流数据中的非线性部分,由四个模块构成:时空特征提取模块、周期特征提取模块、额外特征提取模块与特征融合模块。时空特征提取模块使用的是添加了注意力机制的Conv-LSTM模型[13]。周期特征提取模块使用两个BiLSTM分别提取交通流的日周期和周周期特征。额外特征提取模块是考虑到日期类型、天气状况以及温度这些额外因素对交通流的影响,使用全连接层提取这些额外特征。特征融合层将上述所提取到的不同特征进行拼接,通过多个全连接层输出最后的预测结果。神经网络组合模型的结构如图2所示。
图2 组合神经网络模型
组合模型的优势在于增加模型的复杂性后,解决了单一模型只能够很好地提取某一类特征以及容易造成过拟合的问题。CLABEK模型借鉴这一思路组合了CNN、LSTM、BiLSTM,目的是发挥不同模型的优势,多维度、多层次提取更为全面的特征,从而做出更为精准的交通流量预测。
1.1.1 时空特征提取模块
根据上述研究现状的综合分析,空间特征提取多使用GCN与CNN,其中GCN用于对复杂的路网拓扑结构进行建模,CNN对简单路网结构表现出更好的特征提取能力。时间特征提取多使用LSTM及GRU,两者在时序特征提取上表现出近似的效果。时空融合模型总体思路是将路网空间和交通流量时间两类特征提取模型进行组合,具体可以分为两类:将空间特征提取的输出作为时序特征提取的输入;空间特征提取模块与时序特征提取模块并行设置。由于本文所选取的数据集空间结构较为简单,CLABEK模型选择CNN与LSTM组合的Conv-LSTM以提取时空特征。Conv-LSTM属于上述第一类组合类型,同时将并行设置的CNN-LSTM设置为对比实验,后文的实验结果表明Conv-LSTM相较于CNN-LSTM表现出更好的交通流量特征提取能力。
考虑到不同时刻对待预测时刻交通流量的影响并不相同,为了对所提取的不同时间步的交通流特征按照其重要程度赋予不同权重的关注,文献[13]在Conv-LSTM模型中引入了注意力机制,使得模型能够动态自适应地对更加重要的信息予以更多关注,如图3所示。
图3 添加了注意力机制的Conv-LSTM结构图
Ht为经过注意力机制加权后的输出值,具体计算过程为
(5)
式(5)中:ht-(k-1)为LSTM网络的输出值;βk为注意力权重,由注意力网络通过自适应学习得到。
(6)
为了充分提取空间特征,本文中对空间数据排列方式进行了改进。文献[9]将待预测站点的交通流量数据置于矩阵中心,其余观测点的数据按照与待预测观测点的距离从中心向两边依次排开。考虑到距离不是影响重要程度的唯一因素,与待预测观测点较远,也有可能对待预测站点的交通流量产生重要影响,所以采用皮尔逊相关系数法计算所有观测点与待预测站点交通流量的相关系数,按照系数绝对值大小从中间向两侧依次排开。
1.1.2 周期特征提取模块
交通流作为时间序列数据具有很强的周期性。首先在一日之内会出现早高峰、晚高峰,交通流随时间变化的大致趋势会日复一日的重复,提取日内的周期特征可以更加准确地判断日内的交通峰值和低谷。其次,以周为单位的交通流序列也具有明显的周期性,工作日与周末会显示出不同的变化趋势,所以以周为单位的周期特征的提取对于交通流预测也具有重要意义。
本模型使用两个BiLSTM来分别提取日周期特征和周周期特征。BiLSTM由两个平行的LSTM堆叠构成,其中一层LSTM前向传播,一层后向传播,最后将其两个方向的隐藏状态进行组合从而得到最终的输出结果[13],BiLSTM的结构如图4所示。
图4 BiLSTM结构示意图
(7)
式(7)中:td表示头天与t相同的时刻;ftd表示该时刻的交通流量数据。
(8)
式(8)中:tw表示上周中与t相同的时刻;ftw表示该时刻的交通流量数据。
(9)
(10)
1.1.3 额外特征提取模块
上述周期特征提取模块可以提取到交通数据流随工作日和周末的变化趋势。但所提取的信息并不完整,因为交通流量不仅会在工作日和周末表现出不同的特点,在特殊的节假日也会表现出与工作日及周末不同的特征。所以日期类型,包含工作日、周末及节假日作为交通流量数据的影响因素,应当在模型训练时予以考虑。
由(2)式可以看到,解释变量对被解释变量的影响依赖于门槛变量人力资本存量的取值。当HCit≤γ时,xit的系数为当HCit>γ时,xit的系数为令原假设为:通过构建F统计量进一步检验模型(1)是否存在显著的门槛效应。除了一个门槛值的检验程序外,为确定是否存在两个或两个以上的门槛值,必须再进行两个门槛值的检验。
其次,不同的天气类型:如下雨、下雪、晴朗,对人们出行会产生一定程度的影响,所以天气因素也应当作为影响交通流预测的因素予以考虑。除此之外,温度也会影响人们的出行安排,同样应当考虑。上述日期类型、天气类型及温度作为交通流预测的额外特征,应当与时空特征、周期特征融合后共同作用于当前时间步的交通流预测结果。
日期及天气作为类型数据,要对其进行one-hot编码,对温度值需要进行0-1标准化,将其处理后的结果在一维上进行拼接,这样就得到了额外特征提取模块的输入,将其输入全连接层,进一步进行特征提取,输出结果为所提取到的额外特征。额外因素的类型及其表示如表1所示。
表1 额外因素类型及其表示
用Xexit表示所提取的额外特征,表达式为
Xexit=Dense(concatenate([DayType,Weather
Type,Temperature]))
(11)
式(11)中:concatenate表示在一维上进行拼接的操作,DayType及WeatherType代表经过one-hot编码的日期类型和天气类型。Temperature代表0-1标准化后的温度。
1.1.4 非线性特征融合模块
(12)
卡尔曼滤波(Kalman filtering,KF)是由Kalman所提出的线性系统方程,通过上一时刻状态的预测值和当前状态的观测值来递推出当前的状态[19]。卡尔曼滤波作为一种线性的时序预测方法,经常在含有不确定信息的动态系统中使用,对系统的下一步走向做出有根据的预测,在各种误差存在的情况下,总能得到最趋近于真实值的状态。考虑到交通流数据既包含线性部分也包含非线性部分,将神经网络预测后的残差输入卡尔曼滤波模型,进一步提取交通流数据中的线性部分。
卡尔曼滤波的过程可以描述为估计与校正两个阶段:估计是指使用上一时间步的交通流量预测值对当前时间步的交通流量进行估计;校正是指对所获得的估计值使用观测值来进行修正,使预测结果更趋近于真实值。
Step 1估计。
(13)
Step 2校正。
(14)
Kk=P′kHT(HP′kHT+R)-1
(15)
(16)
本文中实验数据来自加利福尼亚运输性能测量系统PEMS(portable emission measurement system) 所收集的高速公路数据集[9],每5 min收集一次数据。选取了包含7个相邻观测点6个月的交通流量数据,时间跨度为2017年9月18日—2018年3月18日。
本文中添加了额外特征提取模块,所包含的特征有日期类型(工作日、节假日、周末),天气类型(晴朗、多云、下雨、下雪)以及温度。日期类型通过在日历上查看数据集对应的日期,从而添加相应的属性对日期类型进行分类标注。天气类型及温度均在天气网站上对相应时间点进行查询,对温度以小时为单位进行统计。
为了直观显示交通流量的变化趋势和周期特征,将2017年9月18—24日,时间跨度为一周的交通流量进行统计,如图5所示。
由图5可以看出交通流量以日为单位呈现出明显的周期性,所以通过周期特征提取模块对日内的周期特征进行提取,对于交通流量变化趋势预测具有重要意义。
图5 交通流量周期特征示意图
为了显示不同日期类型对于交通流量变化趋势的影响,选取了具有代表性的三种日期类型,分别是:工作日(周一)、周末、节假日(元旦),对其交通流数据进行统计,如图6所示。
图6中选取的工作日和元旦均为周一,但交通流量呈现出不同的变化趋势,因此,只有周周期特征提取模块无法对节假日所对应的交通流量的变化趋势进行很好的拟合。由图6可以看出,工作日的交通流量早高峰出现在7:00附近,而周末与节假日则并未明显的出现早高峰,这与日常生活相符。
图6 不同日期类型交通流量对比图
本文中还考虑了天气因素对于交通流预测的影响,选取了三种不同天气类型所对应的交通流数据进行统计,结果如图7所示。
图7 不同天气类型交通流量对比图
上述选取的三种天气所对应的日期类型相同,所以在交通流上呈现出了相同的变化趋势,但在10:00—18:00这一区间内出现了明显的分层。晴朗天气的交通流量依次大于多云天气,大于下雨天气。由此可以说明天气因素对于交通流预测也具有一定程度的影响。
为了验证本文所提出的CLABEK模型在交通流量预测方面的有效性,对实验结果进行了统计和分析。输入序列长度设置为15,由于本文所选取的数据间隔为5 min,即用75 min的流量序列向后进行预测。为了对比模型在不同预测区间下的预测能力,将实验分为四个部分,分别是向后预测1个时间间隔(5 min)、3个时间间隔(15 min)、6个时间间隔(30 min)及12个时间间隔(60 min)。设置了五个对比模型,分别为 Without_attention、Without_bilstm、Conv_LSTM、CNN_LSTM及Conv_LSTM_E。
Without_attention是传统的时空特征提取模型,使用CNN提取空间特征后输入LSTM提取时间特征,Without_bilstm在Without_attention基础上添加了注意力机制。Conv_LSTM相较于Without_bilstm模型添加了BiLSTM层来提取日周期特征和周周期特征。CNN_LSTM与 Conv_LSTM相比,CNN层与LSTM层的组合方式不同,Conv_LSTM采用串联的方式将CNN层的输出作为LSTM层的输入进行进一步地特征提取,CNN_LSTM则将两个模块并行设置,分别用于提取时间和空间特征,同样也引入了注意力机制。Conv_LSTM_E则是在Conv_LSTM模型的基础上添加了额外特征提取模块,考虑了天气及温度等因素的影响。
使用两个评价指标对实验结果进行评价,分别是均方根误差(root mean squard error, RMSE)与平均绝对误差(mean absolute error,MAE),计算公式为
(17)
(18)
不同模型实验结果如表2所示。
表2 实验结果
图8显示了不同模型在一天内的预测结果及交通流的真实值。
首先,观察表2可以得到注意力机制能够提高模型提取特征的能力,从而提高模型的预测准确度。同时,添加BiLSTM提取交通流量的周期特征后可以进一步提高模型的预测效果,因为交通流数据中蕴含着很强的周期性。其次,Conv_LSTM模型与CNN_LSTM模型相比较,表现出更好的预测效果,这是因为交通数据中的时空特征往往交织在一起,Conv_LSTM模型将CNN与LSTM集成在了一个模块,相较于CNN_LSTM并行设置两个网络层,分别用于提取时空特征而言,更能够提取到深层次的特征,表现出更好的预测效果。接下来,通过将Conv_LSTM_E与Conv_LSTM模型的预测结果相比较可以得出,增加额外特征提取模块可以提高模型的预测能力,因为日期类型、天气因素及温度会影响人们的出行安排,所以在交通流预测时也应当予以考虑。最后,本文所提出的CLABEK模型在不同预测区间上均表现出了最好的预测效果。因为交通流数据中同时含有线性和非线性部分,神经网络对于非线性部分有很好的预测能力,但无法很好地处理交通流数据中的线性部分,本模型使用卡尔曼滤波继续提取数据的线性部分,通过实验证明能够提高交通流预测的准确度。
由图8可以看出,CLABEK模型能够很好拟合交通流随时间变化的趋势。
图8 不同模型交通流量预测对比图
本文提出的CLABEK模型能够融合交通流的时空特征、周期特征、额外特征,与现有预测方法相比,可以给出更为精准的预测。但该方法所考虑的路网结构较为单一,对于多路口及复杂的路网结构尚无法进行较好地预测。使用图神经网络提取现实生活中复杂的路网结构所蕴含的交通流的时空特征是下一步研究的重点内容。