通过图卷积神经网络进行OD预测

北航发表在KDD 2019上的一篇论文,
原文标题:Origin-Destination Matrix Prediction via Graph Convolution: a New Perspective of Passenger Demand Modeling

摘要:
提出的问题:起点终点矩阵预测(OD Matrix Prediction),这个任务比一般的出租车需求预测更有挑战性,因为OD预测不仅需要预测每个区域的需求量,而且还要预测出行的目的地。此外,数据的稀疏性也是一个严重的问题,为此,作者提出了一种基于网格嵌入的多任务学习模型,该模型主要包括两个组件,用于网格嵌入的预加权聚合器,用于解决数据的稀疏性,另一部分是多任务学习,用于捕获时间属性和ODMP目标。

前言:
总结了前人在出租车需求预测和OD预测的工作,主要包括以下几个方面:
在这里插入图片描述

然而,这些工作都没有预测旅行的目的地,作者将出行需求预测从一个新的角度进行建模,定义为Origin-Destination Matrix Prediction(ODMP),这个问题包括两个方面:(1)组合不同的起点和终点,(2)每一个起点终点之间的乘车需求数

打车数据的稀疏性也是一个严重的问题,因为很多区域到另一个区域没有乘车需求数。
针对以上的问题,作者提出了一个Grid-Embedding based Multi-task Learning(GEML)来直接对乘客的出行模式进行建模。

方法:
GridEmbedding,以DiDi数据集为例,
225x452表示一个小时225个区域(节点),特征维度为452,然后经过一个nn.Embedding(),得到嵌入的节点表示,
把节点的特征表示输入到两成的Aggregator中,原文用的是GraphSAGE,GraphSAGE是一种基于消息传递的图网络,不同于GCN的整图训练AXW,GraphSAGE先对邻居采样,再进行聚合。文中的节点邻居分为两种,一种是地理邻居,也就是每个网格的相邻的网格编号,另一种是语义邻居,不必相邻,用从i到j到的打车需求数表示,文章把它作为节点特征,后面还是通过地理另据聚合(本质这些图网络都需要一个固定的图结构,GraphSAGE也不例外,事先需要知道其邻居节点编号,类似于邻接矩阵),
通过两层聚合后,捕获到了空间特征,文章做节点嵌入和聚合的目的是,因为原来的OD矩阵过于稀疏,用嵌入和聚合,可以将这种稀疏性降低,通过Embbeding矩阵,将特征维度降低一个低维空间。

接下来就是把训练集中的每天的同一个小时输入到一个LSTM中,捕获时间依赖。以一个月为例,前23天为训练集,那么第一次把这23天的数同一小时,如每天的8:00的数据输入到LSTM中,这样做的目的是,保持数据的相关性,因为打车需求具有高度的周期性,LSTM可以捕获这种长期的依赖,过去22天的同一小时为输入,预测一天的该小时。

然后是多任务学习,通过三个矩阵把LSTM的输出进行维度变换,得到一个OD矩阵(225x225),上车需求数(225x1),下车需求数(225x1),225代表225个节点。
在去做loss。

作者提出的GEML模型主要包括以下几个组件,一是对OD矩阵进行聚合的图卷积神经网络,作者将输入分为两种。第一种是OD矩阵,即在给定时间范围内每个区域到另外区域的乘车需求数矩阵,这两个区域之间存在乘车需求,不一定地理上相邻,作者使用GCN对邻居结点信息进行聚合,受到图论中结点之间的消息传递启发,从一个网格到另一个网格之间的交通流也可当做消息传递;但直接对OD矩阵进行建模存在数据稀疏性问题,且孤立的结点不好嵌入,作者使用了第二种输入,邻接矩阵,考虑到相邻需求在乘车需求上往往具有一定的相似性,作者对地理上相邻的结点进行建模,开采了地理上的关联性。将这两种输入分别成为语义地理邻居和语义邻居,前者代表网格之间内在的地理关联性,后者用来建模从一个网格到另一个网格的交通流信息。除了预测下一时刻的OD矩阵,作者在模型中还设计了两个子任务,分别预测每个网格在不同时刻的上下车需求数,这两个子任务能够捕获单个网格的移动模式。而且可以为主任务OD预测捕获更强的时间内在关联性。作者举了个例子,在早晚高峰时,人们的目的地各不相同,这会造成数据的稀疏,但是这些网格的上下车总需求是足够的(这里感觉作者解释的比较牵强,不知道目的地的分布,即OD中网格数据为0,但是单个网格的上下车数量不为0?)
在这里插入图片描述
图1中,(a)分为4*4共16个网格,表示地理邻域,如g1和g2、g5相邻,(b)为OD矩阵,即行代表起始点,列代表目的地,mi,j表示网格i到网格j的需求数。
在这里插入图片描述
图3描述了网格嵌入的过程,预加权聚合器对网格进行嵌入,与图卷积的原理一致,将邻居结点的信息进行聚合,来得到当前结点的特征表示。对于地理邻域,根据两个相邻网格之间的距离进行加权聚合:
地理邻居网格嵌入
通过对所有邻居结点信息进行聚合得到该结点的地理嵌入向量表示;另一个是语义邻居的聚合,使用的是网格之间的需求数进行聚合:
语义邻居网格嵌入
在公式下加了一个很小的参数episilon防止到目的地的需求量为degree(gi)=0。
然后,将t‘’时刻两种网格嵌入得到的特征向量进行拼接,得到t’时刻该网格的嵌入表示
在这里插入图片描述
模型如下,将t时刻得到的所有网格的嵌入向量组合成一个一个矩阵,输入输入到长短期记忆网络LSTM中,以捕获时间上的关联:
在这里插入图片描述
这里使用了一个周期性跳跃的LSTM,在预测的时候可以跳过一些不相关的时间戳,比如预测17点的OD,跳过的周期可为24小时,选取前一天和更早日期的17点的嵌入矩阵作为LSTM的输入。
最终多任务学习通过Decoder把输出转换到需要的输出维度,再经过一个softmax进行得分和归一化输出,得到三个任务的输出,损失函数如下:
在这里插入图片描述
Mt+1,t+1时刻真实的OD Matrix,n<=N表示训练样本的索引表示的是第几天.。
在这里插入图片描述
在这里插入图片描述

实验:
在北京和成都的订单数据集上分别进行了实验,使用的数据信息如下:
在这里插入图片描述
网格的划分分布为400和225个,单个的区域算是有点大,并不能精确到具体的位置。
在这里插入图片描述
实验结果显示,GEML的效果优于基线模型。

总结:
总体来说,这篇文章属于问题创新,与以往单个区域需求预测不同的是,预测的是OD Matrix,另外,作者同语义邻居和地理邻居的信息聚合,一定程度是解决了数据的稀疏性,属于图卷积的应用。模型总体来说感觉比较普通,GCN+LSTM+ FC的Decoder,此外,periodic-skip LSTM对实验结果的影响较大。说明OD预测任务的数据存在一定的周期性,对时间上的依赖进行改进,以及进一步解决数据稀疏性是可能的改进方向。

  • 3
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值