基于统计学的方法:统计学方法基于对数据是线性平稳的假设,该假设不符合实际,使以效果不佳
基于传统机器学习:传统机器学习方法浅层的结果和分离学习的方法在特征捕捉方面效果不佳,且需要手工处理数据在大数据环境下不太适用。
基于深度学习方法:主要是CNN+RNN,使用CNN捕捉空间依赖,使用RNN捕捉时间依赖。但是由于交通网络在时间情况下通常是图结构的,所以使用CNN捕捉不是最佳的。
基于图神经网络:许多现有的工作将GNNs结合到深度学习架构中,以捕捉空间依赖性,且表现出更好的
主要挑战:时间和空间依赖性的捕捉和外部因素
时空依赖性:在预测一个地区的交通状况时需要考虑周围地区的交通状况和起一个时间段的交通状况
额外的因素:如节假日、天气等因素也会对交通预测产生影响
(1)节点和节点特征构造:
(2)邻接矩阵构造
Fixed Matrix:许多工作假设节点之间的相关性是固定的,不会随着时间而改变。因此,设计了一个固定的矩阵,并且在整个实验过程中保持不变。
a i j = { exp ( − d i j 2 σ 2 ) , i ≠ j and d i j ≥ ϵ 0 , i = j or d i j < ϵ \mathbf{a}_{i j}=\left\{\begin{array}{l} \exp \left(-\frac{\mathbf{d}_{i j}^{2}}{\sigma^{2}}\right), i \neq j \text { and } \mathbf{d}_{i j} \geq \epsilon \\ 0, i=j \text { or } \mathbf{d}_{i j}<\epsilon \end{array}\right. aij={exp(−σ2dij2),i=j and dij≥ϵ0,i=j or dij<ϵ
Dynamic Matrix:由于有缺陷的先验知识或不完整的数据,预定义矩阵不一定反映节点之间的真正依赖关系。在一些实验中已经证明该矩阵能更好的捕捉隐藏的空间特征。这种自适应矩阵通过数据进行学习。
Evolving Matrix:在某些情况下,图形结构会随着时间的推移而演变。进化的拓扑结构被结合到模型中以捕捉这种动态空间变化。
在交通预测领域主要使用的是ConvGNNs,ConvGNNs主要有两种卷积方法一种是基于谱理论的图卷积,一种是基于空间的图卷积。基于空间的图卷积中最近的主要方法是使用扩散卷积。spectral graph convolution (SGC)只能用于无向图的, diffusion graph convolution (DGC) 既可以用于有向图也可以用于无向图。
三种常用拉普拉斯矩阵:(1)$ L=D-A$ (2) L = D − 1 / 2 L D − 1 / 2 = I − D − 1 / 2 A D − 1 / 2 L=D^{-1/2}LD^{-1/2}=I-D^{-1/2}AD^{-1/2} L=D−1/2LD−1/2=I−D−1/2AD−1/2 (3) L = D − 1 L L=D^{-1}L L=D−1L
为什么使用拉普拉斯矩阵:(1)拉普拉斯矩阵是对称矩阵可以进行特征分解 (2)由于卷积在傅里叶域计算相对简单,为了在graph上做傅里叶变换需要找到连续的正交基对应于傅里叶变换的基,因此要使用拉普拉斯矩阵的特征向量
由卷积定理:函数卷积的傅里叶变换是函数傅立叶变换的乘积,所以对图的特征f和卷积核g可以表示为 f ∗ g = U ( ( U T g ) ( U T f ) ) f*g=U((U^Tg)(U^Tf)) f∗g=U((UTg)(UTf)) 如果将 U T g U^Tg UTg看成一个整体 θ \theta θ可以写成 f ∗ g = U Θ U T f f*g=U{\Theta}U^Tf f∗g=UΘUTf。这就是基于谱理论的卷积操作,但是这种操作的时间复杂度为 O ( N 2 ) O(N^2) O(N2)太过耗时。
在之后的改进中Defferrard et al通过将 Θ \Theta Θ限制为 Θ = ∑ i = 1 K − 1 θ k Λ K \Theta=\sum_{i=1}^{K-1}\theta_k\Lambda^K Θ=∑i=1K−1θkΛK,则卷积表达式可以表示为 ∑ k = 0 K − 1 θ k U Λ U T x = ∑ k = 0 K − 1 θ k L k x \sum_{k=0}^{K-1}\theta_kU\Lambda U^Tx=\sum_{k=0}^{K-1}\theta_kL^kx ∑k=0K−1θkUΛUTx=∑k=0K−1θkLkx,并通过Chebyshev多项式 T k ( x ) T_k(x) Tk(x)逼近 L k L_k Lk最终卷积公式为: ∑ k = 0 K − 1 θ k T k ( L ~ ) x \sum_{k=0}^{K-1}\theta_kT_k(\tilde{L})x ∑k=0K−1θkTk(L~)x,其中 L ~ = 2 λ m a x L − I N \tilde{L}=\frac{2}{\lambda_{max}}L-I_N L~=λmax2L−IN(这里是为了满足Chebyshev多项式的输入要在[ − 1 , 1 ] 之间),通过这种方法可以将时间复杂度降为 O ( K ∣ E ∣ ) O(K|E|) O(K∣E∣)。
扩散卷积神经网络(DCNN)[25]将图形卷积视为扩散过程。它假设信息以一定的转移概率从一个节点传输到其相邻节点之一,以便信息分布在几轮之后达到平衡。 卷积层定义如下:
Y j = ρ ( ∑ k = 0 K − 1 ∑ i = 1 F I ( θ k , 1 , i , j ( D O − 1 A ) k + θ k , 2 , i , j ( D I − 1 A T ) k ) X i ) Y = ρ ( ∑ K − 1 ( D O − 1 A ) k X W k 1 + ( D I − 1 A T ) k X W k 2 ) \begin{aligned} Y_{j} &=\boldsymbol{\rho}\left(\sum_{k=0}^{\mathrm{K}-1} \sum_{i=1}^{\mathbf{F}_{\mathbf{I}}}\left(\theta_{k, 1, i, j}\left(\mathbf{D}_{\mathbf{O}}^{-1} \mathbf{A}\right)^{k}+\theta_{k, 2, i, j}\left(\mathbf{D}_{\mathbf{I}}^{-1} \mathbf{A}^{T}\right)^{k}\right) X_{i}\right) \\ Y &=\boldsymbol{\rho}\left(\sum^{\mathbf{K}-1}\left(\mathbf{D}_{\mathrm{O}}^{-1} \mathbf{A}\right)^{k} X W_{k 1}+\left(\mathbf{D}_{\mathbf{I}}^{-1} \mathbf{A}^{T}\right)^{k} X W_{k 2}\right) \end{aligned} YjY=ρ(k=0∑K−1i=1∑FI(θk,1,i,j(DO−1A)k+θk,2,i,j(DI−1AT)k)Xi)=ρ(∑K−1(DO−1A)kXWk1+(DI−1AT)kXWk2)
其中 D o D_o Do为出度矩阵 D I D_I DI为入度矩阵。 状态迁移矩阵定义为 D − 1 A D^{-1}A D−1A
为了克服梯度消失问题,LSTM引入门控机制
i t = σ ( [ H t − 1 , X t ] ⋅ W i + b i ) o t = σ ( [ H t − 1 , X t ] ⋅ W o + b o ) f t = σ ( [ H t − 1 , X t ] ⋅ W f + b f ) C t = f t ⊙ C t − 1 + i t ⊙ tanh ( [ H t − 1 , X t ] ⋅ W c + b c ) H t = o t ⊙ tanh ( C t ) \begin{aligned} i_{t} &=\sigma\left(\left[\mathbf{H}_{t-1}, \mathbf{X}_{t}\right] \cdot W_{i}+b_{i}\right) \\ o_{t} &=\sigma\left(\left[\mathbf{H}_{t-1}, \mathbf{X}_{t}\right] \cdot W_{o}+b_{o}\right) \\ f_{t} &=\sigma\left(\left[\mathbf{H}_{t-1}, \mathbf{X}_{t}\right] \cdot W_{f}+b_{f}\right) \\ \mathbf{C}_{t} &=f_{t} \odot \mathbf{C}_{t-1}+i_{t} \odot \tanh \left(\left[\mathbf{H}_{t-1}, \mathbf{X}_{t}\right] \cdot W_{c}+b_{c}\right) \\ \mathbf{H}_{t} &=o_{t} \odot \tanh \left(\mathbf{C}_{t}\right) \end{aligned} itotftCtHt=σ([Ht−1,Xt]⋅Wi+bi)=σ([Ht−1,Xt]⋅Wo+bo)=σ([Ht−1,Xt]⋅Wf+bf)=ft⊙Ct−1+it⊙tanh([Ht−1,Xt]⋅Wc+bc)=ot⊙tanh(Ct)
GRU是LSTM的变种,LSTM有输入门,输出门,遗忘门而GRU只有两个门,减少了参数,从而缩短训练时间
r t = σ ( [ H t − 1 , X t ] ⋅ W r + b r ) u t = σ ( [ H t − 1 , X t ] ⋅ W u + b u ) H ~ t = tanh ( r t ⊙ [ H t − 1 , X t ] ⋅ W h + b h ) H t = u t ⊙ H t − 1 + ( 1 − u t ) ⊙ H ~ t \begin{aligned} r_{t} &=\boldsymbol{\sigma}\left(\left[\mathbf{H}_{t-1}, \mathbf{X}_{t}\right] \cdot W_{r}+b_{r}\right) \\ u_{t} &=\boldsymbol{\sigma}\left(\left[\mathbf{H}_{t-1}, \mathbf{X}_{t}\right] \cdot W_{u}+b_{u}\right) \\ \tilde{\mathbf{H}}_{t} &=\tanh \left(r_{t} \odot\left[\mathbf{H}_{t-1}, \mathbf{X}_{t}\right] \cdot W_{h}+b_{h}\right) \\ \mathbf{H}_{t} &=u_{t} \odot \mathbf{H}_{t-1}+\left(1-u_{t}\right) \odot \tilde{\mathbf{H}}_{t} \end{aligned} rtutH~tHt=σ([Ht−1,Xt]⋅Wr+br)=σ([Ht−1,Xt]⋅Wu+bu)=tanh(rt⊙[Ht−1,Xt]⋅Wh+bh)=ut⊙Ht−1+(1−ut)⊙H~t
TCN的论文链接
TCN是结合因果卷积、膨胀卷积的结合操作:
y t = Θ ∗ T d x t = ∑ k = 0 K − 1 w k x t − d k \mathbf{y}_{t}=\Theta *_{\mathcal{T}^{\mathbf{d}}} \mathbf{x}_{t}=\sum_{k=0}^{\mathbf{K}-1} w_{k} \mathbf{x}_{t-\mathbf{d} k} yt=Θ∗Tdxt=k=0∑K−1wkxt−dk
T d _{\mathcal{T}^{\mathbf{d}}} Td是扩张率为d的dilated causal操作,在大部分工作中TCN能有比LSTM更好的效果。
单独建模时间核空间依赖的一个限制是忽略了空间特征和时间特征之间的潜在交互,这可能会损害预测性能。为了克服这种限制,一种流行的方法是将图卷积运算(例如,SGC、DGC)结合到RNNs中,以联合捕获时空相关性。
对于外部因素主要有两种处理方法。第一种方法是将外部因素与其他特征连接起来,并将它们输入模型。第二种方法是设计一个单独负责处理外部因素的外部组件。
拉普拉斯矩阵与拉普拉斯算子的关系 - 知乎 (zhihu.com)
谱域GCN的理解和详细推导