用于OD需求预测的新型动态节点-边缘注意力网络

用于OD需求预测的新型动态节点-边缘注意力网络_第1张图片

paper title
《DNEAT: A novel dynamic node-edge attention network for origin-destination demand prediction》

导读

网约车服务平台在世界各地发展迅速,吸引了广泛的研究兴趣。网约车服务平台的一个关键问题是如何实现准确可靠的需求预测。然而,已有的研究大多集中在区域层面的需求预测上,而对起点-终点(OD)需求预测问题的研究较少。这篇文章从图的角度出发,构造了动态OD图来描述网约车需求数据。文章提出了一种新的神经结构–动态节点-边缘注意网络(DNEAT),从需求产生和吸引的角度来解决OD需求预测的独特挑战。与以往的研究不同,在DNEAT中,提出了一种新的神经层,称为k-hop时态节点-边注意层(k-TNEAT),用于捕捉动态OD图中节点拓扑的时间演化,而不是预先定义的区域之间的关系。在两个真实的网约车需求数据集(来自中国成都和纽约市)上对提出的模型进行了评估。实验结果表明,该模型的性能优于6种基线模型,对高稀疏度的需求数据具有更强的鲁棒性

模型方法

DNEAT:动态节点-边缘注意力网络

DNEAT由需求生成模块和需求吸引模块两部分组成。这两个部分的设计目的是从不同的角度学习动态OD图的图形表示。每个部分由三个有组织的k-TNEAT层组成,用于提取动态节点拓扑的特征并生成节点和边的学习表示。然后,使用这些学习的表示(即特征)来预测下一个时间间隔的OD需求。

1 k-TNEAT layer
K-TNEAT层在图序列Ω上操作。K-TNEAT层的输入包括两个分量:(1)节点表示图片,图片∈Rn×Γ×C和图片∈RΓ×C;(2)边表示图片,图片∈Rn×n×Γ×C和图片∈RΓ×C。对于每个节点(或边),输入表示可以被视为具有C个通道的长度为Γ序列(每个时间间隔的特征数)。输出是一组新的结点表示和边表示,它们捕获了以每个结点为中心的动态结点拓扑的演化模式

典型的k-TNEAT层由两个k-hop时间编码层和一个时间节点边缘注意力层组成;下图展示出了k-TNEAT层的总体架构。接下来两个小节详细介绍了k-hop时间编码层和时间节点边缘注意层。此外,残差连接在时间节点-边缘注意层使用,随后是层归一化层。
用于OD需求预测的新型动态节点-边缘注意力网络_第2张图片

1.1k-hop 时间编码层

对于图序列,节点i的输入表示为∈RΓ×C,边(i,j)的输入表示为∈RΓ×C。卷积运算的工作方式如下。一组大小为RF×C、步长为1(无填充)的滤波器用于在的时间维度上滑动。其中F是每个滤波器的接收场大小,每个滤波器的深度是C(即输入表示的通道大小)。每个过滤器的滑动操作将生成Γ-F+1时态图。对于每个,时间节点表示为,并且时间边表示为,其中∈RF×C和∈RF×C。例如,假设节点i的输入表示为xi=[1,0,1,1,1,0],大小为Γ×C=5×1。如果每个滤波器的接收场大小为F=3,步长为1(无填充),则每个滤波器可以通过移动3次来遍历时间轴,并产生3个时间表示=[1,0,1]、=[0,1,1]、=[1,1,0]。

在数学上,给定的时间节点表示和具有权重的一组过滤器,通过以下方式获得节点i的时间表示:

用于OD需求预测的新型动态节点-边缘注意力网络_第3张图片

给定的时间边缘表示,我们使用K+1组不同的滤波器来编码边的时间和静态结构信息。对于边(i,j),通过以下方式获得时间表示:

用于OD需求预测的新型动态节点-边缘注意力网络_第4张图片

下图展示了k-hop时间编码层的正向计算过程。首先,感受场大小为F的滤波器在图序列的时间轴上滑动,得到时间图。然后,对于每个时间图,节点和边的时间表示由不同的过滤器组编码。每组具有M个滤波器,并且从每组的对应的第m个滤波器获得第m个输出值。最后,将每个时态图的表示维数从RF×C转换为R1×M,将时态维数F的长度压缩为1。

K-hop时间编码层的最终输出通过将所有时间图的表示堆叠在一起来获得:(1)节点的表示Zv,Zv∈Rn×(Γ−F+1)×M;(2)边的时间表示Ze,Ze∈Rn×n×(Γ−F+1)×M。然后,Zv和Ze被馈送到下一个时间节点边缘注意层。
用于OD需求预测的新型动态节点-边缘注意力网络_第5张图片

1.2时间节点-边缘注意力层

在这一小节中,我们进一步结合了图片的动态节点拓扑信息。如下图所示,通过自适应地聚合其k-hop邻域的信息来获得时间图图片中的每个节点的聚合表示:

用于OD需求预测的新型动态节点-边缘注意力网络_第6张图片
用于OD需求预测的新型动态节点-边缘注意力网络_第7张图片

这里,We∈RM×M和Wv∈Rm×M是用于将时间表示和转换成更高级别表示的可学习参数,be∈R1×M和bv∈R1×M是两个偏置项;“||”为拼接操作。。类似于k-hop时间编码层,对时间节点边缘注意力层的输出进行堆叠操作以获得:(1)节点的聚集表示Z˜v,Z˜v∈Rn×(Γ−F+1)×M;(2)边的聚集表示Z˜e,Z˜e∈Rn×n×(Γ−F+1)×M。

在时间节点-边缘关注层之后,使用新的k-hop时间编码层,每个滤波器组具有M‘个滤波器,以进一步压缩输入图序列的时间维度。注意,每个k-hop时间编码层将把时间维度的长度减少F−1(因为不使用填充)。因此,在k-TNEAT层之后,输入序列的时间大小将减少2(F−1)。在每个k-TNEAT层中,我们压缩时间维的长度以融合相邻图的时间信息(即慢融合策略)。通过将多个k-TNEAT层堆叠在一起,DNEAT能够访问图之间的短期和长期时间依赖关系,并捕获这些图结构的演化模式。

此外,在两个k-hop时间编码层之间,在时间节点边缘注意力层周围部署了残差连接,随后是层标准化。因此,通过以下方式获得第二k-hop时间编码层的输入
用于OD需求预测的新型动态节点-边缘注意力网络_第8张图片

其中,LayerNorm表示层归一化操作;Zv和Ze表示节点和边的归一化表示。在k-TNEAT层,层归一化被用来归一化时间节点边缘注意力层的输出,这使得梯度更平滑,训练速度更快。采用残差连接,避免了梯度消失问题

总而言之,k-TNEAT层的输入包括两个分量:(1)节点表示xv和Xi;以及(2)边表示xe和xi,j。K-TNEAT层的输出包括:(1)结点表示X˜v和X˜i;以及(2)边表示X˜e和X˜i,j

2面向OD需求预测的DNEAT体系结构

在本节中,将介绍用于OD需求预测的DNEAT体系结构;它使用k-TNEAT层作为构建块。如下图所示,DNEAT架构包括需求产生部分和需求吸引部分

用于OD需求预测的新型动态节点-边缘注意力网络_第9张图片

2.1DNEAT的输入

DNEAT的输入数据包括三部分:(1)k-hop邻域数据;(2)需求生成数据;(3)需求吸引数据;

从静态结构信息(例如,节点质心之间的路径距离)中提取-hop邻域数据。对于每个节点vi∈Ωt,(Vi)描述了动态OD图Ωt中vi的邻域关系。这些静态信息被需求生成和吸引模块共享

在需求生成模块中,根据历史动态OD图观测数据{Ω1,…,Ωt}提取各个节点的出行需求。为了捕捉时间依赖性的趋势和周期性,我们考虑了在时间间隔t的需求生成数据中的三个分量:(1)从动态OD图中提取的最近时间分量;(2)从动态OD图中提取的每天分量;以及(3)从动态OD图中提取的每周分量
用于OD需求预测的新型动态节点-边缘注意力网络_第10张图片

其中a∈{recent,day,Week},Oi(t,a,q)表示在时间间隔(t,a,q)从节点i开始的出行需求的数量
类似地,需求产生模块的边缘特征由下式给出:

用于OD需求预测的新型动态节点-边缘注意力网络_第11张图片

其中odi,j(t,a,q)表示在时间间隔(t,a,q)从节点i到j的需求的数量

需求吸引模块的输入数据的组织方式与需求生成模块相似,但侧重于每个节点吸引的出行需求。输入到需求吸引模块的节点特征定义为:

用于OD需求预测的新型动态节点-边缘注意力网络_第12张图片

用于OD需求预测的新型动态节点-边缘注意力网络_第13张图片

注意,输入数据的最后维度的大小为1,这是初始k-hop临时编码层的通道数

2.2DNEAT架构

需求生成和吸引模块采用相同的架构,由两个顺序堆叠的k-TNEAT层组成,旨在从三个输入组件(最近、一天和一周)提取信息。在每个模块中,这两个k-TNEAT层的参数由所有三个组件共享。随后,我们使用单个k-TNEAT层来融合每个组件生成的表示,并生成跨时间维度的综合表示。由于k-TNEAT层中的卷积运算(它捕获了输入的时间维度之间的时间依赖关系),三个组件(最近、天、周)之间的时间依赖关系可以通过馈送它们的表示(即将沿时间维度的三个项连接)到新的k-TNEAT层。从象征意义上讲,这些图层操作可描述为:

用于OD需求预测的新型动态节点-边缘注意力网络_第14张图片

其中“||”为串联运算,τ是k-TNEAT层操作之后的时间维度的长度,C是三个k-TNEAT层之后的通道大小(初始层中的通道数大小为1);表示k-TNEAT层操作,2表示应用两次。为了便于后续计算,我们将k-TNEAT层的输出重塑为O˜v t∈Rn×1×(τ×C),OD̃e t∈Rn×n×1×(τ×C),D˜v t∈Rn×1×(τ×C))和DOe t∈Rn×n×1×(τ’×C)。

在DNEAT中,我们根据一对节点之间的需求产生和吸引关系来预测它们之间的需求交易。形式上,我们通过一组向量来描述这种关系,使用1×1卷积运算来组合由两个模块生成的节点和边的时间表示(滤波器的数量是C,每个滤波器的大小是1×2C)。在数学上,每对节点的卷积运算描述如下:
用于OD需求预测的新型动态节点-边缘注意力网络_第15张图片

由于结点和边的组合表示法捕捉到了多个历史时间间隔上的动态节点拓扑,因此它允许我们预测下一个时间间隔的OD需求。最后,基于NR和ER,定义CNNreg 1×1和CNNmask 1×1两个1×1卷积网络,对t+1时段的OD需求进行预测。对于每对节点,CNNreg 1×1通过计算回归结果̂yi,j=Linear (CNNreg 1×1(NR || ER))来预测从节点i到节点j的需求交易的数量,其中线性是输出层的激活函数,并且CNNreg 1×1的其他层由LeakyReLU函数激活。另一方面,CNNmask 1×1负责通过估计̂pi,j=Sigmoid(CNNmask 1×1(NR || ER))的概率来判断在下一个时间间隔从节点i到节点j的需求的数量是否为零,其中Sigmoid是输出层的激活函数,CNNmask 1×1的其他层激活函数也是LeakyReLU函数

损失函数:
用于OD需求预测的新型动态节点-边缘注意力网络_第16张图片

模型配置

DNEAT是由Pytorch 1.3使用CUDA 9.2实现的。K=4和F=3的k-TNEAT层用于学习需求产生和吸引模块中的节点和边的表示,融合表示的维度大小C为64。在需求产生/吸引模块中,从下到上,三个k-TNEAT层的(M,M)值分别为(32,32),(64,64)和(64,64)。惩罚系数设为γ1=2,γ2=1。用来进行最终预测的1×1卷积网络由3层组成,分别有64、32和1个滤波器。使用Adagrad优化器的小批量梯度下降用于训练。在每个epoch中,从训练集中随机选取25%的样本作为验证集,并用于调整超参数。实验中的每个模型被训练了最多100个周期,初始学习率为0.01%,小批大小为10个。非线性激活函数(σ(∙)是LeakyReLU

创新点

(1)提出了DNEAT来解决OD需求预测问题。据我们所知,这是首次在单一模型中同时考虑静态结构信息的节点和边的动态和双向结构特性

(2)提出了k-TNEAT层来捕捉时变OD图的动态需求模式。K-TNEAT层通过在不同的时间间隔自适应地调整每个OD对之间的关系来学习节点和边的表示

(3)设计了一种动态节点拓扑表示方法来联合表示OD图的静态、双向和动态结构信息。这种表示是顺序不变的,并且节点的顺序可以是任意的。因此,所提出的方法既适用于欧几里德数据集,也适用于非欧几里德数据集

用于OD需求预测的新型动态节点-边缘注意力网络_第17张图片

你可能感兴趣的:(论文笔记,神经网络,机器学习,python,算法)