2023 [VLDB] 重新审视路网的行程时间估计:异构性、邻近性、周期性和动态性

本文首发于“时空数据学习”公众号:
2023 [VLDB] 重新审视路网的行程时间估计:异构性、邻近性、周期性和动态性_第1张图片

好文分享 |【VLDB 2023】路径行程时间估计:异质性、邻近性、周期性、动态性
2023 [VLDB] 重新审视路网的行程时间估计:异构性、邻近性、周期性和动态性_第2张图片

论文标题:Route Travel Time Estimation on A Road Network Revisited: Heterogeneity, Proximity, Periodicity and Dynamicity

作者:袁海涛,李国良,鲍芝峰

机构:清华大学,皇家墨尔本理工大学(RMIT)

论文发表:49th International Conference on Very Large Data Bases(VLDB 2023)

引用格式:Yuan H, Li G, Bao Z. Route Travel Time Estimation on A Road Network Revisited: Heterogeneity, Proximity, Periodicity and Dynamicity[J]. Proceedings of the VLDB Endowment, 2022, 16(3): 393-405.

论文链接:https://www.vldb.org/pvldb/vol16/p393-yuan.pdf

代码:https://github.com/yuanhaitao/STHR_CODE

0. 论文概述

本文从异质性(heterogeneity)、邻近性(proximity)、周期性(periodicity)和动态性(dynamicty)四个方面对路网中的路线行程时间估计问题进行了研究,旨在通过捕获和利用时空特征来提高其准确性。

1. 问题动机

2023 [VLDB] 重新审视路网的行程时间估计:异构性、邻近性、周期性和动态性_第3张图片

1 .空间异质性:至少表现在两个方面。首先,路网中不同路段之间的转弯方式是异构的,这使得同一路段的行程时间是不同的(在本文中,把两个路段之间的转弯/等待时间转化为前一路段的行程时间)。以图1 ( b )中的路线 R 1 R_1 R1 R 2 R_2 R2为例, R 1 R_1 R1在经过路段 l 3 l_3 l3后保持直行,而 R 2 R_2 R2在经过路段 l 3 l_3 l3后左转,因此这两条路线的 l 3 l_3 l3行程时间完全不同。其次,不同的路段包含异质属性(例如,不同路段的限速不同),因此内在地对应着不同的行程时间。

2.空间邻近性和时间周期性:首先,相邻路段受到路网的拓扑约束,体现了空间邻近性的影响。例如,图1 ( d )中的上图显示了四个相邻路段 ( l 10 , l 12 , l 13 , l 3 ) (l_{10}, l_{12},l_{13},l_3) (l10,l12,l13,l3)的行程时间,可以发现它们具有相似的模式。其次,如图1 ( d )中的下图所示,每条路段的行程时间呈现出一周的周期性振荡特征,这是由于时间背景(例如,高峰时间)的周期性造成的。总结:行程时间应该包括一个静态部分,它是基于路网中的空间邻近性和时间周期性推导出来的。

3.动态交通路况:它们是指一个路网的交通状态,其中平均旅行速度是一个自然指标。如图1 ( c )所示,道路网络上的交通状态随时间而变化,这反映了所谓的动态上下文的影响。因此,通过对过去时间的交通状态序列进行编码来捕获交通状态的变化趋势是非常重要的

现有方法不足**:统计方法**忽视了动态交通状态。基于学习的方法在编码相关特征时忽略了空间异质性。更糟糕的是,它们不能区分静态特征(例如,静态邻近性和周期性)和动态特征(例如,动态交通状态)的影响。

设计一个通用的学习框架来整合上述所有关键方面仍然是一个开放的问题,原因有三:

  1. 空间异质性和邻近性在估计任务中起到相反的作用,这使得学习不同路段的特征变得困难。
  2. 静态特征和动态特征对行程时间的影响既有联系又有区别,因此对其进行区分是非常有必要的。
  3. 设计有效的模型来捕捉复杂的时空相关性仍然是一个关键的挑战。

为解决上述挑战,作者做了如下设计:

  1. 异质图——路段-连接图(link-connection graph,LCG)。用于描述路网中路段之间的相关性。为了捕捉空间异质性邻近性,在LCG上利用一个可以考虑所有空间上下文的异质图注意力模型来学习每个路段的表示。
  2. 行程速度直方图用来表示行程速度/时间的分布,基于此可以将每个行程时间/速度值分为静态部分和动态部分。相应地,将相关的时空特征分为两部分,即样本共性样本特性,基于这两部分可以区分不同的时空特征对行程时间的影响。
  3. 设计基于注意力机制的编码器-解码器框架,将模型的静态和动态部分在空间域和时间域上进行融合。捕获不同的时空相关性。编码器为时间编码器( Temporal Encoder ),利用序列自注意力机制对动态时序特征(例如,与路线相关的交通状态和时间背景信息)进行编码,得到动态表示。解码器为空间解码器(Spatial Decoder)首先从静态时空特征(例如,路段和时间步(time slot)表示)生成静态表示(即静态行程速度直方图),然后从空间角度将静态和动态表示与编码-解码注意力进行融合,从而解码得到估计时间。

2. 本文贡献

  1. 解释了精确路线旅行时间估计的四个关键但尚未探索的方面,即空间异质性(heterogeneity)、空间邻近性(proximity)、时间周期性(periodicity)和动态(dynamicity)交通状态,并对相关特征进行了全面分析。
  2. 设计了一个综合的神经网络模型STHR,可以充分挖掘不同的时空特征,从而实现准确的路线行程时间估计
  3. 利用自注意力机制来编码过去每个时间步(time slot)的动态交通状态和时间背景信息,从而生成行程时间的动态部分。
  4. 在两个真实世界的数据集上进行了全面的评估,发现STHR在准确性和稳健性方面显著优于现有技术。

3. 问题定义

3.1 基础概念

路网:有向图 < V , L > <V,L> V V V为顶点集, L L L是边集,每个路段 l i ∈ L l_i\in L liL表示一个连接2个顶点的路段。

路线 R = < l 1 , l 2 , . . . , l m > R= R=<l1,l2,...,lm>

路段连接图(Link-Connection Graph,LCG):是异质图,右上图所示,LCG构建在路网上,同时构建一个有向图 G = < L , E > G= G=<L,E>,一条边 e = < l i , l j > e= e=<li,lj>表示,有4种边:左转,右转,调头,直行)

路线邻居图(route neighboring graph,RNG):给定一个行驶路线,它所经过的路段为路线路段;把与这些路线路段相邻的路段称为路线邻居路段。记作 G ( R ) = < L ( R ) , E ( R ) > G(R)= G(R)=<L(R),E(R)>

L ( R ) ⊆ L , E ( R ) ⊆ E L(R)\subseteq L,E(R)\subseteq E L(R)L,E(R)E,因此RNGLCG的子图

2023 [VLDB] 重新审视路网的行程时间估计:异构性、邻近性、周期性和动态性_第4张图片

行程时间和行程速度直方图( Histogram ):给定路段 l l l,假设其行程时间为 t l t_l tl,则相应的行程速度为 v = ∣ l ∣ ∣ t l ∣ v = \frac{|l|}{|{t_l}|} v=tll,其中 ∣ l ∣ |l| l表示路段l的长度.使用行程速度的原因是每个路段的速度对应一个范围,而行程时间的范围难以确定。考虑到速度范围(例如: 0 ~ 60km / h),将其拆分成 k k k个互不相交的部分(记为 p 1 , ⋅ ⋅ ⋅ , p k p_1 , · · · , p_k p1,⋅⋅⋅,pk)来近似速度分布 h i s t = [ α 1 , ⋅ ⋅ ⋅ , α k ] hist = [α_1 , · · · , α_k] hist=[α1,⋅⋅⋅,αk],其中 0 ≤ α i ≤ 1 0≤α_i≤1 0αi1 ∑ i = 1 k = α i = 1 ∑_{i=1}^k = α_i = 1 i=1k=αi=1。例如,给定5个速度值(即5,2,12,15,20)和2个部分 p 1 = [ 0 , 10 ) p_1 = [0,10) p1=[0,10) p 2 = [ 10 , 20 ] p_2 = [10,20] p2=[10,20],对应的直方图为 h i s t = [ 2 5 , 3 5 ] hist = [\frac{2}{5},\frac{3}{5}] hist=[52,53]。此外,每个速度值 v v v可以通过速度直方图 h i s t = [ α 1 , ⋅ ⋅ ⋅ , α k ] hist = [α_1,··· ,α_k] hist=[α1,⋅⋅⋅,αk]和偏差序列 Δ = [ δ 1 , . . . , δ k ] ( 0 ≤ δ i ≤ 1 ) \Delta= [\delta_1,...,\delta_k](0\le\delta_i\le1) Δ=[δ1,...,δk](0δi1)
v = ∑ i = 1 k α i ( p i ◃ + δ i d i ) v=\sum_{i=1}^k\alpha_i(p_i^\triangleleft+\delta_id_i)\\ v=i=1kαi(pi+δidi)
p i ◃ p_i^\triangleleft pi p i ▹ p_i^\triangleright pi分别表示左值和右值,值域为 d i = p i ▹ − p i ◃ d_i=p_i^\triangleright-p_i^\triangleleft di=pipi

请求和行程时间估计(TTE) r e q = ( R , s ) req=(R,s) req=(R,s),表示 s s s时刻出发,路线是 R R R,TTE是估计时刻 S S S路线 R R R的行程时间。

3.2 主要特征

历史交通状态(时空特征):过去时间步路段中行驶速度的最大值、最小值、平均值、中位数记作( v ˋ , v ˊ , v ˉ , v ~ \grave v,\acute v,\bar v,\widetilde v vˋ,vˊ,vˉ,v )。时间步表示 Δ t \Delta t Δt,默认为5min,过去时间步数设置数表示为 p p p,默认为12。每个路线 R R R,考虑局部路况,对应RNG ( G ( R ) = < L ( R ) , E ( R ) > ) (G(R)=) (G(R)=<L(R),E(R)>),特征表示为 C = { ( v ˋ l j , v ˊ l j , v ˉ l j , v ~ l j ) } l ∈ L ( R ) j ∈ [ s − p : s − 1 ] C=\{(\grave v_l^j,\acute v_l^j,\bar v_l^j,\widetilde v_l^j)\}^{j\in[s-p:s-1]}_{l\in L(R)} C={vˋlj,vˊlj,vˉlj,v lj}lL(R)j[sp:s1]

路网(空间特征):使用包含异构关系的LCG来表示道路网的图结构: G = < L , E > G= G=<L,E>。路段属性 f l f_l fl:长度,宽度,车道数,类型和限速。特征集合: F = { f l } l ∈ L F=\{f_l\}_{l\in L} F={fl}lL.路线 R R RRNG,特征集合: F ( R ) = { f l } l ∈ L ( R ) F(R)=\{f_l\}_{l\in L(R)} F(R)={fl}lL(R)

时间背景(时间特征):时间背景信息(如高峰时间,工作日和其它时间相关信息)作为特征。时间步 j j j的信息记为 x j x^j xj。每个样本中存在 p + 1 p+1 p+1个时间步(过去 p p p步和出发时刻 s s s所在时间步)。时间背景信息: X = { x j } j ∈ [ s − p : s ] X=\{x^j\}^{j\in [s-p:s]} X={xj}j[sp:s]。为捕获时间周期性,考虑一周的全部时间步,将出发时刻 s s s的时间步信息投影到一周内每一个时间步。所有时间步: T = { T j } [ 1 , ∣ T ∣ ] T=\{T^j\}^{[1,|T|]} T={Tj}[1,T],投影时间步: T s T^s Ts

总结

  • 时空特征: C = { ( v ˋ l j , v ˊ l j , v ˉ l j , v ~ l j ) } l ∈ L ( R ) j ∈ [ s − p : s − 1 ] C=\{(\grave v_l^j,\acute v_l^j,\bar v_l^j,\widetilde v_l^j)\}^{j\in[s-p:s-1]}_{l\in L(R)} C={vˋlj,vˊlj,vˉlj,v lj}lL(R)j[sp:s1]
  • 空间特征: F = { f l } l ∈ L , G = < L , E > , G ( R ) = < L ( R ) , E ( R ) > F=\{f_l\}_{l\in L}, G=, G(R)= F={fl}lL,G=<L,E>,G(R)=<L(R),E(R)>
  • 时间特征: ( X = { x j } j ∈ [ s − p : s ] , T , T s ) (X=\{x^j\}^{j\in [s-p:s]},T,T^s) (X={xj}j[sp:s],T,Ts)

进一步划分为2类,样本共性(sample-wise-general)和样本特性(sample-wise-special)。

( 1 )由于 F , G 和 T F,G和T FGT是独立于样本的,所以称它们是样本共性

( 2 )其他依赖于样本的特征被称为样本特性

3.3 路线行程时间估计流水线

问题定义:请求 r e q = < R , s > req= req=<R,s>,共性: ( F , G , T ) (F,G,T) (F,G,T),特性: ( C , F ( R ) , G ( R ) , X , T s ) (C,F(R),G(R),X,T^s) (C,F(R),G(R),X,Ts)

TTE任务:路线 R R R利用特征通过模型 M M M估计行程时间 y y y
y = M ( C , F ( R ) , G ( R ) , X , T s ; F , G , T ) y=\mathcal{M}(C,F(R),G(R),X,T^s;F,G,T)\\ y=M(C,F(R),G(R),X,Ts;F,G,T)

流水线:
r e q ⟶ ① C , F ( R ) , G ( R ) , X , T s , F , G , T ⟶  ②  h i s t l l 1 s ⋯  hist  l m s , Δ l 1 s ⋯ Δ l m s ⟶ ③ t ^ l 1 ⋯ t ^ l m ⟶  ④  t ^ R = ∑ i = 1 m t ^ l i . \begin{aligned} r e q & \stackrel{①}{\longrightarrow} C, F(R), G(R), X, T^{s}, F, G, T \stackrel{\text { ② }}{\longrightarrow} h_{i s t} l_{l_{1}}^{s} \cdots \text { hist }_{l_{m}}^{s}, \Delta_{l_{1}}^{s} \cdots \Delta_{l_{m}}^{s} \\ & \stackrel{③}{\longrightarrow} \hat{t}_{l_{1}} \cdots \hat{t}_{l_{m}} \stackrel{\text { ④ }}{\longrightarrow} \hat{t}_{R}=\sum_{i=1}^{m} \hat{t}_{l_{i}} . \end{aligned}\\ reqC,F(R),G(R),X,Ts,F,G,T ② histll1s hist lms,Δl1sΔlmst^l1t^lm ④ t^R=i=1mt^li.
首先估计每天经过路段的速度直方图 h i s t l i s {hist}^s_{l_i} histlis和偏差序列 Δ l i s \Delta^s_{l_i} Δlis,然后推导出时间 t ^ l i \hat t_{l_i} t^li,具体的 h i s t l i s {hist}^s_{l_i} histlis分为两部分,静态直方图 h i s t ˉ l i s \bar {hist}^s_{l_i} histˉlis和动态矩阵 P l i s P^s_{l_i} Plis.其中 h i s t l i s ∈ R k {hist}^s_{l_i}\in\mathbb{R}^k histlisRk独立于样本 P l i s ∈ R k × k P^s_{l_i}\in \mathbb{R}^{k\times k} PlisRk×k依赖于样本。
h i s t l i s = h i s t ˉ l i s × s o f t m a x ( P l i s ) hist^s_{l_i}=\bar {hist}^s_{l_i}\times softmax(P^s_{l_i}) histlis=histˉlis×softmax(Plis)
如下图流水线:

2023 [VLDB] 重新审视路网的行程时间估计:异构性、邻近性、周期性和动态性_第5张图片

第1步**:静态生成**,共性生成全局静态直方图 { h i s t l i j } l ∈ L j ^ ∈ [ 1 , ∣ T ∣ ] \{hist^j_{l_i}\}^{\hat j \in [1,|T|]}_{l\in L} {histlij}lLj^[1,T]

第2步:路线 R R R和出发时间步 T s T^s Ts,从全局静态直方图(global)提取局部静态直方图() { h i s t ˉ l i s } l i ∈ R \{\bar {hist}^s_{l_i}\}_{l_i\in R} {histˉlis}liR

第3步**:动态生成**,特性特征和局部静态直方图生成动态矩阵 P l i s P^s_{l_i} Plis和偏差序列 { Δ l i s } l i ∈ R \{\Delta^s_{l_i}\}_{l_i\in R} {Δlis}liR

最终(第4步):行程时间生成:利用局部静态直方图,动态矩阵和偏差序列来推断行程时间

4. 模型架构

2023 [VLDB] 重新审视路网的行程时间估计:异构性、邻近性、周期性和动态性_第6张图片

4.1 模型概述

STHR本质上是一个序列编码器-解码器框架。在序列编码部分,将所有的时空特征看作一个时间序列,其长度为历史时间步数,因此编码部分称为时间编码器(temporal encoder)。对于序列解码部分,目标是生成给定路线中每条路段的速度/时间。因此,将路线看作是一个路段序列,序列长度为路段中的路段数,因此将解码部分称为空间解码器(spatial decoder)。

共性: ( F , G , T ) (F,G,T) (F,G,T),特性: ( C , F ( R ) , G ( R ) , X , T s ) (C,F(R),G(R),X,T^s) (C,F(R),G(R),X,Ts)

  1. 准备数据:给定请求 r e q = < R , s > req= req=<R,s>。共性特征 ( F , G , T ) (F,G,T) (F,G,T)从路网和路段属性中提取。根据请求生成特性特征: ( C , F ( R ) , G ( R ) , X , T s ) (C,F(R),G(R),X,T^s) (C,F(R),G(R),X,Ts) C C C从历史轨迹中提取, X X X是从事件背景信息中提取。

  2. 编码历史交通状态包含三个阶段

    阶段1: C C CRNG中获得。设计交通状态融合将 C j = { ( v ˋ l j , v ˊ l j , v ˉ l j , v ~ l j ) } l ∈ L ( R ) C^j=\{(\grave v_l^j,\acute v_l^j,\bar v_l^j,\widetilde v_l^j)\}_{l\in L(R)} Cj={(vˋlj,vˊlj,vˉlj,v lj)}lL(R)转换为隐藏表示 h ˉ c j = < h ˉ c s − p , . . . , h ˉ c s − 1 > \bar h_c^j=<\bar h_c^{s-p},...,\bar h_c^{s-1}> hˉcj=<hˉcsp,...,hˉcs1>
    阶段2:捕获时间相关性,时间自注意力机制。 h ^ c j \hat h^j_c h^cj转换为¥ h ^ c j \hat h_c^j h^cj。得到 h ^ C = < h ^ c s − p , . . . , h ^ c s − 1 > \hat h_C=<\hat h_c^{s-p},...,\hat h_c^{s-1}> h^C=<h^csp,...,h^cs1>
    阶段3:不同历史时间步的交通状态会对当前时间步产生不同影响。设置*时间步注意力聚会模块(Time-Slot-Attention Fusion)*进一步融合 h ^ c \hat h_c h^c X X X,得到 h c = < h C s − p , . . . , h c s − 1 > h_c= hc=<hCsp,...,hcs1>

  3. 生成局部静态直方图。对应**”静态生成“”fetch“**。目的是生成给定出发时间步下给定路线的每一个路段的静态直方图。分为2阶段

    阶段1:全局静态直方图生成器实现静态生成。全局静态直方图: h i s t ˉ = { h i s t l i j } l ∈ L j ^ ∈ [ 1 , ∣ T ∣ ] \bar{hist}=\{hist^j_{l_i}\}^{\hat j \in [1,|T|]}_{l\in L} histˉ={histlij}lLj^[1,T]。大小为 ∣ L ∣ × ∣ T ∣ |L|\times|T| L×T

    阶段2:通过路线 R = < l 1 , . . . , l m > R= R=<l1,...,lm>和出发时间步 T s T^s Ts从全局寻找局部,将 h i s t ˉ R s \bar {hist}^s_R histˉRs作为空间解码器的输入。

  4. 解码动态矩阵和偏差序列。对应**”动态生成“**。通过空间序列 h i s t ˉ R s \bar {hist}^s_R histˉRs和时间编码序列 h C h_C hC生成 P l i s P^s_{li} Plis Δ l i s \Delta^s_{l_i} Δlis。分为2阶段

    阶段1:时空注意力(Spatio-Temporal Attention)聚合时空序列, h i s t ˉ l i s \bar {hist}^s_{l_i} histˉlis利用注意力转换为 h l i s h^s_{l_i} hlis,并聚合 h C h_C hC,得到包含全部时空特征的最终序列 h R s = < h l i s , . . . , h l m s > h_R^s= hRs=<hlis,...,hlms>

    阶段2:*动态速度生成器(Dynamic-Speed Generator)*基于 h l i s h^s_{l_i} hlis生成 P l i s P^s_{l_i} Plis Δ l i s \Delta^s_{l_i} Δlis

  5. 推理行程时间:对应图中“行程时间生成”。估计每个路段行程时间 t ^ l i \hat t_{l_i} t^li。通过得到的直方图 h i s t l i s hist_{l_i}^s histlis和速度 v ^ l i \hat v_{l_i} v^li。计算 t ^ l i = ∣ l i ∣ v ^ l i \hat t_{l_i}=\frac{|l_i|}{\hat v_{l_i}} t^li=v^lili

  6. 计算损失:一方面,衡量每个路段行程时间的损失,记为Link-wise Loss。另一方面,对整个路线的行程时间进行了损失度量,记为Route Loss

4.2 时间编码器

2023 [VLDB] 重新审视路网的行程时间估计:异构性、邻近性、周期性和动态性_第7张图片

时间编码器的三个关键组成部分:交通状态融合(Traffic Condition Fusion);时间自注意(Temporal Self-Attention);时间步注意力融合(ime-SlotAttention Fusion)。首先,解释了如何结合RNG G ( R ) G(R) G(R)及其路段特征 F ( R ) F(R) F(R)来编码每个历史时间步 j j j的交通状态 C j C_j Cj。这里对每个时间步的所有路段的交通状态进行融合,得到融合结果 h ˉ C = h ˉ c s − p , . . . , h ˉ c s − 1 \bar h_C = {\bar h^{s-p}_c,...,\bar h^{s-1}_c } hˉC=hˉcsp,...,hˉcs1。其次,为了捕获时间相关性,解释了如何利用自注意力机制将 h ˉ C \bar h_C hˉC进一步编码为 h ^ C \hat h_C h^C最后,说明如何通过融合时间信息包含了历史时间步对当前时间步的不同影响的 X X X来进一步编码得到 h C h_C hC

4.1.1 RNG 交通状态融合

从历史交通信息 C = { C s − p , . . . , C s − 1 } C=\{C^{s-p},...,C^{s-1}\} C={Csp,...,Cs1},中生成 h ˉ c j = < h ˉ c s − p , . . . , h ˉ c s − 1 > \bar h_c^j=<\bar h_c^{s-p},...,\bar h_c^{s-1}> hˉcj=<hˉcsp,...,hˉcs1>。包含2个步骤:编码RNG中每个路段的交通状态和聚合路段表示。

编码交通状态:捕获异质图 G ( R ) = ⟨ L ( R ) , E ( R ) ⟩ G(R)=\langle L(R),E(R) \rangle G(R)=L(R),E(R)⟩邻近性。使用2层图注意力(GAT)。对于每个时间步 j ( s − q ≤ j ≤ s − 1 ) j(s-q\le j \le s-1) jsqjs1)的,每个路段 l i ( 1 ≤ i ≤ ∣ L ( R ) ∣ ) l_i(1\le i \le |L(R)|) li(1iL(R))。生成对应的表示 h ˉ c j [ l i ] \bar h^j_c[l_i] hˉcj[li]
h g 1 j [ i ] = W g 1 ⋅ [ v ~ l i j , v ^ l i j , v ~ l i j , v ˉ l i j ] e g 1 I ( i 1 , 2 ) [ i 1 , i 2 ] = W e 1 I ( i 1 , 2 ) ⋅ [ F ( l i 1 ) , F ( l i 2 ) ] , ⟨ l i 1 , l i 2 ⟩ ∈ E ( R ) α g 1 j [ i 1 , i 2 ] = exp ⁡ ( e g 1 I ( i 1 , 2 ) [ i 1 , i 2 ] ⋅ [ h g 1 j [ i 1 ] , h g 1 j [ i 2 ] ] ) ∑ i 3 ∈ N ( i 2 ) exp ⁡ ( e g 1 I ( i 3 , 2 ) [ i 3 , i 2 ] ⋅ [ h g 1 j [ i 3 ] , h g 1 j [ i 2 ] ] ) , ⟨ l i 1 , l i 2 ⟩ ∈ E ( R ) α g 1 j [ i 1 , i 2 ] = exp ⁡ ( e g 1 I ( i 1 , 2 ) [ i 1 , i 2 ] ⋅ [ h g 1 j [ i 1 ] , h g 1 j [ i 2 ] ] ) ∑ i 3 ∈ N ( i 2 ) exp ⁡ ( e g 1 I ( i 3 , 2 ) [ i 3 , i 2 ] ⋅ [ h g 1 j [ i 3 ] , h g 1 j [ i 2 ] ] ) , ⟨ l i 1 , l i 2 ⟩ ∈ E ( R ) h g 2 j [ i ] = W g 2 ( h g 1 j [ i ] + ∑ i 1 ∈ N ( i ) α g 1 [ i 1 , i ] h g 1 j [ i 1 ] ) e g 2 I ( i 1 , 2 ) [ i 1 , i 2 ] = W e 2 I ( i 1 , 2 ) ⋅ [ F ( l i 1 ) , F ( l i 2 ) ] , ⟨ l i 1 , l i 2 ⟩ ∈ E ( R ) α g 2 j [ i 1 , i 2 ] = exp ⁡ ( e g 2 I ( i 1 , 2 ) [ i 1 , i 2 ] ⋅ [ h g 2 j [ i 1 ] , h g 2 j [ i 2 ] ] ) ∑ i 3 ∈ N ( i 2 ) exp ⁡ ( e g 2 I ( i 3 , 2 ) [ i 3 , i 2 ] ⋅ [ h g 2 j [ i 3 ] , h g 2 j [ i 2 ] ] ) ⟨ l i 1 , l i 2 ⟩ ∈ E ( R ) h ˉ c j [ l i ] = h g 2 j [ i ] + ∑ i 1 ∈ N ( i ) α g 2 j [ i 1 , i ] h g 2 j [ i 1 ] \begin{aligned} h_{g_{1}}^{j}[i] & =W_{g_{1}} \cdot\left[\tilde{v}_{l_{i}}^{j}, \hat{v}_{l_{i}}^{j}, \tilde{v}_{l_{i}}^{j}, \bar{v}_{l_{i}}^{j}\right] \\ e_{g_{1}}^{I\left(i_{1,2}\right)}\left[i_{1}, i_{2}\right]&=W_{e_{1}}^{I\left(i_{1,2}\right)} \cdot\left[F\left(l_{i_{1}}\right), F\left(l_{i_{2}}\right)\right], \quad\left\langle l_{i_{1}}, l_{i_{2}}\right\rangle \in E(R) \\ \alpha_{g_{1}}^{j}\left[i_{1}, i_{2}\right] & =\frac{\exp \left(e_{g_{1}}^{I\left(i_{1,2}\right)}\left[i_{1}, i_{2}\right] \cdot\left[h_{g_{1}}^{j}\left[i_{1}\right], h_{g_{1}}^{j}\left[i_{2}\right]\right]\right)}{\sum_{i_{3} \in \mathcal{N}\left(i_{2}\right)} \exp \left(e_{g_{1}}^{I\left(i_{3,2}\right)}\left[i_{3}, i_{2}\right] \cdot\left[h_{g_{1}}^{j}\left[i_{3}\right], h_{g_{1}}^{j}\left[i_{2}\right]\right]\right)},\\ \left\langle l_{i_{1}}, l_{i_{2}}\right\rangle &\in E(R) \\ \alpha_{g_{1}}^{j}\left[i_{1}, i_{2}\right] & =\frac{\exp \left(e_{g_{1}}^{I\left(i_{1,2}\right)}\left[i_{1}, i_{2}\right] \cdot\left[h_{g_{1}}^{j}\left[i_{1}\right], h_{g_{1}}^{j}\left[i_{2}\right]\right]\right)}{\sum_{i_{3} \in \mathcal{N}\left(i_{2}\right)} \exp \left(e_{g_{1}}^{I\left(i_{3,2}\right)}\left[i_{3}, i_{2}\right] \cdot\left[h_{g_{1}}^{j}\left[i_{3}\right], h_{g_{1}}^{j}\left[i_{2}\right]\right]\right)},\\ \left\langle l_{i_{1}}, l_{i_{2}}\right\rangle &\in E(R) \\ h_{g_{2}}^{j}[i]&=W_{g_{2}}\left(h_{g_{1}}^{j}[i]+\sum_{i_{1} \in \mathcal{N}(i)} \alpha_{g_{1}}\left[i_{1}, i\right] h_{g_{1}}^{j}\left[i_{1}\right]\right) \\ e_{g_{2}}^{I\left(i_{1,2}\right)}\left[i_{1}, i_{2}\right]&=W_{e_{2}}^{I\left(i_{1,2}\right)} \cdot\left[F\left(l_{i_{1}}\right), F\left(l_{i_{2}}\right)\right],\left\langle l_{i_{1}}, l_{i_{2}}\right\rangle \in E(R) \\ \alpha_{g_{2}}^{j}\left[i_{1}, i_{2}\right]&=\frac{\exp \left(e_{g_{2}}^{I\left(i_{1,2}\right)}\left[i_{1}, i_{2}\right] \cdot\left[h_{g_{2}}^{j}\left[i_{1}\right], h_{g_{2}}^{j}\left[i_{2}\right]\right]\right)}{\sum_{i_{3} \in \mathcal{N}\left(i_{2}\right)} \exp \left(e_{g_{2}}^{I\left(i_{3,2}\right)}\left[i_{3}, i_{2}\right] \cdot\left[h_{g_{2}}^{j}\left[i_{3}\right], h_{g_{2}}^{j}\left[i_{2}\right]\right]\right)} \\ \left\langle l_{i_{1}}, l_{i_{2}}\right\rangle &\in E(R) \\ \bar{h}_{c}^{j}\left[l_{i}\right]&=h_{g_{2}}^{j}[i]+\sum_{i_{1} \in \mathcal{N}(i)} \alpha_{g_{2}}^{j}\left[i_{1}, i\right] h_{g_{2}}^{j}\left[i_{1}\right] \\ \end{aligned} hg1j[i]eg1I(i1,2)[i1,i2]αg1j[i1,i2]li1,li2αg1j[i1,i2]li1,li2hg2j[i]eg2I(i1,2)[i1,i2]αg2j[i1,i2]li1,li2hˉcj[li]=Wg1[v~lij,v^lij,v~lij,vˉlij]=We1I(i1,2)[F(li1),F(li2)],li1,li2E(R)=i3N(i2)exp(eg1I(i3,2)[i3,i2][hg1j[i3],hg1j[i2]])exp(eg1I(i1,2)[i1,i2][hg1j[i1],hg1j[i2]]),E(R)=i3N(i2)exp(eg1I(i3,2)[i3,i2][hg1j[i3],hg1j[i2]])exp(eg1I(i1,2)[i1,i2][hg1j[i1],hg1j[i2]]),E(R)=Wg2 hg1j[i]+i1N(i)αg1[i1,i]hg1j[i1] =We2I(i1,2)[F(li1),F(li2)],li1,li2E(R)=i3N(i2)exp(eg2I(i3,2)[i3,i2][hg2j[i3],hg2j[i2]])exp(eg2I(i1,2)[i1,i2][hg2j[i1],hg2j[i2]])E(R)=hg2j[i]+i1N(i)αg2j[i1,i]hg2j[i1]
其中, W g 1 ∈ R d g 1 × 4 W_{g_1}\in \mathbb{R}^{d_{g_1}\times4} Wg1Rdg1×4 W e 1 ∈ R 2 d g 1 × 2 ∣ F ( ⋅ ) ∣ , I ( ⋅ ) ∈ { 1 , 2 , 3 , 4 } W_{e_1}\in \mathbb{R}^{2d_{g_1}\times2|F(·)|},I ( · )\in\{ 1,2,3,4\} We1R2dg1×2∣F(),I(){1234}为边类型指示符。 W g 2 ∈ R d g 2 × d g 1 W_{g_2}\in \mathbb{R}^{d_{g_2}\times d_{g_1}} Wg2Rdg2×dg1 W e 1 ∈ R 2 d g 2 × 2 ∣ F ∣ W_{e_1}\in \mathbb{R}^{2d_{g_2}\times2|F|} We1R2dg2×2∣F ∣ F ∣ |F| F表示路段特征维数。考虑边与边之间的约束 ⟨ l i 1 , l i 2 ⟩ ∈ E ( R ) \left\langle l_{i_{1}}, l_{i_{2}}\right\rangle \in E(R) li1,li2E(R) i 3 ∈ N ( i 2 ) i_3\in \mathcal{N}(i_2) i3N(i2)表示 l i 3 l_{i_3} li3 l i 2 l_{i_2} li2相邻且 < l i 2 , l i 3 > <li2,li3>在边集 E ( R ) E(R) E(R)中, I ( ⋅ ) I(·) I()来准确区分注意力权重。最终得到路段表示 h ˉ c j [ l i ] ∈ R d g 2 \bar h^j_c[l_i]\in \mathbb{R}^{d_{g_2}} hˉcj[li]Rdg2。上述公式可以简化为:
h ˉ c j [ l i ] = G A T ( l i , G ( R ) , F ( R ) ∣ W g 1 , W e 1 , W g 2 , W e 2 ) \bar h^j_c[l_i]=GAT(l_i,G(R),F(R)|W_{g_1},W_{e_1},W_{g_2},W_{e_2})\\ hˉcj[li]=GAT(li,G(R),F(R)Wg1,We1,Wg2,We2)
聚合路段:每个时间步 j j j得到对于RNG G ( R ) G(R) G(R)编码集合 h ˉ c j [ G ( R ) ] = [ h ˉ c j [ l 1 ] , . . . ] \bar h_c^j[G(R)]=[\bar h^j_c[l_1],...] hˉcj[G(R)]=[hˉcj[l1],...],需要将 h ˉ c j \bar h_c^j hˉcj设置到固定长度。直观思路是用平均池化。但是不同路段在 G ( R ) G(R) G(R)中有着不同的影响。直观上,影响自然依赖于路段特征 F ( R ) F(R) F(R),因而衡量路段的余弦相似度 c o s ( f l i , f l i ′ ) cos(f_{l_i},f_{l_{i'}}) cos(fli,fli)。然后通过平均每个路段与其他路段的相似度来衡量每个路段的影响力得分:
s c o r e ( l i ) = a v g ( ∑ l i ′ ∈ L ( R ) c o s ( f l i , f l i ′ ) ) score(l_i)=avg(\sum_{l_{i'\in L(R)}}cos(f_{l_i},f_{l_{i'}}))\\ score(li)=avg(liL(R)cos(fli,fli))
最后利用 S o f t m a x Softmax Softmax函数归一化每个路段的影响力得分 s c o r e ˉ ( l i ) = s c o r e ( l i ) ∑ s c o r e ( l i ′ ) \bar {score}(l_i)=\frac{score(l_i)}{\sum score(l_{i'})} scoreˉ(li)=score(li)score(li),接着通过加权求和得到聚合后固定长度的向量 h ˉ c j = ∑ l i ∈ L ( R ) s c o r e ˉ ( l i ) h ˉ c j [ l i ] \bar h_c^j=\sum_{l_i\in L(R)}\bar{score}(l_i)\bar h^j_c[l_i] hˉcj=liL(R)scoreˉ(li)hˉcj[li]

4.1.2 时间自注意力

加入位置编码 h o j ∈ R d g 2 h^j_o \in \mathbb{R}^{d_{g_2}} hojRdg2 h ˉ c j = h ˉ c j ⊕ h o j \bar h_c^j=\bar h_c^j \oplus h^j_o hˉcj=hˉcjhoj。接下来用B个自注意力块来将 h ˉ c j \bar h^j_c hˉcj转换为 h ^ c j \hat h^j_c h^cj
h o j [ 2 d ] = s i n ( j 100 0 2 d d g 2 ) , h o j [ 2 d + 1 ] = c o s ( j 100 0 2 d d g 2 ) h^j_o[2d]=sin(\frac{j}{1000^{\frac{2d}{d_{g_2}}}}),\qquad h^j_o[2d+1]=cos(\frac{j}{1000^{\frac{2d}{d_{g_2}}}})\\ hoj[2d]=sin(1000dg22dj),hoj[2d+1]=cos(1000dg22dj)
每个块包含如下步骤:

  1. 自注意力(self-attention): q u e r y ( Q c j = W q h ˉ c j ) , k e y ( K c j = W k h ˉ c j ) , v a l u e ( V c j = W v h ˉ c j ) query(Q_c^j=W_q\bar h^j_c),key(K_c^j=W_k\bar h_c^j),value(V^j_c=W_v\bar h_c^j) query(Qcj=Wqhˉcj),key(Kcj=Wkhˉcj),value(Vcj=Wvhˉcj) s c o r e ( j , j ′ ) = s o f t r m a x ( Q c j K c j ′ d g 2 ) score(j,j')=softrmax(\frac{Q_c^jK^{j'}_c}{\sqrt d_{g_2}}) score(j,j)=softrmax(d g2QcjKcj),每个编码转换为新的表示 z a j = ∑ j ′ s c o r e ( j , j ′ ) V c j ’ z^j_a=\sum_{j'}score(j,j')V_c^{j’} zaj=jscore(j,j)Vcj
  2. 加法&归一化(Add&Normalize):残差连接和层归一化 h ˉ c j = L N ( h ˉ c j ⊕ z a j ) \bar h_c^j=LN(\bar h^j_c \oplus z_a^j) hˉcj=LN(hˉcjzaj)
  3. 前向传播(Feed Forward): z j i = R e L U ( W f h ˉ c j + b f ) z^i_j=ReLU(W_f\bar h^j_c+b_f) zji=ReLU(Wfhˉcj+bf)
  4. 加法&归一化(Add&Normalize): h ˉ c j = L N ( h ˉ c j ⊕ z a j ) \bar h_c^j=LN(\bar h^j_c \oplus z_a^j) hˉcj=LN(hˉcjzaj)

简化上述4步,第 i i i个块表示为函数 S A B i ( ⋅ ) SAB_i(·) SABi(),输入 h s a b i − 1 h_{sab_{i-1}} hsabi1输出 h s a b i h_{sab_i} hsabi。则有 h s a b 0 = h ˉ C h_{sab_0}=\bar h_C hsab0=hˉC, h s a b B = h ^ C h_{sab_B}=\hat h_C hsabB=h^C,即 h ^ C = S A B B ( S A B B − 1 ( . . . S A B 1 ( h ˉ C ) . . . ) ) \hat h_C=SAB_B(SAB_{B-1}(...SAB_1(\bar h_C)...)) h^C=SABB(SABB1(...SAB1(hˉC)...))

4.1.3 时间步注意力聚合

到目前为止,已经对交通状态进行了编码,并捕获了它们在历史时间步的时空相关性。然而,不同的历史时间步对应着对出发时间步的不同影响。一种理想的方法是衡量出发时刻与其他时刻的交通状态之间的相关性,但不能立即统计出发时刻的交通状态。为了解决这个问题,利用时间背景信息 X X X。判断不同时间步之间的相似性,从而可以间接测量历史时间步对出发时间步的影响。因此,如时间编码器所示,计算出发时间步 s s s的时间背景信息 x s x^s xs和每个历史时间步的时间背景信息 x j x^j xj的余弦相似度 w x j = c o s ( x s , x j ) w^j_x=cos(x^s,x^j) wxj=cos(xs,xj)。根据相似度来计算每个历史时间步的影响得到 h c j = ( w x j h ^ c j ) ⊕ h ^ c j 2 h^j_c=\frac{(w_x^j\hat h_c^j)\oplus \hat h^j_c}{2} hcj=2(wxjh^cj)h^cj w x j ∈ [ − 1 , 1 ] w^j_x \in [-1,1] wxj[1,1]来重塑不同历史时间步对出发时间步的影响。最终得到 h C = [ h c s − p , . . . , h c s − 1 ] h_C=[h^{s-p}_c,...,h^{s-1}_c] hC=[hcsp,...,hcs1]

4.3 空间解码器

2023 [VLDB] 重新审视路网的行程时间估计:异构性、邻近性、周期性和动态性_第8张图片

空间解码器三个组成模块:全局静态直方图生成器局部静态直方图提取器时空注意力

先通过LCG G = < L , E > G= G=<L,E>,路段特征 F F F和时间步 T T T来生成全局静态直方图 h i s t ˉ \bar{hist} histˉ。维度大小为 ∣ L ∣ × ∣ T ∣ × 4 |L|\times|T|\times4 L×T×4

进一步从全局中查询局部静态直方图。通过路线 R = < l 1 , . . . l m > R= R=<l1,...lm>和出发时间 s s s所在时间步 T s T^s Ts,提取静态直方图为 h i s ˉ t l 1 s , . . . , h i s t ˉ l m s \bar {his}t^s_{l_1},...,\bar {hist}^s_{l_m} hisˉtl1s,...,histˉlms

利用时空注意力模型来聚合时间编码 h C = [ h c s − p , . . . , h c s − 1 ] h_C=[h^{s-p}_c,...,h^{s-1}_c] hC=[hcsp,...,hcs1],从而得到考虑路线和出发时间的时空表示序列 h R s = [ h l 1 s , . . . , h l m s ] h^s_R=[h^s_{l_1},...,h^s_{l_m}] hRs=[hl1s,...,hlms]

4.3.1 生成静态直方图

利用共性特征 ( G , F , T ) (G,F,T) (G,F,T)去生成全局静态直方图,再通过请求的相关信息从中获取局部静态直方图。

  1. 生成全局静态直方图:全局指的是路网中的全部路段。一个直接的方法是设计一个函数,将每个路段特征转化为一个隐藏表示;然而,它无法捕捉不同路段之间的相关性。这里仍然利用GAT,来解决相关性建模的问题。 h L ′ [ l i ] = G A T ( l i , G , F ∣ W g 1 ′ , W e 1 ′ , W g 2 ′ , W e 2 ′ ) h'_L[l_i]=GAT(l_i,G,F|W_{g'_1},W_{e'_1},W_{g'_2},W_{e'_2}) hL[li]=GAT(li,G,FWg1,We1,Wg2,We2)

    时间上,“全局”指的是一周内所有时间段。将时间步拆分为两部分,“周中天” h W ∈ R 7 × d w h_W\in\mathbb{R}^{7\times d_w} hWR7×dw和“天中时” h D ∈ R ∣ h D ∣ × d s h_D\in\mathbb{R}^{|h_D|}\times d_s hDRhD×ds ∣ h D ∣ = 24 × 60 Δ t |h_D|=\frac{24\times60}{\Delta t} hD=Δt24×60

    通过笛卡尔积将空间编码 h ˉ L ′ \bar h'_L hˉL和两个时间编码 h W h_W hW h D h_D hD结合得到时空嵌入 h S T ∈ ( ∣ L ∣ × 7 × ∣ h D ∣ ) × ( d g ′ + d d + d w ) h_{ST}\in^{(|L|\times7\times|h_D|)\times(d_{g'}+d_d+d_w)} hST(L×7×hD)×(dg+dd+dw)。进一步得到直方图 h i s t ˉ [ i ] = S o f t m a x ( W s t h S T [ i ] + b s t ) \bar {hist}[i]=Softmax(W_{st}h_{ST}[i]+b_{st}) histˉ[i]=Softmax(WsthST[i]+bst),其中 W s t ∈ R k × ( d g ′ + d d + d w ) W_{st}\in \mathbb{R}^{k\times(d_{g'}+d_d+d_w)} WstRk×(dg+dd+dw)

  2. 局部静态直方图获取:给定路线 R = < l 1 , . . . l m > R= R=<l1,...lm>和出发时间 s s s(投影到时间步 T s T^s Ts)。从中提取路线中每个路段的静态特征 h i s t ˉ l i s \bar {hist}^s_{l_i} histˉlis,其中 h i s t ˉ l i s \bar {hist}^s_{l_i} histˉlis h i s t ˉ \bar{hist} histˉ中的顺序由 ( L ( l i ) − 1 ) × ( 7 × ∣ h D ∣ ) + T s [ W ] × [ h D ] + T s [ D ] (L(l_i)-1)\times(7\times|h_D|)+T^s[W]\times[h_D]+T^s[D] (L(li)1)×(7×hD)+Ts[W]×[hD]+Ts[D], L ( l i ) L(l_i) L(li)表示 L L L l i l_i li的顺序, T s [ W ] T^s[W] Ts[W] T s [ D ] T^s[D] Ts[D]表示 T s T^s Ts在“周中天”和“天中时”的顺序。最终得到局部静态直方图 h i s t ˉ R s = [ h i s t ˉ l 1 s , . . . , h i s t ˉ l m s ] \bar {hist}^s_R=[\bar {hist}^s_{l_1},...,\bar{hist}^s_{l_m}] histˉRs=[histˉl1s,...,histˉlms]

4.3.2 时空注意力

h ^ l i s = R e L U ( W h r h i s t ˉ ) \hat h_{l_i}^s=ReLU(W_{hr}\bar {hist}) h^lis=ReLU(Whrhistˉ),加入位置编码更新 h ˉ l i s = h ˉ l i s ⊕ h o i \bar h^s_{l_i}=\bar h^s_{l_i}\oplus h^i_o hˉlis=hˉlishoi,得到更新后的所有序列 h ˉ R s \bar h^s_R hˉRs。为了捕获时间编码器的影响。通过注意力机制聚合 h C h_C hC h ˉ R s \bar h^s_R hˉRs。设计了 B B B个时空注意力块,每个块包含两个子块:空间自注意力子块和编码器-解码器注意力子块。

  1. 空间自注意力:同时间自注意力, S e l f − a t t e n t i o n → A d d & N o r m a l i z e → F e e d F o r w a r d → A d d & N o r m a l i z e Self-attention→Add\&Normalize→Feed Forward→Add\&Normalize SelfattentionAdd&NormalizeFeedForwardAdd&Normalize(自注意力→加法&归一化→前向传播→加法&归一化)。第 i i i个块表示为 h ˉ R s = S A B i ′ ( h ^ R s ) \bar h^s_R=SAB'_i(\hat h^s_R) hˉRs=SABi(h^Rs)
  2. 编码器-解码器注意力: Q u e r y : h ˉ R s k e y / v a l u e : h C Query:\bar h^s_R\qquad key/value:h_C Query:hˉRskey/value:hC。目的:捕获 h C h_C hC h ˉ R s \bar h_R^s hˉRs每个元素的影响。 E n o c o d e r − d e c o d e r   a t t e n t i o n → A d d & N o r m a l i z e → F e e d F o r w a r d → A d d & N o r m a l i z e Enocoder-decoder\,attention→Add\&Normalize→Feed Forward→Add\&Normalize EnocoderdecoderattentionAdd&NormalizeFeedForwardAdd&Normalize(编码器-解码器注意力→加法&归一化→前向传播→加法&归一化)。第 i i i个块表示为 h ^ R s = E D A i ′ ( h ˉ R s , h C ) \hat h^s_R=EDA'_i(\bar h^s_R,h_C) h^Rs=EDAi(hˉRs,hC)

总结:第 i i i个时空块中的过程可以表示 h ^ R s = E D A i ′ ( S A B i ′ ( h ^ R s ) , h C ) \hat h^s_R=EDA'_i(SAB'_i(\hat h^s_R),h_C) h^Rs=EDAi(SABi(h^Rs),hC)。第 B B B个块的输出对应于最终的时空序列 h R s h^s_R hRs

4.4 行程时间估计

解释了如何基于时空序列 h R s h^s_R hRs和局部静态直方图 h i s t ˉ R s \bar {hist}^s_R histˉRs生成行程时间,然后描述了训练过程。

4.4.1 推理行程时间

设计动态速度生成器和行程时间生成器,通过 h R s h^s_R hRs和图 h i s t ˉ R s \bar {hist}^s_R histˉRs生成行程时间。动态速度生成器生成速度动态因素(即动态矩阵 { P l i s } i ∈ [ 1 , m ] \{P^s_{l_{i}}\}_{i \in [1,m]} {Plis}i[1,m]和偏差序列 { Δ l i s } i ∈ [ 1 , m ] \{\Delta^s_{l_{i}}\}_{i \in [1,m]} {Δlis}i[1,m])。行程时间生成器首先利用静态直方图 h i s t ˉ l i s \bar {hist}^s_{l_i} histˉlis为每个路段 l i l_i li生成速度和速度动态因素( P l i s P^s_{l_{i}} Plis Δ l i s \Delta^s_{l_{i}} Δlis))然后根据生成的行程速度和行程距离推理其行程时间。

  1. 动态速度生成器:两个前向传播网络

P l i s = Reshape ⁡ ( W P h l i s + b P , k × k ) Δ l i s = Sigmoid ⁡ ( W Δ h l i s + b Δ ) \begin{aligned} P_{l_{i}}^{s} & =\operatorname{Reshape}\left(W_{P} h_{l_{i}}^{s}+b_{P}, k \times k\right) \\ \Delta_{l_{i}}^{s} & =\operatorname{Sigmoid}\left(W_{\Delta} h_{l_{i}}^{s}+b_{\Delta}\right) \end{aligned}\\ PlisΔlis=Reshape(WPhlis+bP,k×k)=Sigmoid(WΔhlis+bΔ)

其中 R e s h a p e ( A , k × k ) Reshape(A,k\times k) Reshape(A,k×k) A ∈ R k 2 A\in \mathbb{R}^{k^2} ARk2转换为 k × k k\times k k×k的矩阵。 S i g m o i d ( z = 1 1 + e − z ) Sigmoid(z=\frac{1}{1+e^{-z}}) Sigmoid(z=1+ez1)保证 Δ l i s \Delta^s_{l_i} Δlis约束在 0 ≤ δ l i s ≤ 1 0\le\delta^s_{l_i}\le1 0δlis1

  1. 生成行程时间:根据 h i s t l i s = h i s t ˉ l i s × s o f t m a x ( P l i s ) hist^s_{l_i}=\bar {hist}^s_{l_i}\times softmax(P^s_{l_i}) histlis=histˉlis×softmax(Plis),每个路段 l i l_i li,在静态直方图和动态矩阵的基础上生成动态直方图 h i s t l i s hist^s_{l_i} histlis。接下来, v = ∑ i = 1 k α i ( p i ◃ + δ i d i ) v=\sum_{i=1}^k\alpha_i(p_i^\triangleleft+\delta_id_i) v=i=1kαi(pi+δidi)计算速度 v ^ l i \hat v_{l_i} v^li。计算每个路段的行驶时间 t ^ l i = ∣ l i ∣ v ^ l i \hat t_{l_i} = \frac{|l_i|}{\hat v_{l_i}} t^li=v^lili。求和得到时间 t ^ R = ∑ i = 1 m t ^ l i \hat t_R=\sum^m_{i=1}\hat t_{l_i} t^R=i=1mt^li

4.4.2 模型学习

2023 [VLDB] 重新审视路网的行程时间估计:异构性、邻近性、周期性和动态性_第9张图片

离线训练:算法1概述了训练过程。首先,提取全局时空特征 ( G 、 F 、 T ) ( G、F、T) (GFT)。具体来说, G G G F F F是从整个道路网络中提取的,而 T T T是根据给定时间步大小 Δ t \Delta t Δt计算的。接下来,用正态分布(第1 ~ 3行)初始化整个模型的所有参数 θ e n c , θ d e c 和 θ e s t θ_{enc},θ_{dec}和θ_{est} θenc,θdecθest。然后用给定的epoch (第4 ~ 5行)对整个模型进行迭代训练。

ModelTrain解释了每个epoch的训练过程。首先根据给定的批次大小 b s b_s bs计算训练迭代次数 T I TI TI,然后对所有训练数据 Z , Y Z,Y ZY进行打乱(第1行)。在每次迭代中,从 Z , Y Z,Y ZY中提取 b s b_s bs训练数据。 Z Z Z的每个元素由请求(路线 R R R和出发时间 s s s)、历史交通状况 C C C和时间背景信息 X X X组成。构建了局部图RNG$ ( G ( R ) ) ,并基于全局信息 ,并基于全局信息 ,并基于全局信息G,F,T 和每个元素的 和每个元素的 和每个元素的R 和 和 s$ (第2 ~ 5行)提取局部路段特征 ( F ( R ) ) ( F ( R ) ) (F(R))和当前时间步 ( T s ) ( T^s ) (Ts)。特别地,首先使用 M e n c M_{enc} Menc生成编码 h C h_C hC来表示空间编码结果,然后使用 M d e c M_{dec} Mdec 对表示 h R s h^s_R hRs进行解码。然后使用 M e s t M_{est} Mest生成每个路段行程时间估计,然后计算给定路线(第6 ~ 8行)的整体行程时间。最后,设计了如下的损失函数
l o s s = ∑ ( λ ∑ j ∣ t ^ j − y [ j ] ∣ m + ( 1 − λ ) ∣ t ^ R − ∑ j y [ j ] ∣ ) loss =\sum(\lambda\frac{\sum_j|\hat t_j-y[j]|}{m}+(1-\lambda)|\hat t_R-\sum_jy[j]|) loss=(λmjt^jy[j]+(1λ)t^Rjy[j])
它由两类平均绝对误差(MAE)损失组成:路段损失和路线损失。前者可以帮助模型以细粒度的方式进行学习。利用Adam Optimizer 通过最小化总损失(第9 ~ 10行)来优化所有参数。

5. 实验

5.1 实验设置

  1. 数据集:成都(CRN),西安(XRN),南京(NRN)

2023 [VLDB] 重新审视路网的行程时间估计:异构性、邻近性、周期性和动态性_第10张图片
请求和交通状态:收集的成都( CD )和西安 ( XA )的出租车订单提取请求。每个订单对应一条轨迹,可以提取它的请求和离开时�

你可能感兴趣的:(#,论文精读,大数据,论文阅读,pytorch,机器学习,transformer,深度学习)