wordpress 添加数据表,网站seo设置是什么意思,农村自建房设计图软件,怎么看网站是哪家公司做的时间序列预测是许多领域的重要问题#xff0c;包括对太阳能发电厂发电量、电力消耗和交通拥堵情况的预测。在本文中#xff0c;提出用Transformer来解决这类预测问题。虽然在我们的初步研究中对其性能印象深刻#xff0c;但发现了它的两个主要缺点:(1)位置不可知性:规范Tran… 时间序列预测是许多领域的重要问题包括对太阳能发电厂发电量、电力消耗和交通拥堵情况的预测。在本文中提出用Transformer来解决这类预测问题。虽然在我们的初步研究中对其性能印象深刻但发现了它的两个主要缺点:(1)位置不可知性:规范Transformer架构中的点积自关注对局部上下文不敏感这可能使模型在时间序列中容易出现异常;(2)内存瓶颈:正则Transformer的空间复杂度随序列长度L呈二次增长使得直接建模长时间序列变得不可行。 为了解决这两个问题首先提出了卷积自注意力通过使用因果卷积产生查询和键以便更好地将本地上下文纳入注意机制。然后提出了仅内存开销的LogSparse Transformer在内存预算受限的情况下提高了对细粒度、长期依赖性强的时间序列的预测精度。在合成数据和真实世界数据集上的实验表明它比最先进的技术更有优势。
1. 引言 深度神经网络被提出作为另一种解决方案其中递归神经网络(RNN)已被用于以自回归的方式对时间序列建模。然而众所周知RNN很难训练。由于梯度消失和爆炸问题。尽管出现了各种变体包括LSTM和GRU门控循环单元问题仍然没有解决。如何对长期依赖关系进行建模成为实现良好性能的关键步骤。 规范Transformer的空间复杂度随输入长度L呈二次增长这对直接建模细粒度长时间序列造成了内存瓶颈。 主要贡献①成功地将Transformer架构应用于时间序列预测并在合成数据集和真实数据集上进行了广泛的实验以验证Transformer在处理长期依赖关系方面比基于RNN的模型更好的潜在价值。 ②提出卷积自注意通过使用因果卷积在自注意层产生查询和键。感知局部上下文(如形状)的查询键匹配可以帮助模型降低训练损失进一步提高预测精度。 ③提出LogSparse Transformer只有空间复杂度来打破内存瓶颈不仅使细粒度的长时间序列建模可行而且与规范Transformer相比使用更少的内存可以产生相当甚至更好的结果。
2. 相关工作 时间序列预测领域中不同方法的发展和挑战并强调了几种主要的模型。首先文章提到ARIMA模型这是时间序列预测中非常著名的一种方法。ARIMA模型因其统计性质和Box-Jenkins方法论而备受推崇后者是一种在模型选择过程中广泛使用的方法。因此ARIMA模型通常是实践者在时间序列预测中首先尝试的工具。然而ARIMA模型有一些局限性。它假设时间序列是线性的这在处理更复杂的、非线性的时间序列时可能表现不佳。此外ARIMA模型的扩展性有限难以应用于大规模的预测任务并且每个时间序列都必须独立拟合这意味着无法在相似的时间序列之间共享信息。 相反有些方法尝试通过矩阵分解的方法处理相关时间序列数据把预测问题看作矩阵分解问题。另外还有研究提出了分层贝叶斯方法从图模型的角度来学习多个相关的计数时间序列。接着文章介绍了深度神经网络在时间序列预测中的应用。这些模型可以捕捉相关时间序列之间的共享信息从而提高预测的准确性。比如有研究将传统的自回归AR模型与递归神经网络RNN结合起来采用编码器-解码器的方式对概率分布进行建模。另一种方法使用RNN作为编码器使用多层感知机MLP作为解码器以解决误差累积问题并且能够进行多步并行预测。此外还有模型使用全局RNN来直接输出线性状态空间模型SSM的参数目的是用局部线性片段来近似非线性动态。也有研究通过使用局部高斯过程来处理每个时间序列中的噪声同时使用全局RNN来建模共享模式。另一些方法则试图结合AR模型和SSM的优势保持复杂的潜在过程以进行多步并行预测。 Transformer在序列建模中取得了很大成功并且已被广泛应用于翻译、语音、音乐和图像生成等领域。然而当处理极长的序列时注意力机制的计算复杂度会随着序列长度的增加而呈二次方增长这在处理高粒度且具有强长期依赖性的时间序列时成为了一个严重的问题。
3. 背景
3.1 问题定义 首先定义了一个时间序列预测的问题。在这个问题中我们有一个包含N个相关单变量时间序列的集合每个时间序列记为 表示从时间1到时间 的观测值。目标是预测这些时间序列未来的 个时间步的值即 。此外假设有一个与时间相关的协变量集合 其维度为d这些协变量可能包括诸如星期几、一天中的小时等已知信息。我们需要建模条件分布 其中 是所有时间序列共享的可学习参数。 接着问题被简化为学习一个一步预测模型即 其中 表示模型的可学习参数。为了充分利用观测值和协变量作者将它们连接起来形成一个扩展矩阵 然后通过 表示所有的观测数据和协变量的集合。接下来研究探索了一个合适的模型 用于预测给定 时 的分布。 然后文章介绍了Transformer模型并提出将其作为函数 f 的实例因为Transformer通过多头自注意力机制能够捕捉到时间序列中的长短期依赖性。不同的注意力头可以专注于不同的时间模式这使得Transformer在时间序列预测中成为一个很有潜力的候选模型。 在自注意力层中多头自注意力子层同时将 Y 转换为H个不同的查询矩阵 、键矩阵 和值矩阵 其中 。这些矩阵通过线性投影获得它们的学习参数分别为 、 和 。在这些线性投影之后缩放点积注意力机制计算出一系列的向量输出 这些输出是通过公式 计算得到的。这里掩码矩阵 MMM 被应用于过滤右侧的注意力以避免未来信息泄露。然后所有的 被连接起来并再次进行线性投影。最后在注意力输出上叠加了一个由两层全连接网络和中间ReLU激活层组成的位置前馈子层。
4. 方法论
4.1 增强Transformer的局部性 时间序列中的模式可能由于各种事件如假期和极端天气随时间发生显著变化的现象。因此判断一个观测点是异常点、变更点还是模式的一部分很大程度上依赖于其周围的上下文。然而在经典Transformer的自注意力层中查询和键之间的相似性是基于它们逐点值来计算的未能充分利用局部上下文信息如形状。这种对局部上下文不敏感的查询-键匹配可能会导致自注意力模块混淆观测值的性质从而引发潜在的优化问题。 为了解决这个问题提出了卷积自注意力机制。图1(c)和(d)展示了这种卷积自注意力的架构。不同于使用核大小为1且步幅为1的卷积即矩阵乘法采用核大小为k且步幅为1的因果卷积将输入经过适当的填充转换为查询和键。因果卷积确保当前位置不会访问未来信息。通过使用因果卷积生成的查询和键能够更加感知局部上下文从而基于局部上下文信息如局部形状来计算相似性而不是简单的逐点取值这有助于提高预测的准确性。值得注意的是当k1时卷积自注意力将退化为经典自注意力因此它可以看作经典自注意力的一种广义形式。 因果卷积具体来说假设输入序列的长度为 T卷积核的大小为 k。在因果卷积中输入会在前面添加 k-1个零填充这样卷积运算就只会考虑当前和之前的时间步而不会涉及未来的时间步。这种方式保证了模型在训练和推理时遵循时间顺序从而保持因果性。 图1展示了经典自注意力层和卷积自注意力层的比较。图1(a)显示了经典自注意力可能错误地逐点匹配输入的情况图1(b)则展示了经典自注意力在Transformer中的应用。而图1(c)和(d)则展示了卷积自注意力如何通过形状匹配来正确匹配最相关的特征。
4.2 突破Transformer的内存瓶颈 首先对经典Transformer在traffic-f数据集上学习到的注意力模式进行了定性评估。traffic-f数据集包含旧金山湾区963条车道的占用率数据每20分钟记录一次。在traffic-f数据集上训练了一个10层的经典Transformer并对学习到的注意力模式进行了可视化。引入某种形式的稀疏性而不会显著影响性能。更重要的是对于长度为 L 的序列计算每对单元之间的注意力分数会导致 的内存使用量使得对具有精细粒度和强长期依赖的长时间序列进行建模变得非常困难。 为了解决这个问题提出了LogSparse Transformer这种方法只需要计算每个单元在每层中的 个点积。此外只需要堆叠最多层模型就能够访问每个单元的信息。因此总的内存使用成本仅为 。我们将 定义为在第 k 层到第 k1 层计算过程中单元 表示可以访问的单元索引集。在标准的Transformer自注意力中 这意味着每个单元都可以访问其所有过去的单元及其自身如图3(a)所示。 然而这种算法在输入长度增加时会导致空间复杂度的二次增长。为了解决这个问题提出选择 的一个子集 使得 不会随着 的增加而增长得太快。选择索引的一个有效方法是 。 需要注意的是单元 是在第 k 层中通过加权组合索引为 的单元生成的并且可以将这些信息传递给下一层的后续单元。令 为包含所有到第 k 层为止传递给单元 的单元索引的集合。为了确保每个单元接收到所有之前的单元及其自身的信息堆叠的层数 应满足 即对于每个 和 存在一个具有 条边的路径 其中 。 通过允许每个单元仅以指数步长访问其之前的单元及其自身来提出LogSparse自注意力。即对于所有的 k 和 其中 表示向下取整运算如图3(b)所示。 定理1表明尽管每层的内存使用量从 减少到 但信息仍然可以从任意单元流向另一个单元只需稍微“加深”模型——将层数设为 。这意味着总体内存使用量为 解决了Transformer在GPU内存限制下的扩展性瓶颈。此外随着两个单元之间的距离增大路径的数量会以 的超指数速率增加这表明LogSparse Transformer在建模精细的长期依赖关系时能够实现丰富的信息流动。
4.3 Logparase注意力 LogSparse注意力是一种针对长序列时间复杂度和内存使用量进行优化的自注意力机制。它是对经典Transformer模型中自注意力机制的一种改进旨在解决处理长序列时计算资源消耗过大的问题。 在传统的Transformer中自注意力机制的计算复杂度是二次方的即对于长度为 L 的序列每个元素需要与其他 L-1个元素进行相互计算导致整个序列的计算量和内存使用量为 。这种复杂度在处理长序列时会变得非常昂贵尤其是在需要处理大量数据的情况下。
LogSparse注意力 通过以下方式优化了这一过程 选择性注意力Selective AttentionLogSparse注意力并不计算每个序列元素与所有其他元素之间的注意力得分而是引入了一种稀疏化策略。具体来说它允许每个元素只关注一小部分与其相关的元素而不是所有元素。这些相关元素的选择是基于指数步长的即每个元素只与其之前的少量元素进行注意力计算这些元素之间的距离按对数规律增长。这意味着如果当前元素是第 个那么它只会与之前的一些元素进行计算而这些元素的索引为 等。 对数级别的复杂度Logarithmic Complexity这种选择性注意力策略将原本的 复杂度降低到了 。因为每个元素只需计算 个注意力分数而整个序列需要堆叠 层以确保所有元素都能互相通信。 通过这种方法LogSparse注意力在处理长序列时能够显著减少内存使用和计算时间同时保留Transformer模型的强大建模能力特别是对于长时间依赖关系的建模非常有效。
4.3.1 增强模型性能
如何在LogSparse自注意力机制的基础上进一步增强模型的性能同时保持计算复杂度的控制? 局部注意力Local Attention在LogSparse Transformer中虽然每个单元只需要访问先前的一些关键单元但为了更好地捕捉局部信息如趋势可以让每个单元密集地关注其左侧邻近的单元窗口大小为 。这样每个单元可以利用更多的局部信息来进行当前步的预测。在这种局部窗口之外仍然可以继续采用LogSparse注意力策略如图3(c)所示。 重启注意力Restart Attention这个策略是将整个输入序列长度为 L分成多个子序列每个子序列的长度为 其中 。对每个子序列分别应用LogSparse注意力策略类似于重新开始注意力计算的过程。这样可以减少模型处理每个子序列时的复杂性并且每个子序列可以独立地进行信息处理如图3(d)所示。 结合局部注意力和重启注意力使用局部注意力和重启注意力不会改变LogSparse自注意力策略的计算复杂度但会增加更多的信息路径并减少路径中所需的边数。这意味着可以在不增加计算成本的情况下提高模型对局部信息的捕捉能力和对长序列的处理能力。通过结合局部注意力和重启注意力模型能够更有效地捕捉序列中的各种模式和趋势。