1.文章概述
当前的一些方法使用不同的模块对不同关系进行建模,本文作者为了同时提取时空关系提出了一个新的模型STSGCN,该模型通过设计了一个时空同步建模机制 和 对不同时间周期设置不同模块分别捕捉时空依赖性和异构性(不同时间阶段有不同的依赖性)。
作者认为在时空预测任务中存在三种关系:空间依赖性,时间依赖性,时空依赖性。当前大部分方法通过同模块捕捉前两种依赖性,第三种依赖性在网络中间接捕捉,作者认为如果可以直接同时捕捉时空依赖对数据的预测非常有效。此外作者认为时空网络数据通常在空间和时间维度上都表现出异质性(住宅区和商业区的交通监测站记录的观察结果往往在不同的时间呈现出不同的模式)。
主要贡献:
- 提出一种新的时空图卷积模块,直接同步捕获局部时空相关性
- 构建了一个多模块层来捕捉远程时空图中的异构性
- 在四个真实数据集上进行了大量实验,实验结果表明
2. 模型介绍
STSGCN核心思想:
1)在上一个和下一个时间步骤将每个节点与其自身连接起来,构建一个局部化的时空图。
2)使用时空同步图卷积模块来捕获局部时空相关性。
3)部署多个模块对时空网络序列中的异构性进行建模。
网络框架:
2.1 Localized Spatial-Temporal Graph Construction
局部时空图对角元素为三个时间步的邻接矩阵,对角线两侧为不同时间步节点自身的连接(这边有个小疑问,为什么上面所提到的时空关系在构建的途中并没有体现)
2.2 Spatial-Temporal Embedding
将不同时间步长的节点连接成一个图会模糊每个节点的时间属性,这种局部时空图将不同时间步长的节点放入同一环境中,而不区分它们。因此对于时空网络序列分别进行位置嵌入和时间嵌入使其可以考虑时空信息。分别创建两个可学习的矩阵:
T
e
m
b
∈
R
C
×
T
S
e
m
b
∈
R
N
×
C
T_{\mathcal{emb}} \in \mathbb{R}^{C \times T} \\ S_{\mathcal{emb}} \in \mathbb{R}^{N \times C}
Temb∈RC×TSemb∈RN×C
分别用于表示时间嵌入,和空间嵌入,最后使用广播操作与源输入结合:
X
G
+
t
e
m
b
+
s
e
m
b
=
X
G
+
T
e
m
b
+
S
e
m
b
∈
R
N
×
C
×
T
X_{\mathcal{G}+t_{e m b}+s_{e m b}}=X_{\mathcal{G}}+T_{e m b}+S_{e m b} \in \mathbb{R}^{N \times C \times T}
XG+temb+semb=XG+Temb+Semb∈RN×C×T
2.3 Spatial-Temporal Synchronous Graph Convolutional Module
STSGCM由一组图卷积运算组成,具体图卷积定义如下:
G
C
N
(
h
(
l
−
1
)
)
=
h
(
l
)
=
σ
(
A
′
h
(
l
−
1
)
W
+
b
)
∈
R
3
N
×
C
′
G C N\left(h^{(l-1)}\right)=h^{(l)}=\sigma\left(A^{\prime} h^{(l-1)} W+b\right) \in \mathbb{R}^{3 N \times C^{\prime}}
GCN(h(l−1))=h(l)=σ(A′h(l−1)W+b)∈R3N×C′
本文通过堆叠对个图卷积操作扩大聚合区域,对于具有图卷积运算的STSGCM,每个图卷积运算的输出将被馈送到聚合层,聚合操作有两个步骤:聚合和裁剪。
- Aggregating operation:本文作者通过最大池化进行聚合操作
h A G G = max ( h ( 1 ) , h ( 2 ) , … , h ( L ) ) ∈ R 3 N × C o u t h_{A G G}=\max \left(h^{(1)}, h^{(2)}, \ldots, h^{(L)}\right) \in \mathbb{R}^{3 N \times C_{o u t}} hAGG=max(h(1),h(2),…,h(L))∈R3N×Cout
- Cropping operation:移除上一个和下一个时间步骤中节点的所有特征,仅保留中间时刻的节点。文中给出的解释是:图卷积操作已经聚合了前后两个时刻的信息,如果不进行裁剪会存在大量冗余的信息
2.4 Spatial-Temporal Synchronous Graph Convolutional Layer
该部分流程如下:
1)通过大小为 T T T 的滑动窗口将输入数据 X ∈ R T × N × C X\in \mathbb{R}^{T \times N\times C} X∈RT×N×C分割成 T − 2 T-2 T−2 个 时空序列
2)将 X ′ ∈ R 3 × N × C X^\prime\in \mathbb{R}^{3 \times N\times C} X′∈R3×N×C reshape 成 X r e s h a p e ′ ∈ R 3 N × C X^\prime_{reshape}\in \mathbb{R}^{3N\times C} Xreshape′∈R3N×C 这使得输入可以直接输入到 STSGCM
3)通过 T − 2 T-2 T−2 个STSGCM分别对 T − 2 T-2 T−2 个时空网络序列进行建模
4)最后将
T
−
2
T-2
T−2 个模块的输出进行聚合
M
=
[
M
1
,
M
2
,
…
,
M
T
−
2
]
∈
R
(
T
−
2
)
×
N
×
C
o
u
t
M=\left[M_{1}, M_{2}, \ldots, M_{T-2}\right] \in \mathbb{R}^{(T-2) \times N \times C_{o u t}}
M=[M1,M2,…,MT−2]∈R(T−2)×N×Cout
2.5 Extra Components
-
Mask matrix:使用一个可学习的矩阵 W m a s k ∈ R 3 N × 3 N W_{mask}\in \mathbb{R}^{3N \times 3N} Wmask∈R3N×3N,最终输入模型的矩阵如下:
A adjusted ′ = W mask ⊗ A ′ ∈ R 3 N × 3 N A_{\text {adjusted }}^{\prime}=W_{\text {mask }} \otimes A^{\prime} \in \mathbb{R}^{3 N \times 3 N} Aadjusted ′=Wmask ⊗A′∈R3N×3N -
Input layer:一个全连接层
-
Output layer:两个全连接层