传统的统计研究方法有:historical average(HA), auto-regressive integrated moving average(ARIMA) and vector auto-regression(VAR)。
前人研究的问题:
- 对于不同的时间序列来说(如速度、流量),忽略了不同时间序列特征之间的非线性关系。
- 采用固定的拉普拉斯矩阵来保存位置关系,没有考虑空间关联的动态性。
引入三种注意力机制:internal attention,spatial attention and temporal attention。
下面是一些记号:
交通网络**有
整个交通网络视为一个无向图
问题重新表述为提供过去
- Internal attention mechanism:
$$ e_t^p = \mathbf{V}s^\mathsf{T}\cdot \sigma (\mathbf{W}{s1}[\mathbf{h}{t-1};\mathbf{s}{t-1}]+\mathbf{W}_{s2}\mathbf{x}^{i,p}+\mathbf{b}_s)\ \alpha_t^p=\frac{exp(e_t^p)}{\sum exp(e_t^j)} $$
式中 $\mathbf{h}{t-1}\in \R^m$ 和 $\mathbf{s}{t-1}\in \R^m$ 是前一个 Encoder 时间
- Spatial attention mechanism:
第一步,所有的节点被分为
给定目标节点
- Temporal attention mechanism:
$$ r_{t'}^j = \mathbf{V}g^\mathsf{T}\cdot \sigma(\mathbf{W}{g1}[\mathbf{d}{t'-1};\mathbf{s}'{t'-1}]+\mathbf{W}_{g2}\mathbf{h}_j+\mathbf{b}_g) $$
式中 $\mathbf{d}{t'-1}\in \R^n$ 和 $\mathbf{s}'{t'-1}\in \R^n$ 是前一个 Decoder 时间
先前的谱方法:
定义度矩阵
对实对称矩阵
- 傅里叶变换
$P^\mathsf{T}x$ - 卷积操作
$\Lambda(P^\mathsf{T}x)$ - 傅里叶逆变换
$P(\Lambda P^\mathsf{T}x)$
在谱域的卷积中,关键的操作是
通过限定卷积操作为多项式,降低运算量。
可以使用切比雪夫多项式代替原始的多项式,$y=\sigma(\sum \theta_i T_i(\hat{L})x)$,这里为了获得特征值在
若取阶数
Graph attention layer
层的输入为 $\mathbf{h}={\vec{h}_1,\vec{h}_2,\dots,\vec{h}_N}, \vec{h}i\in\R^F$,层的输出为 $\mathbf{h'}={\vec{h'}1,\vec{h'}2,\dots,\vec{h'}N}, \vec{h'}i\in\R^{F'}$,一个共享的权重矩阵作用于每一个节点:$\mathbf{W}\in\R^{F'\times F}$,self-attention:$a:\R^{F'}\times\R^{F'}\to\R,e{i,j}=a(\mathbf{W}\vec{h}i,\mathbf{W}\vec{h}j)$,表示了节点 $j$ 对节点 $i$ 的重要性。只在节点 $i$ 的邻居 $N_i$ 上计算, $$ \alpha{i,j} = \frac{exp(e{i,j})}{\sum{k\in N_i}exp(e{i,k})} $$ 在他们的实现中,$e{i,j} = \text{LeakyReLU}(\vec{a}^\mathsf{T}[\mathbf{W}\vec{h}i;\mathbf{W}\vec{h}j])$ $$ \vec{h}i'=\sigma(\sum{j\in N_i} \alpha{i,j}\mathbf{W}\vec{h}j)\ \vec{h}i=\big{|}{k=1}^K\sigma(\sum{j\in N_i}\alpha{i,j}^k\mathbf{W}^k\vec{h}j)\ \vec{h}i=\sigma(\frac{1}{K}\sum{k=1}^K\sum{j\in N_i}\alpha{i,j}^k\mathbf{W}^k\vec{h}_j) $$
用带权的邻接矩阵表示图,边权是距离的函数:$\mathcal{G}=(\mathcal{V},\mathcal{E},\mathbf{W})$,用$\mathbf{X}^{(t)}\in\R ^{N\times P}$表示观测的数据。
问题表示为$[\mathbf{X}^{(t-T'+1)},\dots, \mathbf{X}^{(t)};\mathcal{G}]\overset{h(\cdot)}{\to}[\mathbf{X}^{(t+1)},\dots, \mathbf{X}^{(t+T)}]$。
用扩散的过程来表示空间的相关性,用random walk with restart来模拟这一过程。最终的分布为 $$ \mathbf{P}=\sum _{k=0}^\infty \alpha (1-\alpha)^k (\mathbf{D}_O^{-1}\mathbf{W})^k\ $$ 使用扩散的有限$K$步截断,并为每个步骤分配可训练的权重。同时,还应该包括反向扩散过程。文中用$\mathbf{D}$表示无向图的度矩阵,$\mathbf{D}_O$和$\mathbf{D}_I$表示出度、入度矩阵。
这样,扩散卷积为 $$ \mathbf{X}{:,p\star \theta}=\sum{k=0}^{K-1}({\theta}_{k,1}(\mathbf{D}O^{-1}\mathbf{W})^k+\theta{k,2}(\mathbf{D}I^{-1}\mathbf{W}^\mathsf{T})^k)\mathbf{X}{:,p} $$ 其中$\theta\in\R^{K\times 2}$是可学习的参数。
定义卷积层为 $$ \mathbf{H}{:,q}=\mathbf{a}\left(\sum{p=1}^P\mathbf{X}{:,p\star\Theta{q,p,:,:}}\right) $$ 其中$\Theta\in\R ^{Q\times P\times K\times 2}=[\theta]_{q,p}$,$\mathbf{X}\in\R^{N\times P}$是输入,$\mathbf{H}\in \R^{N\times Q}$是输出。
时间依赖性(DCGRU):
重置门:$\mathbf{r}^{(t)}=\sigma(\Theta_{r\star\mathcal{G}}[\mathbf{X}^{(t)},\mathbf{H}^{(t-1)}]+\mathbf{b}_r)$
更新门:$\mathbf{u}^{(t)}=\sigma(\Theta_{u\star\mathcal{G}}[\mathbf{X}^{(t)},\mathbf{H}^{(t-1)}]+\mathbf{b}_u)$
隐藏状态:$\mathbf{C}^{(t)}=\tanh(\Theta_{C\star\mathcal{G}}[\mathbf{X}^{(t)},(\mathbf{r}^{(t)}\odot\mathbf{H}^{(t-1)})]+\mathbf{b}_C)$
输出:$\mathbf{H}^{(t)}=\mathbf{u}^{(t)}\odot \mathbf{H}^{(t-1)}+(1-\mathbf{u}^{(t)})\odot \mathbf{C}^{(t)}$
解码器和编码器都是带有DCGRU的循环神经网络。
在训练时:将历史序列输出编码器,并用其最终状态初始化解码器,解码器在给定先前的真实值的情况下生成预测。
在测试时:真实值被模型本身生成的预测所替代。
训练和测试输入分布之间的差异会导致性能下降,缓解这个问题:将抽样集成到模型中,在该模型的第
实验中,邻接矩阵的权值为$W_{i,j}=exp(-\frac{dist(v_i, v_j)^2}{\sigma})\cdot (dist(v_i, v_j)< \kappa)$,$\sigma$ 为所有距离的方差。
Graph Convolution Layer: $$ \mathbf{Z}=\sum _{k=0}^K\mathbf{P}^k\mathbf{X}\mathbf{W}k\ \mathbf{P}=\mathbf{A}/rowsum(\mathbf{A}) $$ Self-adaptive Adjacency Matrix: $$ \tilde{\mathbf{A}}{adp}=SoftMax(ReLU(\mathbf{E}_1\mathbf{E}_2^\mathsf{T}))\ \mathbf{E}1,\mathbf{E}2\in\R^{N\times c}\ \mathbf{Z}=\sum {k=0}^K\mathbf{P}^k\mathbf{X}\mathbf{W}{k1}+\tilde{\mathbf{A}}^k{apt}\mathbf{X}\mathbf{W}{k2} $$ Temporal Convolution Layer:
若考虑一维的输入$\mathbf{x}\in\R ^T$和滤波器$\mathbf{f}\in\R^K$ $$ \mathbf{x}\star\mathbf{f}(t)=\sum_{s=0}^{K-1}\mathbf{f}(s)\mathbf{x}(t-d\times s) $$
Gated TCNN: $$ input\ \mathcal{X}\in\R^{N\times D\times S}\ \mathbf{h}=g(\Theta_1\star\mathcal{X}+\mathbf{b})\odot \sigma(\Theta_2\star\mathcal{X}+\mathbf{c}) $$
创新点:
- 提出自学习的邻接矩阵
- 使用 TCN 替代循环卷积神经网络,通过堆叠 TCN 获取更大的时间感受野
这篇文章用经纬度划分区块为
为了考虑时间颗粒度,用$X^p\in\R^{M\times N\times T_p}$表示按照$p$时间间隔取出来的流,$p$可以取day或者hour等,在这上面做 self-attention layer,$Q\in\R^{|R|\times d}, K\in \R^{|R|\times d},V\in\R^{|R|\times d}$,$Y^p = softmax(\frac{QK^T}{\sqrt{d}})V\in\R^{|R|\times d}$
下面进入空间注意力,输入为$\tilde{Y}^p = Y^p \cdot W_p, W_p\in \R^{d\times d'}$
注意力系数为 $$ \epsilon_{(m,n)(m',n')}=\frac{exp(LeakyReLU(\alpha^T[\tilde{y}^p_{m,n}|\tilde{y}^p_{m',n'}]))}{\sum_{(m',n')\in N(m,n)}exp(LeakyReLU(\alpha^T[\tilde{y}^p_{m,n}|\tilde{y}^p_{m',n'}]))} $$ 将H个多头注意力集中 $$ z^p_{m,n} = |_{h=1}^H LeakyReLU(\sum _{(m',n')\in N(m,n)}\epsilon^h {(m,n)(m',n')}\tilde{y}^p{m,n}) $$ Spatial Relation Modeling between Regions:
-
Convolution-based Residual Unit.
$\tilde{Z}^p = F(Z^p) +Z^p$ ,其中F是残差层:$Z^{p(l+1)}=ReLU(W^{(l)}\ast Z^{p(l)}+b^{(l)})\in \R^{M\times N \times C}$ -
Channel-Aware Recalibration Network.
$\Lambda^p=\Omega \circ\tilde{Z}^p=\Omega\circ F(Z^p)+Z^p$