Diffusion Convolutional Recurrent Neural Network: Data-driven Traffic Forecasting
摘要
交通预测的挑战:
- 复杂的路网空间依赖关系;
- 非线性时间的道路状况动态变化;
- 长时预测的困难性。
DCRNN能够利用图上的双向随机步长捕获空间依赖,并利用encoder-decoder结构进行时间依赖的获取。
方法论
在该文章中,实验者利用有向图来表示交通传感器间的成对空间相关性,图中结点是传感器,边缘权值是传感器间的距离。同时,实验者将交通流动力学建模为一个扩散过程,提出了扩散卷积运算来捕捉空间依赖性。
- 文章将交通的空间依赖建模为一个在有向图上的扩散过程,提出了扩散卷积;
- 文章提出了DCRNN,使用扩散卷积来捕获空间和时间依赖;
- 进行了实验,甚好。
交通预测问题
将传感器网络作为一个有权有向图 G = ( V , ε , W ) \mathcal{G}=(\mathcal{V},\varepsilon,\mathbf{W}) G=(V,ε,W),其中 V \mathcal{V} V是结点集合,范数为 N N N, ε \varepsilon ε是边的集合, W ∈ R N × N \mathbf{W}\in \mathbb{R}^{N\times N} W∈RN×N是权重邻接矩阵。图 G \mathcal{G} G上的交通流被视作图信号 X ∈ R N × P \mathbf{X}\in \mathbb{R}^{N\times P} X∈RN×P,其中 P P P是结点特征的数量。
空间依赖建模
扩散过程是一个在图 G \mathcal{G} G上概率为 α ∈ [ 0 , 1 ] \alpha\in [0,1] α∈[0,1]随机的步长,并利用一个状态转移矩阵 D O − 1 W \mathbf{D^{-1}_O}\mathbf{W} DO−1W,其中 D O = d i a g ( W 1 ) \mathbf{D_O}=diag(\mathbf{W1}) DO=diag(W1)是一个出度对角矩阵。经过多次时间步后,该马尔可夫过程就会收敛到一个稳定分布 P ∈ R N × N \mathcal{P}\in \mathbb{R}^{N\times N} P∈RN×N,其中 P i ∈ R N \mathcal{P}_i\in \mathbb{R}^N Pi∈RN代表从结点 v i ∈ V v_i \in \mathcal{V} vi∈V扩散的可能性。
引理2.1:
P
=
∑
k
=
0
∞
α
(
1
−
α
)
k
(
D
O
−
1
)
W
)
k
\mathcal{P}=\sum^{\infty}_{k=0}\alpha(1-\alpha)^k(\mathbf{D^{-1}_O})\mathbf{W})^k
P=k=0∑∞α(1−α)k(DO−1)W)k
其中
k
k
k是扩散步数。在实验中,实验者使用了有限的
K
K
K步扩散过程,并且在每一步中分配了可训练的权重。同时实验中还包括了反向扩散,来增加灵活性。
扩散卷积:
X
:
,
p
⋆
G
f
θ
=
∑
k
=
0
K
−
1
(
θ
k
,
1
(
D
O
−
1
W
)
k
+
θ
k
,
2
(
D
I
−
1
W
T
)
k
)
X
:
,
p
f
o
r
p
∈
{
1
,
⋯
,
P
}
X_{:,p}\star_\mathcal{G}f_\theta=\sum^{K-1}_{k=0}(\theta_{k,1}(\mathbf{D_O^{-1}W})^k+\theta_{k,2}(\mathbf{D_I^{-1}W^T})^k)X_{:,p}\qquad for\quad p\in \{1,\cdots,P\}
X:,p⋆Gfθ=k=0∑K−1(θk,1(DO−1W)k+θk,2(DI−1WT)k)X:,pforp∈{1,⋯,P}
其中,
θ
∈
R
K
×
2
\theta\in \mathbb{R}^{K\times 2}
θ∈RK×2是滤波器参数,
D
O
−
1
W
,
D
I
−
1
W
T
\mathbf{D_O^{-1}W},\mathbf{D_I^{-1}W^T}
DO−1W,DI−1WT代表扩散过程的转移矩阵和其倒数。
扩散卷积层:
扩散卷积层可以将
P
P
P维特征映射为
Q
Q
Q维输出,参数张量
θ
∈
R
Q
×
P
×
K
×
2
=
[
θ
]
q
,
p
\theta\in \mathbb{R}^{Q\times P\times K\times 2}=[\theta]_{q,p}
θ∈RQ×P×K×2=[θ]q,p,其中
θ
q
,
p
,
:
,
:
∈
R
K
×
2
\theta_{q,p,:,:}\in \mathbb{R}^{K\times 2}
θq,p,:,:∈RK×2是第
p
p
p个输入、第
q
q
q个输出对应的卷积核。
H
:
,
q
=
a
(
∑
p
=
1
P
X
:
,
p
⋆
G
f
θ
q
,
p
,
:
,
:
)
f
o
r
q
∈
{
1
,
⋯
,
Q
}
H_{:,q}=a(\sum^{P}_{p=1}X_{:,p}\star_\mathcal{G}f_{\theta_{q,p,:,:}})\qquad for \quad q\in\{1,\cdots,Q\}
H:,q=a(p=1∑PX:,p⋆Gfθq,p,:,:)forq∈{1,⋯,Q}
其中
X
∈
R
N
×
P
X\in\mathcal{R}^{N\times P}
X∈RN×P是输入,
H
∈
R
N
×
Q
H\in\mathbb{R}^{N\times Q}
H∈RN×Q是输出,
{
f
θ
q
,
p
,
:
,
:
}
\{f_{\theta_q,p,:,:} \}
{fθq,p,:,:}是核,
a
a
a是激活函数。
时间动态建模
实验者采用GRU并将GRU中的矩阵相乘替换为了扩散卷积。
r
(
t
)
=
σ
(
θ
r
⋆
G
[
X
(
t
)
,
H
(
t
−
1
)
]
+
b
r
)
r^{(t)}=\sigma(\theta_r\star_\mathcal{G}[X^{(t)},H^{(t-1)}]+b_r)
r(t)=σ(θr⋆G[X(t),H(t−1)]+br)
u
(
t
)
=
σ
(
θ
u
⋆
G
[
X
(
t
)
,
H
(
t
−
1
)
]
+
b
u
)
u^{(t)}=\sigma(\theta_u\star_\mathcal{G}[X^{(t)},H^{(t-1)}]+b_u)\\
u(t)=σ(θu⋆G[X(t),H(t−1)]+bu)
C
(
t
)
=
t
a
n
h
(
θ
C
⋆
G
[
X
(
t
)
,
(
r
(
t
)
⊙
H
(
t
−
1
)
)
]
+
b
c
)
C^{(t)}=tanh(\theta_C\star_\mathcal{G}[X^{(t)},(r^{(t)}\odot H^{(t-1)})]+b_c)\\
C(t)=tanh(θC⋆G[X(t),(r(t)⊙H(t−1))]+bc)
H
(
t
)
=
u
(
t
)
⊙
H
(
t
−
1
)
+
(
1
−
u
(
t
)
)
⊙
C
H^{(t)}=u^{(t)}\odot H^{(t-1)}+(1-u^{(t)})\odot C
H(t)=u(t)⊙H(t−1)+(1−u(t))⊙C
其中
X
(
t
)
,
H
(
t
)
X^{(t)},H^{(t)}
X(t),H(t)表示时间
t
t
t时的输入和输出,
r
(
t
)
,
u
(
u
)
r^{(t)},u^{(u)}
r(t),u(u)是时间
t
t
t时的reset gate和update gate。
在测试时,ground truth被预测所取代,训练和测试的输入分布间的差异回导致性能下降。为了整合这一问题,实验者进行了scheduled sampling,也就是说以概率 ϵ i \epsilon_i ϵi选择使用ground truth或者预测。