LC-RNN: A Deep Learning Model for Traffic Speed Prediction

我自横刀向天笑,去留肝胆两昆仑。这篇文章主要讲述LC-RNN: A Deep Learning Model for Traffic Speed Prediction相关的知识,希望能为你提供帮助。


1.背景
下面所介绍是2018年发表在IJCAI上的一论文,其主要解决的问题是预测接下来几个时间间隔内,某条道路上车辆行驶的平均速度。其关键点在于作者提出了用"look-up"这一方法来构造由每条道路及其相连接道路所形成的速度矩阵,接着用CNN来提取相邻“道路速度”的空间依赖关系,然后进一步采用LSTM从时间序列的角度来提取特征;最后融合天气和周期信息等最为整个网络的输出。
我们知道在实际情况中,道路的连接是丛横交错的;并且存在对于某两个地点来说是单向通行的。因此论文中采用了有向图来描绘道路结构,如下图左边所示;对于每条路上在某个时间间隔ttt内的平均速度为右图边上的权重,且用一个速度向量来表示。

LC-RNN: A Deep Learning Model for Traffic Speed Prediction

文章图片

论文中所需要解决的问题就是:给定历史数据XiX_iXi(即历史速度向量),来预测Xt+1,Xt+2,...X_t+1,X_t+2,...Xt+1,Xt+2,...时刻的速度向量(即下一(或几个)个时刻每条道路可能的速度)。
2.数据处理
首先需要根据道路拓扑结构(topology)得到一个邻接道路矩阵(adjacent road matrix)MMM。这个矩阵记录了每条道路的所有相邻道路,其规则为:Sr=r,r′∈E∣r′.s=r.e ??or ??r′.e=r.sS_r=\\r,r\\in E|r.s=r.e\\; or\\; r.e=r.s\\Sr=r,r′∈E∣r′.s=r.eorr′.e=r.s。一句话就是首位相连(不能首首或尾尾),然后对于所有的SrS_rSr构成一个大的集合S=Sr∣r∈E\\BbbS=\\S_r|r\\in E\\S=Sr∣r∈E,如下图左边所示。
LC-RNN: A Deep Learning Model for Traffic Speed Prediction

文章图片

接着,根据S\\BbbSS很容易的就得到了矩阵MMM,其中M[:,i]M[:,i]M[:,i]表示与第iii条路所有相连接的道路,其维度A×∣E∣,A=max∣Sr∣∣Sr∈SA\\times|E|,A=max\\|S_r||S_r\\in\\BbbS\\A×∣E∣,A=max∣Sr∣∣Sr∈S;同时为了方便后面构造同样大小的速度矩阵进行卷积,对应如果与某条路相连接的道路数小于AAA,则用自身补齐(上图右边红色编号)。
3.网络构造
整个网络结构图如下所示,下面我们分别对每个小的模块进行大致说明一下:
LC-RNN: A Deep Learning Model for Traffic Speed Prediction

文章图片

3.1 "look-up"操作
进一步要做的就是如何构造每条道路对应的速度矩阵(由多个相邻时刻的速度向量构成),也就是论文所指的"look-up"操作,如下图所示。
【LC-RNN: A Deep Learning Model for Traffic Speed Prediction】
LC-RNN: A Deep Learning Model for Traffic Speed Prediction

文章图片

说明:
①红色实线表示的是"look-up",操作,即用ttt时刻的前4个时间构成的速度矩阵根据M来索引得到每条道路相邻的所有道路的速度,并构成一个矩阵;
②对第①步得到的矩阵分别进行卷积操作,并且对于用同一个卷积核作用得到每一列构成一个通道(Xl,kX^l,kXl,k),也就是说以上图为例仅仅采用了两个卷积核提取特征。
3.2 LSTM部分
假设经过"look-up"操作后得到的输出XN∈R∣p+1∣×∣E∣×∣kN∣X^N\\in \\BbbR^|p+1|\\times|E|\\times|k_N|XN∈R∣p+1∣×∣E∣×∣kN?∣,也就是说这三个维度分别代表了时间间隔数,道路总数,卷积后的通道数。假设输出得到的XXX形状为[4,5,2][4,5,2][4,5,2],即一共4个时刻,5条道路,2个通道(如p0078图所示)。论文中说到先要通过下面这个公式reshape后才能喂给LSTM,那这到底是怎么在reshape呢?我们先来看reshape后第一条道路的4个时刻所对应的数据是什么样的:
VSi,t=XN[t,i,:]V_S^i,t=X^N[t,i,:]VSi,t?=XN[t,i,:]
LC-RNN: A Deep Learning Model for Traffic Speed Prediction

文章图片

由此可知,??time_step=4,dim=2,batch_size=5??,例如在Tensorflow中只需要将XXX变成??[5,4,2]??就行,具体情况可自行分析。接着就是对LSTM的最后一个时刻输出结果做一个非线性变换。
3.3 周期模拟及额外因素
对于这种时空数据,一般来说都会受到这两方面的影响。在这篇论文中,作者采用了两个全连接来分别模拟近几天和近几周的周期规律。对于天气和节假日等额外因素,作者在论文中提到也是使用了两个全连接进行的处理。当然最后就是融合了,其融合方式同??上一篇??介绍的论文中的方式一样,都是基于权重的融合方式。
Y^t=tanh(WST°YST+WE°YE)\\hatY_t=tanh(W_ST\\circ Y_ST+W_E\\circ Y_E)Y^t?=tanh(WST?°YST?+WE?°YE?)
4. 总结
个人认为这篇文章的创新点在于提出了"look-up"这以方式来对相邻“道路速度”建立一个空间上的关系,然后利用CNN进行特征提取,接着用LSTM进行处理。其它因素的处理,以及整个网络的框架都与"Deep Spatio-Temporal Residual Networks for Citywide Crowd Flows Prediction" 这篇论文都很相似。
更多内容欢迎扫描关注公众号月来客栈!
LC-RNN: A Deep Learning Model for Traffic Speed Prediction

文章图片






    推荐阅读