PETformer:正确打开Transformer多元时间序列预测的一种方法

前言:

        Transformer如何应用于时间序列预测一直是近期探讨的一个核心问题,包括多变量建模的处理方式、Transformer的结构等。
        在DLinear中,提出了用线性模型打败Transformer模型;在后来的PatchTST等工作中,又验证了Transformer的有效性。那么,到底如何使用Transformer进行时间序列预测效果最好呢?

这里给出另外两篇工作的Github链接,大家可以阅读代码学习建模思路:
DLinear:https://github.com/honeywell21/DLinear
PatchTST: https://github.com/PatchTST/PatchTST

PETformer:

        文章主要从两个角度探索了Transformer如何应用于时间序列预测,一方面是Transformer的结构上,提出了Placeholder-enhanced结构另一方面是多变量关系建模上,探索了最有效的建模方式

论文标题:PETformer: Long-term Time Series Forecasting via Placeholder-enhanced Transformer

下载地址:https://arxiv.org/pdf/2308.04791v1.pdf

·输入数据构建:

        时序和NLP存在差异——时序每个节点并没有明确含义,需要结合上下文信息才能体现出来;而NLP每个token就会有明确的语义含义。因此,文章中仍然沿用了PatchTST的方式,将时间序列分成多个patch,每个patch分别生成embedding
        与PatchTST的差别是,文中使用了更大的子序列长度,这样一方面可以提升运算效率,另一方面也让每个patch的语义信息更加明确(读者可以考虑下为什么之前的工作的实验部分没用到更大的子序列)
       
同时,文中也使用RevIN的方式,对输入序列进行了归一化处理。

·Transformer结构

原本:在Transformer结构上,本文提出了placeholder-enhanced的方式。在原来的Encoder-Decoder结构中,预测序列和历史序列被分割成两个部分分别由Encoder和Decoder建模,再通过cross-attention建立联系。这个过程会使历史序列的信息出现损失,无法完美应用到Decoder中。

         为了解决这个问题,文中采用了placeholder-enhanced的方式,在Decoder部分使用几个可学习的向量作为输入,不再区分Encoder和Decoder,而是拼接到历史序列的token上,一起输入到统一Transformer,让待预测部分可以更自然的获取历史序列信息。

·在attention的计算方式上,文中尝试了如下4种attention计算方式:

        1.Full attention:每个节点做双向attention;
        2.No inter-future attention:未来序列部分内部不做attention;
        3.No inter-history attention:历史序列部分不做attention,相当于未来序列和历史序列每个token独立进行attention;
        4.Only future focuses on history:只有未来序列和历史序列做attention,未来序列和历史序列内部都不做attention。

·多变量建模方法

        上述的过程中,每个变量是独立建模的,建模过程中没有考虑到各个变量之间的关系,和PatcchTST类似。但是,各变量的关系是有额外信息增益的,因此本文增加了一个Inter-channel Interaction模块,在每个变量独立进行时间维度建模后,再进行一次多变量间关系建模。

具体的建模方式,文中也尝试了4种类型:

        1.No channel interaction:每个变量独立,不建模变量间关系;
        2.Self-attention:变量间使用self-attention建模;
        3.Channel identifier:每个channel用一个可学习的向量,和token计算关系;
        4.Cross-attention:结合每个channel的token和identifier进行attention。

·实验结果

1.在模型结构方面,整体结果如下表,使用PET的方式比Encoder-Decoder等结构效果要好,同时full attention的方式要优于其他attention方式。

2. 对于patch内子序列长度的选择,可以看出子序列长度越大,整体效果越好:

3.多变量关系建模方面:

        直接将channel融合到一起输入Transformer的效果最差,而其他的各种将channel间信息交互与时序建模分开的方式效果基本不相上下。但是整体来看仍然是不用channel间交互的方式效果会稍好一些文中认为channel间关系难以建模是导致引入channel间关系建模效果效果提升不明显的原因
提示:未来工作的motivation,可以思考channel间的关系,用怎样的结构学习比较合适呢?!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值