阅读笔记 | Transformers in Time Series: A Survey
阅读论文:
Wen, Qingsong, et al. “Transformers in time series: A survey.” arXiv preprint arXiv:2202.07125 (2022).
这篇综述主要对基于Transformer的时序建模方法进行介绍。论文首先简单介绍了Transformer的基本原理,包括位置编码、多头注意力机制、前馈全连接网络等模块。接着提出了从网络结构和应用领域两个角度对时序Transformer进行分类。
-
从网络结构角度,总结了在模块级别和架构级别对Transformer进行的改进,以适应时序建模的特点
- 位置编码模块
- 简单位置编码:经典Transformer中用到的,手工设计,能提取位置信息但无法充分利用时序数据的重要特征
- 可学习位置编码:使用别的模型或增加Transformer嵌入层来学习时序的位置编码的向量表示,获得更灵活更expressive的位置编码
- 时间戳编码:在Informer和Autoformer里将年月日时分秒和节假日等作为额外的位置编码信息,通过可学习位置编码方法得到其向量表示
- 注意力模块
- 引入稀疏偏差到注意力机制来降低普通注意力机制的平方复杂度
- 探索自注意力矩阵的低秩特性来加速计算(例如Informer和FEDformer)
- 分层架构设计
- 基于max-pooling下采样实现分辨率折半(Informer)
- 基于C叉树以不同分辨率序列作为节点,并设计相同分辨率尺度和不同分辨率尺度间的注意力机制以捕获其分辨率尺度间的时间依赖(Pyraformer)
- 位置编码模块
-
从应用角度,概述了Transformer在预测、异常检测和分类任务中的不同变体的应用情况。
-
预测
-
时序预测
-
模块级的变体
-
设计新的注意力模块(占大部分研究)

- LogTrans:提出卷积自注意力,使用因果卷积来生成自注意力层的queries和keys,并引入稀疏bias和Logsparse mask到自注意力层
- Informer:根据queries和keys相似度选择主要的queries,还设计了生成式的decoder来避免在长期预测时做单步自回归预测的累积误差
- AST:使用生成对抗编码器-解码器框架训练稀疏Transformer模型做时序预测,也可以避免累积误差
- Pyraformer:设计了一个分层金字塔状注意力模块,基于上述的C叉树捕获不同分辨率时序的时间依赖
- Quatformer:基于四元数提出learning-to-rotate注意力,引入了可学习的周期和相位信息使得模型可以学习到复杂的时序周期模式
- FEDformer:通过傅里叶变换和小波变换在频域实现注意力操作以降低计算与存储复杂度
-
增强可解释性
- TFT:设计了一个针对多种输入数据优化的multi-horizon预测模型,通过合并全局、时序依赖和事件来实现可解释性
- ProTran:Transformer和状态空间模型(SSM)结合,实现基于变分推理的生成建模和推理
- SSDNet:Transformer和SSM结合,用Transformer学习时间模式并估计SSM参数,再用SSM对时序数据进行季节性趋势分解以实现可解释性
-
探索新的时序数据标准化方法
- 目前只有Non-stationary Transformer:探索了时序预测任务中的过度平稳化问题,并实现了用于序列平稳化和去平稳化的插件模块
-
利用token输入的偏差
- Autoformer:基于分段表示机制,设计了季节性趋势分解架构。
- PatchTST:利用通道无关实现多通道序列embedding共享,子序列patch设计分割时序数据为子序列patch作为Transformer输入
- Crossformer:利用了跨维度依赖进行多元时序预测,通过维度分段embedding将输入嵌入到二维向量以保留时间和维度信息,并用两阶段注意力层来捕获这种跨维度依赖。
-
-
架构级的变体
- Triformer:三角树形结构,轻量且线性复杂度
- Scaleformer:提出多时间尺度架构,并可通过在多尺度上共享参数地迭代细化预测时间序列来提高性能
-
-
时空预测
- Traffic Transformer:加上图神经网络模块捕获空间依赖性
- Spatial-temporal Transformer:在前者基础上加上了空间的Transformer block和图卷积神经网络来更好捕获空间依赖性
- Spatio-temporal graph Transformer:设计了基于注意力的图卷积机制来学习复杂时空注意力模式
- Earthformer:提出立方体注意力机制,将数据分解为立方体并应用该机制
-
事件预测(不规则且时间间距不等的事件序列)
- 在传统时间点过程(TPP)方法上结合Transformer,通过嵌入所有可能时间和时间来扩展该方案
-
-
异常检测(可用于电力数据的跳变异常点检测)
- TranAD提出使用对抗训练来放大重建误差,增强Transformer的异常检测能力。
- MT-RVAE 设计了多尺度Transformer,同时整合全局和局部时序信息。
- TransAnomaly将Transformer与VAE结合,实现训练成本的大幅降低。
- GTA 借鉴图神经网络思想,模拟变量之间的影响传播机制。
- AnomalyTrans通过建模先验关联和序列关联的方式增强异常点的区分度。
-
分类任务
- GTN使用双塔结构分别建模时间步和通道注意力,通过可学习加权融合特征,在多元时间序列分类任务上取得SOTA
- [Rußwurm and Körner, 2020] 应用基于自注意力的Transformer获得了卫星图像时间序列分类的SOTA
- TARNet设计了学习任务相关数据重构的Transformer,利用mask和重构时间步的注意力机制提升了分类性能
- [Yuan and Lin, 2020] 在卫星图像时间序列分类中应用了自监督预训练的Transformer来缓解数据不足
- [Zerveas et al., 2021] 提出了无监督预训练框架,使用比例mask数据进行模型预训练后微调
- [Yang et al., 2021] 使用预训练语音模型进行时间序列分类任务迁移学习,在多个数据集上获
-
该论文还通过实验分析了 Transformer在时序建模中的鲁棒性、模型大小和季节性分解等多个方面。作者在ETTm2数据集上针对不同配置的时序Transformer进行了实验分析,以研究它们在时序建模中的工作方式。
鲁棒性分析表明,许多仔细设计的Transformers在输入序列加长时,性能快速恶化。这使它们在长期预测中实际效果有限。需要更多工作来充分利用长序列输入。
模型大小分析发现,增加Transformer层数并不一定改善预测效果,3-6层的Transformer通常效果更好。这提出了如何设计更深层Transformer架构的问题。
季节性-趋势分解分析发现,这种分解可以显著提升Transformer在时序预测中的表现,不同模块提升幅度在50-80%。这一发现值得进一步研究设计更高级的分解方案。
最后文章提出了未来可能的研究方向,包括为时序Transformer引入先验偏置、与图神经网络结合、预训练模型、架构级变体设计和神经架构搜索等。
个人思考
- 该调研在时空预测方面的调研启发了对图神经网络的利用,而在电力负荷预测中的某些场景,也许可以对电网结构进行考虑,将电网的拓扑结构、输电距离和输电损耗等等要素加以考虑,并以立方体Transformer等方法将空间信息数据的embedding向量放到Transformer进行处理。
- 在Transformer应用于异常检测的方面,无监督Transformer被广泛研究。但在考虑进一步应用落地到电力行业时,例如用于电负荷突变点等异常点检测时,可能需要考虑到如TFT中对多种数据源的利用,特别是未来可知数据的输入。能否将无监督重建任务范式与TFT中这种输入数据模式进行结合是一个值得思考的问题。
相关文章:
阅读笔记 | Transformers in Time Series: A Survey
阅读论文: Wen, Qingsong, et al. “Transformers in time series: A survey.” arXiv preprint arXiv:2202.07125 (2022). 这篇综述主要对基于Transformer的时序建模方法进行介绍。论文首先简单介绍了Transformer的基本原理,包括位置编码、多头注意力机…...
WPF MVVM中List<>和ObservableCollection<>的区别与对比分析
在WPF MVVM(模型-视图-视图模型)架构中,数据绑定是实现UI与后端逻辑分离的关键特性。为了使UI能够响应后端数据的变化,通常需要用到特定的集合类型。在WPF中,最常见的两种集合类型是List< T>和ObservableCollect…...
python给企微发消息
方法一:webhook方式。使用群机器人给企微群发消息 import requestsdef qwxsendmessage(msg):urlhttps://qyapi.weixin.qq.com/cgi-bin/webhook/send?key6c598840-804a-4eb5-a999-a023313 #url换成自己群机器人的webhookurldata{msgtype:text,text:{content:msg}}…...
TCP/IP状态迁移
TCP(传输控制协议)是一种面向连接的流式控制协议,它定义了不同的状态以管理通信过程中的连接。TCP 状态迁移描述了 TCP 连接在不同状态之间的转换过程,常见的 TCP 状态包括 CLOSED、LISTEN、SYN_SENT、SYN_RECEIVED、ESTABLISHED、…...
C语言实现各类排序算法
排序算法是计算机科学中的一个重要概念,它是一种将一个无序的数列重新排列成有序的方法。常见的排序算法有: 选择排序(Selection Sort) 选择排序是一种简单直观的排序演算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序…...
Network LSA 结构简述
Network LSA主要用于描述一个区域内的网络拓扑结构,包括网络中的路由器和连接到这些路由器的网络。它记录了每个路由器的邻居关系、连接状态以及连接的度量值(如带宽、延迟等),以便计算最短路径和构建路由表。display ospf lsdb n…...
揭示IP风险画像的作用与价值
在当今数字化时代,互联网的快速发展为企业和个人带来了巨大的机遇,同时也带来了各种安全风险和威胁。随着网络攻击手段的不断升级和演变,传统的安全防御手段已经无法满足对抗复杂多变的网络威胁的需求。IP风险画像作为一种新型的网络安全解决…...
[python] dataclass 快速创建数据类
在Python中,dataclass是一种用于快速创建数据类的装饰器和工具。自Python 3.7起,通过标准库中的dataclasses模块引入。它的主要目的是简化定义类来仅存储数据的代码量。通常,这样的类包含多个初始化属性,但没有复杂的方法…...
opencv实现图像的融合
实现图像的融合并且输出一张jpg格式的照片。 先显示一个彩色图的照片 然后我以彩色方式读取1.png,以灰度图方式读取3.png这张图片,并且用两个窗口独立地去显示(我后来发现不能把灰度图和彩色图相融合) 然后实现两个融合 #include <opencv2/highgu…...
Orbit 使用指南 02 | 在场景中生成原始对象| Isaac Sim | Omniverse
如是我闻: Orbit使用指南02将 深入探讨如何使用Python代码在Orbit中向场景生成各种对象(或原始对象)。一起探索如何生成地面平面、灯光、基本图形形状以及来自USD文件的网格。前置知识:如何生成空白场景,Orbit 使用指…...
【2024】利用python爬取csdn的博客用于迁移到hexo,hugo,wordpress...
前言 博主根据前两篇博客进行改进和升级 利用python爬取本站的所有博客链接-CSDN博客文章浏览阅读955次,点赞6次,收藏19次。定义一个json配置文件方便管理现在文件只有用户名称,后续可加配置读取用户名称,并且将其拼接成csdn个人博客链接ty…...
从嵌入式Linux到嵌入式Android
最近开始投入Android的怀抱。说来惭愧,08年就听说这东西,当时也有同事投入去看,因为恶心Java,始终对这玩意无感,没想到现在不会这个嵌入式都快要没法搞了。为了不中年失业,所以只能回过头又来学。 首先还是…...
蓝桥ACM培训-实战1
前言: 今天老师没讲课,只让我们做了一下几道题目。 正文: Problem:A 小蓝与操作序列: #include<bits/stdc.h> using namespace std; stack<int> a; int main(){int n,flag1,ans;string cz;cin>>n;for(int i1;…...
波动数列(蓝桥杯)
问题描述: 观察如下数列: 1 3 0 2 -1 1 -2 … 这个数列中后一项总是比前一项增加 2 或者减少 3。 栋栋对这种数列很好奇,他想知道长度为 n nn 和为 s ss 而且后一项总是比前一项增加 a aa 或者减少 b bb 的整数数列可能有多少种呢?…...
第二篇【传奇开心果系列】Python的自动化办公库技术点案例示例:深度解读Pandas金融数据分析
传奇开心果博文系列 系列博文目录Python的自动化办公库技术点案例示例系列 博文目录前言一、Pandas 在金融数据分析中的常见用途和功能介绍二、金融数据清洗和准备示例代码三、金融数据索引和选择示例代码四、金融数据时间序列分析示例代码五、金融数据可视化示例代码六、金融数…...
Flink:Temporal Table Function(时态表函数)和 Temporal Join
博主历时三年精心创作的《大数据平台架构与原型实现:数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行,点击《重磅推荐:建大数据平台太难了!给我发个工程原型吧!》了解图书详情,…...
Go语言中的时间控制:定时器技术详细指南
Go语言中的时间控制:定时器技术详细指南 引言定时器基础创建和使用time.Timer使用time.Ticker实现周期性任务定时器的内部机制小结 使用time.Timer实现简单的定时任务创建和启动定时器停止和重置定时器定时器的实际应用小结 利用time.Ticker处理重复的定时任务创建和…...
面试笔记系列六之redis+kafka+zookeeper基础知识点整理及常见面试题
目录 Redis redis持久化机制:RDB和AOF Redis 持久化 RDB的优点 RDB的缺点 AOF 优点 AOF 缺点 4.X版本的整合策略 Redis做分布式锁用什么命令? Redis做分布式锁死锁有哪些情况,如何解决? Redis如何做分布式锁?…...
Golang动态高效JSON解析技巧
JSON如今广泛用于配置和通信协议,但由于其定义的灵活性,很容易传递错误数据。本文介绍了如何使用mapstructure工具实现动态灵活的JSON数据解析,在牺牲一定性能的前提下,有效提升开发效率和容错能力。原文: Efficient JSON Data Ha…...
双重检验锁
双重检验锁:设计模式中的单例模式,细分为单例模式中的懒加载模式。 单例模式 单例模式:指的是一个类只有一个对象。最简单的实现方式是设一个枚举类,只有一个对象。缺点是当对象还没有被使用时,对象就已经创建存在了…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...
Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...
【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...
MinIO Docker 部署:仅开放一个端口
MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...
实战三:开发网页端界面完成黑白视频转为彩色视频
一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 二、实现思路 总体思路: 用户通过Gradio界面上…...
