【IEEE TDKE 2020】Flow Prediction in Spatio-Temporal Networks Based on Multitask Deep Learning

题目

Flow Prediction in Spatio-Temporal Networks Based on Multitask Deep Learning
(基于多任务深度学习的时空网络流量预测)

论文背景

2020年,京东智能城市研究院郑宇老师的团队发表在期刊 TKDE 2020 上的一项工作。

论文摘要

时空网络中流量(例如,汽车、人群和自行车流量)的预测在交通系统中起着重要作用,它包括一个节点的进出流量和不同节点之间的转移流量。然而这是一个具有挑战的问题,受到了多种复杂因素的影响,例如不同地点之间的空间相关性,不同时间间隔的时间相关性,以及外部因素(事件和天气等)。此外,一个节点的流量(节点流量)和节点间的转移流量(边缘流量)相互影响。

为了解决这些问题,本文提出了一个多任务的深度学习框架,该框架可以同时预测时空中的节点边缘的流量。基于全卷积网络,本文分别设计了两个模型预测节点和边缘的流量。这两个模型通过耦合它们中间层的潜在表示进行连接,一起训练。外部因素通过一个门融合机制集成到框架中。在边缘流量预测模型中,本文采用了一个嵌入组件来处理节点之间的稀疏转移

本文在北京和纽约市的出租车数据上评估本文的方法。实验结果显示本文的方法优于11个基线,例如ConvLSTM、CNN和马尔科夫随机场等。

研究内容

时空网络中的流量预测:节点流(node flow)和边缘流(edge flow)预测。
下图是简单时空网络中的流量:在这里插入图片描述
在这里插入图片描述

挑战

  • Scale and complexity 计算规模和复杂度: 一个地点的进出流动取决于它的近邻以及地理空间上的远邻,因为人们可以在任何地点之间流动,特别是当一些事件发生在一个城市时。假设一个大城市的位置数量很大 N N N ,则有 N 2 N^2 N2 种转变的可能性,尽管这些转变可能不会在一段时间间隔内同时发生。因此要预测位置的流动,无论是流入/流出还是过渡流动,都需考虑位置与其他位置之间的依赖性。此外预测还与过去时间间隔的流量有关。此外,无法分别预测每个位置的流量,因为城市中的位置是相互联系、相互关联、相互影响的。其复杂性和规模对传统的机器学习模型如概率图形模型提出了巨大的挑战。
  • Model multiple correlations and external factors 建模多种相关性和外部因素:在处理此类预测问题时,需要建立三种类型的相关性。第一个是不同位置的流之间的空间相关性,包括近位置之间的相关性和远位置之间的相关性。二是不同时间间隔的地点的流量之间的时间相关性,包括时间邻近性、周期性和趋势性。第三,进出流与过渡流高度相关,相互加强。流到某个位置的转换的总和就是该位置的流入流。
  • Dynamics and sparsity 边缘流量的动态性和稀疏性:地点之间的流随时间的变化比进出流的变化要大得多。将在下一个时间间隔中真正发生的 (一个地点和其他地方之间的) 转变可能只占 N 2 N^2 N2 可能性的很小一部分 (即非常稀疏)。在如此高维的空间中预测如此稀疏的转换是一项非常具有挑战性的任务

论文主要贡献

本文提出了一个多任务深度学习(Multitask Deep-LearningMDL)框架​,包括 NodeNetEdgeNet 分别预测节点和边缘的流量:

  • NodeNetEdgeNet 均为三流全卷积网络( 3S-FCNs),捕获三种不同的时间相关性:Clossness、PeriodTrend 流,每个 S-FCN 同时捕获近地点和远地点之间的空间相关性

  • 提出一个门控组件融合外部因素与时空相关性

  • 为解决稀疏性问题,在 EdgeNet 中设计了一个 Embedding 组件,将高纬稀疏的输入编码为潜在的低维表示。

网络模型

MDL 由三部分组成:数据转换、节点流建模和边缘流建模。
在这里插入图片描述

EdgeNet

边缘的转移流量通过图像建模:
M t ∈ R 2 N    ⁣ ⁣ ×  ⁣ ⁣   I    ⁣ ⁣ ×  ⁣ ⁣  J {{\mathcal{M}}_{t}}\in {{\mathbb{R}}^{2N\text{ }\!\!\times\!\!\text{ }I\text{ }\!\!\times\!\!\text{ J}}} MtR2N × I × J
对于每个节点 r i j r_{ij} rij,最多有 2 N 2N 2N 次转移的可能性,包括 N N N 个转入和 N N N 个转出。其中, N N N 为城市区域的总个数,定义如下:
N ≜ ∣ V ∣ = I    ⁣ ⁣ ×  ⁣ ⁣  J N\triangleq |V|=I\text{ }\!\!\times\!\!\text{ J} NV=I × J
I I I J J J 的定义如下:
在这里插入图片描述
通过 FCN 捕获时空关联。随着卷积层数的增加,FCN 可以捕获越来越多的依赖,甚至城市范围的空间依赖。但是,这样的深度卷积网络变得难以训练。因此,本文采用残差连接帮助训练。下图是残差连接的FCN:
在这里插入图片描述

NodeNet and Bridge

与 EdgeNet 相同的是,NodeNet​ 也是基于图像建模;与 EdgeNet 不同的是,NodeNet 没有嵌入层,因为单次输入的通道数量只有2个。

考虑到节点流和边缘流是相关的,所以从 NodeNet 和 EdgeNet 学习的表示应该是连接的。为了连接 NodeNet 和 EdgeNet,假设 NodeNet 和 EdgeNet 的两个潜在表示分别为 X f c n \mathcal{X}_{fcn} Xfcn M f c n \mathcal{M}_{fcn} Mfcn。本文提出了两种融合方法。

Sum 融合

将边缘和节点的两种表示直接求和,相同空间节点 r i j r_{ij} rij 通过信道 c c c 的输出映射如下:
H ( c , : , : ) = X f c n ( c , : , : ) + M f c n ( c , : , : ) , c = 0 , . . . , C − 1 , \mathcal{H}(c,:,:)=\mathcal{X}_{fcn}(c,:,:)+\mathcal{M}_{fcn}(c,:,:),c=0,...,C-1, H(c,:,:)=Xfcn(c,:,:)+Mfcn(c,:,:)c=0,...,C1,

Concat 融合

通过信道 c c c 在同一空间节点 r i j r_{ij} rij 处的映射如下:
H ( c , : , : ) = X f c n ( c , : , : ) , c = 0 , . . . , C x − 1 H ( C x + c , : , : ) = M f c n ( c , : , : ) , c = 0 , . . . , C m − 1 , \mathcal{H}(c,:,:)=\mathcal{X}_{fcn}(c,:,:),c=0,...,C_x-1 \\ \mathcal{H}(C_x+c,:,:)=\mathcal{M}_{fcn}(c,:,:),c=0,...,C_m-1, H(c,:,:)=Xfcn(c,:,:)c=0,...,Cx1H(Cx+c,:,:)=Mfcn(c,:,:)c=0,...,Cm1
下图展示使用 Concat 融合的 MDL
在这里插入图片描述

门控机制融合外部因素

外部因素如天气、事件等就像一个门控开关,如果发生,流量将会发生巨大的变化。本文提出一个门控机制考虑外部因素的影响。
首先,得到 EdgeNet 的门控值:
F m ( i , j ) = σ ( W e ( : , i , j ) ⋅ ε t ( : , i , j ) + b e ( i , j ) ) , 1 ≤ i ≤ I , 1 ≤ j ≤ J \mathrm{F}_m(i,j)=\sigma(\mathrm{W}_e(:,i,j)·\varepsilon_t(:,i,j)+\mathrm{b}_e(i,j)),1\leq i \leq I,1\leq j \leq J Fm(i,j)=σ(We(:,i,j)εt(:,i,j)+be(i,j))1iI,1jJ
基于门控机制采用一个 Product 融合:
M ^ t ( c , : , : ) = t a n h ( F m ⊙ M R e s ( c , : , : ) ) , c = 0 , . . . , 2 N − 1 , \widehat{\mathbf{M}}_t(c,:,:)=tanh(\mathrm{F}_m⊙\mathcal{M}_{Res}(c,:,:)),c=0,...,2N-1, M t(c,:,:)=tanh(FmMRes(c,:,:))c=0,...,2N1,

同理,最终t时刻 NodeNet 的预测为:
X ^ t ( c , : , : ) = t a n h ( F x ⊙ X R e s ( c , : , : ) ) , c = 0 , 1 , \widehat{\mathbf{X}}_t(c,:,:)=tanh(\mathrm{F}_x⊙\mathcal{X}_{Res}(c,:,:)),c=0,1, X t(c,:,:)=tanh(FxXRes(c,:,:))c=0,1,

实验

数据集

在这里插入图片描述

TaxiBJ:2013年——2016年四个时间段北京市出租车GPS数据和气象数据。
TaxiNYC:2011年至2014年纽约市出租车行驶记录,包括:上下车时间和地点。
在这里插入图片描述

实验结果

下图是TaxiBJ 和 TaxiNYC 数据集上节点流预测:
在这里插入图片描述
在 TaxiBJ 数据集上,MRF(Markov Random Field, 马尔科夫随机场)方法比本文提出的 MDL 的效果更好,原因可能是 TaxiNYC 数据比 TaxiBJ 大3倍 (表2中的time interval) 。换句话说, MDL在大数据上比 MRF 有更好的性能。

转移预测结果和不同融合策略下的结果:
在这里插入图片描述
在这里插入图片描述
表明 CONCAT + GATING方法效果最好。

总结

这是一项经典的多任务学习工作,将时空网络中的节点流量和边缘流量的预测看作多任务,提出了 MDL 框架同时预测时空网络中的进出流量(节点流量)和转移流量(边缘流量)。

最近,一些基于深度学习的工作预测边缘的转移流量,将城市空间建模为 Graph,图的节点为划分的网格或不规则的区域(AOI、TAZ等),通过时空图神经网络预测未来的边缘流量。

目前越来越多的工作考虑外部因素对预测任务的影响,大多数工作仅关注影响造成的结果,解释外部因素对预测结果的影响是值得探索的。

Spatio-Temporal Graph Convolutional Networks (STGCN)是一种针对时空数据处理的深度学习模型,特别适用于交通预测任务,因为它能捕捉到空间邻域依赖性和时间序列信息。在交通流量预测中,它将交通网络视为图结构,并利用卷积神经网络(CNN)处理时空特征。 以下是STGCN的一个简单概述以及基本的代码框架(Python+TensorFlow示例),请注意这只是一个简化版的框架,实际应用可能需要更复杂的模型配置和优化: ```python import tensorflow as tf from stgcn.layers import STConv # 假设我们有一个二维的时间序列数据集(Tx, Ny), 其中Tx是时间步数,Ny是节点数量(交通路段) inputs = ... # 形状为[BATCH_SIZE, Tx, Ny] # 创建STGCN层 stconv = STConv(num_filters=32, kernel_size=(3, 3)) # 设置滤波器数量和窗口大小 # 将输入通过STConv层 output = stconv(inputs) # 可能还需要堆叠几个这样的层进行多级特征提取 for _ in range(num_layers - 1): output = stconv(output) # 最后添加全连接层进行预测 prediction = tf.keras.layers.Dense(units=1)(output) # 定义损失函数、优化器和训练循环 loss_fn = tf.keras.losses.MeanSquaredError() optimizer = tf.keras.optimizers.Adam() for epoch in range(num_epochs): with tf.GradientTape() as tape: loss = loss_fn(y_true, prediction) gradients = tape.gradient(loss, model.trainable_variables) optimizer.apply_gradients(zip(gradients, model.trainable_variables)) ``` **关键原理**: 1. **空间-时间卷积**:STGCN将传统的卷积操作扩展到了图结构上,通过考虑邻居节点的影响,捕获了空间依赖性。同时,它还保留了时间维度上的滑动窗口卷积,以便于捕捉时间序列模式。 2. **残差链接**:为了防止梯度消失或爆炸,STGCN通常包含残差连接,使得网络可以更容易地学习长期依赖关系。 3. **分块设计**:由于图数据的大规模,可能会导致内存限制,STGCN常常采用分块策略,只对部分相邻节点进行计算,提高了效率。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Koma_zhe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值