作者:徐明星 (清华大学)Mingxing Xu, 戴文睿(上交大)等
下载链接
交通流预测首先发展了基于统计和神经网络的模型,ARIMA 和Bayesian networks这样的统计模型从概率的角度模拟了空间依赖性。虽然它们有助于分析交通流内部的不确定性,但其线性特性阻碍了对交通流内部高度非线性的有效建模。神经网络的引入是为了捕捉非线性交通流,但其全连接结构是计算密集型和内存消耗。此外,由于假设的缺乏,使得交通流中复杂的空间模式难以捕捉。
随着卷积神经网络(convolutional neural networks, cnn)的发展,由于其强大的特征提取能力,在很多应用中被用于traffic预测。[15],[16],[17]将交通网络转换为规则网格的空间特征,再采用cnn提取特征。然而,这种网格转换导致了表征不规则交通网络固有拓扑信息的丢失。图神经网络(gnn)[18],[19]将深度学习推广到非欧几里德域。图卷积网络(GCNs)[4]、[5]、[6]是gnn的一种变体,它将经典的卷积推广到图域中。近年来,GCNs被广泛应用于交通流的空间依赖性建模,以探索交通流的固有拓扑结构。STGCN利用定义在无向图上的谱图卷积来模拟空间依赖关系,而DCRNN利用有向图上的扩散图卷积来适应交通流的方向。但是,他们忽略了交通条件的动态变化(如高峰时间和交通事故),因为空间依赖性一旦训练就固定了。在[20]ASTGCN中,空间依赖关系是根据空间和时间块的深度而不是实际的时间步长动态生成的。将图注意网络(GATs)]和额外元学习[ST-MetaNet]](https://dl.acm.org/doi/abs/10.1145/3292500.3330884)嵌入地理特征的模型,建立了动态空间依赖的模型。然而,使用k个最近邻的预定义graph拓扑在不同尺度上挖掘超出局部节点的空间依赖的隐藏模式受限制。Graph WaveNet[10]通过对图中的每个节点进行可学习的嵌入,提高了带有隐藏空间模式的流量预测的准确性,但它们的空间依赖性在经过训练后仍然是固定的。在本文中,STTNs有效地在高维潜在子空间中建模动态有向空间依赖关系,而不是采用预定义的图结构和局部节点。
由于训练中的爆炸或梯度消失问题,以及序列长度的不确定,RNN在建模时间依赖性方面是有限的。为了解决这些问题,开发了GRU、LSTM来建模流量预测的长依赖关系。采用基于卷积的序列学习模型,叠加多个隐藏层,可以再在有限的接受域大小下覆盖较大的上下文。带扩张卷积的小波网络可以用来扩大接收域,从而减少隐藏层数。然而,当输入序列长度较长时,其模型可扩展性受到限制,隐层数随输入序列长度线性增加。此外,由于序列中组件之间的路径长度不断增加,捕获长期依赖关系的效率将受到更深层次的影响。这些事实意味着很难找到输入序列的最优长度,因为需要为不同长度的输入序列重新设计模型。transformer利用高度并行的自注意机制实现了高效的序列学习。通过单层结构,可以从不同长度的输入序列中自适应地捕获长时间时变依赖关系。
spatial-temporal (ST) block and prediction layer. Subsequently, we elaborate the proposed spatial transformer and temporal transformer in ST block, respectively.
graph g = ( V , E , A ) g=(V,E,A) g=(V,E,A), A ∈ R N × N A \in R^{N\times N} A∈RN×N是通过高斯核用传感器之间的欧式距离构造的邻接矩阵。预测目标是time step τ \tau τ 时 N N N个传感器的速度 V τ ∈ R N V^\tau \in R^N Vτ∈RN。给定 M M M个历史交通状况 [ V τ − M + 1 , . . . , V τ ] [V^{\tau-M+1},...,V^\tau] [Vτ−M+1,...,Vτ],预测模型 F F F被用于预测未来 T T T个时刻的交通状况 [ V ^ τ + 1 , . . . , V ^ T + τ ] [\hat V^{\tau+1},...,\hat V^{T+\tau}] [V^τ+1,...,V^T+τ]
v ^ τ + 1 , . . . , v ^ τ + T = F ( v τ − M + 1 , . . . , v τ ; g ) \hat v^{\tau +1},...,\hat v^{\tau +T}=F(v^{\tau -M+1},...,v^\tau;g) v^τ+1,...,v^τ+T=F(vτ−M+1,...,vτ;g)
为了实现这个目标, F F F可以捕获动态空间依赖 S τ S ∈ R N × N S_\tau^S\in R^{N\times N} SτS∈RN×N和长期时间依赖 S τ T ∈ R M × M S_\tau^T\in R^{M\times M} SτT∈RM×M。然而,现有的方法仅考虑固定的空间相关性和短期的时间相关性,在长期预测方面存在局限性。
本文利用spatial transformer对每个时间步 τ \tau τ具有时变空间依赖性 S τ S ∈ R N × N S_\tau^S\in R^{N \times N} SτS∈RN×N的 F F F进行动态训练。
长期时间依赖 S τ T ∈ R M × M S_\tau^T\in R^{M\times M} SτT∈RM×M可以通过基于self-attention的temporal transformer有效学习到。
利用基于 S τ S ∈ R N × N S_\tau^S\in R^{N\times N} SτS∈RN×N和 S τ T ∈ R N × N S_\tau^T\in R^{N\times N} SτT∈RN×N学习的时空特征对无误差历史观测 [ V τ − M + 1 , . . . , V τ ] [V^{\tau-M+1},...,V^\tau] [Vτ−M+1,...,Vτ]进行预测 [ V ^ τ + 1 , . . . , V ^ T + τ ] [\hat V^{\tau+1},...,\hat V^{T+\tau}] [V^τ+1,...,V^T+τ],可以解决误差传播问题。
如图3所示,所提出的时空transformer网络由堆叠的时空块和预测层组成。这里,每个时空块由一个空间transformer和一个时间transformer组成,共同提取上下文动态依赖的时空特征。时空块可以进一步叠加,形成深层次时空特征提取模型。随后,预测层利用两个1 × 1卷积层对这些时空特征进行聚合,进行交通预测。
一个节点的未来交通状况是由其邻近节点的交通状况、观测的时间步长以及交通事故、天气状况等突变决定的。在本节中,我们开发了一个ST blocks来整合空间和时间的transformer,以联合建模交通网络中的空间和时间依赖性,以精确预测,如图3所示。第 l l l个时空块的输入是一个 3 D 3D 3D张量 X l S ∈ R M × N × d g X_l^S \in R^{M\times N \times d_g} XlS∈RM×N×dg(由 l − 1 l-1 l−1层时空 block提取到的 N N N个传感器在 τ − M + 1 , . . . τ \tau -M+1,...\tau τ−M+1,...τ时间步的 d g d_g dg维特征的3D特征)。
将spatial transformer S S S和temporal transformer T T T叠加生成3D输出张量。采用剩余连接进行稳定训练。在第 l l l个时空块中,spatial transformer S S S 从输入节点特征 X l s X_l^s Xls和图邻接矩阵 A A A中提取空间特征 Y l s Y_l^s Yls。
Y l s = S ( X l s , A ) Y_l^s = S(X_l^s,A) Yls=S(Xls,A)
Y l s Y_l^s Yls和 X l s X_l^s Xls相结合生成后续时间transformer的输入 X l τ X_l^{\tau} Xlτ。
Y l τ = τ ( X l τ ) Y_l^\tau = \tau(X_l^\tau) Ylτ=τ(Xlτ)
随后,得到输出tensor X l + 1 s = Y l τ + X l τ = Y l τ + Y l s + X l s X_{l+1}^s=Y_l^\tau+X_l^\tau=Y_l^\tau+Y_l^s+X_l^s Xl+1s=Ylτ+Xlτ=Ylτ+Yls+Xls,将 X l + 1 s X_{l+1}^s Xl+1s输入第 l + 1 l+1 l+1层的 S T b l o c k ST block STblock。可根据当前任务对多个时空块进行叠加,提高模型容量。在第3.3节和第3.4节中,我们将详细阐述时空transformer。
预测层利用两个经典卷积层,基于最后一个时空块的时空特征进行多步预测。其输入是2D张量 X S τ ∈ R N × d s τ X^{S\tau} \in R^{N\times d^{s\tau}} XSτ∈RN×dsτ ,它是由最后时间步 τ \tau τ的 N N N个节点的 d s τ d^{s\tau} dsτ维 时空特征组成。对于 N N N个节点的 T T T个未来交通状况的多步预测 Y ∈ R N × T Y\in R^{N\times T} Y∈RN×T为:
Y = C o n v ( C o n v ( X S τ ) ) Y=Conv(Conv(X^{S\tau})) Y=Conv(Conv(XSτ))
采用平均绝对损失训练模型:
L = ∣ ∣ Y − Y g t ∣ ∣ 1 L=||Y-Y^{gt}||_1 L=∣∣Y−Ygt∣∣1
如图3(b)所示,spatial transformer 由spatial-temporal positional embedding layer,fixed graph convolution layer,dynamical graph convolution layer ,gate mechanism 用于信息融合。
时空位置嵌入层将时空位置信息 (如拓扑、连通性、时间步长) 集成到每个节点中。GCNN可以将一段时间内的交通信号分解为由道路拓扑确定的平稳分量(如传感器之间的连通性、距离)和由实时交通状况和突发变化(如事故、天气变化)确定的动态分量。因此,我们开发了一个固定的图卷积层和一个动态的图卷积层,分别来研究空间依赖关系的平稳和有向的动态分量。将学习到的静态和动态空间特征与门控机制相融合。进一步证明了所提出的空间transformer可以看作是一个通用的消息传递GNN,用于动态图的构造和特征学习。
图1(a)显示,图中两个节点的空间依赖性由它们的距离和观察到的时间步长决定。Transformer[27]无法捕获全连接前馈结构下观测的空间(位置)和时间信息。因此,预先的Positional Embedding需要将“位置”信息注入到输入序列中。在spatial transformer中,我们采用可学习的时空位置嵌入层来学习节点特征的时空嵌入。 D ^ S ∈ R N × N \hat D^S\in R^{N\times N} D^S∈RN×N和 D ^ τ ∈ R M × M \hat D^\tau\in R^{M\times M} D^τ∈RM×M是可学习的时空embedding矩阵。采用图邻接矩阵初始化 D ^ S ∈ R N × N \hat D^S\in R^{N\times N} D^S∈RN×N,考虑节点间的连通和距离,建立空间依赖关系模型。而 D ^ τ ∈ R M × M \hat D^\tau\in R^{M\times M} D^τ∈RM×M则使用one-hot 时间编码进行初始化,将时间步长注入到每个节点。 D ^ S ∈ R N × N \hat D^S\in R^{N\times N} D^S∈RN×N和
D ^ τ ∈ R M × M \hat D^\tau\in R^{M\times M} D^τ∈RM×M 沿时空轴生成 D s ∈ R M × N × N D^s\in R^{M\times N\times N} Ds∈RM×N×N和 D τ ∈ R M × N × M D^\tau\in R^{M\times N\times M} Dτ∈RM×N×M,Embedded features X ′ s = F t ( [ X s , D s , D τ ] ) ∈ R M × N × d g X^{'s}=F_t([X^s,D^s,D^\tau])\in R^{M\times N\times d_g} X′s=Ft([Xs,Ds,Dτ])∈RM×N×dg是 X s ∈ R M × N × d g X^s\in R^{M\times N\times d_g} Xs∈RM×N×dg与 D s ∈ R M × N × N D^s\in R^{M\times N\times N} Ds∈RM×N×N和 D τ ∈ R M × N × M D^\tau\in R^{M\times N\times M} Dτ∈RM×N×M的concate。 F t F_t Ft是一个1 × 1的卷积层,在每个时间步长,将连接的每个节点的特征转换为 d g d_g dg维向量。 X ′ s X^{'s} X′s输入固定的和动态的图卷积层进行空间特征学习。由于M个时间步的图卷积运算可以通过张量运算并行实现,因此为了简便起见,我们考虑任意一个时间步长 X ′ s X^{'s} X′s的2D张量 X ^ s ∈ R N × d g \hat X^s\in R^{N\times d_g} X^s∈RN×dg。
图卷积是将经典的基于网格的卷积推广到图域。节点特征是根据学习到的权值和预定义的图中相邻节点的信息聚合而来的。本节使用基于Chebyshev多项式近似的图卷积来学习结构感知节点的特征,从而从道路拓扑中获取平稳的空间依赖关系。
g g g的度矩阵 D D D,给定embedded feature X ^ s \hat X^s X^s,结构感知头特征 X ^ g ∈ R N × d g \hat X^g\in R^{N\times d_g} X^g∈RN×dg由Chebyshev图卷积得到。
X ^ : , j g = ∑ i = 1 d g ∑ k = 0 K θ i j , k T k ( L ^ ) X ^ : , i s , ∀ j = 0 , . . . , d g \hat X_{:,j}^g=\sum _{i=1}^{d_g}\sum_{k=0}^{K} \theta_{ij,k}T_k(\hat L)\hat X_{:,i}^s , \forall j = 0,...,d_g X^:,jg=i=1∑dgk=0∑Kθij,kTk(L^)X^:,is,∀j=0,...,dg
由于 g g g是基于传感器之间的物理连通性和距离构造的,因此可以通过固定的图卷积层显式地探究由道路拓扑决定的静止空间依赖关系。
基于GCN的模型,只建模平稳的空间相关性。为了捕获时间演化过程的隐空间依赖关系,我们提出了一种新的动态图卷积层来实现高维隐子空间的训练和建模。具体来说,我们学习了将每个节点的输入特征映射到高维潜子空间的线性映射。如图4所示,对投影特征采用self-attention,根据变化的图信号有效地建模节点之间的动态空间依赖关系。虽然ASTGCN中也采用了这种方法,但边缘的权值是根据预先定义的道路拓扑计算的。预定义的道路拓扑结构不能充分反映交通网络的动态空间依赖关系。因此,我们学习了多个线性映射,以在不同的潜在子空间中建模受各种因素影响的动态有向空间依赖关系。
每一时间步的embedded feature X ^ s \hat X^s X^s映射到高维子空间,用前馈神经网络实现映射。
Q s = X ^ s W q s Q^s = \hat X^s W_q^s Qs=X^sWqs
K s = X ^ s W k s K^s = \hat X^s W_k^s Ks=X^sWks
V s = X ^ s W v s V^s = \hat X^s W_v^s Vs=X^sWvs
Q s ∈ R N × d A s Q^s \in R^{N\times d_A^s} Qs∈RN×dAs , K s ∈ R N × d A s K^s \in R^{N\times d_A^s} Ks∈RN×dAs , V s ∈ R N × d g V^s \in R^{N\times d_g} Vs∈RN×dg , W q s ∈ R d g × d A s W_q^s \in R^{d_g\times d_A^s} Wqs∈Rdg×dAs , W k s ∈ R d g × d A s W_k^s \in R^{d_g\times d_A^s} Wks∈Rdg×dAs , W v s ∈ R d g × d g W_v^s \in R^{d_g\times d_g} Wvs∈Rdg×dg .
Q s 和 K s Q^s和K^s Qs和Ks的dot-product计算节点的动态空间依赖 S s ∈ R N × N S^s\in R^{N\times N} Ss∈RN×N
S s = s o f t m a x ( Q s ( K s ) T ) / d A s S^s= softmax(Q^s(K^s)^T)/\sqrt d_A^s Ss=softmax(Qs(Ks)T)/dAs
节点特征 M s ∈ R N × d g M^s\in R^{N\times d_g} Ms∈RN×dg由 S s S^s Ss更新:
M s = S s V s M^s = S^sV_s Ms=SsVs
值得一提的是,通过引入多对子空间,可以通过多头注意机制学习到多种空间依赖模式,从而能够从不同的潜在子空间中建模出不同的隐性空间依赖。
此外,在每个节点上应用一个具有非线性激活的共享三层前馈神经网络,进一步改善对学习到的节点特征 M s M^s Ms的预测条件。特征通道之间的交互被用于更新 M s M^s Ms。
U s = R e L u ( R e L u ( M ^ ′ s W 0 ) W 1 s ) W 2 s U^s=ReLu(ReLu(\hat M'^sW^0)W_1^s)W_2^s Us=ReLu(ReLu(M^′sW0)W1s)W2s
M ^ ′ s = X ^ s + M s \hat M'^s=\hat X^s+M^s M^′s=X^s+Ms 是残差连接, Y ^ s = U s + M ^ ′ s \hat Y^s =U^s+\hat M'^s Y^s=Us+M^′s 使用门控机制进行特征融合。值得注意的是,我们可以为深层模型叠加多个动态图卷积层,以提高模型对复杂空间相关性的能力。
建立了gate mechanism来融合从固定和动态图卷积层中学习到的空间特征:
g = s i g m o i d ( f s ( Y ^ s ) ) + f g ( X g ) g=sigmoid(f_s(\hat Y^s))+f_g(X^g) g=sigmoid(fs(Y^s))+fg(Xg)
其中, f s 和 f g f_s和f_g fs和fg是线性映射,将 Y ′ s Y'^s Y′s 和 X g X^g Xg转化为 1 − D 1-D 1−D向量。因此,通过门 g g g对 Y ′ S Y'^S Y′S和 X S X^S XS进行加权得到输出 Y S Y^S YS。
Y ′ s = g Y ^ s + ( 1 − g ) X g Y'^s = g\hat Y^s+(1-g)X^g Y′s=gY^s+(1−g)Xg
空间transformer 的输出 Y s ∈ R M × N × d g Y^s \in R^{M\times N \times d_g} Ys∈RM×N×dg 收集 M M M个时间步长的并行获得的 Y ′ s Y'^s Y′s,然后输入后续的时间transformer,其 X τ = Y s X^\tau = Y^s Xτ=Ys。
现有的谱图和空间图卷积网络依赖于预定义的图拓扑,不能适应输入的图信号。在本小节中,我们证明了空间transformer可以表述为动态图神经网络中所有节点 v ∈ V v\in V v∈V的信息传递和更新的迭代特征学习过程。
x v ∈ R g d x_v \in R^d_g xv∈Rgd为节点 v v v的输入特征. 对于任意 v ∈ V v\in V v∈V,它从 V V V中的节点接收消息 m v ∈ R d g m_v\in R^{d_g} mv∈Rdg。
m v = ∑ u ∈ V F ( x v , x u ) = ∑ u ∈ V < ( W q s ) T x v , ( W k s ) T x u > x u m_v = \sum_{u\in V} F(x_v,x_u)=\sum_{u \in V}<(W_q^s)^Tx_v,(W_k^s)^Tx_u>x_u mv=u∈V∑F(xv,xu)=u∈V∑<(Wqs)Txv,(Wks)Txu>xu
self-attention 即动态图卷积.
X ′ τ = G t ( [ X τ , D τ ] ) ∈ R M × N × d g X'^\tau = G_t([X^\tau,D^\tau])\in R^{M\times N \times d_g} X′τ=Gt([Xτ,Dτ])∈RM×N×dg,由 X τ = X s + Y s ∈ R M × N × d g X^\tau=X^s+Y^s \in R^{M\times N \times d_g} Xτ=Xs+Ys∈RM×N×dg和 D τ D^\tau Dτ构成,其中 G t G_t Gt是 1 × 1 1\times 1 1×1的卷积层,在每个时间步生成 d g d_g dg维向量,节点可以并行化处理,以对时间依赖关系建模。 g g g中的任意一个节点有,2D空间特征 X ^ τ ∈ R M × d g \hat X^\tau \in R^{M\times d_g} X^τ∈RM×dg。采用自注意机制对时间依赖关系进行建模。temporal transformer的输入是一个时序序列 X ^ τ ∈ R M × d g \hat X^\tau \in R^{M\times d_g} X^τ∈RM×dg,拥有M长的滑动窗口, d g d_g dg通道。
Q τ = X ^ τ W q τ Q^\tau = \hat X^\tau W_q^\tau Qτ=X^τWqτ
K τ = X ^ τ W k τ K^\tau = \hat X^\tau W_k^\tau Kτ=X^τWkτ
V τ = X ^ τ W v τ V^\tau = \hat X^\tau W_v^\tau Vτ=X^τWvτ
Q τ ∈ R M × d A τ Q^\tau\in R^{M\times d_A^\tau} Qτ∈RM×dAτ, K τ ∈ R M × d A τ K^\tau\in R^{M\times d_A^\tau} Kτ∈RM×dAτ, V τ ∈ R M × d g V^\tau\in R^{M\times d_g} Vτ∈RM×dg。 W q ∈ R d g × d A τ W_q\in R^{d_g \times d_A^\tau} Wq∈Rdg×dAτ, W k ∈ R d g × d A τ W_k\in R^{d_g \times d_A^\tau} Wk∈Rdg×dAτ, W v ∈ R d g × d g W_v\in R^{d_g \times d_g} Wv∈Rdg×dg
S τ = s o f t m a x ( Q τ ( K τ ) T / d A τ ) S^\tau = softmax(Q^\tau(K^\tau)^T/ \sqrt d_A^\tau) Sτ=softmax(Qτ(Kτ)T/dAτ)
基于rnn的模型仅限于考虑基于前面时间步的时间依赖关系,如[30]所示,这种从左到右的体系结构对于建模上下文依赖关系不是最优的。我们进一步将 V τ V^\tau Vτ与权值 S τ S^\tau Sτ进行聚合得到时间特征 M τ M^\tau Mτ的值。
M τ = S τ V τ M^\tau = S^\tau V^ \tau Mτ=SτVτ
为了研究潜在特征之间的相互作用,为 M τ M^\tau Mτ提出了一种共享的三层前馈神经网络:
U T τ = R e L u ( R e L u ( M ′ τ W 0 τ ) W 1 τ ) W 2 τ UT\tau = ReLu(ReLu(M'^\tau W_0^\tau)W_1^\tau)W_2^\tau UTτ=ReLu(ReLu(M′τW0τ)W1τ)W2τ
M ′ τ = M τ + X τ M'^\tau = M^\tau+X^\tau M′τ=Mτ+Xτ(残差连接)
对于每个节点,输出 Y ^ τ = U τ + M ′ τ \hat Y^\tau = U^\tau + M'^\tau Y^τ=Uτ+M′τ,整个图的输出为 Y τ ∈ R M × N × d g Y^\tau \in R^{M\times N \times d_g} Yτ∈RM×N×dg
在时间transformer的每一层中,可以有效地捕获长期的双向时间依赖关系,因为每个时间步都要处理滑动窗口中剩余的时间步。通过增加 M M M,时间transformer可以很容易地伸缩到较长的序列,而不牺牲太多的计算效率。相比之下,基于rnn的模型会受到梯度消失或爆炸的影响,而基于卷积的模型必须明确地指定卷积层的数量,层数会随着 M M M的增加而增加。