LogSparse Transformer
# 1 LogSparse Transformer
论文名称:Enhancing the Locality and Breaking the Memory Bottleneck of Transformer on Time Series Forecasting
论文地址:https://arxiv.org/abs/1907.00235 (opens new window)
引用量(截止到2025.07.08):2143
Venue:NeurIPS 2019
# 2 一句话总结这篇论文
这篇论文主要是使用了几个注意力的组合:LogSparse Self Attention(按照指数间隔选择query),Local Attention(局部用正常attention),Restart Attention(将序列变成子序列,交替使用这些 Attention)。具体看下文图 3。
# 3 摘要
时间序列预测在多个领域中都是一个重要问题,包括太阳能发电量预测、电力消耗预测以及交通拥堵情况预测等。在本文中,我们提出使用 Transformer 架构来解决这一预测问题。尽管在初步实验中,Transformer 展现出良好的性能,但我们也发现了其两个主要缺陷:(1)缺乏局部感知能力:标准 Transformer 架构中的点对点点积自注意力机制对局部上下文不敏感,这可能使模型在时间序列中容易受到异常值的影响;(2)内存瓶颈:标准 Transformer 的空间复杂度随序列长度 的平方增长,导致直接对长时间序列建模变得不可行。
为了解决上述问题,我们首先提出卷积自注意力机制,通过因果卷积生成查询(query)和键(key),从而使注意力机制能更好地融合局部上下文信息。接着,我们提出了LogSparse Transformer,其内存开销仅为 ,在内存受限的情况下,能够提高对具有高时间分辨率和强长期依赖性的时间序列的预测精度。我们在合成数据和多个真实数据集上的实验表明,该方法在性能上优于现有最先进的方法。
# 4 引言
时间序列预测在日常生活中起着重要作用,能够帮助人们管理资源并做出决策。例如,在零售行业中,基于历史数据对产品需求和供应进行概率预测,可以辅助库存规划,从而实现利润最大化。尽管仍被广泛使用,传统的时间序列预测模型(如状态空间模型和自回归模型)通常是对每一个时间序列单独建模。此外,这些模型还依赖于专业人员手动选择趋势、季节性等组成部分。总的来说,这两个主要缺陷极大地限制了它们在现代大规模时间序列预测任务中的应用。
为了解决上述挑战,研究者提出了以深度神经网络为基础的替代方案,其中循环神经网络(RNN)被用于以自回归方式建模时间序列。然而,RNN 训练困难,容易遇到梯度消失和梯度爆炸的问题。尽管出现了多种变体,如 LSTM 和 GRU,这些问题依然没有得到根本解决。例如,有研究表明,基于 LSTM 的语言模型平均只能有效利用约 200 个词的上下文,并且只能清晰地区分前后约 50 个词,说明即使是 LSTM 也难以捕捉长期依赖关系。
另一方面,现实中的预测任务往往同时存在长期和短期的重复模式。例如,交通数据中高速公路的每小时占用率既具有日周期性,也具有小时周期性。在这种情况下,如何建模长期依赖成为实现良好预测性能的关键步骤。
近年来,Transformer 被提出为一种全新的架构,利用注意力机制处理数据序列。与基于 RNN 的方法不同,Transformer 允许模型访问历史中的任意位置,而不受距离限制,因此在捕捉具有长期依赖性的重复模式方面具有更大潜力。然而,标准的点积自注意力机制在匹配查询(query)和键(key)时对局部上下文不敏感,这可能使模型容易受到异常值的干扰,并带来潜在的优化问题。更重要的是,标准 Transformer 的空间复杂度随着输入长度 的平方增长,导致在建模高时间分辨率的长时间序列时存在内存瓶颈。
我们特别针对这两个问题进行了深入研究,并探讨了 Transformer 在时间序列预测中的应用。我们的主要贡献包括:
我们首次将 Transformer 架构成功应用于时间序列预测,并在合成数据和真实数据集上进行了大量实验,验证了其在处理长期依赖性方面相较于基于 RNN 的模型具有潜在优势。
我们提出了卷积自注意力机制,在自注意力层中使用因果卷积生成查询和键。通过引入对局部上下文(例如形状)的感知,模型在训练过程中能够获得更低的损失,并进一步提升预测精度。
我们提出了 LogSparse Transformer,其空间复杂度仅为 ,打破了内存瓶颈,使得对高分辨率的长时间序列建模变得可行,同时相比标准 Transformer 实现了更低内存使用的同时,预测性能仍能持平甚至更优。
# 5 相关工作
由于时间序列预测在多个领域具有广泛应用,研究者提出了多种方法来解决这一问题。其中最具代表性的模型之一是 ARIMA。它的统计特性以及 Box-Jenkins 方法在模型选择过程中的标准化流程,使其成为从业者的首选尝试。然而,ARIMA 依赖线性假设,且扩展性有限,不适用于大规模预测任务。此外,它对每个时间序列单独建模,无法共享不同时间序列之间的信息。
与此相对,有研究将相关的时间序列数据建模为一个矩阵,并将预测问题转化为矩阵分解任务;也有工作从图模型的角度出发,提出分层贝叶斯方法来对多个相关的计数型时间序列进行联合建模。
为了更好地捕捉相关时间序列间的共享信息,深度神经网络方法被广泛研究。其中一种方法将传统 AR 模型与 RNN 相结合,以编码器-解码器结构建模概率分布;也有方法使用 RNN 作为编码器,MLP 作为解码器,以并行方式进行多步预测,从而缓解误差累积问题。还有研究采用全局 RNN,在每一步输出一个线性状态空间模型的参数,用以近似非线性动力学;也有方法在每个时间序列上使用局部高斯过程处理噪声,同时用全局 RNN 建模共享模式。此外,还有工作尝试结合 AR 模型和状态空间模型的优点,通过构建复杂的潜变量过程实现多步并行预测。
近年来,基于自注意力机制的 Transformer 被提出,用于序列建模,并在多个任务中取得了巨大成功。已有多项工作将其应用于翻译、语音、音乐和图像生成等任务中。然而,在处理超长序列时,Transformer 的注意力机制计算开销非常大,因为其空间复杂度随序列长度的平方增长。在对具有高时间分辨率和强长期依赖特征的时间序列进行预测时,这一问题尤为严重。
# 6 背景
# 6.1 问题定义
假设我们有一个包含 个相关的单变量时间序列的集合 ,其中 ,且 表示第 个时间序列在时间 的取值。我们的目标是预测所有时间序列在接下来的 个时间步的值,即 。此外,令 表示与时间相关的协变量(如星期几、一天中的小时等),其维度为 ,这些协变量被假设在整个时间段上已知。 我们希望建模如下的条件分布:
我们将该问题转化为学习一个单步预测模型:
其中 表示对所有时间序列共享的可学习参数。为了充分利用观测值和协变量,我们将它们进行拼接,得到一个增强后的矩阵:
其中 表示向量拼接操作。接下来,我们探索一个合适的模型 ,用于在给定 的条件下预测 的分布。
# 6.2 Transformer
我们将函数 实例化为 Transformer,通过其多头自注意力机制来建模。自注意力机制使 Transformer 能够同时捕捉长时依赖和短时依赖,而不同的注意力头则可关注时间模式中的不同方面。这些优势使 Transformer 成为时间序列预测的一个理想选择。我们在此简要介绍其结构,更多细节可参考相关文献。 在自注意力层中,多头自注意力子层会同时将输入 转换为 个不同的查询(Query)、键(Key)和值(Value)矩阵:
其中,, 为可学习参数。 经过这些线性映射后,缩放点积注意力(scaled dot-product attention)会计算每个头的输出:
其中掩码矩阵 被用来屏蔽未来信息:通过将上三角区域元素设为 ,避免模型访问将来的时间步。 随后,将所有注意力头的输出 拼接后再次进行线性变换。最终,还会叠加一个逐位置的前馈子层(Feedforward),该子层包括两个全连接层,中间使用 ReLU 激活函数。
# 7 方法
# 7.1 增强 Transformer 的局部感知能力
时间序列中的模式可能会因各种事件(如节假日、极端天气等)随时间显著变化,因此一个观测点是否为异常点、变化点或正常模式的一部分,很大程度上依赖于其周围上下文。然而,在标准 Transformer 的自注意力层中,查询(query)和键(key)之间的相似性是基于它们的点对点数值计算的,并未充分利用局部上下文(如局部形状),如图 1(a) 和 (b) 所示。这种忽略局部上下文的查询-键匹配方式可能会使自注意力模块混淆一个值到底是异常、突变还是模式的一部分,进而导致潜在的优化困难。
为了解决这一问题,我们提出了卷积自注意力机制。其结构如图 1(c) 和 (d) 所示。与标准做法中使用核大小为 1 的卷积(即矩阵乘法)不同,我们使用核大小为 、步长为 1 的因果卷积将输入(带合适的填充)转换为查询和键。因果卷积确保当前位置不会访问未来的信息。
通过引入因果卷积,生成的查询和键可以更加关注其局部上下文,例如局部形状(local shapes),从而基于这些信息计算相似性,而不是仅基于点值,这对于提高预测精度是非常有帮助的。需要注意的是,当 时,卷积自注意力退化为标准自注意力,因此可以将其视为一种泛化形式。
图 1:标准自注意力与本文提出的卷积自注意力的对比。其中,“Conv, 1” 和 “Conv, k” 分别表示核大小为 1 和 、步长为 1 的卷积操作。图 (b) 展示了 Transformer 中使用的标准自注意力,它可能会如图 (a) 所示,错误地将数值上相似但结构不同的点匹配在一起。而图 (d) 展示了本文提出的卷积自注意力机制,它使用核大小为 、步长为 1 的卷积层(带适当填充)将输入转换为查询和键。通过引入局部感知能力,该机制能够如图 (c) 所示,根据局部形状实现更准确的特征匹配。
# 7.2 打破 Transformer 的内存瓶颈
为阐明我们方法的动机,我们首先对标准 Transformer 在 traffic-f 数据集上学习到的注意力模式进行了定性分析。traffic-f 数据集记录了旧金山湾区 963 条车道每 20 分钟一次的占用率。
我们在该数据集上训练了一个 10 层的标准 Transformer,使用完整的自注意力机制,并对学习到的注意力权重进行了可视化。如图 2 所示,第 2 层展示了全局模式,而第 6 层和第 10 层的注意力则表现出依赖于模式的稀疏性,这暗示可以引入某种形式的稀疏注意力机制,而不会显著影响模型性能。
图 2:来自一个在 traffic-f 数据集上训练的 10 层标准 Transformer(使用完整注意力机制)所学习的注意力模式。绿色虚线表示预测开始的时间点,左侧灰色虚线表示条件历史。蓝色、青色和红色线条分别对应第 2 层、第 6 层和第 10 层中某一注意力头在预测绿色虚线时间点时的注意力模式。a)第 2 层倾向于学习每天重复出现的共享模式;b)第 6 层更多关注于周末的模式;c)第 10 层则将大部分注意力集中在周末的几个时间点上,使得其他大多数位置几乎得不到关注。
更重要的是,在序列长度为 的情况下,若对每一对时间步都计算注意力权重,其内存复杂度为 。这种开销在处理高时间分辨率、强长期依赖的长序列时是不可接受的。
为此,我们提出了 LogSparse Transformer:
- 每一层中,每个位置仅计算 个注意力点积。
- 只需堆叠 层,模型就可以访问每个时间点的信息。
- 因此,总体内存成本仅为 。
我们定义 为在第 层中,第 个单元可以关注的前序单元索引集合。在标准 Transformer 的自注意力中,,即每个位置都可以关注它之前的所有位置(图 3(a))。
但这种方式导致内存随 的平方增长。为降低复杂度,我们提出只选取一个子集 ,使其大小 按对数增长,即:
这种设计在显著降低内存开销的同时,仍能保持信息传播的完整性,从而有效支持对长序列的建模。
请注意,在第 层自注意力中,第 个单元的输出是其关注索引集合 中各单元的加权组合。同时,它可以将这些单元的信息传递给下一层中的后续单元。
设 为在前 层中所有传递至第 个单元的信息所涉及的索引集合。为了确保每个位置都能接收到其之前所有位置的信息,所需堆叠的层数 应满足:
换句话说,对于任意位置 和它之前的任意位置 ,应存在一条从 到 的有向路径:
其中:
- ,
- ,
- …
- 为此,我们提出了 LogSparse 自注意力机制:每个单元只关注其前面指数间距(exponential step size) 的若干位置及自身。具体来说,对于任意层 和位置 ,我们定义其注意力范围为:
其中 表示向下取整(floor 操作),如图 3(b) 所示。
该稀疏策略可在保证信息传播完整性的同时,大幅降低每层注意力的计算和内存复杂度,从而使 Transformer 能够处理更长的时间序列。
图 3:Transformer 中相邻层之间不同注意力机制的示意图。
定理 1 对于任意位置 和其之前的任意位置 ,只要堆叠 层 LogSparse 自注意力层,就至少存在一条从位置 到位置 的信息传递路径。 此外,当 时,从 到 的可行路径数量增长的速率为 。
该定理的证明采用了构造性方法,详见附录 A.1。 定理的含义如下:
- 尽管每层的内存使用量从 减少到了 ,但只要适当加深网络(堆叠 层),信息就能从任意一个位置有效传播到其他位置。
- 这意味着 LogSparse Transformer 的总内存复杂度为 ,从而有效解决了标准 Transformer 在 GPU 内存受限条件下的可扩展性瓶颈问题。
- 更进一步地,两个位置之间距离越远,其间可行路径的数量会以 的超指数速度增长,这表明模型可以拥有丰富的信息通路,有助于刻画复杂的长期依赖结构。
局部注意力(Local Attention)
我们可以让每个位置在其左侧的一个窗口范围内密集地关注其邻近位置,该窗口大小为 。这样可以充分利用局部信息(如趋势)来提升当前时刻的预测效果。在此窗口之外,则继续采用 LogSparse 注意力机制,如图 3(c) 所示。
重启注意力(Restart Attention)
进一步地,可以将整个长度为 的输入序列划分为若干个子序列,每个子序列的长度满足 。对每个子序列单独应用 LogSparse 注意力策略,如图 3(d) 所示。
需要注意的是:
- 引入 局部注意力 和 重启注意力 并不会改变稀疏注意力策略的总体复杂度;
- 但它们能够增加信息传播路径的数量,从而减少每条路径中所需的跳跃次数;
- 这两种机制可以结合使用,进一步提升模型对复杂局部与全局依赖的建模能力。