【论文精读】STGCN-一种用于交通预测的时空图卷积网络

7 篇文章 4 订阅 ¥19.90 ¥99.00

STGCN 模型是北京大学 Yu 等人发表在 I J C A I 2018 IJCAI 2018 IJCAI2018 上的时空图卷积网络模型,主要用于交通预测。文章题目为: 《Spatio-Temporal Graph Convolutional Networks: A Deep Learning Framework for Traffic Forecasting》,文章地址为: https://arxiv.org/abs/1709.04875

引言

交通预测对于城市交通控制和指导至关重要。随着城市化进程的加快,交通拥堵问题日益严重,及时准确的交通预测能够帮助改善交通状况,减少拥堵,提高道路使用效率。由于交通流具有高度的非线性和复杂性,使得传统的时序预测方法无法有效应对交通的中长期预测,且这些方法往往忽略了交通流的空间和时间依赖性。

交通预测研究主要分为动态建模和数据驱动方法。动态建模依赖于数学工具和物理知识,而数据驱动方法则侧重于使用统计和机器学习模型。动态建模和数据驱动方法也面临着挑战,如计算成本高、模型假设不切实际、难以捕捉非线性特征等。

近年来,深度学习方法在交通预测任务中取得了显著进展,但现有网络结构通常难以同时提取空间和时间特征。为了克服这些局限性,作者提出了一种新的深度学习框架——STGCN。这个框架旨在通过建模交通网络的空间和时间依赖性,来提高交通预测的准确性。STGCN利用图卷积网络来捕捉交通网络的空间特征,并结合门控时间卷积来处理时间序列数据,从而能够同时从空间和时间两个维度对交通流进行建模。

STGCN 通过建模多尺度交通网络,有效地捕获了全面的时空相关性,并且在多个真实世界的交通数据集上一致性地超越了现有的基线模型。同时,论文还指出 STGCN 是首次将纯卷积结构应用于从图结构时间序列中同时提取时空特征的交通研究,这在学术和实际应用中具有重要意义。

预备知识

路网图上的交通预测

交通预测是经典的时序预测问题,基于历史 M 步的交通观测值(速度、流量、饱和度等)来预测未来 H 步的观测值,问题定义如下:

v ^ t + 1 , . . . , v ^ t + H = a r g m a x v t + 1 , . . . , v t + H l o g P ( v t + 1 , . . . , v t + H ∣ v t − M + 1 , . . . , v t ) \hat{\mathcal{v}}_{t+1},...,\hat{\mathcal{v}}_{t+H} = \underset{v_{t+1},...,v_{t+H}}{\mathcal{argmax}}logP(\mathcal{v}_{t+1},...,\mathcal{v}_{t+H}|\mathcal{v}_{t-M+1},...,\mathcal{v}_{t}) v^t+1,...,v^t+H=vt+1,...,vt+HargmaxlogP(vt+1,...,vt+HvtM+1,...,vt)

其中, v t ∈ R n \mathcal{v}_{t} \in \mathbb{R}^{n} vtRn 代表路网上 n n n 个路段在时间步 t t t 的观测值向量。

v t \mathcal{v}_{t} vt 向量的每个元素代表1个路段,显然,不同路段可以通过路网连接起来,也就是说,可以将 v t \mathcal{v}_{t} vt 定义到一张无向图(或有向图) G \mathcal{G} G上, v t \mathcal{v}_{t} vt 作为图上的信号。如下图所示:

在这里插入图片描述

在 时间步 t t t 时,图的表示为 G t = ( v t , ε , W ) \mathcal{G}_{t}=(\mathcal{v}_{t},\varepsilon , \mathbf{W}) Gt=(vt,ε,W),其中 v t \mathcal{v}_{t} vt 代表时间步 t t t 时,各个节点的观测值, ε \varepsilon ε 代表交通网络中的路段集合, W \mathbf{W} W 为路网的有权邻接矩阵。

图卷积

众所周知,CNN 主要用于处理具有规则网格结构的数据,如图像(二维网格)和视频(三维网格,考虑时间维度)。其图结构是横平竖直的,而交通网络显然不是这样的结构,其图结构数据由节点(vertices)和边(edges)组成,直接将 CNN 迁移到交通网络上显然是不现实的。

目前存在两种主要方法来将 CNNs 推广到交通路网式的结构形式:

  • 空间定义的扩展:这种方法通过将顶点重新排列成可以被标准卷积操作处理的某种网格形式。

  • 图傅立叶变换的频域操作:这种方法引入了谱框架,以便在频域中应用卷积,通常称为谱图卷积。

文章采用了第2种方式来进行图卷积。

谱域图卷积的基本过程如下:

Θ ∗ G x = Θ ( L ) x = Θ ( U Λ U T ) x = U Θ ( Λ ) U T x \Theta \ast_\mathcal{G}x=\Theta(L)x=\Theta(U\Lambda U^T)x=U\Theta(\Lambda)U^Tx ΘGx=Θ(L)x=Θ(UΛUT)x=UΘ(Λ)UTx

其中,图傅里叶的基为 U ∈ R n × n U \in \mathbb{R}^{n \times n} URn×n,其是图归一化拉普拉斯矩阵 L = I n − D − 1 2 W D − 1 2 = U Λ U T ∈ R n × n L=I_n-D^{-\frac{1}{2}}WD^{-\frac{1}{2}}=U \Lambda U^T \in \mathbb{R}^{n \times n} L=InD21WD21=UΛUTRn×n 的特征向量矩阵,其中 I n I_n In 为单位矩阵, D ∈ R n × n D \in \mathbb{R}^{n \times n} DRn×n 为图的度矩阵 D i i = ∑ j W i j D_{ii}=\sum_{j}W_{ij} Dii=jWij Λ ∈ R n × n \Lambda \in \mathbb{R}^{n \times n} ΛRn×n 为图归一化拉普拉斯矩阵 L L L 的特征值的对角矩阵,滤波器 Θ ( Λ ) \Theta(\Lambda) Θ(Λ) 也是一个对角矩阵。

模型

网络结构

STGCN 的网络结构如下图所示:

在这里插入图片描述

STGCN 由多个时空卷积块(ST-Conv Block)组成,每个时空卷积块都是一个 "三明治 "结构,由两个门控时间卷积层和一个空间图卷积层组成。

图卷积模块

该部分详细介绍了如何使用图卷积网络(Graph CNNs)来提取交通网络中的空间特征。在这一部分中,作者强调了交通网络通常以图结构组织,因此将道路网络数学化地表述为图是自然和合理的。然而,以前的研究往往忽略了交通网络的空间属性,如网络的连通性和全局性,因为它们将网络分割成多个段或网格。即使在网格上使用2-D卷积,由于数据建模的妥协,也只能粗略地捕获空间局部依赖。

为了克服这些限制,作者在模型中直接使用图卷积来处理图结构数据,以提取空间域中的深层次的模式和特征。尽管图卷积中核 Θ \Theta Θ 的计算可能因为与图傅立叶基的乘法而变得昂贵( O 2 \mathcal{O}^2 O2),但作者应用了两种近似策略来解决这个问题:

  • 切比雪夫多项式近似

通过将核 Θ \Theta Θ 限制为 Λ \Lambda Λ 的多项式来局部化滤波器并减少参数数量。使用切比雪夫多项式 T k ( x ) T_{k}(x) Tk(x) 来近似核,通过截断的多项式展开来实现。

论文在该处没有进行详细的推导,下面我们自己来展开推导一下:

图卷积的标准定义如下:

Θ ∗ G x = U Θ ( Λ ) U T x \Theta \ast_\mathcal{G}x=U\Theta(\Lambda)U^Tx ΘGx=UΘ(Λ)UTx

此时,可以简单得将 Θ ( Λ ) \Theta(\Lambda) Θ(Λ) 当做一个可学习的参数集合 θ i , j \theta_{i,j} θi,j,丢到神经网络中去训练(Spectral Networks and Locally Connected Networks on Graphs(2014))。

X : , j k + 1 = σ ( ∑ i = 1 f k − 1 U θ i , j k U T X : , i k ) \mathbf{X}_{:,j}^{k+1}=\sigma(\sum_{i=1}^{f_{k-1}}U\theta_{i,j}^{k}U^{T}\mathbf{X}_{:,i}^{k}) X:,jk+1=σ(i=1fk1Uθi,jkUTX:,ik)

其中:

X k ∈ R N × f k − 1 \mathbf{X}^{k} \in \mathbb{R}^{N \times f_{k-1}} XkRN×fk1 是输入的图信号,对应图上节点的输入特征。

N N N 是节点数量。

f k − 1 f_{k-1} fk1 是输入通道的数量。

f k f_{k} fk 是输出通道的数量。

θ i , j k \theta_{i,j}^{k} θi,jk 是一个可学习参数的对角矩阵,就跟神经网络中的 weight 一样是任意的参数,通过初始化赋值然后利用损失函数反向传播进行调整。

但上述模式存在以下问题:

(1)计算复杂:每一次前向传播,都要计算 U , θ i , j k , U T U,\theta_{i,j}^{k}, U^T U,θi,jk,UT三者的乘积,特别是对于大规模的图,计算的代价较高,需要 O 2 \mathcal{O}^2 O2的计算复杂度。

(2)卷积核需要 N N N 个参数,当图中的节点 N N N 很大时是不可取的。

此时,切比雪夫多项式闪亮登场(Hammond et al.(2017):Wavelets on graphs via spectral graph theory),由于切比雪夫多项式要求元素必须位于[-1, 1],所以首先需要将 Λ \Lambda Λ 缩放得到 Λ ^ = 2 Λ λ m a x − I n \hat{\Lambda}=\frac{2\Lambda}{\lambda_{max}-I_{n}} Λ^=λmaxIn。其中, λ m a x \lambda_{max} λmax 是图归一化拉普拉斯矩阵 L L L 的最大特征值,也叫谱半径。 θ ∈ R K \theta \in \mathbb{R}^{K} θRK 是切比雪夫系数的向量。切比雪夫多项式递归定义为 T k ( x ) = 2 x T k − 1 ( x ) − T k − 2 ( x ) T_{k}(x)=2xT_{k-1}(x)-T_{k-2}(x) Tk(x)=2xTk1(x)Tk2(x),其中, T 0 ( x ) = 1 , T 1 ( x ) = x T_{0}(x)=1,T_{1}(x)=x T0(x)=1,T1(x)=x

此时,图卷积可以定义为:

Θ ∗ G x = U Θ ( Λ ) U T x ≈ U [ ∑ k = 0 K − 1 θ k T k ( Λ ^ ) ] U T x = ∑ k = 0 K − 1 θ k [ U T k ( Λ ^ ) U T ] x = ∑ k = 0 K − 1 θ k T k ( U Λ ^ U T ) x = ∑ k = 0 K − 1 θ k T k ( L ^ ) x \begin{equation} \begin{split} \Theta \ast_\mathcal{G}x &= U\Theta(\Lambda)U^Tx \\ &\approx U[\sum_{k=0}^{K-1}\theta_{k}T_{k}(\hat{\Lambda})]U^{T}x \\ &= \sum_{k=0}^{K-1}\theta_{k}[UT_{k}(\hat{\Lambda})U^{T}]x \\ &= \sum_{k=0}^{K-1}\theta_{k}T_{k}(U\hat{\Lambda}U^{T})x \\ &= \sum_{k=0}^{K-1}\theta_{k}T_{k}(\hat{L})x \\ \end{split} \end{equation} ΘGx=UΘ(Λ)UTxU[k=0K1θkTk(Λ^)]UTx=k=0K1θk[UTk(Λ^)UT]x=k=0K1θkTk(UΛ^UT)x=k=0K1θkTk(L^)x

上式中的 U T k ( Λ ^ ) U T = T k ( U Λ ^ U T ) UT_{k}(\hat{\Lambda})U^{T}=T_{k}(U\hat{\Lambda}U^{T}) UTk(Λ^)UT=Tk(UΛ^UT) 如何证明呢?

可以采用数学归纳法来证明:

当k=0时:

U T 0 ( Λ ^ ) U T = U U T = 1 = T 0 ( U Λ ^ U T ) UT_{0}(\hat{\Lambda})U^{T}=UU^{T}=1=T_{0}(U\hat{\Lambda}U^{T}) UT0(Λ^)UT=UUT=1=T0(UΛ^UT)

当k=1时:

U T 1 ( Λ ^ ) U T = U Λ ^ U T = T 1 ( U Λ ^ U T ) UT_{1}(\hat{\Lambda})U^{T}=U\hat{\Lambda}U^{T}=T_{1}(U\hat{\Lambda}U^{T}) UT1(Λ^)UT=UΛ^UT=T1(UΛ^UT)

假设对于任意k>1, 满足:

U T k − 2 ( Λ ^ ) U T = T k − 2 ( U Λ ^ U T ) UT_{k-2}(\hat{\Lambda})U^{T}=T_{k-2}(U\hat{\Lambda}U^{T}) UTk2(Λ^)UT=Tk2(UΛ^UT)

U T k − 1 ( Λ ^ ) U T = T k − 1 ( U Λ ^ U T ) UT_{k-1}(\hat{\Lambda})U^{T}=T_{k-1}(U\hat{\Lambda}U^{T}) UTk1(Λ^)UT=Tk1(UΛ^UT)

则:

U T k ( Λ ^ ) U T = U [ 2 Λ ^ T k − 1 ( Λ ^ ) − T k − 2 ( Λ ^ ) ] U T = 2 U Λ ^ T k − 1 ( Λ ^ ) U T − U T k − 2 ( Λ ^ ) U T = 2 U Λ ^ ( U T U ) T k − 1 ( Λ ^ ) U T − U T k − 2 ( Λ ^ ) U T = 2 ( U Λ ^ U T ) U T k − 1 ( Λ ^ ) U T − U T k − 2 ( Λ ^ ) U T = 2 ( U Λ ^ U T ) T k − 1 ( U Λ ^ U T ) − T k − 2 ( U Λ ^ U T ) = T k ( U Λ ^ U T ) \begin{equation} \begin{split} UT_{k}(\hat{\Lambda})U^{T} &= U[2\hat{\Lambda}T_{k-1}(\hat{\Lambda})-T_{k-2}(\hat{\Lambda})]U^{T} \\ &= 2U\hat{\Lambda}T_{k-1}(\hat{\Lambda})U^{T}-UT_{k-2}(\hat{\Lambda})U^{T} \\ &= 2U\hat{\Lambda}(U^{T}U)T_{k-1}(\hat{\Lambda})U^{T}-UT_{k-2}(\hat{\Lambda})U^{T} \\ &= 2(U\hat{\Lambda}U^{T})UT_{k-1}(\hat{\Lambda})U^{T}-UT_{k-2}(\hat{\Lambda})U^{T} \\ &= 2(U\hat{\Lambda}U^{T})T_{k-1}(U\hat{\Lambda}U^{T})-T_{k-2}(U\hat{\Lambda}U^{T}) \\ &= T_{k}(U\hat{\Lambda}U^{T}) \end{split} \end{equation} UTk(Λ^)UT=U[2Λ^Tk1(Λ^)Tk2(Λ^)]UT=2UΛ^Tk1(Λ^)UTUTk2(Λ^)UT=2UΛ^(UTU)Tk1(Λ^)UTUTk2(Λ^)UT=2(UΛ^UT)UTk1(Λ^)UTUTk2(Λ^)UT=2(UΛ^UT)Tk1(UΛ^UT)Tk2(UΛ^UT)=Tk(UΛ^UT)

同时,

U Λ ^ U T = U ( 2 Λ λ m a x − I n ) U T = 2 ( U Λ U T ) λ m a x − U I n U T = 2 L λ m a x − I n = L ^ \begin{equation} \begin{split} U\hat{\Lambda}U^{T} &= U(\frac{2\Lambda}{\lambda _{max}}-I_{n})U^{T} \\ &= \frac{2(U\Lambda U^{T})}{\lambda _{max}} - UI_{n}U^{T} \\ &= \frac{2L}{\lambda _{max}} -I_{n} \\ &= \hat{L} \end{split} \end{equation} UΛ^UT=U(λmaxIn)UT=λmax2(UΛUT)UInUT=λmax2LIn=L^

至此,切比雪夫图卷积证明完毕,最终形式如下:

Θ ∗ G x = ∑ k = 0 K − 1 θ k T k ( L ^ ) x \Theta \ast_\mathcal{G}x = \sum_{k=0}^{K-1}\theta_{k}T_{k}(\hat{L})x ΘGx=k=0K1θkTk(L^)x

此时,时间复杂度从 O ( n 2 ) \mathcal{O}(n^2) O(n2) 降至 O ( K ∣ ε ∣ ) \mathcal{O}(K|\varepsilon|) O(Kε),其中, ∣ ε ∣ |\varepsilon| ε为图上边的数量。

  • 切比雪夫一阶近似

为了进一步减少图卷积的计算复杂度,Kipf 等人提出了一阶切比雪夫卷积网络(Semi-Supervised Classification with Graph Convolutional Networks(2017)),这篇论文基于前面的工作,正式成为 GCN 的开山之作,后面很多变种都是基于这篇文章的。

其实,该篇文章主要思想就是将切比雪夫卷积简化为仅取前两项,同时认为 λ m a x ≈ 2 \lambda_{max} \approx 2 λmax2,即:

Θ ∗ G x = ∑ k = 0 K − 1 θ k T k ( L ^ ) x ≈ θ 0 T 0 ( L ^ ) x + θ 1 T 1 ( L ^ ) x = θ 0 ∗ 1 ∗ x + θ 1 ∗ L ^ ∗ x = θ 0 x + θ 1 L ^ x = θ 0 x + θ 1 ( 2 L λ m a x − I n ) x = θ 0 x + θ 1 ( L − I n ) x = θ 0 x + θ 1 ( ( I n − D − 1 2 W D − 1 2 ) − I n ) x = θ 0 x − θ 1 ( D − 1 2 W D − 1 2 ) x \begin{equation} \begin{split} \Theta \ast_\mathcal{G}x &= \sum_{k=0}^{K-1}\theta_{k}T_{k}(\hat{L})x \\ &\approx \theta_{0}T_{0}(\hat{L})x + \theta_{1}T_{1}(\hat{L})x \\ &= \theta_{0}*1*x + \theta_{1} * \hat{L} * x \\ &= \theta_{0}x + \theta_{1}\hat{L}x \\ &= \theta_{0}x + \theta_{1}(\frac{2L}{\lambda_{max}}-I_{n})x \\ &= \theta_{0}x + \theta_{1}(L-I_{n})x \\ &= \theta_{0}x + \theta_{1}((I_n-D^{-\frac{1}{2}}WD^{-\frac{1}{2}})-I_{n})x \\ &= \theta_{0}x - \theta_{1}(D^{-\frac{1}{2}}WD^{-\frac{1}{2}})x \\ \end{split} \end{equation} ΘGx=k=0K1θkTk(L^)xθ0T0(L^)x+θ1T1(L^)x=θ01x+θ1L^x=θ0x+θ1L^x=θ0x+θ1(λmax2LIn)x=θ0x+θ1(LIn)x=θ0x+θ1((InD21WD21)In)x=θ0xθ1(D21WD21)x

为了减少参数数量,一阶切比雪夫卷积网络假设 θ = θ 0 = − θ 1 \theta = \theta_{0} = -\theta_{1} θ=θ0=θ1,此时上式可以继续化简:

Θ ∗ G x ≈ θ 0 x − θ 1 ( D − 1 2 W D − 1 2 ) x ≈ θ x + θ ( D − 1 2 W D − 1 2 ) x = θ ( I n + D − 1 2 W D − 1 2 ) x \begin{equation} \begin{split} \Theta \ast_\mathcal{G}x &\approx \theta_{0}x - \theta_{1}(D^{-\frac{1}{2}}WD^{-\frac{1}{2}})x \\ &\approx \theta x + \theta (D^{-\frac{1}{2}}WD^{-\frac{1}{2}})x \\ &= \theta (I_{n}+D^{-\frac{1}{2}}WD^{-\frac{1}{2}})x \end{split} \end{equation} ΘGxθ0xθ1(D21WD21)xθx+θ(D21WD21)x=θ(In+D21WD21)x

I n + D − 1 2 W D − 1 2 I_{n}+D^{-\frac{1}{2}}WD^{-\frac{1}{2}} In+D21WD21 是范围为 [ 0 , 2 ] [0,2] [0,2] 的特征值。因此,如果在深度神经网络模型中使用该算子,则反复应用该算子会导致数值不稳定(发散)和梯度爆炸/消失。

为了解决该问题, 引入了一个renormalization trick:

I n + D − 1 2 W D − 1 2 ⟶ W ^ = W + I n D ^ − 1 2 W ^ D ^ − 1 2 I_{n}+D^{-\frac{1}{2}}WD^{-\frac{1}{2}} \overset{\hat{W}=W+I_{n}}{\longrightarrow}\hat{D}^{-\frac{1}{2}}\hat{W}\hat{D}^{-\frac{1}{2}} In+D21WD21W^=W+InD^21W^D^21

最终的卷积公式如下:

Θ ∗ G x ≈ θ x + θ ( D − 1 2 W D − 1 2 ) x = θ ( I n + D − 1 2 W D − 1 2 ) x ≈ θ ( D ^ − 1 2 W ^ D ^ − 1 2 ) x \begin{equation} \begin{split} \Theta \ast_\mathcal{G}x &\approx \theta x + \theta (D^{-\frac{1}{2}}WD^{-\frac{1}{2}})x \\ &= \theta (I_{n}+D^{-\frac{1}{2}}WD^{-\frac{1}{2}})x \\ &\approx \theta (\hat{D}^{-\frac{1}{2}}\hat{W}\hat{D}^{-\frac{1}{2}})x \end{split} \end{equation} ΘGxθx+θ(D21WD21)x=θ(In+D21WD21)xθ(D^21W^D^21)x

整个推导过程还是比较简单的,但其实我还有2个疑问:

  • 假设 θ = θ 0 = − θ 1 \theta = \theta_{0} = -\theta_{1} θ=θ0=θ1 是否成立。
  • 最后的 renormalization trick 有点不严谨。

D ^ − 1 2 W ^ D ^ − 1 2 = ( D + I n ) − 1 2 ( W + I n ) ( D + I n ) − 1 2 \hat{D}^{-\frac{1}{2}}\hat{W}\hat{D}^{-\frac{1}{2}}=(D+{\color{Red} I_{n}} )^{-\frac{1}{2}}(W+{\color{Red} I_{n}} )(D+{\color{Red} I_{n}} )^{-\frac{1}{2}} D^21W^D^21=(D+In)21(W+In)(D+In)21

I n + D − 1 2 W D − 1 2 = D − 1 2 ( W + D ) D − 1 2 I_{n}+D^{-\frac{1}{2}}WD^{-\frac{1}{2}}=D^{-\frac{1}{2}}(W+{\color{Red} D} )D^{-\frac{1}{2}} In+D21WD21=D21(W+D)D21

显然,两者还是有些差距的,这也是我前面公式里用 ≈ \approx 而没有用 = = = 的原因。

定义在单变量 x ∈ R n x \in \mathbb{R}^{n} xRn 上的图卷积 ∗ G *\mathcal{G} G 可以扩展到多变量。

比如: 输入维度为 C i C_{i} Ci,输出维度为 C o C_{o} Co,则图卷积过程可以定义为:

y i = ∑ i = 1 C i Θ i , j ( L ) x i ∈ R n , 1 ≤ j ≤ C o y_{i} = \sum_{i=1}^{C_i}\Theta_{i,j}(L)x_{i} \in \mathbb{R}^{n}, 1\le j \le C_{o} yi=i=1CiΘi,j(L)xiRn,1jCo

切比雪夫系数 Θ i , j ∈ R K \Theta_{i,j} \in \mathbb{R}^{K} Θi,jRK,这里可以理解为输入的每一个维度都和输出的一个维度通过 Θ i , j \Theta_{i,j} Θi,j 关联,而切比雪夫多项式进行了 K K K 阶截断,所以均有 K 个值,显然,所有切比雪夫系数的集合即为 Θ ∈ R K × C i × C o \Theta \in \mathbb{R}^{K \times C_{i} \times C_o} ΘRK×Ci×Co。此时,相当于是2维图卷积。

进一步,如下图所示:

在这里插入图片描述

输入有 M 个时间步,此时输入为 X ∈ R M × n × C t \mathcal{X} \in \mathbb{R}^{M \times n \times C_{t}} XRM×n×Ct,卷积核则变为 Θ ∈ R M × K × C i × C o \Theta \in \mathbb{R}^{M \times K \times C_{i} \times C_{o}} ΘRM×K×Ci×Co

用于提取时间特征的门控卷积

STGCN 考虑到 RNN 类模型迭代耗时、门控机制复杂、对动态变化响应慢等问题,而 CNN 则具有训练快速、结构简单、不受前序依赖性约束等优点,故其决定采用卷积的方式来提取时间依赖。

对于单个节点来讲,门控卷积模块的输入为 Y ∈ R M × C i Y \in \mathbb{R}^{M \times C_{i}} YRM×Ci,卷积核为 Γ ∈ R K t × C i × 2 C o \Gamma \in \mathbb{R}^{K_{t} \times C_{i} \times 2C_{o}} ΓRKt×Ci×2Co,由于卷积未使用 padding 策略,所以每卷积一次,序列的长度会减少 ( K t − 1 ) (K_{t}-1) (Kt1),故原始序列 Y Y Y 经过卷积核 Γ \Gamma Γ 作用后,生成的结果 [ P   Q ] ∈ R ( M − K t + 1 ) × ( 2 C o ) [P \space Q] \in \mathbb{R}^{(M-K_{t}+1)\times (2C_{o})} [P Q]R(MKt+1)×(2Co) [ P   Q ] [P \space Q] [P Q] 代表将卷积后的序列根据特征维度(第2个维度)均分为2个序列 P P P Q Q Q

然后 P P P Q Q Q 执行如下操作:

Γ ∗ τ Y = P ⊙ σ ( Q ) ∈ R ( M − K t + 1 ) × C o \Gamma *\tau Y=P\odot \sigma (Q) \in \mathbb{R}^{(M-K_{t}+1) \times C_{o}} ΓτY=Pσ(Q)R(MKt+1)×Co

P P P 和 Sigmoid函数激活后的 Q Q Q 进行哈德玛积作为最终时许卷积的输出,上述方式也被称为 GLU 门控激活函数。

之所以称之为门控,主要是 σ ( Q ) \sigma (Q) σ(Q) 输出的范围为 [ 0 , 1 ] [0, 1] [0,1],跟一个门一样,对 P P P 中的信息进行筛选,如果你对 LSTM 中的门控机制熟悉的话,相信很容易理解。

在时间卷积模块,论文还采用了残差连接的方式来优化网络,故整个门控时间卷积模块的示意图如下:

在这里插入图片描述

扩展到整个路网,此时输入变为了 Y ∈ R M × n × C i \mathcal{Y} \in \mathbb{R}^{M \times n \times C_{i}} YRM×n×Ci,但卷积核仍为 Γ \Gamma Γ,即所有节点的卷积核是相同的。

时空卷积块

时间卷积和空间卷积交错分布,如下图形成了时空卷积块 ST-Conv Block。
在这里插入图片描述

由图所示,两个时间卷积夹着一个空间卷积,类似于三明治。

ST-Conv Block 的输入和输出均为 3-D 张量,其中输入 v l ∈ R M × n × C l \mathcal{v}^{l} \in \mathbb{R}^{M \times n \times C^{l}} vlRM×n×Cl,由于每个时间卷积会将序列的时间长度减少 ( K t − 1 ) (K_t-1) (Kt1),故输出为 v l + 1 ∈ R ( M − 2 ( K t − 1 ) ) × n × C l + 1 \mathcal{v}^{l+1} \in \mathbb{R}^{(M-2(K_t-1)) \times n \times C^{l+1}} vl+1R(M2(Kt1))×n×Cl+1,每个 ST-Conv Block 的计算过程可以概括如下:

v l + 1 = Γ 1 l ∗ τ R E L U ( Θ l ∗ g ( Γ 0 l ∗ τ v l ) ) \mathcal{v}^{l+1} = \Gamma _{1}^{l}*\tau RELU(\Theta^{l}*\mathcal{g}(\Gamma_{0}^{l}*\tau \mathcal{v}^{l})) vl+1=Γ1lτRELU(Θlg(Γ0lτvl))

堆叠两层 ST-Conv Block 后,模型最后再接一个额外的时间卷积和全连接层作为输出层。

时间卷积层的目的是将第二个 ST-Conv Block 的输出映射为单步预测,然后得到最后的输出为 Z ∈ R n × c Z \in \mathbb{R}^{n \times c} ZRn×c,最后再接一层全连接层将特征维度由 c c c 转换为1。

ST-GCN 模型选取 L2 loss 作为损失函数:

L ( v ^ ; W θ ) = ∑ t ∣ ∣ v ^ ( v t − M + 1 , . . . , v t , W θ ) − v t + 1 ∣ ∣ 2 L(\hat{\mathcal{v}};W_{\theta}) = \sum _{t} ||\hat{\mathcal{v}}(\mathcal{v}_{t-M+1},...,\mathcal{v}_{t}, W_{\theta})-\mathcal{v}_{t+1}||^2 L(v^;Wθ)=t∣∣v^(vtM+1,...,vt,Wθ)vt+12

实验

实验数据集

模型选择了 BJER4 和 PeMSD7(M/L) 作为验证数据集。

BJER4 是北京市东4环区域线圈采集的车速数据,共有12条道路,时间窗为5分钟,数据范围为2014年7月1日至8月31日,周末除外。论文选择第1个月的历史车速记录作为训练集,其余的分别作为验证集和测试集。

PeMS 数据集是美国加州基于超过 39,000 个传感器采集得到的交通流特征数据集,而 PeMSD7 是在加州的第7区随机选择了1个中型数据集(PeMSD7(M))和1个大型数据集(PeMSD7(L)),分别包含 228 个检测器和 1026 个检测器,同时,数据集还将 30 秒的数据样本中汇总到 5 分钟的间隔。数据范围为2012年5月1日到2012年6月30日,周末除外。论文选择第1个月的历史车速记录作为训练集,其余的分别作为验证集和测试集。

模型配置

ST-Conv Block 中3层的特征维度分别设置为 64、16和64,门控时序卷积核的 K t K_{t} Kt 参数设置为3,STGCN(Cheb) 的图卷积核的 K K K 也设置为 3,相应的 STGCN( 1 s t 1^{st} 1st) 为 STGCN(Cheb) 的一阶近似,所以其 K K K 为1。

训练选取的梯度求解器为 RMSprop ,最大迭代 Epoch 次数为50,数据批次为 50,初始学习率为 1 0 − 3 10^{-3} 103,并每5个 Epoch 将学习率调整为现有的 70%。

实验结果

在这里插入图片描述

同时和 RNN 类模型对比了训练时间。

在这里插入图片描述

模型点评

整体来讲,该篇论文的创新点在当时(2017,2018)确实比较有开创性,采用纯卷积的方式将时空依赖的学习和时间依赖的学习结合起来,在当时也达到了 SOTA 的效果,所以后续很多时空预测的论文都把该篇论文作为 baseline。

但创新整体还属于 A+B 的范畴,由于当初时序卷积算法 WaveNet 和 TCN 还未发表,故 ST-GCN 的时间卷积模块设计得较为简单。同时,空间依赖学习这条线上在当时确实也就切比雪夫GCN 和 GCN 比较能打。而随着 GAT、扩散图卷积、动态图卷积和Graph Transformer等技术的不断出现,空间依赖挖掘这上面的选择也越来越多。

所以,可以借鉴 STGCN 的模型设计思想,选择1个SOTA的时序子模型和1个SOTA的图模型,并对两者设计1个结合的机制,如果还能达到 SOTA 的效果,那一篇优秀的时空预测模型就诞生了,是不是很心动,哈哈哈,那就去大胆实践(水论文)吧。

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STGCN是Spatial Temporal Graph Convolutional Networks的缩写,是一种基于图卷积神经网络的方法,主要用于处理时空数据的建模和预测STGCN使用图卷积神经网络的思想来处理时空数据。在时空数据中,每个时间点都可以看作是一个图的节点,不同时间点之间的关系可以通过图中的边来表示。STGCN通过建立时空图,将时空数据转化为图结构,从而能够有效地利用时空关系来提取特征。 在STGCN中,首先需要构建空间和时间图结构。空间图表示不同节点之间的空间关系,即某个节点与其周围节点之间的连接。时间图表示不同时间点之间的关系,即不同时间点之间的连接。然后,通过图卷积神经网络进行特征学习和预测。 具体而言,在STGCN中,首先将时空数据转化为图结构,然后使用图卷积神经网络分别对空间和时间维度进行特征学习。在空间维度上,利用空间图结构对节点间的空间关系进行建模,通过图卷积神经网络学习每个节点的空间特征。在时间维度上,利用时间图结构对不同时刻之间的关系进行建模,通过图卷积神经网络学习每个时间点的时间特征。最后,将空间和时间特征进行融合,用于时空数据的建模和预测。 总之,STGCN一种基于图卷积神经网络的方法,通过建立时空图结构,并利用图卷积神经网络对空间和时间特征进行学习,从而能够有效地处理时空数据的建模和预测

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值