• 【论文笔记】Deep Multi-View Spatial-Temporal Network for Taxi Demand Prediction


    前言

    智慧城市的建设中,出租车需求预测是一个及其重要的问题。准确的预测需求能够帮助城市预分配交通资源,提前避免交通拥堵,从而缓解交通压力,同时降低出租车空载率,提高出租车司机收入。传统的出租车需求预测往往基于时序预测技术,无法对复杂的非线性时空关系进行建模。深度学习技术的突破为交通预测问题带来了曙光,但是现存的深度学习网络架构,往往只单一考虑了时间关系或者空间关系,没有把两者结合起来进行建模。

    本文提出了 DMVST-Net,同时对时间关系和空间更新进行建模。更具体地,该模型同时从三个角度出发(分别是 temporal view, spatial view,semantic view),综合考虑了出租车需求在路网上分布的时空关系,并利用语义信息,对相似区域的时空模式进行了建模。

    值得一提的是,本文运用图网络 和 Local CNN 的方法,对由数万路段组成的大型道路交通网,进行了特征提取,这一举措,将图网络的运用拓宽到一个新的层次,使得大型交通网的建模有了新的解决思路。

    本文贡献

    简单来说,本文综合了时间、空间、语义三个方面预测需求量。

    空间:local CNN,强调了邻近空间相似,较远的位置参与训练之间会有负作用
    时间:使用传统LSTM
    语义:使用“区域图”的边来表达区域对之间需求模式的相似性,用图嵌入的方法作为环境特征参与训练

    模型架构

    模型的结构图
    这是DMVST-Net的架构图。 (a).空间组件使用一个局部CNN来捕获附近区域之间的空间依赖性。局部CNN包括几个卷积层。最后使用全连接层来得到低维表示。 (b).时间视图采用了一个LSTM模型,该模型从空间视图中获取表示形式,并在相应的时间将它们与上下文特征连接起来。 ©.语义视图首先构造一个加权的区域图(其权重表示功能相似度)。节点被编码到向量中。最后使用一个全连接的层来进行联合训练。最后,利用一个全连接的神经网络进行预测。

    空间视图:Local CNN

    局部CNN
    Local CNN: 如要对 (a)提取特征,最常见的一种方式是把(a)这整张图像送入到CNN中,进行卷积运算;而另一种方式就是把(a)分块,把划分后的每一小块分别送入到CNN中,也就是每次只对(b)进行卷积运算,最后把每个部分的结果进行综合,这就是 Local CNN。提出该方法的动机是地理学第一定律——近邻比远邻重要。
    作者在这里把待预测城市分成了20 x 20个区域,每个区域是0.7km x 0.7km,用7 x 7的二维图像来表示每一个区域,图像中每个像素点的灰度值代表出租车的需求量。每张图像可以用 Y t i ∈ R S × S × 1 Y_t^i\in\mathbb{R}^{S\times S\times 1} YtiRS×S×1表示,其中 S = 7 S=7 S=7。经过K层卷积层后得到 Y t i , k ∈ R S × S × 1 Y_t^{i,k}\in\mathbb{R}^{S\times S\times 1} Yti,kRS×S×1,经过flatten操作后得到 s t i ∈ R S 2 λ s_t^i\in\mathbb{R}^{S^2 \lambda} stiRS2λ,最后进行降维得到 s t i ^ ∈ R d \widehat{s_t^i} \in \mathbb{R}^d sti Rd,具体公示为:
    Y t i , k = f ( Y t i , k − 1 ∗ W t k + b t k ) Y_t^{i,k} = f(Y_t^{i,k-1}*W_t^k+b_t^k) Yti,k=f(Yti,k1Wtk+btk)
    s ^ t i = f ( W t f c s t i + b t f c ) \widehat{s}_t^i=f(W_t^{fc}s_t^i+b_t^fc) s ti=f(Wtfcsti+btfc)
    最终空间视图的输出为 s ^ t i \widehat{s}_t^i s ti

    时间视图:LSTM

    在该部分,作者直接利用了传统的时序预测网络LSTM
    这里的输入是 g t i = s t i ^ ⊕ e t i g_t^i=\widehat{s_t^i}\oplus e_t^i gti=sti eti,其中 s t i s_t^i sti为空间视图的输出, e t i e_t^i eti表示天气、节假日等元数据特征, ⊕ \oplus 表示联合操作,最终本模块的输出为 h t i h_t^i hti

    语义视图:结构嵌入

    本模块是主要的创新点,主要解决的问题是如何利用图网络的方法,构建城市各个区域的关系网络,从而给深度学习任务提供更高层次的特征。

    首先,作者提出了一个直觉(观察):具有相同功能的地点应该具有相似的出租车需求模式,然而具有相同功能的地点在空间上不一定相邻。基于这个直觉,构建了区域和区域之间的全连接网络 G = ( V , E , D ) G=(V,E,D) G=(V,E,D),其中 V V V表示节点,即区域,总数为20X20, E = V × V E=V \times V E=V×V表示两个区域之间的边, D D D表示相似性矩阵, w i j w_{ij} wij表示区域 i i i和区域 j j j之间的相似性。

    主要问题:相似性基于什么特征进行衡量?用什么方法进行衡量?
    作者使用平均每周需求时间序列作为需求模式。这个平均值是根据实验中的训练数据计算出来的。因为这个图是完全连接的,所以每两个区域都可以到达。然后采用DTW的方法来衡量节点之间的相似性。
    w i j = e x p ( − α D T W ( i , j ) ) w_{ij}=exp(-\alpha DTW(i,j)) wij=exp(αDTW(i,j))
    其中 α \alpha α是控制距离衰减率的参数(在本文中,α=1),DTW是两区域的需求模式之间的动态时间滑动距离。
    为了将每个节点的特征进行压缩,并同时维持网络的结构信息,作者又采用了图嵌入的方法,将每个节点的特征压缩到更低的维度。为了构建一个端到端的神经网络模型,又将压缩后的特征送入到一个全连接层
    m ^ i = f ( W f e m i + b f e ) \widehat{m}^i=f(W_{fe}m^i+b_{fe}) m i=f(Wfemi+bfe)
    其中生成嵌入的方式为LINE

    需要注意的是, m ^ i \widehat{m}^i m i代表的是节点 i i i 的语义特征,也就是说,语义视图提取整个网络的特征,但是只把单个节点所学习到的特征送到主体模型中。

    模型综合

    • 三个部分特征的综合: q t i = h t i ⊕ m ^ i q_t^i=h_t^i \oplus \widehat{m}^i qti=htim i
    • 输出函数的设计: y ^ t + 1 i = σ ( W f f q t i + b f f ) \widehat{y}^i_{t+1}=\sigma(W_{ff}q_t^i+b{ff}) y t+1i=σ(Wffqti+bff)

    损失函数

    L ( θ ) = ∑ i = 1 N ( ( y t + 1 i − y ^ t + 1 i ) 2 + γ ( y t + 1 i − y ^ t + 1 i y t + 1 i ) 2 ) \mathcal{L} (\theta)=\sum_{i=1}^N((y_{t+1}^i-\widehat{y}_{t+1}^i)^2+\gamma(\frac{y_{t+1}^i-\widehat{y}_{t+1}^i}{y_{t+1}^i})^2) L(θ)=i=1N((yt+1iy t+1i)2+γ(yt+1iyt+1iy t+1i)2)
    该公式由两部分组成,第一部分为均方误差MSE,第二部分为平均绝对百分误差MAPE。MSE多和大值相关,MAPE对大值和小值一视同仁,引入MAPE能够避免训练过程被大值的样本所主导。

    实验

    对比试验方法

    Historical average,ARIMA,Ordinary least square regression,Ridge regression,Lasso,Multiple layer perceptron,XGBoost,ST-ResNet

    数据集

    在这里插入图片描述

    评价标准

    在这里插入图片描述

    实验结果

    在这里插入图片描述

    在这里插入图片描述
    此处为计算各模型从工作日到休息日,相关误差的增长(RIE),RIE越小,证明模型鲁棒性越高

    在这里插入图片描述
    在这里插入图片描述

    参考文献

    【1】交通图网络太大太复杂,没法处理?DMVST-Net巧妙处理
    【2】【论文笔记】Deep Multi-View Spatial-Temporal Network for Taxi Demand Prediction
    【3】本论文pdf

  • 相关阅读:
    等数值计算方法学习笔记第4章第三部分【数值积分(数值微分)】
    R语言forcats包处理因子
    LLaMA Factory多卡微调的实战教程
    Elasticsearch集群运维,重平衡、分片、宕节点、扩容
    杭电oj 2044 一只小蜜蜂,C语言
    对于人性的理解
    论文阅读 Streaming Graph Neural Networks
    TP6 TP8 使用阿里官方OSS SDK方法
    Spring框架的发展历程
    【压力测试】用JMeter进行百科网站压力测试
  • 原文地址:https://blog.csdn.net/qq_35780315/article/details/126235349