精读论文:Predicting Citywide Crowd Flows Using Deep Spatio-Temporal Residual Networks

Predicting Citywide Crowd Flows Using Deep Spatio-Temporal Residual Networks

AAAI 2017 郑宇组的论文


文章首先介绍该问题的基本概念 ,接着描述系统的框架(本文跳过),然后介绍基于DNN的预测模型,最后进行实验验证模型结构与参数和与基线模型进行对比。

OUTLINE

  • 人流量数据(crowd flows)的时空属性及及外部因素
  • 如何进行数据格式转化
  • Deep Spatio-Temporal Residual Networks (ST-ResNet)
  • 实验

文章解决的问题:人流量预测,即用历史数据预测下一时刻的人流量

方法:CNN+残差学习+多网络融合

贡献:

  1. 用基于卷积的残差网络捕获人流量数据空间特征
  2. 总结了人流量数据时间维度上的三个属性:临近(closeness ),周期(period),趋势(trend )
  3. 用三个网络分别取捕获上面三个属性,然后进行融合,融合的权重是模型学习出来的
  4. 部署到云,已落地使用

人流量数据(crowd flows)的时空属性及外部因素

  • 空间属性(文中说到两点)
    • Nearby:目标区域的流量会受相邻区域影响,包括目标区域人流量同样会影响本身人流量,这点非常好理解,比如我们要预测学校下一小时的人流量,当然跟之前时间内,学校及其附近的人流量有关啊。
    • Distant:目标区域的流量会受远处区域影响,这点不怎么好理解,作者举了个栗子,住在离办公室非常远的人通常是坐地铁或者走高速公路去上班。
    • 补充:郑宇博士讲过还有 Hierarchy,比如城市的结构(单条路->街道->区->城市……),这等于是城市高级的语义信息,也更适合用CNN这种不用做特征工程的模型 -,-(图像任务中,CNN层数越多,语义信息越丰富,相反位置信息越少,参考FPN那篇文章)
  • 时间属性(三点)
    • Closeness:一个区域的流量受最近一段时间的流量影响,包括远处的和近处的区域。很好理解的,这个跟传统时序数据挖掘差不多……
    • Period:工作日中每天的早高峰的交通流量类似,这是这类数据独有的,~哈哈想象一下股票有周期还得了吗?
    • Trend:列如冬天的时候早高峰的时间要推迟,把这个趋势画出来肯定是比较平滑的
  • 外部因数(无限多~)
    • 比如天气状况或者突发事件能够影响流量

如何进行数据格式转化

  • 重点重点重点,如何在保证上面所说数据的特性的情况下,把获得的数据转化成模型输入数据的格式呢?
  • 作者将目标城市划分成 IXJ 的网格,然后按照固定时间间隔计数每个网络的入流与出流,最后成二维矩阵(类比RGB图像->三维矩阵),如果按照时间把排序后就像视频流
  • 补充:推荐一个资源 Tutorial on Trajectory Data Mining
精读论文:Predicting Citywide Crowd Flows Using Deep Spatio-Temporal Residual Networks_第1张图片
  • 这样转换,保留了数据的空间属性及时间属性,其实在这里就已经从本质上,知道了比之前的工作效果好的理由了吧~~~至于如何体现时间的三个特征具体看下文 ST-ResNet 的结构。
  • 我的思考:
    • 其他任务也一样,不能来个任务就上模型,一定要考虑数据特性!
    • 时空数据的格式转换很重要!
    • 根据数据格式,可以结合其他领域(比如图像)的解决方案进行改进

ST-ResNet

  • 文章首先解释了为什么不用RNN家族来建模。因为上文说过,这类数据不同于其他时序数据,有周期趋势性,如果要抓住这些特征,需要输入很长的序列,训练会很艰难。
  • 所以作者说,According to the ST domain knowledge … 序列中,少许前面关键几帧的数据就能够决定下面一帧的数据,所以作者根据临近,周期,趋势的特性,去选择关键帧输入网络。
精读论文:Predicting Citywide Crowd Flows Using Deep Spatio-Temporal Residual Networks_第2张图片
  • 时间属性建模:关键帧具体如何选择的呢?看上图中 distant, near, recent 大概就懂了吧,至于为什么是三个网络大概也懂了吧… 作者的想法是分别对这三个特征进行建模
  • 融合1:分别对 distant, near, recent 建模后,将输出进行融合,融合不是简单的平均相加,是通过权重矩阵进行学习的 X R e s = W c ⋅ X c + W p ⋅ X p + W q ⋅ X q X_{Res}=W_c\cdot X_c+W_p\cdot X_p+W_q\cdot X_q XRes=WcXc+WpXp+WqXq,其中 X c , p , q X_{c,p,q} Xc,p,q 网络最后的输出。这一点也很好理解,每个区域受不同时间属性的影响是不同的,文章也尝试给出了解释,比如公园受周期性影响很大,因为周末去的人多,工作日去的少
  • 融合2:得到 X R e s X_{Res} XRes 后,与 embedding 好的外部因素 X E x t X_{Ext} XExt 进行再次融合,这里是直接相加,最后输出 X t a r g e t X_{target} Xtarget
精读论文:Predicting Citywide Crowd Flows Using Deep Spatio-Temporal Residual Networks_第3张图片
  • 空间属性建模:作者用的基于卷积(不下采样)的残差网络,,结构如上。这有几个要点
    • 为什么用CNN?因为CNN能很好地层次化处理空间结构信息
    • 为什么残差?因为需要捕捉城市上任任意两点之间的空间依赖性,如果用小卷积核的话需要堆积很多层(比如32x32的矩阵,用3x3的核,不进行下采样的话,需要15层),层数越多训练越难,而残差学习可以有效解决这个问题。
    • 为什么不下采样?下采样会丢失信息。
  • 外部因素建模:文中没有深入研究。作者直接用 one-hot 对数据进行编码,然后用一层神经网络进行embedding,最后再用一层网络把低维映射到高维,方便与 X R s e X_{Rse} XRse 融合(reshape成一样的维度)

实验

  • 作者对提出的 framework 的网络结构及超参数进行了许多验证实验,具体可以看论文,对理解CNN是很有帮助的。
  • 下面是对比基线算法的实验结果,印证了上文所说~RNN家族建模差这类数据效果不好,具体实验看原文吧。
精读论文:Predicting Citywide Crowd Flows Using Deep Spatio-Temporal Residual Networks_第4张图片
  • 通过阅读相关文献及以前在图像领域所学知识,我已经在相同的数据上,用相同的预处理及训练策略,仅通过某三处小小的修改,将在TaxiBJ的RMSE降至15.6……且模型更小……

你可能感兴趣的:(论文笔记)