论文解读19——(PatchTST)A Time Series is Worth 64 Words: Long-term Forecasting with Transformers

本文介绍了2023年ICLR上的一项工作,提出PatchTST模型,通过改进Transformer架构,包括将时间序列切分为Patch以捕捉局部信息和引入通道独立性,实现了更高效的长期预测,且在性能上超越了线性模型DLinear。
摘要由CSDN通过智能技术生成

在这里插入图片描述

距离上篇总结Crossformer感觉又是过了好几个月,越往后记录的时间越来越少了,那就趁最近刚整理完脑子里还有余温,作为2024年第一篇吧~

一、文章贡献

这篇是2023年ICLR的文章,提出了一种有效的多元时间序列预测和自监督表示学习模型 PatchTST,主要是基于Transformer做了以下两点改进:

  • 1、将时间序列按照一定大小的窗口和步长切分成Patch,作为模型输入的Token捕捉局部信息;
  • 2、通道独立性:以多变量时间序列为例,每个通道包含一个单变量时间序列,共享相同的嵌入和权重。
    (据说是因为前年很火的线性模型DLinear原文中对Transformer类模型进行时间序列预测提出的质疑,该文做出了回答并改进,最后使得基于Transformer的PatchTST模型在长期预测上效果超过线性模型DLinear。)

二、Patch

首先Patch,顾名思义,就是将序列进行分块,每一个Patch块相当于模型的输入。
早在CV领域就有Patch的思想了,Vision Transformer模型中的Patch是将输入图像分割成均匀大小的区域,每个图像块作为Transformer输入的Token,用来捕获图像内部和区域的关系。

在时间序列中也类似,照一定大小的窗口和步长切分成Patch,这些Patch可以是重叠的或非重叠的。Patch长度为P,步长为S,通过Patch,输入的数量可以从L减少到大约L/S,而注意力机制的内存使用和计算复杂度是成平方减少的。

Patch的改进优势:

  • 1、降低时间和空间复杂度。Attention的复杂度与输入Token的数量成二次方关系,每一个Patch代表一个Token而不是以往每个时间点代表一个Token,减少了Token数量,从而降低复杂度。
  • 2、保持时间序列的局部性。每个Patch捕捉了局部信息,使模型关注了不同区域的特征。相邻时间点的值很接近,而以一个Patch作为计算注意力的最小单位更合理。
  • 3、减少Head的参数量。分Patch前Head大小为(LD)×(MT),其中L为输入序列长度,M为序列个数;分Patch后将L减少到Patch的个数N,这样就不需要逐时间点处理,集中在每个Patch上处理,有效减少参数量。

三、通道独立性

以往基于Transformer的模型采用通道混合的方式,对于多变量时间序列,直接将时间序列所有维度形成的向量投影到嵌入空间来混合多个通道的信息。通道独立性将多元时间序列中的每一维分别输入到Backbone中单独处理,再将预测结果沿维度方向拼接起来,相当于不同维度视为独立的,而嵌入和权重在各维度中是共享的。

  • 1、对于多变量时间序列来说,不同变量(即不同通道)的数据有着不同规律,如果直接混合后投射到同一空间中学习比较困难。
  • 2、一个通道中的数据如果有噪声,很容易影响其他通道。
  • 3、通道独立性不容易过拟合。

PatchTST模型结构图如下:

  • 图b每个通道的单变量序列通过实例归一化操作分割为多个Patch,用来作为Transformer的输入Token。
  • 图c的自监督学习通过随机赋值0的方式遮盖部分Patch,然后通过自监督重建被遮盖的数据,可以更好捕捉时间序列中的模式和特征。
    在这里插入图片描述
    在这里插入图片描述

其他具体细节还需读读原文: A Time Series is Worth 64 Words: Long-term Forecasting with Transformers

Patchtst是一种用于执行补丁测试的代码工具。它的主要功能是验证软件的补丁是否能够正确地修复程序中的错误或漏洞,并确保在应用补丁后系统的功能和性能没有受到影响。 Patchtst的使用方法通常包括以下步骤: 1. 准备测试环境:首先需要搭建一个测试环境,包括安装正确版本的软件以及提供包含漏洞的测试用例或数据集。 2. 选择合适的补丁:根据软件的实际情况,选择合适的补丁进行测试。补丁可以是官方提供的更新包或者第三方开发人员自行开发的修复程序。 3. 执行补丁测试:使用Patchtst工具加载补丁,并针对测试用例或数据集进行一系列的测试。测试的内容可以包括功能测试、性能测试、安全测试等。 4. 分析测试结果:Patchtst会自动分析测试过程中收集到的数据,并生成测试报告。测试报告会详细说明补丁是否成功修复了原有的错误或漏洞,以及在应用补丁后系统的功能和性能表现如何。 5. 验证和反馈:根据测试报告中的结果,开发人员可以验证补丁的有效性。如果发现补丁未能完全修复问题,开发人员可以使用Patchtst提供的反馈机制报告问题,以便进一步改进和修复。 总体而言,Patchtst是一款非常有用的工具,可以帮助开发人员验证补丁的有效性并确保系统的功能和性能不受到影响。它的使用可以提高软件的质量,减少错误和漏洞的存在,提供更加可靠和安全的系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>