文章目录
BusTr: Predicting Bus Travel Times from Real-Time Traffic
https://dl.acm.org/doi/10.1145/3394486.3403376
KDD’20
1. 概述
本文提出了一个机器学习模型-BusTr,模型基于“实时交通”+“时空上下文”数据,实现对“公交旅行时间”的预测。模型期望通过尽可能易得的数据,以适应不同质量的数据来源,从而可以面向全球尺度提供服务。因此,本文尤其关注模型的泛化能力,并在样本、特征、训练细节等方面做了很多工作。最后,本文通过多组实验论证了方法的有效性和泛化能力,尤其是和SOTA方法DeepTTE做对比。
2. 本文与历史工作的区别
- 模型重点考虑了”泛化“问题,对于训练数据集中没出现过的城市也要有预测能力。
- 模型使用了严格的特征集。
- 模型使用全球尺度的大数据训练。
- 模型从实时交通数据做推断。
3. 具体方法
- 数据:每个样本是一个序列,序列元素由“站点”和“路段”组成,路段由站点或交叉口断开。样本按照一系列启发式规则采样得到。
-
特征:①全局特征:公交线路ID做Embedding;曜日和半小时片分别做Embedding(其中小时的Embedding前两位用循环数值初始化)。②元素位置特征:点位(站点或路段起点)的多尺度S2Cell做Embedding后求和;③路段元素附加特征:路段长度;路段预估速度(取自GoogleMap的交通预测系统)
-
模型:
- 整体是分段求和形式,元素是站点或路段。 T ^ = ∑ q ∈ Q t ^ q \hat{T}=\sum_{q\in Q}\hat{t}_q T^=∑q∈Qt^q。
- 对站点单元,直接对“全局特征”和“站点位置特征”过全连接
- 对路段单元,预估速度 s s s和距离 d d d并按公式聚合,该公式表示“实时依赖”和“实时无关”的融合: Segment duration = α d s + β d \text{Segment duration}=\alpha \frac{d}{s} +\beta d Segment duration=αsd+βd。
- 后处理:对负数有0裁切
- 后处理:对负数用0裁切
4. 训练细节
-
Spatial input ablation:类似于dropout,对S2Cell的特征,根据不同级别配置不同的概率进行剔除,以提高泛化,且倾向粗粒度Cell;
-
Feature selection:训练分为两步,第一步按照 α b L \alpha b^L αbL权重给S2Cell的Embedding加L1正则,仅保留范数>0.1的Cell,降低词表大小;第二步再正常训练。
-
其他细节:Adam优化器、MSE损失、MAPE metric、10wSteps、Step_size=200、10w样本评估、每500Step评估一次、超参用Google的Vizier调
-
每个模型训练20次,并在10w个样本上评估,作模型对比
5. 实验对比
- baseline:①直接用交通预测的结果。②线性回归:站点数、总距离、总预计时间
- 与DeepTTE对比,更稳、更好,DeepTTE经常不收敛
- 特征消融实验:分3大组,①删除实时信息;②删除空间信息;③删除时间信息。实验结果看,每个部分都是有用的。其中,空间特征影响大;时间特征影响较小
- 泛化实验:①三组数据:最近1周、9周后、9周后的新地区;②不同ablation的模型。
评述
- 本文提出的BusTr,基于“实时交通”+“时空上下文”,实现公交旅行时长的预估。
- 本文是面向全球尺度的应用,对模型泛化能力尤为关注,在样本构造、特征选择、训练细节上做的比较多,可以借鉴。同时,为了广泛适配实际场景中不同质量的数据源,本文的特征选取也比较克制。
- 样本构造部分,动态的ETA预测可以参考做类似的有重叠的样本
- 时间特征Embedding,考虑了时间是循环的,前两维初始化为循环数值处理
- 多尺度的空间特征均值,用来实现尽可能的泛化,这里是不同Level的S2Cell
- 路段ETA的预测,使用了预定义的公式,来融合“实时依赖”和“非实时依赖”
- 训练时分两步,在第一部加L1正则,实现对细粒度S2Cell的清洗,减小词表大小
- 本文的实验比较完整,包括了Baseline对比、SOTA对比、Ablation实验、泛化实验等。
- 实验对比的设计可以学习下
- 本文的模型主体还是分段求和的ETA方法,Road-Segment的时长计算部分加入了预设的计算公式可以借鉴。
- 个人觉得有问题的点:①虽然说特征选择很少,但是“GoogleMap的交通预估系统”作为入参,实际上还是用了很多历史统计和复杂特征,对于不同地区该系统的表现差异有多大存疑。②trip分段的部分,还是需要借助路网来做分段,对没有路网或路网不完整的区域就不适用了。③具体分段的方式上,是否应该考虑一下交叉口的时长。
- 本文没开放代码和数据。
ConSTGAT: Contextual Spatial-Temporal Graph Attention Network for Travel Time Estimation at Baidu Maps
KDD’20
1. 概述
本文的目标是对给定的出发时间、路径,预测其旅行时长(Travel Time Estimate,TTE)。既有的方法存在一些问题:①对于时空特征的挖掘时,时间和空间信息的分开使用的,没有充分挖掘;②路径的上下文信息(如路网邻接关系)通常用序列建模,但是该方法难以应用到大的范围。
因此,本文提出了ConSTGAT,首先提出一个“新的图注意力机制的时空图神经网络”来充分挖掘时空关系;同时,设计了一个高效计算的模型,该模型应用局部窗口卷积来捕捉上下文信息;最后采用多任务学习,来提高总体效果。该模型在生产环境中上线使用,并证明了效果。
2. Contribution
影响潜力:我们提出的End-to-End的神经网络框架,作为工业界的ETA预测解决方案,每日提供百亿请求的服务。
创新:我们设计的结构,通过新的时空图注意力网络充分挖掘了时空信息,并利用局部窗口卷积和多任务学习来提高路径上下文信息的挖掘。
技术质量:在大尺度、真实世界数据上广泛实验,证明了有效性。
问题定义:略
4. 特征
路网特征:表达link关系,对每个link有:id、长、宽、车道数、类型、速度限制、交叉口类型、交通灯类型,以及图结构本身。
历史交通条件:每个link的不同时间片(5min)的集中速度统计。如均值、终止等。
背景信息:出发时间、高峰时间、周末等。
5. 模型结构
-
有3个大的模块,Traffic Prediction、Contextual Information、Integration
-
Traffic Prediciton:基于历史交通数据,通过3D-Attention的时空图网络挖掘时空关系。输入有:①时空图特征, X i ( S T ) ∈ R ∣ N B ( l i ) ∣ T h × d ( S T ) X_i^{(ST)}\in \mathbb{R}^{|\mathcal{NB}(l_i)|T_h \times d^{(ST)}} Xi(ST)∈R∣NB(li)∣Th×d(ST),邻居数量×历史时间片数×结点特征维数;②静态图特征, X i ( S ) ∈ R ∣ N B ( l i ) ∣ × d ( S ) X_i^{(S)}\in \mathbb{R}^{|\mathcal{NB}(l_i)| \times d^{(S)}} Xi(S)∈R∣NB(li)∣×d(S),包括一些id、车道数等;③时间特征, X ( T ) ∈ R T h × d ( T ) X^{(T)}\in \mathbb{R}^{T_h \times d^{(T)}} X(T)∈RTh×d(T),(可能是历史的全局特征)。三种特征拼接和变换后,融合上下文特征和背景信息特征做Attention,称为“3DGAT”。
-
Contextual Infomation:主要处理路径序列的信息,该方法灵感来自segment-based方法,可以高效执行。这里利用contextual window的概念,对于每个link,只考虑目标link在route中附近的几个link的情况,具体实现是卷积的形式。对于每个link,得到
- Integration:最后,将背景信息、上下文信息、历史交通预测三部分拼接,并作link的预测,同时对预测值求和,计算一个全路径的损失
y ^ i = M L P ( C o n c a t ( x i , w C I , x i ( B ) , x i ( T C ) ) ) y ^ = ∑ i = 1 m y ^ i \hat{y}_i=\mathrm{MLP}(\mathrm{Concat}(x_{i,w}^{CI},x_i^{(B)},x_i^{(TC)}))\\ \hat{y}=\sum_{i=1}^{m} \hat{y}_i y^i=MLP(Concat(xi,wCI,xi(B),xi(TC)))y^=i=1∑my^i
- 损失函数:link的用Huber损失、route用APE
6. 实验
对比模型:AVG、DeepTravel、STANN、DCRNN、GAT+Attention
Attention的可视化:说明①下游影响较大;②历史时间越长、历史交通记录越多,越堵。
评述
- 本文提出的ConSTGAT模型,综合考虑的背景信息、路径序列信息、历史时空信息,做ETA预测
- 模型分为3个模块,首先用CNN提取路径序列信息、然后用图数据结合3DGAT(背景和路径序列做Query)(没有GCN)挖掘时空信息(当前给历史加Attention)、最后拼接各个模块同时预测link和route多任务。
- 3个模块分别可参考。
HetETA: Heterogeneous Information Network Embedding for Estimating Time of Arrival
KDD’20
1. 概述
本文提出了HetETA模型,利用异构信息图做ETA预测。图包括路网图(多关系图)和轨迹图,时间上用了recent、daily、weekly三种图。对每个元件通过时序卷积和图卷积来学习时空异构信息表示。模型在大尺度真实数据上实验,并验证了效果。
2. Innovation
- 第一个将HIN(异构信息图)和GNN用于ETA预测
- 设计了一种基于Attention的图网络,称为Het-ChebNet,来嵌入稀疏的异构信息图
- 在大尺度、实际场景的城市路网中实验并验证效果
3. 构图
- 异构信息网络图(HIN),将路网表达为一个多关系网络
- 基于轨迹的网络图。用road segment之间的旅行频率表示
- 3种时间,最近、每日、每周。Recent:向前数Lr个时间片;Daily:向前数Ld天的目标时间片;Weekly:向前数Lw周的目标星期的目标时间片
4. 模型
- 模型结构总体如图所示,输入包括3种时间、两种构图;对于每个图序列,先通过Temporal Gated CNN做一个时序上的挖掘(计算发生在结点内,结点数不变,时间维和特征维变化),然后分别对“路网图”和“轨迹图”做Het-ChebNet图卷积提取时空特征,再用上述门控时序CNN处理并拼接后预测结果。
- Temporal Gated CNN:结构如图所示,用卷积提取时序特征,并设计一个门口结构决定更新量有多少。
- Het-ChebNets:大概就是图卷积的一些操作,略。。。
5.实验
- 数据分为“pickup”和“trip”两种,表示接客过程和送客过程
- 轨迹图部分,完全考虑共现road segment的话边会非常多,这里用β-hop和频数来约束,大概就是考虑β阶的邻接点,和每个临界点取最高的κ个点做连接。
- 对比模型和结果
评述
- 结构有点复杂。大概关键点就是:异构图(时间×(关系图+轨迹图)),Temporal Gated CNN,Het-ChebNet。
- 这里异构图的设计可参考,门控结构可以借鉴。
- 这里提到两个公共数据集:META-LA、PEMS
- 有公开代码