内容来源于:Deep Spatio-Temporal Residual Networks for Citywide Crowd Flows Prediction
发表在 AAAI 2017
第一作者是微软亚洲研究院的Junbo Zhang
摘要
对于交通管理和公众安全,人流量预测是至关重要的。受许多复杂因素(例如区域间的流量,突发事件和天气)的影响,人流量预测是非常具有挑战性的一个任务。论文提出了一个深度学习的方法——ST-ResNet, 该方法可以预测一个城市中每个区域人流的流入量和流出量。论文基于时空数据的特性设计了一个端到端的结构:ST-ResNet。详细来说,论文利用残差网络建模流量数据的时间邻近性、周期性、趋势性。对于上述的每一个属性,论文都设计了一个残差卷积单元。ST-ResNet网络聚集三个单元的输出,并且对不同的单元赋予不同的权重。聚集后的输出将会和一些额外的因素(例如天气、日期)进行合并,然后预测每个区域的最终人流量。作者在北京和纽约两个城市的两种类型的数据集(自行车和出租车数据集)上进行了实验,实验结果证明ST-ResNet优于6个已知的方法。
介绍
在2015年1月的上海,大量人群涌入一个区域,引起踩踏事故,导致36人死亡。在2016年7月中旬,成百上千的“口袋妖怪围棋”玩家冲入纽约市中央公园,希望捉住一个特别稀有的数字怪兽,引起了危险的踩踏事件。因此,如果可以预测某个地区的人群流量,就能够通过紧急机制(例如提前进行交通控制,发出警告或疏散人员)来缓解或预防此类悲剧。
在这篇文章中,我们预测两种类型的流量,流入流和流出流。如图(a)所示:
流入流是指在一个时间间隔内进入一个区域的总流量,流出流是指在一个时间间隔内离开我们所要探测区域的流量。了解一个指定区域的上述两种流量是至关重要,这将有益于风险控制和交通管理。可以通过行人数量、附近道路上行驶的汽车数量以及乘坐公共交通(例如地铁,公交车)的人数,来计算一个区域的总人流量。同时也可以联合多种方法来预测人流量。在上图(b)中,我们可以通过手机信号来估计行人数量,从图中可以看出,对于r2区域,流入流是3,流出流是1。相似的,对于使用车的GPS信号,两种类型的流量分别是(0,3)。但是同时预测一个指定区域的流入流和流出流是一个具有挑战性的任务,它主受到以下因素的影响:
1. 空间依赖:在图1(a)中,r2区域的流入量受邻近区域(r1)的流出量以及较远地区流出量的影响。类似,r2区域的流出量影响其他地区(r3)的流入量。
2. 时间依赖:一个区域的流入量受邻近时间间隔的影响。例如,8点的交通拥堵会影响9点的人流量。在工作日的情况下,每天的早高峰时间是一样的。除此之外,随着冬天的来临,早高峰的时间可能越来越晚。
3. 额外因素的影响:一些额外的因素,例如天气情况和一些突发事件可能改变一个地区的人流量。
为了应对上述挑战,论文提出了ST-ResNet网络(深度时间空间残差网络)。论文的主要贡献集中于以下四个方面:
(1)ST-ResNet使用基于卷积的残差网络对城市中任何两个区域之间的附近和远处的空间依赖性进行建模,同时确保神经网络的深层结构不包含该模型的预测准确性。
(2)利用基于卷积的残差网络,建模一个城市中较近的两个区域之间的依赖和较远的两个区域之间的依赖,这确保了模型的准确度不受深度神经网络结构的影响。
(3)根据人流量的时间属性,可以分为以下三类:时间依赖性,周期性,趋势性。ST-ResNet使用三个网络建模这三种性质。
(4)ST-ResNet聚集三个上述网络的输出,并且根据不同的分支和区域对它们赋予不同的权重。聚集后的输出和一些额外的因素联合。
本篇论文使用北京出租车的轨迹和气象数据以及纽约市自行车轨迹数据来评估我们的方法。结果表明,与6条基准线相比,文中的方法具有优势。
人流量问题的形式化定义
定义一:根据不同的区域粒度和语义含义,有许多位置定义。在本研究中,我们将城市划分为基于经度和纬度的I*J网格图,其中一个网格表示一个区域,如图1(a)所示:
图1
定义二:(流入流和流出流)。P表示时间区间t的轨迹集合。对于一个网格(i,j),在时间间隔t内的流入流和流出流的计算公式如下所示:
其中,Tr:g1,g2,...,g|Tr|是P中的一条轨迹,gK是空间坐标,gk∈(i,j)表示gk在网格(i,j)中。| |表示集合的基数。在时间间隔t中,在所有的I*J区域的流入流和流出流可以表示为一个张量:
其中,
进入流矩阵展示在图2(b)中。形式化地,对于每个网格,有两种类型的流量,任何时间的交通流量都能表示成上述张量的形式。
问题:依据历史的观测,{Xt|t=0,...,n-1},预测Xn
深度残差学习
深度残差学习允许神经网络有超过100层的深度。它在多个识别任务上达到了较好的结果,例如:图片分类,目标探测。
形式化地,一个拥有等同映射的残差单元定义如下:
X(l),X(l+1)是第l个残差单元的输入和输出,F是残差函数,残差学习的关键是学习残差函数F。
深度残差网络
上图展示了论文模型的架构,主要由四部分组成。它们主要对时间邻近性,周期性,趋势性,额外因素进行建模。
在上图的右上部分,论文首先转换在每个时间间隔内一个城市的流入流和流出流为两通道的矩阵,使用定义一和定义二的方法。然后,划分时间轴为三个部分:最近时间,邻近时间和较远的时间。通道的矩阵被输入三个网络中来建模三个时间特性:时间邻近性,周期性和趋势性。这三个部分共享相同的网络结构(卷积网络+残差网络)。这样的网络结构可以建模较近区域和较远区域的空间依赖。在最左侧的一部分,从额外的数据集中提取出额外的特征,例如天气情况和突发事件,然后把这些额外的特征输入两层的全连接神经网络。右边三部分的输出被融合为XRes。右侧网络的输出为XExt。最后,两部分通过一个Tanh函数进行聚集,映射为[-1,1]之内的数值。
卷积残差网络的架构
图3
三部分的卷积残差网络共享相同的架构,网络架构图如上所示。
卷积
在一个整体面积较大的区域中,邻近区域的流量相互影响,可以利用卷积网络捕捉较近的空间依赖。但是,由于地铁和高速公路的连接,较远的两个地方的人流量也可能相互影响。为了捕捉任意两个区域的空间依赖性,本论文设计一个多层的CNN结构。但是,由于卷积的影响,每一层的输出维度都会小于输入,因此不能够进行多次卷积。在以前的做法中,通常使用下采样来处理这个问题。本论文仅仅使用卷积,为了保持输入和输出的一致性,允许卷积核移动到图片之外。在上图(a)中,我们可以发现,高水平的一个节点依赖于中水平的9个节点,中水平的节点依赖于低水平的所有输入节点。这表示多层卷积网络可以捕捉空间上较远距离的依赖。对于捕捉时间邻近性的网络部分,输入是:
然后按照时间轴进行连接:
然后进行卷积:
残差单元
众所周知,非常深的网络不易于训练。为了解决这个问题,本论文引入残差单元。在图三(a)中,论文在Conv1上堆叠L层的残差单元;残差单元的结构如下:
F是残差函数,是ReLU + Convolution的联合。在L层残差单元的顶端,加入一个卷积层(Conv2),对于建模时间邻近性的网络的输出是Xc(L+2)。
与上述对时间邻近性的建模操作相同,论文对时间的周期性和趋势性进行建模。对于时间的周期性,网络的输入是:
lp是时间间隔,p是周期,输出是Xp(L+2) 。对于时间的趋势性,lq是时间间隔,q是周期性的跨度,输出是Xq(L+2) ,输入是:
融合
对于上述三个网络的输出,对它们赋予不同的权重进行融合。
然后,融合额外特征的部分:
最后,损失函数公式如下所示:
算法和优化过程
关于 天 方 夜 “谈”
天方夜谈原意讲不切实际的东西,而这里想要 “脚踏实地”真正弄懂并感受一篇文章的思想。
方班人有自己的浪漫,
我们探讨知识,谈论理想,
采摘科研的繁星,
脚下是星辰大海。
天:代表我们的理想犹如天空般浩荡
方:代表方班
夜:代表代码人的冷静与静谧
谈:代表方班愿与您,就领域内的经典思想和前沿成果“秉烛夜谈”