基于多任务学习和GCN的交通路网出租车需求预测

1、文章信息

文章题目为《Multitask Learning and GCN-Based Taxi Demand Prediction for a Traffic Road Network》,是一篇发表在Sensors期刊上的有关基于多任务学习进行出租车需求预测的文章。

2、摘要

随着城市的发展,出租车成为城市中的一种重要的出行方式。在智能交通研究,准确的预测出租车需求是一大的热点,但由于其复杂的时空依赖性、动态性和不确定性,对出租车需求的预测极具挑战。为了充分利用道路交通流的全局和局部的相关性,本文提出了一种基于图卷积网络、长短时记忆(LSTM)和多任务学习的深度学习模型

首先,考虑道路网络中出租车出行的空间格局分布,建立无向图模型;然后,利用LSTMs提取交通流的时间特征;最后,采用多任务学习策略对模型进行训练,以提高模型的可泛化性。

文章的创新点可以分为以下三点:

1、提出了一种基于图卷积网络(Graph Convolutional Networks)预测出租车出发、到达流的模型。同时,为了实现道路水平预测,在构建交通流图时,不是将城市空间划分为网格,而是采用路段作为节点,出租车需求作为节点的特征。

2、基于路段的局部相关性和全局相关性构建了两种类型的交通流图。这些图被称为直接图(direct graph)间接图(indirect graph)。直接图基于路网拓扑构造,该图综合路段间的局部连通性和空间相关性。而间接图通过考虑交通网络中所有路段之间的全局相关性,从而判断不同路段间是否连通。

3、将出发流预测任务和到达流预测任务相结合,采用多任务学习策略加快学习过程,避免过拟合,得到更一般化的结果。

文章选取了两条路段的数据进行可视化,如下图所示。

基于多任务学习和GCN的交通路网出租车需求预测_第1张图片

可以看到这两条路段间存在相似性。接着进行了相似度的计算,如下图所示。

基于多任务学习和GCN的交通路网出租车需求预测_第2张图片

通过上图可以进一步证明路段间是存在相似性的,证明文章的可行性。

在实验中,通过对真实的出租车轨迹数据的验证,证明了该方法的有效性和准确性。同时,实验结果表明,该模型能够有效地预测交通网络层面的短期出租车需求,且优于现有的交通预测方法

3、文章结构

  1. 介绍了出租车需求的研究现状,以及深度学习模型及图卷积网络(GCN)在出租车需求预测中的现状。

  2. 介绍了写作动机,当前大部分使用图卷积网络预测时,图的构成是基于路段的物理连接,文章认为一些非物理连接路段的进出流应该存在相似性。提出了直接图(direct graph)以及间接图(indirect graph)。

  3. 介绍了各个参数的含义,以及用于获取时间序列相似性,也就是计算不同时间序列相似度用到了Fast-DTW算法。

    (有关Fast-DTW以及DTW算法的补充:https://www.cnblogs.com/kemaswill/archive/2013/04/18/3029078.html

  4. 提出了多任务预测模型。

  5. 将模型应用到实际数据中,获取结果并比对。

4、模型结构

模型的基本框架如下图所示:

基于多任务学习和GCN的交通路网出租车需求预测_第3张图片

整个模型可以分为四个模块:数据处理模块特征提取模块生成图模块网络搭建和训练模块

数据处理模块:

这一部分主要是删除数据中重复和无效的部分,进一步,由于是GPS数据,存在数据偏移的问题,为了修正GPS数据,文章采用基于隐马尔可夫(Hidden Markov)的地图匹配算法,对所有轨迹进行数据匹配。

特征提取模块:

该模块主要从出租车轨迹中提取乘客上、下车的位置,并根据时间段计算各路段的出行时间。从而得到某一时段内各路段出租车发车流和到达流,这一部分数据主要用于构造非直接图。对于每个路段,根据城市路网的拓扑结构提取相邻路段,这一部分数据主要用于构造直接图。

生成图模块:

这一模块主要是借助上一模块得到的数据,生成网络所需的输入数据。在生成图的过程中,生成了四种图,分别是:出发到达全局关系图局部关系图。具体构建方法如下:

1、根据路段之间的连通性(物理连接),生成局部关系图的邻接矩阵

2、通过计算不同路段的出发/到达流序列相似性,得到全局关系图的邻接矩阵

出发和到达的局部关系图其实是一致的,而全局关系图是不同的。

网络搭建和训练模块

最后一部分是基于GCN和LSTM网络预测出发流量,并结合多任务学习策略对模型进行训练。在多任务学习中,以出租车出发流预测作为主要任务,出租车到达流预测作为相关任务,有助于提高预测精度。

网络的基本框架如下图所示:

基于多任务学习和GCN的交通路网出租车需求预测_第4张图片

整个网络也可以分为三个模块:局部和全局空间特征提取模块、时间特征提取模块、特征融合模块。接下来细说这三个模块的功能和原理。

    1.局部和全局空间特征提取模块

在该模块中,将路段设置为图的节点,每个节点的特征包括该节点对应路段产生的历史到达流序列。设路段总数为R,历史时段数为K,则图的特征矩阵为X,其维度为K * R,相邻矩阵为A,其维度为R * R(对于直接图,邻接矩阵就代表其物理连接;而对于非直接图,其邻接矩阵是由路段之间的相似度构成的矩阵,相似度是通过Fast-DTW算法计算获得)。

该模块由两层GCN+GLU组成。

其中GCN层的行为如下:

基于多任务学习和GCN的交通路网出租车需求预测_第5张图片

GCN+GLU+BN层的行为如下:

bf7a76e21f640b12c5c70263ac96efe1.png

其中ReLu采用的是Leaky ReLu,最终的输出结果是一个KR的矩阵。

    2.时间特征提取模块

该模块的输入为上一模块的输出,即一个K * R的矩阵,进入一个LSTM网络获取其时间特征。LSTM的具体结构图如下所示:

基于多任务学习和GCN的交通路网出租车需求预测_第6张图片

进一步其中的每个变量的计算方法如下:

基于多任务学习和GCN的交通路网出租车需求预测_第7张图片

其中,xt表示输入(此处为一个K * R的矩阵),W和U表示权重,b是偏置项,it、ft、ot分别表示输入门、遗忘门、输出门对应的输出项。

参数更新方法如下:

基于多任务学习和GCN的交通路网出租车需求预测_第8张图片

最终LSTM模块的输出结果是一个维度为1 * R的矩阵(其中R表示路段数)

    3.特征融合模块

通过不同的输入,可以获取两种变量,一种是局部路段关系图,另一种是全局路段关系图,这两种变量的维度均为1R。将这两种变量进行拼接,得到一个2R的矩阵,输入到二维卷积网络中(kernel_size=21,stride=1, padding parameter was set to VALID),输出一个1 * R的矩阵,即每个路段下一个时间步的预测结果。

由于是多任务学习,损失函数为加权求和的形式,

上车客流的损失函数:

5e0b61167514eb59a9211074a3e466ad.png

下车客流的损失函数:

60d06cc9df258d060e8e3a68aec97a96.png

总损失函数:

f1c11b0a06e46aef0452722a81706e2d.png

5、实验结果及分析

实验所用的数据集是来自西安的真实出租车轨迹。这些轨迹来自1万多辆出租车,覆盖了2万个路段。在每辆出租车中,GPS设备记录了车辆ID、时间戳、经纬度、车速和行驶方向,以及车辆的国家代码。

文章选取了每周7天的数据,前六天的数据作为训练集,第七天的数据作为测试集,此外,文章选择了出发流量大于15次/天的路段,共851个路段。在现有研究中,对于发车流量较小的路段,如15个/天,不作为主干道路段,而是作为一些分支路段的代表,如与主干道相连的一个小分支。这些路段对流量预测的影响很小,在大多数研究中往往被忽略。同样的,这些影响在本研究中也没有考虑。此外,文章将每天划分为288个时间段,每个时间段为5分钟。

文章采用了RMSE、MAE作为评价指标。

模型训练过程中的损失函数曲线如下图所示(左图表示在训练集上的结果,右图表示在测试集上的结果)

基于多任务学习和GCN的交通路网出租车需求预测_第9张图片

从图中可以看出,文章提出的模型经过了适当的训练,没有过度拟合。下图显示了模型训练过程中的RMSE曲线。

7、总结

文章提出了一种多任务学习机制,通过对于进、出站客流的直接图和间接图的分析与融合,通过简单的网络,实现了对于城市出租车需求的预测。

Attention

如果你和我一样是轨道交通、道路交通、城市规划相关领域的,可以加微信:Dr_JinleiZhang,备注“进群”,加入交通大数据交流群!希望我们共同进步!

基于多任务学习和GCN的交通路网出租车需求预测_第10张图片

 

你可能感兴趣的:(网络,算法,python,机器学习,人工智能)