交通预测-T-GCN-时间图卷积网络代码及原理

实现代码github

最通俗易懂的图神经网络(GCN)原理详解

1、文章信息

《T-GCN: A Temporal Graph Convolutional Network for Traffic Prediction》

2、摘要


为了同时捕获空间和时间依赖关系,提出了一个新的神经网络方法,时间图卷积网络模型 (T-GCN),将图卷积和门控循环单元融合起来。GCN 用来学习复杂的拓扑结构来捕获空间依赖,门控循环单元学习交通数据的动态变化来捕获时间依赖。T-GCN模型应用于基于城市路网的交通预测。实验表明T-GCN模型预测结果优于基准模型。

3、简介


提出了一种新的基于城市道路网络的交通预测方法—时间图卷积网络(T-GCN)。主要贡献如下:

(1)T-GCN模型集成了图卷积网络和门控递归单元。利用图卷积网络捕获路网拓扑结构,对路网的空间依赖性进行建模。利用门控递归单元捕获道路交通数据的动态变化,对时间依赖性进行建模。T-GCN模型也可应用于其它时空预测任.务。

(2)T-GCN模型的预测结果表明,在不同的预测水平下,T-GCN模型处于稳定状态,这说明T-GCN模型不仅可以实现短期预测,还可以用于长期的交通预测任务(15分钟30分钟45分钟60分钟)。

(3)我们使用两个真实的交通数据集来评估我们的方法。结果表明,与所有基线方法相比,该方法的预测误差降低了约1.5%-57.8%,证明了T-GCN模型在交通预测方面的优越性

4、主体部分


在本研究中,交通预测的目标是基于道路上的历史交通信息,预测一定时期内的交通信息。在我们的方法中,交通信息是一个一般概念,可以是交通速度、交通流量或交通密度。为保证一般性,我们在实验部分以交通速度作为交通信息的一个例子。

(1)问题定义

目标是基于历史信息预测未来。我们的方法中,交通信息是一个通用的概念,可以是速度、流量、密度。我们在实验的时候将交通信息看作是速度。

定义1:路网 GG。我们用图 G=(V,E)G=(V,E) 描述路网的拓扑结构,每条路是一个顶点,VV 顶点集,V={v1,v2,…,vN}V={v1,v2,…,vN},NN 是顶点数,EE 是边集。邻接矩阵 AA 表示路的关系,A∈RN×NA∈RN×N。邻接矩阵只有 0 和 1。如果路之间有连接就为 1, 否则为 0。

定义2:特征矩阵 XN×PXN×P。我们将交通信息看作是顶点的特征。PP 表示特征数,Xt∈RN×iXt∈RN×i 用来表示时刻 ii 每条路上的速度。

时空交通预测的问题可以看作学习一个映射函数:

[Xt+1,…,Xt+T]=f(G;(Xt−n,…,Xt−1,Xt))(1)(1)[Xt+1,…,Xt+T]=f(G;(Xt−n,…,Xt−1,Xt))

nn 是历史时间序列的长度,TT 是需要预测的长度。

(2)Overview


T-GCN模型由图卷积网络和门控递归单元两部分组成。如图3所示,我们首先使用历史n时间序列数据作为输入,利用图卷积网络捕获城市路网拓扑结构,获得空间特征。其次,将得到的具有空间特征的时间序列输入门控递归单元模型,通过单元间的信息传递获得动态变化,捕捉时间特征。最后,通过全连通层得到结果。

(3)模型详细介绍
1)Spatial Dependence Modeling

城市道路网络不是二维网格,而是图的形式,这意味着CNN模型不能反映城市道路网络复杂的拓扑结构因此不能准确地捕捉空间依赖关系。

给定一个邻接矩阵A和特征矩阵X, GCN模型在傅里叶域中构造一个过滤器。该滤波器作用于图的节点上,通过它的一阶邻域捕获节点之间的空间特征,然后通过叠加多个卷积层来构建GCN模型,可以表示为:

本研究选择2层GCN模型捕捉空间依赖关系,可以表示为:

综上所述,我们使用GCN模型从交通数据中学习空间特征。如图4所示,假设节点1为中心道路,GCN模型可以得到中心道路与其周围道路之间的拓扑关系,对路网拓扑结构和道路属性进行编码,得到空间依赖关系。

2)Temporal Dependence Modeling

然而,由于LSTM结构复杂,训练时间较长,而GRU模型结构相对简单,参数较少,训练能力较快。因此,我们选择了利用GRU模型从交通数据中获取时间相关性。其结构如下图。

3)Temporal Graph Convolutional Network

如图6所示,左边是时空预测的过程,右侧的是T-GCN cell的特定结构, ht−1表示t – 1时刻的输出, GC是图卷积过程, ut 和 rt是t时刻的更新门和重置门, ht表示t时刻的输出。(简单来说就是叠加了两个GCN层和一个GRU层)

4)loss function

加入了L2正则化防止过拟合。

5、实验部分
在本节中,我们评估了T-GCN模型在两个实际数据集上的预测性能:SZ-taxi数据集和Los-loop数据集。因为这两个数据集都与交通速度有关。不失一般性,在实验部分,我们使用交通速度作为交通信息。

(1)dataset
1)SZ-taxi。该数据集由深圳2015年1月1日至1月31日的出租车轨迹数据组成,本文选取罗湖区156条主要道路作为研究区域。实验数据主要包括两部分。一个是156*156的邻接矩阵,它描述了道路之间的空间关系。每一行表示一条道路,矩阵中的值表示道路之间的连接性。另一个是特征矩阵,它描述了每条道路上的速度随时间的变化。每一行代表一条路,每一列是不同时段道路上的交通速度。我们每15分钟计算一次每条路上的车速。

2)Los-loop。该数据集是通过环形探测器在洛杉矶高速公路上实时采集的。我们选择了207个传感器和它从2012年3月1日到3月7日的交通速度。每5分钟计算一次交通速度。类似的,数据由一个邻接矩阵和一个特征矩阵组成。利用交通网络中传感器之间的距离计算邻接矩阵。由于数据集包含一些缺失的数据,我们使用线性插值方法来填充缺失的值。

实验中,输入数据归一化为区间[0,1]。另外,80%的数据作为训练集,剩下的20%作为测试集。我们预测未来15分钟,30分钟,45分钟和60分钟的交通速度。

(2)Evaluation Metrics

其中,RMSE和MAE用于测量预测误差,数值越小,预测效果越好。Accuracy用于检测预测精度,数值越大,预测效果越好。R2和var计算相关系数,衡量预测结果代表实际数据的能力,值越大,预测效果越好。

(3)选择模型参数
T-GCN模型的超参数主要包括:学习速度、批量大小、训练时间和隐藏单元数。在实验中,我们手动调整并设置学习率为0.001,批量大小为32,训练时间为5000,隐藏单元数是T-GCN模型的一个非常重要的参数,不同的隐藏单元数对预测精度有很大的影响。为了选择最优值,我们对不同的隐藏单元进行了实验,并通过比较预测结果来选择最优值。在我们的实验中,对于SZ-taxi数据集,我们从[8,16,32,64,100,128]中选择隐藏单元的个数,分析预测精度的变化。根据实验结果我们对SZ-taxi数据集设置了100个隐藏单元。采用同样的方法对Los-loop数据集设置了64隐藏单元。

另外,使用Adam优化器训练T-GCN模型。

(4)Experimental Results
这篇文章的预测结果给的比较客观,五个指标中,并非所有情况下提出的模型都是最好的,而是在大多数情况下是最好的比较符合实际。(∗表示值小到可以忽略不计)。

(5)模型解释

为了更好的理解T-GCN模型,我们在SZ-taxi数据集中选择了一条道路,并将测试集的预测结果可视化。以15分钟为例。

1)T-GCN模型对局部极小值/极大值的预测较差。我们推测主要原因是GCN模型在傅里叶域中定义了一个平滑滤波器,并通过不断移动滤波器来捕捉空间特征。这一过程导致了整体预测结果的微小变化,使得峰值更加平滑。

2)实际交通信息与“零出租车值”的预测结果存在一定的误差。“零出租车值”是指由于道路上没有出租车,使得真实值不为零的交通特征矩阵为零的现象。

3)无论预测时长范围如何,T-GCN模型总能取得较好的预测结果。T-GCN模型可以捕获道路交通信息的时空特征,得出了道路交通信息的变化趋势。此外,T-GCN模型检测到交通高峰期的开始和结束时间,并与实际交通速度做出相似的预测结果。这些性质有助于预测交通拥挤和其他交通现象。
 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章