基于改进的Transformer模型针对时间序列数据进行预测


文章信息

文章题为《Enhancing the Locality and Breaking the Memory Bottleneck of Transformer on Time Series Forecasting》,是一篇发表在NeurIPS上,使用了改进的Transformer模型进行时间序列预测的文章。


摘要

时间序列预测是一个跨多个领域的重要问题,包括太阳能发电输出、电力消耗和交通拥堵情况的预测。本文提出用Transformer来解决这类预测问题。Transformer模型效果出色,但文章发现它的两个主要缺点:

(1)位置不确定(locality-agnostics):原始 Transformer架构中的点积注意力机制(point-wise dotproduct self-attention)对本地上下文不敏感,这可能使模型在时间序列中容易出现异常;

(2)内存瓶颈(memory bottleneck):原始 Transformer框架的空间复杂度随着输入序列长度呈二次增长,这也导致直接对长时间序列建模不可行。

为了解决这两个问题,首先,文章提出了卷积注意力机制(convolutional self-attention),该机制利用因果卷积(casual convolutional)产生Q和K(与原transformer模型中的Q、K相同),从而更好地将局部上下文整合到注意机制中。在此基础上,文章提出了内存开销仅为O(L(log L)2)的LogSparse Transformer,在内存受限的条件下,能够对具有较细粒度和较强长期相关性的时间序列的预测精度。最后,文章通过在合成数据和现实数据集上的实验表明,该模型要比现有的模型效果更好。

文章的贡献总结如下:

  • 文章成功地将Transformer架构应用于时间序列预测任务,并在合成数据集和真实数据集上进行了大量实验,从而验证Transformer在处理长期依赖关系方面的潜在价值。

  • 文章提出了卷积注意力机制(convolutional self-attention),通过使用因果卷积在自我注意层产生Q和K。感知局部上下文的Q与K的匹配可以帮助模型实现更低的训练损耗,进一步提高模型的预测精度。

  • 文章提出了LogSparse Transformer,它只有O(L(log L)2)的空间复杂度,以打破内存瓶颈,不仅使细粒度长时间序列建模可行,而且与标准Transformer相比,在使用更少的内存的情况下,可以产生类似甚至更好的结果。


文章结构

1.文章介绍了原始的Transformer模型,描述了该模型的局限性以及文章提出模型与原始Transformer模型的异同。

2.介绍了增强局部性的Transformer模型,以及打破了内存限制的LogSparse Transformer模型。

3. 通过实验验证了模型的有效性。


模型结构

文章提出的模型是相较于原始Transformer模型的改变,具体分为两个部分:1.增强Transformer的局部性;2.突破内存限制的LogSparse Transformer模型。

增强Transformer的局部性

原始的Transformer模型中的Q、K、V的计算方式可能导致数据的关注点出现异常,原始的计算方式无法考虑当前数据的信息,例如形状等。如下图所示,图(a)和图(b)表示在典型的Transformer模型中,注意力得分仅是单一时间点之间的关联性的体现,而与时间序列预测的初衷不同。

图(c)、图(d)则展示了,文章提出的使用了卷积核大小为k的卷积后的Multi-Head Attention层。在计算Q、K值时,通过卷积核大小为k(若k为1即为典型的Transformer模型,故这种卷积操作也可以看作是原方法的一种一般表示)的卷积操作进行计算,从而注意力关注一个时间点周边的其他时间点,而非单一时间点,该操作称之为因果卷积(casual convolution)。因果卷积可以确保当前位置不会访问未来的信息。通过使用因果卷积,生成的Q和K可以更清楚地了解相对于当前位置的其余时间点或称之为上下文。因此,通过它们本地上下文信息(例如局部形状)计算它们的相似度,而与典型的Transformer计算逐点值不同,这种方式能够提升预测精度。

24c21abfccd1a78d0ae337321c3c7a57.png

LogSparse Transformer

文章提出了针对典型的Transformer模型中内存问题的解决方法。下图展示了使用典型的Transformer模型得到的不同层的注意力得分,不同颜色表示了不同层的注意力得分,灰色为原始数据。从图中不难发现,不同层的注意力得分不同,即对不同频率的信息关注度不同。第二层(蓝色)关注每一天的模式,第六层(青色)关注周末的模式,而第十层(红色)则更加关注临近观测点的数值。

adf812c5cccec2a8c52aa904fd43a853.png

当输入序列长度为L时,典型的Transformer模型在计算注意力得分时,会导致O(L2)内存的使用,使得对于细粒度且长期依赖性强的长时间序列建模变得愈发困难。针对这个问题,为了使得每个点都接触到所有历史值的信息,且认为引入一定程度的稀疏性,不会导致性能的下降,故文章提出了LogSparse策略,该策略通过堆叠多个字注意力层实现,使得内存使用的总成本仅有O(L log2L)。具体如下图所示。图(b)展示了LogSparse策略下的注意力层。图(c)和图(d)展示了LogSparse的进一步扩展。

bae6e3a4ba2e3b556c5c75c46d5ed331.png

不难发现,对比图(a)(典型的Transformer模型),LogSparse策略下不是访问所有单元,而是采用了一种新的堆叠多层方式,如下式所示。

b680807ae3178e6221124ef902db8dbb.png

其中表示单元l在第k至第k+1层计算时要访问的单元索引的集合。


实验结果及分析

文章通过一个分段正弦信号的数据集以及一个真是数据集验证模型的有效性。

真实数据集采用了Electricity、Traffic、sola、wind、M4-Hourly数据集。值得说明的是,Electricity分为两组,electircity-f(fine)由370个客户每15分钟记录的用电量组成,而electirc-c(coarse)数据集则是每四个点汇总的电能。Traffic数据集也分为两组,traffic-f(fine)则包含旧金山963条高速公路每20分钟记录的占有率,traffic-c(coarse)包含traffic-f中每三个点的平均的小时占用率。

第一个实验是长时和短时预测。在e-c和t-c数据集上的结果如下所示。

c0519faabdb165c6d5b3fd5bb0dc10e0.png

第二个实验是提出的因果卷积进行的实验,针对不同的卷积核大小进行判断,仍在e-c与t-c数据集上进行,训练损失函数值如下图所示。

117e9169db6d7ad48dd6b433b1ccf206.png

dc77bd385510489e786fcd9c5611995d.png

第三个实验是针对提出的LogSparse策略的实验。比较了LogSparse策略Transformer与标准的Transformer模型。结果如下所示。

fd9d132e8c7c8c0028c1f908f76a9483.png

第四个实验是第三个实验的扩展,通过设置时间窗长度为7在M4-Hourly数据集上进行测试。结果如下。

ec601e55a45ba14c2f9b70c1debfbdb7.png


结论

本文提出将Transformer应用于时间序列预测。文章在合成数据和真实数据集上的实验表明,Transformer可以捕获长期依赖关系,而LSTM可能会受到影响。此外,在真实的数据集上,卷积自注意机制进一步提升了Transformer的性能,并在不同的设置下与基于RNN的方法、矩阵分解方法以及经典的统计方法进行比较,文章提出的模型获得了最好的结果。此外,在相同的内存预算下,文章提出LogSparse策略可以在长期依赖的数据上取得更好的结果。

Attention

如果你和我一样是轨道交通、道路交通、城市规划相关领域的,可以加微信:Dr_JinleiZhang,备注“进群”,加入交通大数据交流群!希望我们共同进步!

  • 5
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

当交通遇上机器学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值