当前位置:   article > 正文

Transformer时间序列预测!

patchtst模型最早是谁提出的
 
 

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

【导读】大家好,我是泳鱼。一个乐于探索和分享AI知识的码农!今天带来的这篇文章,提出了一种基于Transformer的用于长期时间序列预测的新方法PatchTST,取得了非常显著的效果。希望这篇文章能对你有所帮助,让你在学习和应用AI技术的道路上更进一步!

446b8152f9c62cb8ca3260af4868b1ad.png

6ecb92f9a4506042e2d688be509798fd.png

自从时间序列预测论文 Are Transformers Effective for Time Series Forecasting?(2022)以一个简单模型(DLinear)打败了复杂的Transformer模型后,关于Transformer是否适用于时间序列预测任务成为学术界的一个主要争论点。来自普林斯顿大学和IBM研究中心的研究人员提出了一种基于Transformer的时序预测和时序表示学习新方法(PatchTST),将时间序列数据转换成类似ViT(Vision Transformer)中的patch形式,取得了非常显著的效果。它成功超过了DLinear模型,也证明了关于Transformer可能不适合于序列预测任务的讨论是值得商榷的。

b5815a262b67e19b5398f3fd6918d180.png

论文标题:A TIME SERIES IS WORTH 64 WORDS: LONG-TERM FORECASTING WITH TRANSFORMERS

论文作者:Yuqi Nie, Nam H. Nguyen, Phanwadee Sinthong, Jayant Kalagnanam

发表期刊:ICLR(International Conference on Learning Representations,国际学习表征会议),深度学习领域的顶级会议之一

cf20ea762a6da9715084ba8400b45678.png

7f6e87b8b70620ed213dde52c0bfab96.png

outside_default.png

b2bb3e89b3e92acc8e6445150693a9b4.png

1.介绍 

    预测是时间序列分析中的关键任务之一。随着深度学习模型的迅速发展,有关时间序列预测的研究也大大增加。深度模型不仅在预测任务中表现出色,而且在表征学习方面也表现出优异的性能。它能够提取抽象的表征,并将其转移到各种下游任务中,如分类和异常检测,以达到SOTA的精确度。

    在深度学习模型中,Transformer得益于其注意力机制,可以自动学习序列中元素之间的关联,因此成为序列建模任务的理想选择。在这篇文章中,作者提出了一种基于Transformer设计的有效模型,用于多变量时间序列预测和自监督表征学习。该模型基于两个关键部分:

    (1)Patching:将时间序列分割成子序列级patch,作为Transformer的输入token。其优势在于:

  • 保留局部语义信息。时间序列预测的目的是了解不同时间步的数据之间的相关性,但是单个时间步的数据并不像句子中的一个单词那样具有语义信息,因此提取局部语义信息对于分析它们之间的关联至关重要。

  • 关注更长的历史信息。以前的工作大多是将每个时间步的数据输入模型,这种方式在序列比较长的时候运行效率太低,导致无法引入更长的历史序列信息,而patch操作可以在输入token数量相同的情况下获得更长的回视窗口。

  • 降低模型计算量和内存使用量。原始Transformer在时间和空间上的复杂度为  ,其中N为输入token的数量。如果不进行预处理,N将与输入序列长度L具有相同的值。通过应用patch,可以将N缩小(N≈L/S,S为步长)。

    (2)Channel-independence:多变量时间序列是一个多通道信号,模型的输入token可以由来自单通道或多通道的数据表示。Channel-independence意味着每个通道仅包含一个单变量时间序列,它们共享相同的嵌入和Transformer权重。这已被证明适用于CNN和线性模型,但尚未应用于基于Transformer的模型中。

0a297ff834f7319871e9b4f8ea0d6af0.png

outside_default.png

60edd6744b92c4f753f52b218e3a97d9.png

2.方法

    考虑以下问题:给定一个多变量时间序列样本集合:  ,回视窗口长度为L,其中每个  是对应于时间步t的M维向量,想要预测未来T个值  。

2.1 模型结构

  文章提出的PatchTST(Patch Time Series Transformer)结构图如下所示,其中模型使用了Transformer编码器作为其核心结构。

8b06d454fb4fd62c7f31b22e7a77d608.png

2.2 时序预测

  • 前向过程(Forward Process)

    将多变量时间序列中的第i个序列表示为  ,i=1,...,M。因此,输入  被分割成M个单变量序列  ,根据Channel-independence设置,每个序列都独立地进入Transformer骨干网络。之后,Transformer将提供预测结果  ,如上图(a)所示。

  • Patching

    每个输入的单变量时间序列  首先被划分为N个patch,这些patch可以是有重叠的,也可以是不重叠的。

    设每个patch长度为P,两个连续patch之间的不重叠区域记为S,那么产生的patch序列为  。通过patch操作,输入模型的token数量减少。因此,在训练时间和GPU内存的限制下,patch设计可以让模型看到更长的历史序列,从而显著提高预测性能。

  • Transformer编码器

    模型使用普通的Transformer编码器,将观察到的信号映射为潜在表征。

    作者通过一个可训练的线性投影  ,将这些patch映射到D维的Transformer潜在空间,并使用一个可学习的位置编码  来标记各个patch的顺序。最终送入Transformer编码器的输入表示为  ,其中  。

    多头注意力输出  计算公式:

    多头注意力模块还包括BatchNorm层和一个具有残差连接的前馈网络,如上图(b)所示。最后,利用一个带有线性头的展平层得到预测结果  。

  • 实例归一化(Instance Normalization)

    该技术最近被提出,用于缓解训练数据和测试数据之间的分布偏移效应。它通过使用简单的零均值和单位标准差,将每个时间序列实例  归一化。而在实际操作中,作者在patch之前对每个  进行归一化处理,然后将平均值和偏差加回到输出预测中,得到最后的预测结果。

  • 损失函数

    使用MSE损失来衡量预测结果与真实值之间的差异。计算每个通道的损失,并在M个时间序列上进行平均,得到总体目标损失:

2.3 自监督表征学习

    自监督表征学习目前已成为一种从无标签数据中提取高级抽象表征的流行方法。作者在这里利用掩码自编码器(Masked AutoEncoder,MAE)技术,基于PatchTST模型来获得多变量时间序列的有用表示,并将其应用到预测任务中,如上图(c)所示。MAE技术在概念上很简单:有意地随机删除输入序列的一部分,然后训练模型来恢复丢失的内容。

    具体来说,文章采用随机mask的方式,对patch进行零值掩码。然后利用MSE损失对模型进行训练,以还原被mask掉的patch。与预测任务不同的是,在表征学习阶段,patch的划分只能是无重叠的,以防止信息的泄露。

    之前基于Transformer的表征学习方法,大都是在单个时间步级别上应用mask。但是,单个时间步的masked值可以很容易地根据相邻点插值来推断,而不需要对整个序列有高层次的理解,这影响了预训练阶段的学习能力。文章在patch级别上应用mask,是一个更困难的任务,可以让模型更好地进行表征学习。

c3937ca8c3e495b2af569c88cba04497.png

outside_default.png

20067af0b7e00d05403747aeb519697d.png

3.实验 

3.1 实验设置

  • 数据集

   天气、交通、电力、ILI和4个ETT数据集(ETTh1、ETTh2、ETTm1、ETTm2)

b09ddbf51a0a23a059fc64fd22bf0cf5.png

  • 基线

  FEDformer、Autoformer、Informer、Pyraformer、LogTrans,以及非基于Transformer的DLinear模型

  • 评估指标

     MSE(均方误差)、MAE(平均绝对误差)

  • 模型变体

     PatchTST/64:输入patch的数量为64,回视窗口长度L = 512

     PatchTST/42:输入patch的数量为42,默认回视窗口L = 336

     两者均使用patch长度P = 16,步长S = 8

3.2 多变量长期预测实验结果

09c9b3377dca989d320ec099e9d85a39.png

  • 与基于Transformer的模型所能提供的最佳结果相比:

    PatchTST/64在MSE上总体降低了21.0%,在MAE上降低了16.7%;PatchTST/42在MSE上总体降低了20.2%,在MAE上总体降低了16.4%。

  • 与线性模型DLinear相比:

    PatchTST在总体上仍然优于它,特别是在大型数据集(天气、交通、电力)和ILI数据集上。

  • 此外,使用更长的历史序列信息也会提升预测效果。

3.3 掩码自监督学习实验结果

高掩码率:40%的patch被mask为零值

Fine-tuning:端到端微调

Lin. Prob.:线性层微调

Sup.:监督学习

e3c03194849bf657c8199b7358d7735b.png

根据实验结果,模型取得了出色的微调性能:

  • 通过对模型头进行微调(线性层微调),预测性能已经可以与从头开始监督训练整个网络相媲美,并且优于DLinear模型。

  • 通过端到端微调可以观察到最好的结果。

3.4 消融实验

P:patching

CI:Channel-independence

fb8e0856347538d853ca729c00496b4e.png

实验结果表明:patching和Channel-independence都是提高预测性能的重要因素。

e16eda3df5d168e0de1b807bf4c275e4.png

outside_default.png

7a9fc1a3f23243417fd52dafea764464.png

4.总结

该文通过引入两个关键部分:Patching和Channel-independence,提出了一种有效的基于Transformer的时间序列预测模型。与以前的工作相比,它可以捕捉局部语义信息,并从更长的回视窗口中受益。文章不仅证明了PatchTST模型在监督学习方面优于其他基线,而且还证明了它在自监督表征学习方面的良好能力。

- E N D -

文章来源:时空数据智能实验室

论文链接:https://arxiv.org/pdf/2211.14730.pdf

  1. 下载1:OpenCV-Contrib扩展模块中文版教程
  2. 在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。
  3. 下载2:Python视觉实战项目52
  4. 在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。
  5. 下载3:OpenCV实战项目20
  6. 在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。
  7. 交流群
  8. 欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/525161
推荐阅读
相关标签
  

闽ICP备14008679号