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

Posted 月来客栈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LC-RNN: A Deep Learning Model for Traffic Speed Prediction相关的知识,希望对你有一定的参考价值。



1.背景

下面所介绍是2018年发表在IJCAI上的一论文,其主要解决的问题是预测接下来几个时间间隔内,某条道路上车辆行驶的平均速度。其关键点在于作者提出了用"look-up"这一方法来构造由每条道路及其相连接道路所形成的速度矩阵,接着用CNN来提取相邻“道路速度”的空间依赖关系,然后进一步采用LSTM从时间序列的角度来提取特征;最后融合天气和周期信息等最为整个网络的输出。

我们知道在实际情况中,道路的连接是丛横交错的;并且存在对于某两个地点来说是单向通行的。因此论文中采用了有向图来描绘道路结构,如下图左边所示;对于每条路上在某个时间间隔 t t t内的平均速度为右图边上的权重,且用一个速度向量来表示。

LC-RNN:

论文中所需要解决的问题就是:给定历史数据 X i X_i Xi(即历史速度向量),来预测 X t + 1 , X t + 2 , . . . X_t+1,X_t+2,... Xt+1,Xt+2,...时刻的速度向量(即下一(或几个)个时刻每条道路可能的速度)。

2.数据处理

首先需要根据道路拓扑结构(topology)得到一个邻接道路矩阵(adjacent road matrix) M M M。这个矩阵记录了每条道路的所有相邻道路,其规则为: S r = r , r ′ ∈ E ∣ r ′ . s = r . e    o r    r ′ . e = r . s S_r=\\r,r\\in E|r.s=r.e\\;or\\;r.e=r.s\\ Sr=r,rEr.s=r.eorr.e=r.s。一句话就是首位相连(不能首首或尾尾),然后对于所有的 S r S_r Sr构成一个大的集合 S = S r ∣ r ∈ E \\BbbS=\\S_r|r\\in E\\ S=SrrE,如下图左边所示。

LC-RNN:

接着,根据 S \\BbbS S很容易的就得到了矩阵 M M M,其中 M [ : , i ] M[:,i] M[:,i]表示与第 i i i条路所有相连接的道路,其维度 A × ∣ E ∣ , A = m a x ∣ S r ∣ ∣ S r ∈ S A\\times|E|,A=max\\|S_r||S_r\\in\\BbbS\\ A×E,A=maxSrSrS;同时为了方便后面构造同样大小的速度矩阵进行卷积,对应如果与某条路相连接的道路数小于 A A A,则用自身补齐(上图右边红色编号)。

3.网络构造

整个网络结构图如下所示,下面我们分别对每个小的模块进行大致说明一下:

LC-RNN:

3.1 "look-up"操作

进一步要做的就是如何构造每条道路对应的速度矩阵(由多个相邻时刻的速度向量构成),也就是论文所指的"look-up"操作,如下图所示。

LC-RNN:

说明:

①红色实线表示的是"look-up",操作,即用 t t t时刻的前4个时间构成的速度矩阵根据M来索引得到每条道路相邻的所有道路的速度,并构成一个矩阵;

②对第①步得到的矩阵分别进行卷积操作,并且对于用同一个卷积核作用得到每一列构成一个通道( X l , k X^l,k Xl,k),也就是说以上图为例仅仅采用了两个卷积核提取特征。

3.2 LSTM部分

假设经过"look-up"操作后得到的输出 X N ∈ R ∣ p + 1 ∣ × ∣ E ∣ × ∣ k N ∣ X^N\\in \\BbbR^|p+1|\\times|E|\\times|k_N| XNRp+1×E×kN,也就是说这三个维度分别代表了时间间隔数,道路总数,卷积后的通道数。假设输出得到的 X X X形状为 [ 4 , 5 , 2 ] [4,5,2] [4,5,2],即一共4个时刻,5条道路,2个通道(如p0078图所示)。论文中说到先要通过下面这个公式reshape后才能喂给LSTM,那这到底是怎么在reshape呢?我们先来看reshape后第一条道路的4个时刻所对应的数据是什么样的:

V S i , t = X N [ t , i , : ] V_S^i,t=X^N[t,i,:] VSi,t=XN[t,i,:]

LC-RNN:

由此可知,​​time_step=4,dim=2,batch_size=5​​,例如在Tensorflow中只需要将 X X X变成​​[5,4,2]​​就行,具体情况可自行分析。接着就是对LSTM的最后一个时刻输出结果做一个非线性变换。

3.3 周期模拟及额外因素

对于这种时空数据,一般来说都会受到这两方面的影响。在这篇论文中,作者采用了两个全连接来分别模拟近几天和近几周的周期规律。对于天气和节假日等额外因素,作者在论文中提到也是使用了两个全连接进行的处理。当然最后就是融合了,其融合方式同​​上一篇​​介绍的论文中的方式一样,都是基于权重的融合方式。

Y ^ t = t a n h ( W S T ∘ Y S T + W E ∘ Y E ) \\hatY_t=tanh(W_ST\\circ Y_ST+W_E\\circ Y_E) Y^t=tanh(WSTYST+WEYE)

4. 总结

个人认为这篇文章的创新点在于提出了"look-up"这以方式来对相邻“道路速度”建立一个空间上的关系,然后利用CNN进行特征提取,接着用LSTM进行处理。其它因素的处理,以及整个网络的框架都与"Deep Spatio-Temporal Residual Networks for Citywide Crowd Flows Prediction" 这篇论文都很相似。

更多内容欢迎扫描关注公众号月来客栈!

LC-RNN:



以上是关于LC-RNN: A Deep Learning Model for Traffic Speed Prediction的主要内容,如果未能解决你的问题,请参考以下文章

deep learning website

Deep learning Reading List

deep learning入门学习

花书《Deep Learning》学习笔记

Deep Learning 初识

Spark MLlib Deep Learning Deep Belief Network (深度学习-深度信念网络)2.3