论文笔记《ST-GRAT: A Novel Spatio-temporal Graph Attention Network for Accurately Forecasting》

文章《ST-GRAT: A Novel Spatio-temporal Graph Attention Network for Accurately Forecasting Dynamically Changing Road Speed》

1. INTRODUCTION

  • 预测道路交通速度的难点:(1)路段类型不同;(2)速度的突然变化;(3)路段间的空间依赖性。
  • 存在问题1: 很多基于图卷积和循环神经网络的深度学习方法用于预测交通速度,例如扩散递归神经网络DCRNN 和 Graph WaveNet,但这些模型的问题是:假设路段的空间依赖性是固定的, 因此计算一次空间依赖性就不变了,没有考虑交通状态的动态变化性。为解决这个问题,现有模型应用 多头注意力 对空间依赖性建模,但没考虑整体图结构信息(如节点的距离、连通性和方向)
  • 存在问题2: 很多模型都用RNN对时间维度建模,但RNN难以捕获长程相关关系。为解决这个问题,可以加入attention,但现有研究没有考虑时间动态性,比如有的节点在不必要的情况下也会聚合邻居节点信息。
  • 本文提出名为 spatio-temporal graph attention (ST-GRAT) 的模型,包含三方面:(1) spatial attention 模块,包括扩散过程diffusion prior 、有向头directed heads 和距离嵌入distance embedding ;(2)temporal attention 模块捕获交通速度变化;(3)sentinel vectors 前哨向量模块,本文设计空间前哨(spatial sentinel) 的 keyvalue 向量。
    实现动态允许模型从空间相关节点获取新特征或保留现有特征。

2. RELATED WORK(略)

3. PROPOSED APPROACH

3.1 Problem Setting for Traffic Speed Forecasting

  • 目标是预测每个感测器处的未来交通速度。
  • 输入图是 G = ( V , E , A ) \mathcal{G}=(\mathcal{V}, \mathcal{E}, \mathcal{A}) G=(V,E,A) V \mathcal{V} V 是传感器点集, E \mathcal{E} E 是边集, A \mathcal{A} A 是有权重的邻接矩阵。
  • t t t 时刻输入的特征矩阵 X ( t ) ∈ R N × 2 X^{(t)} \in \mathbb{R}^{N \times 2} X(t)RN×2 N N N 是节点数目, 2 2 2 是特征数(速度和时间戳)

3.2 Encoder Architecture

模型整体结构如下:
在这里插入图片描述

  • 左侧(橘色)整个是Encoder部分,包含一个Embedding层、四个同样结构的Encoder层。
  • 一个Encoder层(紫色)中包含一个空间注意力层、时间注意力层和前馈层。

3.3 Embedding Layer

  • 加入预训练节点嵌入,编码后的特征用于空间注意力的计算。同时,也可以起到位置嵌入的作用,即能考虑输入序列的顺序。

3.4 Spatial Attention

在这里插入图片描述

  • 空间注意力层由多头注意力组成,奇数序号的头表示inflow,偶数序号的头表示outflow。定义Encoder层的隐藏层状态是 Z = [ z i , ⋯   , z N ] \mathcal{Z}=\left[z_{i}, \cdots, z_{N}\right] Z=[zi,,zN] z i ∈ R d model z_{i} \in \mathcal{R}^{d_{\text {model}}} ziRdmodel 是第 i i i 节点的隐藏状态。 N i \mathcal{N_{i}} Ni 是第 i i i 节点及其邻居节点。为防止关注到无关信息,加入空间前哨 key \ value 向量。
  • o i h ∈ R d v o_{i}^{h} \in \mathcal{R}^{d_{v}} oihRdv 表示第 h h h 注意力头的第 i i i 节点输出特征, o i h = ( 1 − ∑ j = N i α i , j ) ∗ ( z i W h V s ) + ∑ j = N i α i , j ( z j W h V n ) o_{i}^{h}=\left(1-\sum_{j=\mathcal{N}_{i}} \alpha_{i, j}\right) *\left(z_{i} W_{h}^{V_{s}}\right)+\sum_{j=\mathcal{N}_{i}} \alpha_{i, j}\left(z_{j} W_{h}^{V_{n}}\right) oih=1j=Niαi,j(ziWhVs)+j=Niαi,j(zjWhVn)
    其中 W h V s ∈ R d model × d v W_{h}^{V_{s}} \in \mathcal{R}^{d_{\text {model}} \times d_{v}} WhVsRdmodel×dv W h V n ∈ R d model × d v W_{h}^{V_{n}} \in \mathcal{R}^{d_{\text {model}} \times d_{v}} WhVnRdmodel×dv 分别表示前哨向量value矩阵和空间注意力的value矩阵。
  • 注意力得分系数 α i , j = exp ⁡ ( e i , j ) e i , s + ∑ j = N i exp ⁡ ( e i , j ) \alpha_{i, j}=\frac{\exp \left(e_{i, j}\right)}{e_{i, s}+\sum_{j=N_{i}} \exp \left(e_{i, j}\right)} αi,j=ei,s+j=Niexp(ei,j)exp(ei,j),其中 e i , j e_{i, j} ei,j 表示两个节点间的 energy logits, e i , s e_{i, s} ei,s 表示前哨向量的 energy logits
  • energy logits 利用 query 和 key 向量计算得到, e i , j = ( z i W h Q N ) ( z j W h K N ) T d k + P h ( A ) e_{i, j}=\frac{\left(z_{i} W_{h}^{Q_{N}}\right)\left(z_{j} W_{h}^{K_{N}}\right)^{T}}{\sqrt{d_{k}}}+P_{h}(\mathcal{A}) ei,j=dk (ziWhQN)(zjWhKN)T+Ph(A),为显示捕捉边缘信息,加入基于图传播过程的 P h ( A ) P_{h}(\mathcal{A}) Ph(A)
  • 流入(注意力头是奇数序号)的 P 2 m + 1 ( A ) = ∑ k = 0 K β h k ∗ ( D I − 1 A T ) k P_{2 m+1}(\mathcal{A})=\sum_{k=0}^{K} \beta_{h}^{k} *\left(D_{I}^{-1} \mathcal{A}^{T}\right)^{k} P2m+1(A)=k=0Kβhk(DI1AT)k;流出(偶数序号)的 P 2 m ( A ) = ∑ k = 0 K β h k ∗ ( D O − 1 A ) k P_{2 m}(\mathcal{A})=\sum_{k=0}^{K} \beta_{h}^{k} *\left(D_{O}^{-1} \mathcal{A}\right)^{k} P2m(A)=k=0Kβhk(DO1A)k,其中 K K K 是扩散过程的传播步数, D I D_I DI 是入度矩阵, D O D_O DO 是出度矩阵, β h k \beta_{h}^{k} βhk 是第 k k k 步的第 h h h 注意力头的权重,是个超参数。
  • 计算完每个注意力头的输出之后,拼到一起 z i ∗ = concat ⁡ ( o i 1 , … , o i H ) W O N z_{i}^{*}=\operatorname{concat}\left(o_{i}^{1}, \ldots, o_{i}^{H}\right) W^{O_{N}} zi=concat(oi1,,oiH)WON

3.5 Temporal Attention

和空间注意力部分不同的是:

  • 没有前哨向量,没有传播部分
  • 时间注意关注每个节点的重要时间步骤,而空间注意关注每个时间步骤的重要节点。

3.6 Decoder Architecture

在这里插入图片描述

  • 右侧(绿色)整个是Decoder部分,包含一个Embedding层、四个同样结构的Decoder层。
  • 一个Decoder层中包含一个空间注意力层、两个时间注意力层和前馈层。
  • 整体和Encoder部分差不多一样,只是这部分有两个时间注意力层(这两个不同),一个是masked attention layer,另一个是encoder-decoder(E-D) attention layer。(注:为什么这么安排,去看Tranformer的原始文章就好了,跟那个结构一样。也可以看李宏毅老师的课

4. EVALUATION

(待补充)

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值