作者:Xue Ye, Shen Fang, Fang Sun, Chunxia Zhang, Shiming Xiang(中国科学院)下载链接代码链接:Code
2021.12.12 accepted
时空异质性可以增强时序建模的能力。如下图所示,给定两个时间段 ( e , b ) (e,b) (e,b), ( f , d ) (f,d) (f,d),时间跨度相同(1小时),数值相同。因为 ( e , b ) (e,b) (e,b)是高峰时段,其的关联性肯定比 ( f , d ) (f,d) (f,d)强。时空同质性的方法就没有考虑这一点。
一些研究STSGCN,GMAN,Adapative GCRN,ASTGNN考虑了时空异质性。但他们要么在序列level上考虑异质性,要么通过时空嵌入和输入(特征)的直接串联或求和引入异质性。前者不能整合全局时间信息,后者混淆了两种不同类型数据之间的关系。
本文提出了一种MGT框架来解决交通预测问题。MGT充分利用了时间和空间两个维度上的注意机制。因此,它具有所有Attention的优点,如动态相关性、高效的长期建模和易于并行化。此外,我们设计了一个meta-learning过程(因此命名为Meta Graph Transformer),将从外部时间和空间属性中学习到的元知识整合到注意层中,从而使我们的模型能够执行时空异质性感知(STHA)注意。更重要的是,将多个图表整合到我们的空间注意层中,以便考虑各种类型的空间相关性。模型的贡献总结如下:
后面有空再补。
注意机制可以看作是一个函数,将一个query和一组(key,value)对映射到一个输出中,其中query,key,value都是向量。输出是由这些值的加权和计算出来的。分配给每个值的权重是通过兼容(compatibility)函数计算的,compatibility函数的变量是query和相应的key。
本文使用的是 “scaled Dot-product Attention”,通过矩阵乘法并行处理所有query。给定queries, d k d_k dk维keys, d v d_v dv维values,attention是由以下计算:
其中, Q ∈ R n 1 × d k Q \in R^{n_1 \times d_k} Q∈Rn1×dk, K ∈ R n 2 × d k K \in R^{n_2 \times d_k} K∈Rn2×dk, V ∈ R n 2 × d k V \in R^{n_2 \times d_k} V∈Rn2×dk.
为了使模型能够同时参与到不同的表示子空间中,常用的方法是采用多头注意。 d m o d e l d_{model} dmodel表示模型的特征size。给定原始queries Q ∈ R n 1 × d m o d e l Q \in R^{n_1 \times d_{model}} Q∈Rn1×dmodel,keys K ∈ R n 2 × d m o d e l K \in R^{n_2 \times d_{model}} K∈Rn2×dmodel, values V ∈ R n 2 × d m o d e l V \in R^{n_2 \times d_{model}} V∈Rn2×dmodel(自注意力,原始 Q K V QKV QKV相等即 X X X),多头注意力的计算过程如下:
其中 N h N_h Nh 头的数量, W h Q ∈ R d m o d e l × d k W_h^Q \in R^{d_{model} \times d_k} WhQ∈Rdmodel×dk, W h K ∈ R d m o d e l × d k W_h^K \in R^{d_{model} \times d_k} WhK∈Rdmodel×dk, W h V ∈ R N h d m o d e l × d k W_h^V \in R^{N_hd_{model} \times d_k} WhV∈RNhdmodel×dk,本文中, d k = d v = d m o d e l / N h d_k = d_v = d_{model}/N_h dk=dv=dmodel/Nh
MGT模型的主要思想是在外部时空属性的指引下,通过构建时空异质性感知(STHA)注意层来学习复杂的时空相关性。总体过程如下图所示。模型为Encoder-Decoder, Encoder和Decoder都是由堆叠多个相同的sub-layers, 为了深度神经网络的高效学习,每一子层的输出跳接到最后一个子层的输出上(残差连接)。在子层中,三种注意层次被用来学习空间和时间的相关性。它们分别是时间自注意(TSA)、空间自注意(SSA)和时间编码器-解码器注意(TEDA)。Encoder和Decoder分别利用TSA和SSA对时间和空间依赖性进行建模。Decoder使用TEDAs将Decoder中的每个位置在时间上参与处理输入序列中的所有位置。所有注意层都具有多头结构,并利用从外部时空属性学习的时空嵌入(STEs)进行STHA操作。此外,SSAs是利用多个图(或等价地利用它们的转换矩阵(TMs))以捕获不同类型的空间相关性。为了使得Decoder看不见未来的信息,mask被用于TSA中。一般来说,MGT模型的流程如下所示:
对于一个时空点 ( i , t ) (i,t) (i,t),节点 V i V_i Vi和time t t t,时空embedding为 C t i ∈ R m o d e l d C_t^i \in R_{model}^d Cti∈Rmodeld将外部空间和时间属性编码为固定长度的向量。如下图所示。
除了附加在时间t上的所有时间属性 T t m m = 1 M {T_t^m}_{m=1}^M Ttmm=1M ,还有一个动态属性(相对于输入的时间位置pos,即输入序列的相对位置)应该被考虑。具体来说,时间t的时间嵌入(TE)的构建方法如下:
绝对时间:每个 T t m T_t^m Ttm是one-hot编码( N m N_m Nm维),然后总共使用M个可学习矩阵将这些向量线性转换为长度为 d m o d e l d_{model} dmodel的向量。
**相对时间:**pos也被编码为长度 d m o d e l d_{model} dmodel的向量。
然后concatente,再通过线性变换,最终得到temporal embedding U t ∈ R m o d e l d U_t \in R_{model}^d Ut∈Rmodeld
是由论文"A Generalization of Transformer Networks to Graphs"的启发,图的结构信息被编码到空间嵌入(SE)是通过一个经典的图嵌入技术——特征映射完成的。为了满足要求,通过定义无向图 A s = m a x ( A , A T ) A_s = max(A,A^T) As=max(A,AT),特征映射算法如下:
首先,归一化Lap矩阵,然后特征分解。最后得到 n o d e V i node V_i nodeVi的k维度embedding Z ^ i \hat Z_i Z^i。计算完之后,通过线性变换得到最终的spatial embedding Z i Z_i Zi.
C t i C_t^i Cti 是通过 Z i Z_i Zi和 U t U_t Ut的concatenate之后,再经过linear layer得到的。
交通网络本身可以看作是一个简单的加权图,其中所有边的权值都为1。这样的图也称为连通性图。在给定距离信息的情况下,可以对图的边权值进行修改,以反映节点之间的真实距离。从 v j v _j vj到 v i v_i vi的基于距离的权值的一般定义如下:
除了地理连通性,功能相似性也是探索空间相关性的关键因素。虽然有些节点在现实中可能没有连接,甚至彼此相距很远,但它们可能在交通网络中共享相同的功能(商业中心、住宅区等),因此符合类似的交通模式。 X h i s t i ∈ R p ′ c X_{hist}^i \in R^{p'c} Xhisti∈Rp′c 是node V i V_i Vi的历史traffic state( p ′ p' p′ 是训练集中时间段的数量), V i V_i Vi和 V j V_j Vj的相似度计算方式如下。给定阈值,小于阈值为0可构造矩阵。
另一个有用的图是基于一些交通流数据集提供的出发地-目的地(OD)信息。通常,从KaTeX parse error: Expected group after '_' at position 3: vj_̲到 v i v_i vi的基于od的相关性可以定义为. c o u n t ( i , j ) count(i,j) count(i,j)表示i到j的所有记录数。
给定 g b = ( V , E b , W b ) g_b=(V,E_b,W_b) gb=(V,Eb,Wb),transition matrix S b ∈ R N × N S_b \in R^{N \times N} Sb∈RN×N通过以下方式计算可得:
W b W_b Wb的对角元素设置为1,然后对行进行归一化。
最容易想到的做法:
Q = K = V Q=K=V Q=K=V,直接将self-attention用于第 l − 1 l-1 l−1层的 H l − 1 ∈ R P × N × d m o d e l H^{l-1} \in R^{P \times N \times d_{model}} Hl−1∈RP×N×dmodel,即
其中 H : , i l − 1 ∈ R P × d m o d e l H_{:,i}^{l-1} \in R^{P \times d_{model}} H:,il−1∈RP×dmodel 是node V i V_i Vi的时序特征,所有节点共享参数。这样不合理,因为共享机制忽略了交通状态的动力学在时间和位置上变化很大的特性。有必要考虑时空特性。为每个head创建一个带有隐藏层的多层感知器,该网络收到 C t i C_t^i Cti作为输入,生成三个映射矩阵用于转换 H t , i l − 1 ∈ R m o d e l d H_{t,i}^{l-1} \in R_{model}^d Ht,il−1∈Rmodeld的query,key和value vector。(三个W矩阵是通过MLP计算出来的)
与TSA相似,设计了一种基于STS引导的多头多图SSA进行空间特征学习。使用“多图”可以直观地看出,与其关注所有的空间位置,不如关注那些通过领域知识与中心节点更有可能关联的节点。因此多图 { g b } b = 1 B \{g_b\}_{b=1}^B {gb}b=1B(或者其等价转换矩阵 { S b } b = 1 B \{S^b\}_{b=1}^B {Sb}b=1B),被利用捕获不同类型节点间关系,去执行稀疏自注意。更具体一点,对每一个图 g b g_b gb,node V i V_i Vi将参与近邻 { V j ∣ j ∈ N i b } \{V_j|j \in N_i^b\} {Vj∣j∈Nib} N h N_h Nh次,从而得到 V i V_i Vi的总共 B N h BN_h BNh向量。然后通过concatenation和线性变换将这些向量进行融合。
此外,通过element-wise将转移矩阵中的动态注意系数和静态值联合确定相邻节点的权值,可以充分利用领域知识。为了保证STHA的正常运行,在注意参数的生成过程中还利用了STEs。和TSA一样,这里也采用了剩余连接和层归一化。
前馈网络(FNN)是一个位置变换层,每个时空点的参数都是共享的, 给定任意位置的特征向量 x ∈ R m o d e l d x \in R_{model}^d x∈Rmodeld,FNN的计算公式如下:
Decoder堆栈有输出投影层、具有跳接的相同Encoder层和用于预测的线性层。每个Decoder层由四个组件组成,即TSA with Mask、SSA、TEDA和FFN。SSA和FFN的结构与编码器相同,而TSA with mask,以防止未来的时间步参与运算。TEDA作为连接Encoder输出和Decoder各层的桥梁,能够从历史数据中进行自适应特征学习。
带mask的TSA工作原理与4.4.1节中描述的TSA基本相同。唯一的区别是,mask会在scaled dot-product之后添加。mask 是一个 T × T T \times T T×T的矩阵,上对角元素为负无穷,其他元素为0.然后:
TEDA是为Decoder创建的,以自适应地参与沿时间维度的Encoder特征。在这种情况下,query来自Decoder,而key和value来自Encoder。与算法1中相同,可以根据Encoder的输出 X e n ∈ R P × N × d m o d e l X_{en} \in R^{P \times N \times d_{model}} Xen∈RP×N×dmodel计算出多头key和value。
这些key和value然后被Decoder中的每个TEDA使用来执行STS-guide的时间注意操作。TEDA的详细信息显示在如下。
有空再续
考虑了多图,不用GCN直接将图拓扑信息和相对时间以及绝对时间放到self-attention,但是时间维度和空间维度分开算的, 合并计算是不是更好呢?Decoder部分的是不是输入时间信息会更好?还是用的autoregressive,考虑non-autoregressive是不是更好?