前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用Transformer做多元时序预测的最佳方法?

用Transformer做多元时序预测的最佳方法?

作者头像
圆圆的算法笔记
发布2023-08-17 08:54:03
1.8K0
发布2023-08-17 08:54:03
举报

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

近期华南理工大学发表了PETFormer,这篇文章主要从两个角度探索了Transformer如何应用于时间序列预测,一方面是Transformer的结构上,提出了Placeholder-enhanced结构;另一方面是多变量关系建模上,探索了最有效的建模方式。

下面,将从输入数据构建、Transformer结构、多变量关系建模3个角度介绍一下本文的核心工作。

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

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

1、输入数据构造

时间序列和NLP不同,NLP每个token就有明确的语义含义,而时间序列每个点并没有明确含义,需要结合上下文信息才能体现出来。因此,本文仍然沿用了PatchTST的方式,将时间序列分成多个patch,每个patch分别生成embedding。和PatchTST的差别是,文中使用了更大的子序列长度,这样一方面可以提升运算效率,另一方面也让每个patch的语义信息更加明确。

此外,文中也使用RevIN的方式,对输入序列进行了归一化处理。

2、Transformer结构

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

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

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

Full attention:每个节点做双向attention

No inter-future attention:未来序列部分内部不做attention

No inter-history attention:历史序列部分不做attention,相当于未来序列和历史序列每个token独立进行attention

Only future focuses on history:只有未来序列和历史序列做attention,未来序列和历史序列内部都不做attention

3、多变量建模方法

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

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

No channel interaction:每个变量独立,不建模变量间关系

Self-attention:变量间使用self-attention建模

Channel identifier:每个channel用一个可学习的向量,和token计算关系

Cross-attention:结合每个channel的token和identifier进行attention

4、实验结果

文中对多个组件进行了消融实验,分析不同模块设计对最终效果的影响。

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

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

对于多变量关系建模方面,直接将channel融合到一起输入Transformer的效果最差,而其他的各种将channel间信息交互与时序建模分开的方式效果基本不相上下。但是整体来看仍然是不用channel间交互的方式效果会稍好一些。文中认为channel间关系难以建模是导致引入channel间关系建模效果效果提升不明显的原因。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-08-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 圆圆的算法笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档