这是博主阅读论文的笔记
因为看别人解析的博客时总担心会漏掉原文的内容
所以采用“原文 + 笔记”的形式
不想看原文的朋友可以忽略图片
原文链接:https://arxiv.org/abs/2211.14730
源码链接:https://github.com/yuqinie98/PatchTST
0 摘要
- 这个模型是基于Transformer
- 主要内容
- Patches:将输入分段成patch,再作为Transformer的输入
- Channel-Independence:将多特征拆分为单个特征,输入模型再对结果进行拼接,而非多个特征直接输入Embedding层(Channel-mixing)
- 模型优点
- 在embedding中保留局部语义信息
- attention计算量减少
- 对长度预测更好?
- 刷新了长期预测、自监督预训练、迁移学习的SOTA
1 介绍
- 基于Transformer的时序预测模型变体
- Informer(2021)、Autoformer(2021)、FEDformer(2022)
- 本文两个主要的设计
- Patching:单步的时序数据 并不像 句子中的一个单词 那样具有语义;利用Patch能捕获完整的语音信息。
- Channel-independence:
- 有两种input token的设计:1)Channel-mixing,将所有特征通过embedding层映射,输入信息是混合的;2)Channel-independence,每一个input token的信息仅来自一个channel(或者说一个特征)
- 模型的优点
- 减少时间、空间复杂度
- 可以从更长的输入中学习(论述过程,基于Table1 case study的结果)
- 从上面Table 1 中可知:增大look-back window 可以减小MSE
- 但这个增大受限于内存与计算资源
- downsample(下采样)能够使得同样的tokens下的MSE更小
- 但是downsample会损失原始数据
- 所提出的Patching能够在不损失原始数据的前提下,减小MSE,Patching很有用。
- 该模型在 自监督表征学习 和 迁移学习上表现都很好,反正就是很厉害。
2 相关工作
- Patch在基于Transformer的模型上的应用
- 在NLP领域,BERT模型;CV领域,ViT模型上,还有BEiT、masked autoencoders上都有应用
- 基于Transformer的长期时序预测
- LogTrans(2019)、Informer(2021)、Autoformer(2021)、FEDformer(2022)、Pyraformer(2022)
- 之前的工作专注于减小原始attention机制的复杂度;但大部分还是用逐点的attention计算机制;
- Patch相关的工作,要么将其当做一个输入但愿,要么仅用了其背后的语义重要性?
- 时序表征学习:也介绍了一些工作、模型,但总感觉这块像是为了凑工作量加的实验,主要这块我也没咋接触,就没记了。
3 提出的方法
3.1 模型结构
-
1.Forward Process:将M维,拆分为独立的单变量时序数据
-
2.Patching:
- 将单变量时序切分为Patches,1 x L -> P x N
- 作用:1)减小内存&计算;2)输入序列可更长
-
3.Transformer Encoder:和Transformer一样
-
4.Loss Function:M个特征,T步预测值,求均方误差
-
5.Instance Normalization:Patch钱归一化,预测后再反归一化
3.2 表征学习
- 自监督表征学习:随机移除部分输入,训练模型,恢复该部分
- 时序掩码的值很容易被插值的方法推断出来
- 做这个的时候,只用把PatchTST改成没有重叠的Patches就行了
4 实验
- 就不贴所有实验结果了,发文章肯定是好的,具体咋样,大家自己验证就好
4.1 长期时序预测
4.2 表征学习
- 自监督学习的PatchTST会比监督学习的结果好;自监督学习中,端到端微调的结果 优于 微调模型头部的结果
- 迁移学习部分结果不如监督学习
4.3 消融实验
- 就本文提出的两个机制的消融实验
- 从结果中看,输入越长,结果并没有越来越好
5 结论
- PatchTST好
- 对于Channel-independence的作用,正文中没过多解释,在附录A.7中有介绍
- 感觉附录还是比较详细了,介绍了数据集、各个机制的消融实验,不同参数的结果、甚至是不同种子的结果
TO BE CONTINUE …
有时间再补下 附录中Channel-independence的作用
还有PatchTST的源码解析