首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >PatchTST: 基于Transformer的长时间序列预测

PatchTST: 基于Transformer的长时间序列预测

作者头像
算法进阶
发布于 2024-02-17 06:34:40
发布于 2024-02-17 06:34:40
2K0
举报
文章被收录于专栏:算法进阶算法进阶

本文中了 2023 ICLR。PatchTST 作为 Transformer-based 预测模型,它是和计算机视觉中的 ViT 最相似的一篇论文(文章标题也很像)。

它成功超过了 DLinear,也证明了 DLinear 中 Transformer可能不适合于序列预测任务的声明是值得商榷的。

论文标题:

A Time Series is Worth 64 Words: Long-term Forecasting with Transformers

论文链接:

https://arxiv.org/pdf/2211.14730.pdf

代码链接:

https://github.com/yuqinie98/patchtst

建议先看一下下面关于 DLinear 的回答和 DLinear 论文:

https://www.zhihu.com/question/493821601/answer/2506641761

https://arxiv.org/pdf/2205.13504.pdf

核心思路

1.1 Patching

本文的核心思想就是 Patching,这和 Preformer 中的核心思想很相似,只不过效果要比 Preformer 好不少。具体来说,它们都是将时间序列分成若干个时间段(Preformer 里用的术语是 segment,本文用的是 patch,实际上是差不多的),每一个时间段视为一个 token(这不同于很多 Transformer-based 模型将每一个时间点视为一个token)。

Preformer 的论文和详细解析如下:

https://arxiv.org/pdf/2202.11356.pdf

https://zhuanlan.zhihu.com/p/536398013

分 patch 的结构如下图所示。对于一个单变量序列(为什么是单变量,可以看下一小节 Channel-independence 中的介绍),将其划分为 个 patch(可以是有重叠的,也可以是无重叠的,无重叠的情况就相当于 Preformer 中的均匀分段),每个 patch 的长度为 。

然后将每个 patch 视为一个 token,进行 embedding 以及加上位置编码,即可直接输入到普通的 Transformer 中(图中的 Transformer Encoder)。最后将向量展平之后输入到一个预测头(Linear Head),得到预测的单变量输出序列。

分 patch(时间段)的好处主要有四点:

1. 降低复杂度,因为 Attention 的复杂度是和 token 数量成二次方关系。如果每一个 patch 代表一个 token,而不是每一个时间点代表一个 token,这显然降低了 token 的数量。

2. 保持时间序列的局部性,因为时间序列具有很强的局部性,相邻的时刻值很接近,以一个 patch 为 Attention 计算的最小单位显然更合理。

3. 方便之后的自监督表示学习,即 Mask 随机 patch 后重建。

4. 分 patch 还可以减小预测头(Linear Head)的参数量。如果不分 patch 的话,Linear Head 的大小会是 , 是输入序列长度, 是序列个数, 是预测序列长度;如果分 patch 的话,Linear Head 的大小是 , 是 patch 个数要远小于 。因此,分 patch 之后,Linear Head 参数量大大减小,可以防止过拟合。

1.2 Channel-independence

很多 Transformer-based 模型采用了 channel-mixing 的方式,指的是,对于多元时间序列(相当于多通道信号),直接将时间序列的所有维度形成的向量投影到嵌入空间以混合多个通道的信息。Channel-independence 意味着每个输入 token 只包含来自单个通道的信息。本文就采用了 Channel-independence,DLinear 中也采用了这种方式。

如上图,本文将多元时间序列(维度为 )中每一维单独进行处理,即将每一维分别输入到 Transformer Backbone 中,将所得预测结果再沿维度方向拼接起来。这相当于将不同维度视为独立的,但 embedding 和 Transformer 的权重在各个维度是共享的。这样的话,每个 Transformer Backbone 只需要处理单变量序列。

1.3 自监督表示学习

这就很直观了,直接 mask 掉一些 patch 然后进行重建即可。对于每一个 token(patch),它通过 Transformer Encoder 后输出维度是 ,由于该 patch 本身的长度是 ,因此要重建它的话,再加上一个 的 Linear 层即可。作者还说明了分 patch 对 mask 重建来进行自监督学习的好处:mask 一个时间点的话,直接根据相邻点插值就可以重建,这就完全没必要学习了,而 mask 一个 patch 来重建的话则更有意义更有难度。

先进行自监督训练再微调下游预测任务,效果会比直接训练下游预测任务要好。

实验结果

可以看到 PatchTST 的效果超过了 DLinear 以及其它的 Transformer-based 模型。

总结

论文最核心的两点,分 patch、通道独立、以及自监督 mask 重建的做法在之前的时间序列相关论文中都已经存在了,所以我认为创新性并不是很强,但是效果不错。

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

本文分享自 算法进阶 微信公众号,前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Transformer时间序列预测!
【导读】大家好,我是泳鱼。一个乐于探索和分享AI知识的码农!今天带来的这篇文章,提出了一种基于Transformer的用于长期时间序列预测的新方法PatchTST,取得了非常显著的效果。希望这篇文章能对你有所帮助,让你在学习和应用AI技术的道路上更进一步!
算法进阶
2023/08/28
1.9K1
Transformer时间序列预测!
PatchTST:长时间序列预测神器
基于transformer的模型已经成功地应用于许多领域,如自然语言处理(想想BERT或GPT模型)和计算机视觉,仅举几例。
数据STUDIO
2023/09/04
5.1K0
PatchTST:长时间序列预测神器
KDD'23 | 基于MLP+多阶段校准的的多元时序预测模型
今天给大家介绍一篇KDD 2023会议上,由IBM研究院发表的一篇多元时间序列预测工作,模型整体结构基于patch预处理+MLP,支持时序预测和时间序列表示学习两类任务,同时提出了多阶段校准的方法,在预估结构中考虑时间序列的层次关系和多变量之间的依赖关系。
圆圆的算法笔记
2023/08/17
2.2K0
KDD'23 | 基于MLP+多阶段校准的的多元时序预测模型
时间序列8个基准Baseline模型及其详细解读
我是从去年11月份开始,选定时间序列预测这个方向,准备在工作之余继续独立进行一些科学研究。选定这个方向是因为我对金融量化一直挺感兴趣,希望能把时间序列中的深度学习算法模型,用到金融数据。现在看来,我太过于理想化了,金融数据的非平稳性,使得这以上两个问题有本质的区别。至少到目前为止,我的“金融数据深度学习建模”的想法还未实现。
科学最Top
2024/09/18
5160
时间序列8个基准Baseline模型及其详细解读
如何搭建适合时间序列预测的Transformer模型?
今天又是一篇Transformer梳理文章,这次应用场景是时间序列预测。Transformer的序列建模能力,让其天然就比较适合时间序列这种也是序列类型的数据结构。但是,时间序列相比文本序列也有很多特点,例如时间序列具有自相关性或周期性、时间序列的预测经常涉及到周期非常长的序列预测任务等。这些都给Transformer在时间序列预测场景中的应用带来了新的挑战,也使业内出现了一批针对时间序列任务的Transformer改造。下面就给大家介绍7篇Transformer在时间序列预测中的应用。
圆圆的算法笔记
2022/09/22
3.4K0
如何搭建适合时间序列预测的Transformer模型?
清华大学SageFormer:解决多变量时间序列预测建模难题
基于Transformer的多变量时间序列预测,是否需要显示建模各个变量之间关系呢?今天这篇文章来自清华大学近期发表的工作SageFormer,提出了一种新的基于Transformer的多变量时间序列预测算法,核心是利用token表征建立多变量的图结构关系。下面给大家详细介绍一下这篇文章。
圆圆的算法笔记
2023/08/17
3.3K0
清华大学SageFormer:解决多变量时间序列预测建模难题
5个时间序列预测的深度学习模型对比总结:从模拟统计模型到可以预训练的无监督模型(附代码)
来源:DeepHub IMBA本文约6700字,建议阅读12分钟本文讨论了5种专门研究时间序列预测的深度学习体系结构。 时间序列预测在最近两年内发生了巨大的变化,尤其是在kaiming的MAE出现以后,现在时间序列的模型也可以用类似MAE的方法进行无监督的预训练。 Makridakis M-Competitions系列(分别称为M4和M5)分别在2018年和2020年举办(M6也在今年举办了)。对于那些不了解的人来说,m系列得比赛可以被认为是时间序列生态系统的一种现有状态的总结,为当前得预测的理论和实践提供
数据派THU
2022/08/29
1.3K0
5个时间序列预测的深度学习模型对比总结:从模拟统计模型到可以预训练的无监督模型(附代码)
用Transformer做多元时序预测的最佳方法?
Transformer如何应用于时间序列预测一直是近期探讨的一个核心问题,这里包括多变量建模的处理方式、Transformer的结构等。在DLinear中,提出了用线性模型打败Transformer模型;在后来的PatchTST等工作中,又验证了Transformer的有效性。那么,到底如何使用Transformer进行时间序列预测效果最好呢?
圆圆的算法笔记
2023/08/17
2.6K0
用Transformer做多元时序预测的最佳方法?
时间序列分析的表示学习时代来了?
表示学习作为深度学习中的核心,近期越来越多的被应用到了时间序列领域中,时间序列分析的表示学习时代已经来了。本文为大家带来了2020年以来顶会的5篇时间序列表示学习相关的核心工作梳理。
圆圆的算法笔记
2022/09/22
1.2K0
时间序列分析的表示学习时代来了?
AI论文速读 |【Mambda×时序预测】时光机TimeMachine:4 Mambas for LSTF
论文标题:TimeMachine: A Time Series is Worth 4 Mambas for Long-term Forecasting
时空探索之旅
2024/11/19
3810
AI论文速读 |【Mambda×时序预测】时光机TimeMachine:4 Mambas for LSTF
时序必读论文06|PITS : 基于非依赖策略学习时序patch特征表示
论文标题:LEARNING TO EMBED TIME SERIES PATCHES INDEPENDENTLY
科学最Top
2024/09/18
2070
时序必读论文06|PITS : 基于非依赖策略学习时序patch特征表示
深度时间序列预测和基础模型的研究进展
本文综述了深度学习在时间序列预测中的应用,特别是在流行病预测领域。尽管深度学习在时间序列预测中表现出显著优势,但仍面临挑战,如时间序列不够长、无法利用积累的科学知识以及模型的解释性。
算法进阶
2024/07/10
4270
深度时间序列预测和基础模型的研究进展
对时间序列SOTA模型Patch TST核心代码逻辑的解读
Patch TST发表于ICLR23,其优势在于保留了局部语义信息;更低的计算和内存使用量;模型可以关注更长的历史信息,Patch TST显著提高了时序预测的准确性,Patch可以说已成为时序模型的基本操作。我在先前的一篇文章对Patch TST做了比较细致的论文解读,各位朋友可参考。
科学最Top
2024/09/18
3840
对时间序列SOTA模型Patch TST核心代码逻辑的解读
时序论文32|AAAI24通过DropPatch增强时间序列建模
论文标题:Enhancing Masked Time-Series Modeling via Dropping Patches
科学最Top
2024/12/19
3280
时序论文32|AAAI24通过DropPatch增强时间序列建模
ICLR 2024 | 时间序列(Time Series)论文
ICLR 2024(International Conference on Learning Representations)在5月7日-11日在奥地利维也纳举行。今年,ICLR共收到7262篇投稿,总体录用率在31%。
时空探索之旅
2024/11/19
6820
ICLR 2024 | 时间序列(Time Series)论文
AI论文速读 | TimeXer:让 Transformer能够利用外部变量进行时间序列预测
题目:TimeXer: Empowering Transformers for Time Series Forecasting with Exogenous Variables
时空探索之旅
2024/11/19
6380
AI论文速读 | TimeXer:让 Transformer能够利用外部变量进行时间序列预测
深度学习在时间序列预测的总结和未来方向分析
2023年是大语言模型和稳定扩散的一年,时间序列领域虽然没有那么大的成就,但是却有缓慢而稳定的进展。Neurips、ICML和AAAI等会议都有transformer 结构(BasisFormer、Crossformer、Inverted transformer和Patch transformer)的改进,还出现了将数值时间序列数据与文本和图像合成的新体系结构(CrossVIVIT), 也出现了直接应用于时间序列的可能性的LLM,以及新形式的时间序列正则化/规范化技术(san)。
deephub
2024/02/22
6480
深度学习在时间序列预测的总结和未来方向分析
AAAI25|xPatch:基于指数季节-趋势分解的双流时间序列预测方法
论文标题:xPatch: Dual-Stream Time Series Forecasting with Exponential Seasonal-Trend Decomposition
科学最Top
2025/07/02
770
AAAI25|xPatch:基于指数季节-趋势分解的双流时间序列预测方法
AI论文速读 | TimesBERT:用于时间序列理解的 BERT 风格基础模型
论文标题:TimesBERT: A BERT-Style Foundation Model for Time Series Understanding
时空探索之旅
2025/03/10
6920
AI论文速读 | TimesBERT:用于时间序列理解的 BERT 风格基础模型
推荐阅读
相关推荐
Transformer时间序列预测!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档