论文链接:https://cdn.aaai.org/ojs/6819/6819-13-10048-1-10-20200524.pdf
这是来自清华大学的一篇文章,为提取更大尺度的空间依赖特征,作者提出了self-attention memory模块,并将其引入到ConvLSTM中,取得了SOTA的成绩。
Introduction
作者先交待了时空序列预测的的重要性、应用范围,表示时空序列预测在时间域和空间域上都表现出依赖性。
第二段,ConvLSTM在时空预测方面取得了不错的成绩,但通过堆叠的卷积层来捕获远程空间依赖性,有效的感受野远小于理论感受野。现有的改进方法TraiGRU工作方式类似于可变形卷积,学习到的偏移量仅提供了稀疏的空间依赖性。因此对于长距离的空间依赖的捕捉仍然是个问题。
而自注意力模块能够在单个网络层获取全局的空间上下文,所以本文引入了额外的记忆单元 𝑀 , 并且 𝑀 可以通过门控机制来捕捉时间上长期的特征依赖。
主要贡献:
- 提出了一种新的ConvLSTM变体,称为SA-ConvLSTM,可以成功捕获长期的空间依赖性。
- 设计了一个基于记忆的自我注意模块(memory-based self-attention module, SAM),以在预测过程中记忆全局时空依赖性。
- 在MovingMNIST和KTH数据集上进行多帧预测,使用TexiBJ数据集进行交通流预测,以更少的参数和更高的效率在所有数据集中获得最佳结果。
Method
Self-Attention
上图是一个Self-Attention的基础模型, 为当前时间步的特征图,
被映射到三个不同的特征空间,query:
,key:
,value:
,其中
、
、
都是1x1的卷积核,设原数据为C×H×W,C为通道数,则
为C×N,其中N=H×W。
相似度得分计算公式:
归一化:
第i个位置的汇总特征是使用所有位置的加权总和来计算的:
Self-Attention Memory Module
作者对Self-Attention基础模型加以改进,以捕捉时域和空域上的全局特征依赖,提出了Self-Attention Memory(SAM)模块,结构如上图所示。SAM模块接受两个输入:当前时间步的输入特征 和上个时间步的记忆单元
,结构可分为三部分:用以获取全局上下文信息的特征聚合(Feature Aggregation),以及记忆更新(Memory Updating )和输出(Output)。
Feature Aggregation
如上图,通过两个Attention将当前时间步的输入特征 和上个时间步的记忆单元
,分别映射为
和
然后进行concat,经过1×1卷积得到后面的
。
Memory Updating
作者使用门控机制自适应的更新记忆单元 ,聚合的特征
与
堆叠并经过一维卷积来计算更新门
与更新值
,遗忘门为
。计算公式如下:
这里作者提到,可以使用深度可分离卷积来进一步降低参数和计算量。相较于ConvLSTM,记忆单元 的更新不光依靠卷积操作,而且引入了聚合后的特征
,因此上一步的记忆单元
包含了过去的全局时空信息。
Output
最后,SAM通过更新后的记忆单元 与输出门
按元素相乘得到最后的输出:
Self-Attention ConvLSTM
将SAM模块嵌入到ConvLSTM中就得到了论文中所使用的SA-ConvLSTM:
Experiments
消融实验:
模型之间比较: