文章图片
文章信息
文章图片
《A Graph Convolutional Stacked Bidirectional Unidirectional-LSTM Neural Network for Metro Ridership Prediction》,这是2021年发表在IEEE TRANSACTIONS ON INTELLIGENT TRANSPORTA TION SYSTEMS上的一篇文章。
文章图片
摘要
文章图片
及时准确的地铁客流预测有助于实时揭示交通需求,这是现代交通管理中一个关键而又具有挑战性的任务。由于地铁系统中乘客的乘车具有复杂的时空相关性和时变性,而深度学习算法在捕捉时空特征方面具有优越的性能,因此得到了广泛的应用。然而,目前的深度学习模型使用的是规则卷积运算,由于忽视交通网络的拓扑结构或者缺乏对时空模式的捕捉,其精度难以令人满意。为了进一步提高地铁客流预测的准确性,该研究提出了一个由图卷积网络和双向单向长短期记忆网络组成的并行结构深度学习模型(GCN-SBULSTM)。GCN模块将地铁网络视为一个结构化的图,引入K-hop矩阵将出行距离、乘客流和邻接矩阵综合在一起,捕捉地铁站之间的动态空间相关性。SBULSTM模块同时考虑了客流时间序列的前向和后向状态,并通过叠加的递归层来学习复杂的时间特征。在三个真实的地铁客流数据集上进行了实验,验证了该模型的有效性。与目前最先进的预测模型相比,GCN-SBULSTM在多种场景下表现出更好的性能,极大地提高了训练过程的效率。
文章图片
介绍
文章图片
该研究的主要贡献包括:
(1)提出了一种新的深度学习体系结构,该结构由两个并行模块组成,同时考虑空间和时间的依赖性;
(2)设计一种新颖的K-hop权重矩阵,融合邻接矩阵、出行距离和地铁站间的乘客流动来表示地铁网络,并将其整合到GCN模块中,增强现实空间依赖性的提取;
(3)将堆叠的双向递归层集成到模型中,提高了其捕获长期上下文的能力,并生成更高层次的序列数据表示。
文章图片
方法
文章图片
地铁客流量预测问题
考虑到人们日常出行行为的空间相关性和周期性,地铁客流预测是一个基本的时空预测问题。每个地铁站的客流数据通常都是用特定的时间间隔进行汇总,从而形成一批时间序列,供后续使用。在该研究的目标是在给定前n个时间间隔的历史数据的情况下,预测下m个时间间隔内的客流量。根据s地铁站的观测数据,我们模型的输入数据可以表示为矩阵X:
文章图片
除原始客流量数据外,地铁网络还可以用一个无向图表示,G = (V, E),其中V、E分别表示地铁网络中车站和线路的集合。在该研究中节点的特征是指每个站点的客流时间序列。E包含连接两个节点的所有边,根据原始数据,这些边的值可能不同。例如,在地铁系统中,乘车行为总是通过智能卡交易日志记录的,因此一些个人信息,如身份证ID和出行路径,可以作为E的有价值的支持信息。使用I来表示这些额外的数据。因此,预测问题可以表述为学习函数f:
文章图片
图卷积网络模块
目前,已经研究了几种策略来构建有效的交通图预测。常用的是邻接矩阵和拉普拉斯矩阵。基于拉普拉斯矩阵的GCN将谱理论引入到图卷积中,通常称之为谱图卷积。经典的GCN节点之间的邻接关系来表示任意结构的图。它通常使用一个二进制编码的邻接矩阵A来表示节点之间的连通性。如果节点i和节点j是直连的,则Aij= 1,否则Aij= 0。
然而,在协同时空预测中,空间依赖性应动态考虑,因为它在不同的情景下可能有所不同。例如,在较短的计数周期内,例如10分钟间隔,远处车站的客流量可能表现出较低的相关性,而由于乘客乘坐地铁跨距离较大,这种相关性可能随着目标预测间隔的长度而显著增加。因此,简单地应用二元邻接矩阵不足以处理复杂的情况。
针对上述问题,通过直观地将地铁站作为节点,初始化GCN模块,定义三个图,包括出行距离图、乘客流图、邻接图,对边进行权值。
文章图片
(1)邻接图:人们普遍认为,地铁站之间的连接会影响它们的客流关系。然而,传统的邻接矩阵主要关注直接连接的站点,即相邻的一阶站点,而忽略了站点之间的间接连接。因此,如图1的第一行所示,本文采用k-hop邻接矩阵Ak对地铁站之间的直接邻接关系和间接邻接关系进行编码。给定一个常数K,如果站点i和站点j相邻K阶,则每个元素Akij应该为1,否则,为0。公式如下:
文章图片
(2)出行距离图:地铁沿线相邻车站的客流模式可能高度相关,因为一个地区的乘客可能有类似的日常出行模式。因此,从地理学的角度出发,我们将出行距离作为GCN模块初始化的一个重要因素。图1的第二行展示了一个示例。具体来说使用高斯核计算距离权重矩阵D,其中元素Dij计算为:
文章图片
(3)乘客流图:人口流动是地铁车站之间的一种虚拟联系,它反映了乘客日常活动的规律所隐含的潜在依赖性。大量的人口流动表明地铁站之间的依赖程度相对较高。但是,随着乘客流动的时间变化,会生成一系列乘客流动矩阵来动态表示依赖关系。如第1行的第三行所示,提取地铁站之间的OD (origin-destination)流,通过归一化得到乘客流矩阵F。矩阵F的每个元素Fij计算为:
文章图片
最后,定义了一个k-hop权值矩阵,Mk,集成了k-hop邻接图、旅行距离图和乘客流图,用于动态捕获站点之间的空间依赖性。公式如下:
文章图片
根据提出的K-hop矩阵,可以将图卷积定义为:
文章图片
堆叠双向单向LSTM模块
从时间上看,地铁客流量变化具有非线性、周期性和规律性等特点。考虑到这些特点,采用堆叠双向单向LSTM框架从历史客流输入中学习复杂的时间模式,并进行序列预测。下面阐述了SBULSTM的理论基础和具体步骤。
文章图片
(1)LongShort-Term Memory:LSTM体系结构是SBULSTM中获取地铁客流数据时间特征的基本单元。人们普遍认为,LSTM在处理具有长期依赖关系的序列任务方面优于其他循环架构。其复杂的门控记忆机制有助于避免在传统RNN中出现的梯度消失或爆炸问题。如图2所示,每个LSTM单元包含三个门,分别是输入门、遗忘门和输出门。输入门决定要保存的信息,遗忘门控制要放弃的信息,输出门决定要生成的结果。计算每个存储单元中三个门和单元内存的详细步骤如下:
【大数据|基于图卷积堆叠的双向单向LSTM神经网络的地铁客流预测】
文章图片
(2)双向长短时记忆:利用双向LSTM网络捕捉地铁客流的周期性和规律性。值得注意的是,LSTM结构只能利用正向依赖关系,由于长期的门控记忆链,不可避免地会过滤掉有用的信息。双向LSTM结构通过将前向和后向LSTM层连接起来,可以解决这一问题。它可以同时利用两个方向的隐藏状态,弥补LSTM中沿链的信息损失。因此,双向LSTM能够更好地捕获顺序预测任务中的长期上下文依赖关系,并做出更精确的顺序预测。此外,地铁客流模式的周期性是考虑后向时间依赖的另一个因素。与交通事件、风速等随机组织特征不同,地铁交通具有很强的周期性和规律性。利用双向信息可以提高对地铁客流周期模式的建模和综合预测能力。
双向LSTM网络在两个传播方向上都包含两个平行的LSTM层,如图2所示。
文章图片
(3)层叠双向单向LSTM:深度递归网络已经在先前的研究中证明了其从顺序输入产生更高水平表示的能力。通过深化模型结构,可以提高神经网络的预测能力,其有效性已在语音处理、文本识别等多个领域得到了证明。因此,为了突破单一LSTM或BLSTM架构的性能局限性,该研究采用中提出的SBULSTM来学习客流数据中的时间依赖关系。在SBULSTM中,BLSTM网络的输出被进一步馈送到LSTM层,以产生更高的序列表示。从理论上讲,SBULSTM继承了LSTM和BLSTM的优点,LSTM和BLSTM一方面可以捕获正向和后向的时间依赖关系,另一方面允许更高水平的客流数据表示。但由于之前没有与空间学习模块结合,限制了其进行综合时空预测的能力。
基于GCN-SBULSTM的时空预测
以往的研究通常是将空间模块和时间模块按顺序组合。例如,CNN生成的输出送入LSTM网络。但是,由于卷积层生成的输出不能完全代表原始地铁客流数据的模式,通过复杂的空间操作,即深度卷积,可能会使原始客流模式发生变化。
文章图片
因此,为了尽可能保持空间模块和时间模块的有效性,使它们的结果相互补充,该研究建立了一种新的深度学习架构,将GCN和SBULSTM模块并行组合,对未来的时间框架进行预测。这种平行结构在客流预测中的有效性已在先前的研究中得到证明,本研究是使用动态图学习方法代替CNN的扩展。如图3所示,首先将客流数据组织为两种形式,包括动态图表和时间序列;然后这两种形式的数据分别为GCN和SBULSTM模块学习空间和时间依赖性,输出可以表示为HG = [hg1,···,hgk]和HT = (ht1,···,htp),最后,将OG= Flatten(HG)和OT= Flatten(HT)两个模块的平化输出进行连接,采用带dropout的全连接层,得到预测结果,公式如下:
文章图片
文章图片
实验
文章图片
利用3个地铁客流数据集验证GCN-SBULSTM方法的有效性:1)从深圳地铁系统采集的真实地铁客流数据集SZMetro;
2);
共享的两个公共客流量数据集HZMetro和SHMetro用于基准测试。
文章图片
Attention
文章图片
如果你和我一样是轨道交通、道路交通、城市规划相关领域的,可以加微信:Dr_JinleiZhang,备注“进群”,加入交通大数据交流群!希望我们共同进步!
推荐阅读
- 数据可视化|第一章 【数据分析师---数据可视化1】 matplotlib
- python数据分析|numpy+pandas
- 数据分析与挖掘|Pandas学习——分类数据
- 单目标追踪|trdimp代码配置(pytracking,ubuntu18.04 + cuda11.3)
- 数学建模|数学建模——灰色预测模型Python代码
- Python|Python "爬虫"出发前的装备之二数据先行( Requests 模块)
- LeetCode编程题解法汇总|力扣解法汇总969- 煎饼排序
- LeetCode编程题解法汇总|力扣解法汇总917-仅仅反转字母
- leetcode|LeetCode --- 经典算法题之二分查找三回合