论文阅读笔记:ASTGCN-Attention Based Spatial-Temporal Graph Convolutional Networksfor Traffic Flow Forecas

本文提出一种基于注意力机制的时空图卷积网络(ASTGCN),用于交通流量预测。模型能有效捕捉交通数据的动态时空相关性,通过三个时间依赖组件——近期、日周期和周周期,结合空间-时间注意力机制和卷积,实现精确预测。
AI助手已提取文章相关产品:

参考:交通流量预测-混合注意力时空图卷积-ASTGCN_来自海王星的博客-优快云博客

原文:

代码:

Abstract:预测交通流是交通领域的研究人员和从业人员的一个关键问题。然而,由于交通流通常表现出高度的非线性和复杂的模式,它是非常具有挑战性的。大多数现有的交通流预测方法,由于缺乏对交通数据的动态时空关联的建模能力,因此不能产生令人满意的预测结果。在本文中,我们提出了一种新型的基于注意力的时空图解网络(ASTGCN)模型来解决交通流量预测问题。ASTGCN主要由三个依赖性组件组成,分别模拟交通流的三个时间属性,即近期、日周期和周周期依赖性。更具体地说,每个组件包含两个主要部分:1)空间-时间关注机制,以有效捕捉交通数据中的动态空间-时间相关性;2)空间-时间卷积,同时采用图卷积来捕捉空间模式和普通标准卷积来描述时间特征。这三个部分的输出被加权融合以产生最终的预测结果。在加州交通局性能测量系统(PeMS)的两个真实世界数据集上的实验表明,拟议的ASTGCN模型优于最先进的基线。

一、introduction

公路交通流量预测是一个典型的空间-时间数据预测问题。交通数据被记录在固定的时间点和分布在连续空间的固定地点。显然,在相邻地点和时间戳所做的观测不是独立的,而是相互动态关联的。因此,解决此类问题的关键是有效地提取数据的空间-时间相关性。图1展示了交通流量(也可以是车速、车道占用率等)的时空相关性。两点之间的粗线代表它们的相互影响强度。线的颜色越深,影响就越大。在空间维度上(图1(a)),我们可以发现,不同的地点对A有不同的影响,甚至同一地点随着时间的推移对A的影响也不同。在时间维度上(图1(b)),不同地点的历史观测对A在未来不同时间的交通状态有不同的影响。总之,高速公路网络上的交通数据的相关性在空间维度和时间维度上都表现出强烈的动态性。如何探索非线性和复杂的时空数据,发现其内在的时空规律,并进行准确的交通流预测,是一个非常具有挑战性的问题。

幸运的是,随着运输业的发展,许多摄像机、传感器和其他信息收集设备已经部署在高速公路上。每个设备都被放置在一个独特的地理空间位置,不断产生关于交通的时间序列数据。这些设备积累了大量丰富的交通时间序列数据和地理信息,为交通预测提供了坚实的数据基础。许多研究人员已经为解决这些问题做出了巨大努力。早期,时间序列分析模型被应用于交通预测问题。然而,在实践中,它们很难处理不稳定和非线性的数据。后来,传统的机器学习方法被开发出来,以建立更复杂的数据模型,但它们仍然难以同时考虑高维交通数据的空间-时间相关性。此外,这类方法的预测性能在很大程度上依赖于特征工程,这往往需要相应领域的专家提供大量的经验。近年来,许多研究人员使用深度学习方法来处理高维空间-时间数据,即采用卷积神经网络(CNN)来有效提取基于网格的数据的空间特征;采用图卷积神经网络(GCN)来描述基于图的数据的空间相关性。然而,这些方法仍然无法同时模拟交通数据的空间时间特征和动态关联性。

为了解决上述挑战,我们提出了一个新颖的深度学习模型。基于注意力的时空图卷积网络(ASTGCN)来共同预测交通网络上每个位置的交通流量。这个模型可以在原始的基于图的交通网络上直接处理交通数据,并有效地捕捉动态的空间-时间特征。本文的主要贡献总结如下。
- 我们开发了一种空间-时间注意力机制来学习交通数据的动态空间-时间关联性。具体来说,空间注意力被用来模拟不同地点之间复杂的空间相关性。应用时间注意力来捕捉不同时间之间的动态时间相关性。
- 一个新的空间-时间卷积模块被设计用来模拟交通数据的空间-时间相关性。它包括从原始的基于图形的交通网络结构中捕捉空间特征的图形卷积和描述附近时间片的依赖关系的时间维度的卷积。
- 我们在真实世界的高速交通数据集上进行了广泛的实验,验证了我们的模型与现有的基线相比达到了最佳的预测性能。

二、 related work

介绍了下traffic forecasting、graph convolution和attention mechanism,不再赘述。

三、Preliminaries

Traffic networks:G=(V, E. A),V是N点的集合,E是边的集合,A是邻接矩阵。交通网络G上的每个节点以相同的采样频率检测F个测量值,也就是说,每个节点在每个时间片上生成一个长度为F的特征向量。(本文F=3,分别测量flow\occupy\speed)

Traffic Flow Forecasting:X  ∈ R N×F×τ,N个节点,F个特征,τ个时间片。

Problem:Y∈ R N×Tp,N个节点,未来Tp个时间段的flow特征。

四、Attention Based Spatial-Teporal Graph Convolutional Networks

图3是本文提出的ASTGCN模型的总体框架。它由三个具有相同结构的独立组件组成,分别用来模拟历史数据的近期、日周期和周周期的依赖关系。

这三个组件具有相同的网络结构,每个组件由几个时空块和一个全连接层组成。每个时空块中都有一个时空关注模块和一个时空卷积模块。为了优化训练效率,我们在每个组件中采用了残差学习框架(He等人,2016)。最后,三个组件的结果根据参数矩阵进一步合并,得到最终的预测结果。整个网络结构是精心设计的,以描述交通流的动态时空关联性。

4.1 Spatial-Temporal Attention

Spatial attention:在空间维度上,不同地点的交通状况相互影响,而且相互影响是高度动态的。在这里,我们使用注意机制(Feng等人,2017,  Effective deep memory networks for distant supervised relation extraction)来适应性地捕捉空间维度上节点之间的动态关联性。 

构造空间注意力矩阵:

 矩阵中元素:S中的元素Si,j的值在语义上代表了节点i和节点j之间的相关强度。然后用softmax函数来保证节点的注意力权重之和为1。在进行图的卷积时,我们将用空间注意力矩阵来动态调整节点间的影响权重。

Temporal attention:在时间维度上,不同时间片的交通状况之间存在着相关性,而且在不同情况下,相关性也是不同的。同样地,我们使用注意力机制来适应性地对数据赋予不同的重要性:

时间注意力矩阵:

矩阵中元素: 时间关联矩阵E是由不同的输入决定的。E中一个元素Ei,j的值在语义上表示时间i和j之间的依赖强度。最后,E被softmax函数归一化。我们直接将归一化的时间注意力矩阵应用于输入,并通过合并相关信息得到    从而动态地调整输入。

4.2 Spatial-Temporal Convolution

空间-时间注意力模块让网络自动地对有价值的信息给予相对更多的关注。由注意力机制调整的输入被送入空间-时间卷积模块(spatial-temporal convolution module),其结构如图5所示。这里提出的空间-时间卷积模块由空间维度的图卷积和时间维度的卷积组成,前者捕获来自邻域的空间依赖,后者利用来自附近时间的时间依赖。

Graph convolution in spatial dimension:介绍了图卷积的基础(基于频域的卷积、拉普拉斯矩阵、傅里叶变换),然而,当图的规模很大时,直接对拉普拉斯矩阵进行特征值分解是非常昂贵的。因此,本文采用切比雪夫多项式实现图卷积(ChebNet),来近似但有效地解决这个问题(Si monovsky和Komodakis 2017)。(这部分请看中文版)

Convolution in temporal dimension:通过空间维图卷积操作对输入数据的空间特征进行建模之后,再用标准 2 维卷积捕获时间维特征,并采用ReLU激活函数。以近期组件的第r层操作为例:

 总之,一个空间-时间卷积模块能够很好地捕捉交通数据的时间和空间特征。一个空间-时间注意力模块(spatial-temporal attention module)和一个空间-时间卷积模块(a spatial-temporal convolution module)构成了一个空间-时间块(STBlock)。

多个时空块被堆叠起来,以进一步提取更大范围的动态时空关联性。最后,附加一个全连接层以确保每个组件的输出与预测目标具有相同的维度和形状。最后的全连接层使用ReLU作为激活函数。

4.3 Multi-Component Fusion

在本节中,我们将讨论如何融合近期、日周期和周周期组件的输出.以对整个路网周五上午 8 点的流量进 行预测为例,有些地方早晚高峰周期规律明显,其日周期、周周期组件的预测结果更为重要;而有些地方不存在 明显的交通周期规律,日周期、周周期组件对预测目标起到的帮助较小.可见,不同节点受不同组件的影响程度 是不一样的,在融合不同组件的输出结果时,其影响程度也应该不同.因此,应该从历史数据中进行学习.融合后 的最终预测结果表示为

其中,圈乘是矩阵对应元素相乘的哈达马积;Wh,Wd,Ww 是学习参数,反映了近期、日周期、周周期这 3 种时间维特 性对预测目标的影响程度。

五、Experiments

Datasets:PeMSD4 、 PeMSD8

Preprocessing:我们删除了一些多余的探测器,以确保任何相邻的探测器之间的距离都超过3.5英里。最后,PeMSD4中有307个检测器,PeMSD8中有170个检测器。交通数据每5分钟汇总一次,因此每个检测器每天包含288个数据点。缺失的数值由线性插值来填补。此外,数据通过零均值归一化 x ′ = x - mean(x)进行转换,使平均值为0。

Setting:我们在MXNet1框架的基础上实现了ASTGCN模型。根据Kipf和Welling(2017),我们测试切比雪夫多项式的项数K∈{1,2,3}。随着K的变大,预测性能略有提高。暂时性的内核大小也是如此。考虑到计算效率和预测性能的改善程度,我们设定K=3,沿时间维度的核大小为3。所有的时间卷积层使用64个卷积核,数据的时间跨度通过控制时间对话的步长进行调整。对于三个片段的长度,我们将其设定为 Th = 24, Td = 12, Tw = 24。预测窗口的大小Tp=12,也就是说,我们的目标是预测未来一小时内的交通流量。在本文中,估计器和地面实况之间的均方误差(MSE)被用作损失函数并通过反向传播最小化。在训练阶段,批次大小为64,学习率为0.0001。此外,为了验证这里提出的时空注意力机制的影响,我们还设计了ASTGCN的一个退化版本,名为多分量时空图卷积网络(MSTGCN),它摆脱了时空注意力。MSTGCN的设置与ASTGCN的设置相同,只是没有空间-时间注意力。

Baselines:HA、ARIMA、VAR、LSTM、GRU、STGCN、GLU-STGCN、GeoMAN

Comparison and Result Analysis:从表1可以看出,我们的ASTGCN在这两个数据集的所有评估指标方面都取得了最好的性能。我们可以看到,传统的时间序列分析方法的预测结果通常并不理想,表明这些方法对非线性和复杂交通数据的建模能力有限。相比之下,基于深度学习的方法普遍比传统的时间序列分析方法获得了更好的预测结果。其中,模拟考虑时间和空间相关性的模型,包括STGCN、GLU-STGCN、GeoMAN和我们的两个版本的模型,都优于LSTM和GRU等传统深度学习模型。此外,GeoMAN的表现比STGCN和GLU-STGCN更好,这表明GeoMAN中应用的多层次注意力机制在捕捉交通数据的动态变化方面是有效的。我们的MSTGCN,在没有任何关注机制的情况下,取得了比以往最先进的模型更好的结果,证明了我们的模型在描述高速公路交通数据的空间-时间特征方面的优势。然后与空间-时间关注机制相结合,我们的ASTGCN进一步减少了预测误差。

图6显示了随着预测间隔的增加,各种方法的预测性能的变化。总的来说,随着预测间隔时间的延长,相应的预测难度也越来越大,因此预测误差也越来越大。从图中可以看出,只考虑时间相关性的方法在短期预测中可以取得良好的效果,如HA、ARIMA、LSTM和GRU。然而,随着预测区间的增加,它们的预测能力急剧下降。相比之下,VAR的性能下降得比这些方法慢。这主要是由于VAR可以同时考虑空间-时间的相关性,这在长期预测中更为重要。然而,当交通网络的规模较大时,即模型中考虑的时间序列较多时,VAR的预测误差就会增加,如图6所示,其在PeMSD4上的表现比PeMSD8上的表现差。深度学习方法的误差随着预测区间的增加而缓慢增加,其总体性能良好。我们的ASTGCN模型几乎在所有时候都能达到最好的预测性能。特别是在长期预测中,ASTGCN与其他基线之间的差异更为显著,这表明将注意力机制与图形卷积相结合的策略可以更好地挖掘交通数据的动态时空模式。

横轴时间间隔。纵轴RMSE、MAE

为了直观地研究注意力机制在我们模型中的作用,我们进行了一个案例研究:从PeMSD8中挑出一个有10个检测器的子图,并显示训练集中检测器的平均空间注意力矩阵。如图7右侧所示,在空间注意力矩阵中,第i行代表每个检测器与第i个检测器之间的关联强度。例如,看最后一行,我们可以知道第9个检测器上的交通流与第3和第8个检测器上的交通流密切相关。这是合理的,因为这三个检测器在实际交通网络中的空间很接近,如图7左侧所示。因此,我们的模型不仅实现了最佳的预测性能,而且还显示了可解释性的优势。

 六、Conclusion and Future Work

本文提出了一种新型的基于注意力的空间-时间图卷积模型,称为ASTGCN,并成功地应用于交通流预测。该模型结合了空间-时间注意力机制和空间-时间卷积,包括空间维度的图卷积和时间维度的标准卷积,以同时捕捉交通数据的动态空间-时间特征。在两个真实世界的数据集上的实验表明,所提出的模型的预测精度优于现有模型。
实际上,高速公路的交通流量受到许多外部因素的影响,如天气和社会事件。在未来,我们将把一些外部影响因素考虑在内,以进一步提高预测的准确性。由于AST GCN是一个针对图结构数据的通用空间-时间预测框架,我们也可以将其应用于其他务实的应用,如估计到达时间。

您可能感兴趣的与本文相关内容

<think>嗯,用户想了解ASTGCN模型的结构和实现。首先,我得回忆一下这个模型的相关信息。根据引用中的内容,ASTGCN结合了注意力机制和图卷积来处理时空特征。交通数据有时间和空间上的复杂性,所以模型需要同时捕捉这两方面。 模型架构应该分为空间和时间两个部分。空间方面,图卷积网络(GCN)可以处理路网的结构,但交通流量是动态变化的,所以需要注意力机制来调整节点间的关系。引用3提到不同位置的历史数据对未来预测的影响不同,这说明空间注意力是必要的。时间方面,引用4指出过去的交通流会影响未来,所以时间注意力也很重要,用来捕捉不同时间点的重要性。 接下来,模型的具体模块可能包括时空块的堆叠。每个块可能有空间注意力图卷积和时间注意力卷积,再加上门控机制。比如,空间注意力层动态调整邻接矩阵,时间注意力层处理序列中的关键时间点。然后,多组件融合部分可能需要处理不同时间尺度的数据,如最近、日周期、周周期,引用4中的X_h应该对应最近时段的输入。 实现细节方面,图卷积可能用切比雪夫多项式近似,注意力机制通过可学习的参数计算权重。时间卷积可能用一维卷积或LSTM,但结合注意力的话,可能采用自注意力机制。代码示例部分需要展示这些组件的实现,比如定义空间注意力层、时间卷积层,以及如何整合它们。 还要注意引用的内容,比如引用2说明模型在长期预测中的优势,引用5澄清节点特征的组成,每个节点在时间t有F个特征。因此,输入数据的维度应该是N×F×T,其中N是节点数,F是特征数,T是时间步长。 可能还需要考虑如何将多个时空块的输出融合,以及最终的预测层设计。损失函数通常用MAE或RMSE。用户可能需要具体的代码示例,所以需要用PyTorch或TensorFlow框架展示关键层的实现。 最后,相关问题部分要涵盖模型组件的作用、与传统模型的区别、注意力机制的具体应用、数据预处理和实际部署挑战。这能帮助用户更全面地理解ASTGCN的应用和优化方向。</think>### 基于注意力机制的空间-时间图卷积网络(ASTGCN)模型架构及实现 #### 1. 核心设计目标 ASTGCN旨在通过融合图卷积网络(GCN)和注意力机制,捕捉交通数据中的**动态时空关联性**。交通流具有以下特点: - **空间动态性**:路网节点间的关系随时间变化(如早晚高峰拥堵传播)[^3] - **时间动态性**:不同历史时段对预测的影响权重不同(如最近5分钟与1小时前数据的重要性差异)[^4] #### 2. 模型架构 ``` 输入层 → 多组件时空块堆叠 → 融合层 → 输出层 ``` ##### 2.1 空间-时间块(Spatio-Temporal Block) 每个模块包含三层结构: ```python 时空注意力层 → 空间图卷积 → 时间卷积 → 残差连接 ``` - **空间注意力层** 动态计算节点间关联权重矩阵: $$S = \text{softmax}\left( \sigma(\mathbf{X}W_1) \cdot (\mathbf{X}W_2)^T \right)$$ 其中$W_1, W_2$为可学习参数,$\sigma$为激活函数[^2] - **时间注意力层** 计算时间维度权重: $$E = \text{softmax}\left( \text{tanh}(\mathbf{X}U_1) \cdot (\mathbf{X}U_2)^T \right)$$ 通过调整历史时间步的重要性增强时间建模能力 - **门控时序卷积** 使用一维空洞卷积提取多尺度时序特征: ```python class TemporalConv(nn.Module): def __init__(self, in_channels, filters, kernel_size=3): super().__init__() self.conv = nn.Conv1d(in_channels, 2*filters, kernel_size, padding='same') self.tanh = nn.Tanh() self.sigmoid = nn.Sigmoid() def forward(self, x): conv_out = self.conv(x) gate, filter = torch.split(conv_out, split_size, dim=1) return self.tanh(filter) * self.sigmoid(gate) # 门控机制 ``` ##### 2.2 多组件融合 同时处理三种时间模式的数据输入: - **最近时段数据**:$\mathcal{X}_h \in \mathbb{R}^{N \times F \times T_h}$(直接关联当前状态) - **日周期数据**:$\mathcal{X}_d \in \mathbb{R}^{N \times F \times T_d}$(捕捉早晚高峰模式) - **周周期数据**:$\mathcal{X}_w \in \mathbb{R}^{N \times F \times T_w}$(识别工作日/周末差异) #### 3. 关键实现细节 ```python class ASTGCN(nn.Module): def __init__(self, node_num, feat_dim, pred_len): super().__init__() # 空间注意力层 self.spatial_att = SpatialAttention(feat_dim) # 时间卷积层 self.temporal_conv = TemporalConv(feat_dim, 64) # 图卷积层(使用切比雪夫多项式近似) self.gconv = ChebConv(64, 64, K=3) # K为多项式阶数 # 多组件融合 self.fusion = nn.Linear(3*64, pred_len) def forward(self, x_h, x_d, x_w): # 处理最近时段数据 s_att = self.spatial_att(x_h) x_h = F.relu(self.gconv(x_h, s_adj_matrix)) # 动态调整邻接矩阵 x_h = self.temporal_conv(x_h.transpose(1,2)).transpose(1,2) # 类似处理日周期、周周期数据 ... # 特征融合 fused = torch.cat([x_h, x_d, x_w], dim=-1) return self.fusion(fused) ``` #### 4. 模型优势分析 1. **动态空间建模**:通过注意力机制自动学习节点间动态权重,优于传统GCN的固定邻接矩阵 2. **多粒度时间建模**:同时捕捉短期波动和长期周期模式[^4] 3. **并行化处理**:不同时间组件可并行计算提升效率
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值