Page 180 - 《软件学报》2024年第4期
P. 180

1758                                                       软件学报  2024 年第 35 卷第 4 期

         2.4   编码器结构
             模型整体框架采用在输入数据上嵌入特征的编码器-解码器框架,  编码器和解码器均由多层相同的编码
         器层和解码器层堆叠而成.  编码器-解码器结构可以将交通预测问题转化为序列到序列的映射问题,  将历史的
         交通流量数据作为输入,  通过编码器提取时空特征,  再通过解码器生成未来的交通流量数据.  编码器和解码
         器中的注意力机制均可以并行操作,  增强模型的时空相关性学习能力,  捕捉交通序列中不同时间步之间的依
         赖关系.  编码器-解码器结构可以有效处理交通序列数据,  并且能够捕捉时序数据中的长期依赖关系,  同时可
         以处理不同长度的输入和输出序列,  具有较好的泛化能力.
             编码器由 L 个完全相同的编码器层堆叠而成,  每层均包含两个基本模块:  时间局部卷积多头自注意力模
         块、空间多视角动态图卷积模块.  时间局部卷积多头自注意力模块在时间维度上建模交通数据的时间依赖关
         系,  空间多视角动态图卷积模块在空间维度上捕获交通数据的空间交互特性和时序相似交互特征,  并引入全
         局表示建模局部特征与全局特征的关联关系.  同时,  为了避免随着编码器层数增加而出现的梯度消失现象,
         添加了残差网络和层归一化,  使得网络更快收敛,  提高模型的泛化能力.
         2.4.1    时间局部卷积多头自注意力模块
             为了在时间维度捕获交通数据的动态时间相关性,  本文在时间模块使用注意力机制捕捉时间依赖关系的
         动态特征.  注意力机制有助于从输入交通数据中选择和聚焦与当前预测目标最相关的时间特征,  提高模型的
         性能和效果,  可以被描述为将查询 Q 和一组键值对(K-V)映射到某个输出的过程,  其中,  Q 表示当前时间步的
         特征向量, K 用于计算输入交通序列中每个元素与 Q 的相似度, V 是与 K 关联的向量.  在计算了 Q 与每个 K 的
         相似度之后,  这些相似度值被用作权重,  对应的 V 向量加权求和,  得到最终的输出.  其中,  较为常用的两种注
         意力函数分别为:  加和式注意力函数(additive attention)和缩放点积式注意力函数(scaled dot-product attention).
         点积注意力作为更为广泛使用的注意函数,  具有更高的计算效率和更好的表达能力.  本文中使用缩放点积式
         注意力机制, d 是查询向量和值向量的维度,  具体可表示为
                                                             T   QK
                                      Attention Q KV  softmax     V                         (5)
                                            (, , ) =
                                                             d 
             自注意力机制(self-attention)是一种查询 Q、键 K 和值 V 均相同的特殊注意力机制,  通过捕捉输入序列中
         不同位置之间的相关性和动态调整注意力权重,  提高模型的表达能力和灵活度,  具体的实现过程如图 5(a)所
         示.  但模型在对当前位置的信息进行编码时,  会过度的将注意力集中于自身的位置.















                       (a)  自注意力机制                                   (b)  局部卷积多头自注意力机制
                                 图 5   自注意力机制与局部卷积多头自注意力机制

             多头自注意力机制(multi-head self-attention)给予注意力层输出关注来自不同位置的不同表示子空间的编
         码表示信息,  以并行而非顺序的方式处理时间序列,  能够最大限度地减少长期依赖问题和时间步长累积误差
         问题.  首先,  将查询、键和值线性投影到不同的表示子空间;  然后,  并行执行多组自注意力处理;  最后,  将每
         组自注意力机制的输出汇聚拼接并进行一次线性变换,  产生最终的输出结果.  计算公式如下:
   175   176   177   178   179   180   181   182   183   184   185