ICLR/NeurIPS论文分享:任务通用的时序基础模型

news2024/9/22 13:28:32

在这里插入图片描述
吴海旭
清华大学软件学院博士生

师从龙明盛副教授,研究方向为深度学习及其在复杂时空物理过程建模中的应用,目前在Nature Machine Intelligence、IEEE TPAMI、ICML、NeurIPS上发表多篇论文,研究成果在中国气象局、北京冬奥会落地应用。曾获清华大学研究生特等奖学金、研究生“学术新秀”等荣誉。

论文分享:
TimesNet: Temporal 2D-Variation Modeling for General Time Series Analysis(ICLR 2023)
TimesNet:任务通用的时间序列分析骨干网络

SimMTM: A Simple Pre-Training Framework for Masked Time-Series Modeling(NeurIPS 2023)
SimMTM:时间序列掩码预训练框架


以下内容是根据清华大学软件学院吴海旭在2023 CCF国际AIOps挑战赛决赛暨“大模型时代的AIOps”研讨会闪电论文分享环节上的演讲整理成文:

大家好,我是来自清华大学软件学院的博士生吴海旭,师从龙明盛教授。非常高兴今天有机会可以跟各位专家和同行分享我们在时间序列基础模型上的研究成果。

时间序列在现实世界中无处不在,比如金融业、能源业、交通业等,当然也存在于我们的运维领域中。

图片

在时间序列领域,我们期待能够用深度学习的方法给时间序列的分析添砖加瓦,让它变得更加智能,比如像预测、缺失值填补、异常检测、分类等等,这些复杂的分析任务,在日常的运维工作之中都起到非常关键的作用。

图片

在此之前,我们期望的是给每一个任务都训练一个匹配模型,但是在2021年的时候Foundation Model这个概念被提出来了,由此我们产生了一个想法:能不能用一个模型去完成多种分析任务,比如可以接受多模态输入,然后完成多种多样的任务。我们这次研究的主要是时间序列方面,所以具体的目标就是这个模型能不能接受时间序列,然后完成刚才提到的这4种任务(预测、缺失值填补、异常检测、分类)。

图片

通常情况下,我们要建立一个这样的Foundation Model模型,需要很多种类的内容,比如大数据、模型结构的设计以及训练方法,只有这三方面都具备之后,我们才能够去完成一个大模型的设计。

我们实验室主要关注的是模型的设计以及训练方法的设计,今天我分享的两篇论文也是和这两方面相关的,一篇是TimesNet:任务通用的时间序列分析骨干网络;一篇是SimMTM:时间序列掩码预训练框架。

图片

我们先介绍第一篇论文:TimesNet: Temporal 2D-Variation Modeling for General Time Series Analysis / TimesNet:任务通用的时间序列分析骨干网络。这是去年我们发表在ICLR 2023上的一篇论文。研究内容是尝试使用一个通用的Backbone去解决上述提到的时序分析的主流任务。

图片

一般来说,通用的Backbone在视觉和NLP里面已经有非常成功的案例,比如大家所熟知的Transformer系列和ResNet等等。它们的范式都是在一个Backbone的后面加上一个领域任务特定的头部,也就是Backbone是共享的,头部是独特的。如果按照这个思路设计,那在时间序列里面的Backbone应该长什么样子呢?

图片

我们可以对比一下图像、自然语言和时间序列有什么区别?

对于图像和自然语言来说,即使是很小的一部分,比如图像中一个局部或者语言之中的一个词,它都含有非常丰富的语义信息。但对于时间序列而言就特别不一样了,因为时间序列上的每一个小的时刻,都是只包含几个常数,信息量非常少,更多的信息其实被包含在了这个时间序列的变化之中,我们把它叫做Temporal Variations。

图片

上图中展示出的是一个序列,有上升平稳和下降的过程,多种多样的过程混杂在一起,让时间序列的分析变得特别复杂。

图片

我们发现现实世界的时间序列往往表现出一种多周期的属性,比如说交通有天的和周的周期,天气有天的和年的周期等等,多个周期混叠在一起,让时间序列的变化变得特别复杂。于是我们决定通过一个多周期的视角,重新去分析时间序列的技术模型该怎么去做。

图片

同时我们深入到每个周期,发现它还包括周期内和周期间的变化。周期内就是short-term的变化,是由于时间序列连续性造成的。周期间是不同周期相同相位的过程,是时间序列的一个long-term的信息,如何让模型同时捕捉周期内和周期间的属性,也是我们研究的一个重点。

图片

基于上述两个观察,我们设计了TimesNet模型。为了建模多周期,它天然使用了A modular一种模块化的思路,把一个时间序列分解成多个周期去处理。

对于每个周期,我们想同时表示它周期内和周期间的变化,时间序列是排布在一个 1D的空间之中,它周期内的变化是连续的,周期间的变化是间隔的,这里就产生了一个难点:1D空间很难同时表现出两种不同的变化方式。

图片

针对上述难点我们提出了一个Temporal 2D-variation的概念,也就是在二维空间之中去分析原来的1D时间序列。比如说一个周期长度是n,整个序列的长度是2n,我们就可以按照周期把它折叠。像图片中上面部分展示的那样,我们可以把一个时间序列按照周期,把它重新排序成一个二维的张量,它在每一行是不同周期同向位的过程,每一列是相同周期内的过程。

这样处理有一个好处,就是我们可以用2D的张量天然的把时间序列重新排布重新组织,能够非常方便的表示周期内和周期间的变化。

图片

我们举个例子,图片中展示的是一个电力数据集,我们发现电力数据集有多个周期,包括Period 72、 Period 40和Period 24等等。重新排布之后,这个时间序列就变得特别的有趣了,原来的时间序列是很复杂的,现在它竟然表现出了一些locality也就是有一些局部性。这个其实很好理解,就是你和你周围的点相似,你和不同周期相同相位的点也是相似的,这样的2D locality在视觉之中是被非常重视的一种特征。

图片

在这种思路的引导下,我们能不能用视觉之中的backbone去处理这种原始的1D的时间序列呢?这就是我们的一个核心概念,通过建模Temporal 2D-variation,可以让视觉的领域和时间序列分析的领域联合起来。

图片

上图展示的是我们TimesNet的一个整体架构。它是模块化的,同时在二维空间之中去分析1D的时间序列。

图片

我们提出一个标准的backbone,然后借鉴了ResNet的设计思想,只不过我们把ResBlock换成了TimesBlock。

具体的设计方法是首先在1D空间之中去学特征,然后通过FFT寻找周期,得到周期之后,把它折叠成二维的Tensor,然后用2D的Kernel去处理,最后在1D空间之中把这个特征结合起来。

图片

我们的研究成果在Long-term Forecasting、Short-term Forecasting、Imputation、Classification、Anomaly Detection这5种任务上进行了测试,结果是非常令人兴奋的,5种任务都取得了令人满意的效果。

当然模型设计的过程是很难的,之前的模型是把一个任务完成好,现在我们这个模型可以展现出多功能的属性。

因为这是去年投稿的论文,今年已经有很多非常棒的论文新出来。希望我们这篇论文能给大家一个启发,时序模型的任务可以做的更加丰富多样。

图片

刚才我们提到了设计方式可以让时间序列原始的1D的时间序列和视觉领域的一些前沿工作结合起来,把2D Kernel换成ConvNext(这是CV领域一个非常棒的工作)效果可以进一步的提升。但是因为我们要trade off efficiency和performance,最后我们选择了一个Inception的结构。

图片

这个代码也开源了,我们提供了非常完整的5个任务的代码,大家可以非常方便的去测试自己的深度模型。Code is available at https://github.com/thuml/Time-Series-Library with 3000+ stars.

图片

一个大模型不光需要结构,还需要一个训练方法。下面我继续分享另一篇我们在NeurIPS 2023上发表的论文, SimMTM: A Simple Pre-Training Framework for Masked Time-Series Modeling。

图片

这篇论文主要研究的是时间序列的预训练任务。很多业界的前辈都有感受,时间序列实在是太多了,所以预训练任务非常重要。现在我们可以通过一个预训练的方法,把这些时间序列的知识压缩到一个深度模型之中,等我们有了新的场景之后,可以通过Fine-tuning模型把它的知识释放出来。

最近在深度学习领域有一个非常火的训练方法叫Masked Modeling(掩码重建),掩码重建思想在自然语言和CV里面被广泛使用,比如BERT或者MAE等。

图片

图片

最开始我们关注MAE的时候感觉非常惊艳。如果把一张图像75%的部分遮挡,得到的是左边图像的效果,然后拿一个深度模型去重建遮挡的部分。右边是重建的结果,效果非常理想。我想如果让一个人类去重建,比如重建一个花豹,大概率不如深度模型做的好。

这其实意味着可以让深度模型去记忆,通过没有被掩码的部分去想象出来它被掩码的部分应该是什么样子,逼迫深度模型去学习一些特征。

如果我们把掩码重建的思路应用到时间序列里面是否可行?答案是否定的,因为时间序列的每一个局部所包含的信息量非常少,它更多的信息是在变化之中,掩码之后这个变化就被破坏掉了。

图片

我们做了一个简单的实验,把某个时间序列Masked的50%让深度模型去重建。图片右边的橘色线条是重建结果,蓝色线条是原始状态,通过对比可以看到重建的结果非常差。这意味着在原始的时间序列流行之中,给它Masked就相当于做一个扰动得到红色点,把它再重新投影回流行之中,这个过程其实是很困难的。

图片

在研究的过程中我们产生了一个新的想法,能不能借助流形学习里面一个非常重要的概念Neighborhood Aggregation也就是近邻聚合的思想,不仅仅是依靠自己去重建,而是依靠身边的近邻点去重建。对于一个时间序列来说,连续对它Masked四、五次(Masked都是随机的),这四、五次时间序列之间是会有一个互相互补的信息,这样就可以让重建变得更好。当然重建不是最终目的,重建变得更好可以让模型训练得更好,最终目的是指导模型训练。

图片

两种方法的结果对比非常明显,当用近邻聚合的方法代替原始的MAE的方法的时候,我们发现更多的信息被深度模型捕捉到了,它可以让时间序列被重建的更好。

图片

对于一个时间序列来说,我们要做好两方面的事情,第一是重建什么?第二是怎么重建?

重建什么?

我们要做的是点级别的重建,就是一个序列还原出一个序列。我们需要一个Point-wise Representations,就是一个点级别的表征。

怎么重建?

我们的想法是把多个时间序列融合在一起,设计一个Series-wise Representations,它是一个序列级别的表征。同时获得这两个之后,我们可以在序列级别表征上去学习多个时间序列的相似度,然后基于相似度把点级别的表征给聚合起来,这样就可以完成一个重建。这个过程也天然利用了多个掩码序列之间的相似度。

另外还有一个隐式的表征,我们发现如果给它的局部信息更多了,可以在流行学习的时候,不光是学 projection的过程,还可以学习流行附近的表征,让我们的表征学习学习的更好。

图片

我们的模型也在Forecasting和Classification两个任务上做了检验,两个任务的差别非常大,因为Forecasting需要的是一个low level的任务,Classification需要的是一个high level的表征,它分别是1D重建和高维度分类的过程。

图片

我们也进行了领域内和跨领域的测试,跨领域是指在一个完全不一样的数据集上预训练,然后在另外一个数据集上做测试。最后SimMTM的表现还是不错的,也可以提升Fine-tuning的效果。

图片

除此之外,我们发现这个模型预训练方法,还可以一致性的提升时间序列预测模型的效果,图片中显示的是我们选的几个比较前沿的时间序列预测模型测试结果,用我们这个方法预训练完之后,再去Fine-tuning,这些模型的效果变得更好了。

我们的模型代码也已经开源了,欢迎大家学习交流。Code is available at https://github.com/thuml/SimMTM

图片

总结一下。

关于现在时间序列里面的Foundation Model,大家有许多的争论,到底我们应该怎么做,是以时间序列为中心,还是要引入更多模态进来,这件事情目前还是处于未定状态。我个人觉得更多的是需要我们工业界和学术界的深度联动,工业界和学术届分别发挥在数据、算力和模型设计等方面的优势,紧密合作才可以有突破。

以上就是我的分享,谢谢大家。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1484237.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux信号【systemV】

目录 前言 正文: 1消息队列 1.1什么是消息队列? 1.2消息队列的数据结构 1.3消息队列的相关接口 1.3.1创建 1.3.2释放 1.3.3发送 1.3.4接收 1.4消息队列补充 2.信号量 2.1什么是信号量 2.2互斥相关概念 2.3信号量的数据结构 2.4…

【高阶数据结构】LRUCache

文章目录 1. 什么是LRU Cache2. LRU Cache的实现3. LinkedHashMap4. LRU Cache OJ题4.1 题目要求4.2 解题思路4.3 代码实现4.3.1 Java代码一4.3.2 Java代码二 1. 什么是LRU Cache LRUCache,全称为Least Recently Used Cache,即最近最少使用缓存&#xf…

基于springboot+vue的纺织品企业财务管理系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

mac 安装hbuilderx

下载 HBuilderX下载地址: 下载地址 选额mac版本点击下载 安装 如图,将HBuilderX拖到Applications,才是正确的安装姿势。 MacOSX,软件必须安装到/Applications目录,如未安装到此目录,可能会出现插件安装失败、项目创建…

揭秘Java性能调优的层次 | 综合多方向提升应用程序性能与系统高可用的关键(架构层次规划)

揭秘性能调优的层次 | 综合多方向提升应用程序性能与系统的高可用 前言介绍调优层次调优 — 设计案例说明 - 操作轮询控制事件驱动 调优 — 代码案例说明 - ArrayList和LinkedList性能对比案例说明 - 文件读写实现方式的性能对比 调优 — JVMJVM架构分布JVM调优方向**JVM垃圾回…

Linux搭建SFTP服务器

案例:搭建SFTP服务器 SFTP(SSH文件传输协议) SFTP(SSH文件传输协议)是一种安全的文件传输协议,用于在计算机之间传输文件。它基于SSH(安全外壳协议)的子系统,提供了加密的…

EchoServer回显服务器简单测试

目录 工具介绍 工具使用 测试结果 工具介绍 github的一个开源项目,是一个测压工具 EZLippi/WebBench: Webbench是Radim Kolar在1997年写的一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的…

动态住宅IP vs 静态住宅IP,如何选择适合你的海外住宅IP?

随着数字时代的发展,网络已经成为了我们日常生活中不可或缺的一部分。在海外留学、旅游、工作或者进行电子商务等活动时,一个合适的住宅IP可以帮助我们保护个人隐私、确保网络连接的稳定性、提高在线服务的可靠性等。因此,选择适合自己的住宅…

ChatGPT科研与AI绘图及论文高效写作教程

原文链接:ChatGPT科研与AI绘图及论文高效写作教程 2023年随着OpenAI开发者大会的召开,最重磅更新当属GPTs,多模态API,未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义,不亚于互联网和个人电…

vos3000外呼系统如何修改话机注册端口

本文以vos3000为例,其他产品替换对应产品名称即可 修改配置文件地址 /home/kunshi/mbx3000/etc/softswitch.conf H323_RAS_PORT1719 H323 注册端口,可以用逗号(,)分隔多个端口 H323_RC4_RAS_PORT3719 H323 加密注册端口&#x…

redis03 八种数据类型

思维草图 String类型 字符串类型,是redis中最简单的存储类型,可以包含任何数据,例如jpg图片或者序列化的对象等,底层都是以字节数组形式存储,最大能存储512MB的数据。 常用命令 KEY命名规范 加前缀,分…

Vue3 循环渲染 v-for

v-for 指令:用于循环渲染列表数据。 v-for 指令:可以循环数组、对象、字符串【不常用】、指定次数【很少用】。 key 属性:用于给标签添加一个唯一的标识。 key 属性:推荐使用 id、手机号、身份证号、学号 等唯一值。 注&#…

如何查看docker容器里面运行的nginx的配置文件哪

要查看Docker容器内运行的Nginx配置文件的位置,你可以通过进入容器的shell环境来直接查看。Nginx的默认配置文件通常位于/etc/nginx/nginx.conf,而网站特定的配置文件通常位于/etc/nginx/conf.d/目录中。以下是步骤来查看这些配置文件: 步骤…

挑战杯 基于机器视觉的车道线检测

文章目录 1 前言2 先上成果3 车道线4 问题抽象(建立模型)5 帧掩码(Frame Mask)6 车道检测的图像预处理7 图像阈值化8 霍夫线变换9 实现车道检测9.1 帧掩码创建9.2 图像预处理9.2.1 图像阈值化9.2.2 霍夫线变换 最后 1 前言 🔥 优质竞赛项目系列,今天要分…

软考54-上午题-【数据库】-关系模式的范式-真题

一、范式总结 第一步,先求候选码,由此得到:主属性、非主属性。 二、判断部分函数依赖的技巧 【回顾】:部分函数依赖 (X,Y)——>Z; X——>Z 或者 Y——>Z 题型:给…

Vue2:路由history模式的项目部署后页面刷新404问题处理

一、问题描述 我们把Vue项目的路由模式,设置成history 然后,build 并把dist中的代码部署到nodeexpress服务中 访问页面后,刷新页面报404问题 二、原因分析 server.js文件 会发现,文件中配置的路径没有Vue项目中对应的路径 所以…

【打工日常】使用docker部署在线Photopea用于linux下替代ps

一、Photopea介绍 linux没有ps适配,对于有时候工作来说确实不方便,我找了很久,才找到了一款功能可以跟ps接近的在线软件,使用docker部署就可以了。它是ps的最佳替代品之一,其界面几乎与ps相同,只不过它是在…

Ban for 1 day (wangzherongyao) 2024.03.02

王者荣耀禁赛1天 单排真的要保持【心态】,即便队友是这种,也要克制,不然接着就开始【连败】。 为什么我玩射手和法师喜欢提早第一件第二件出【梦魇】和【制裁】,因为对面有回复英雄就是一个风险,早做应对!…

降低85%的gc发生率:ES的GC调优实践!

#大数据/ES #经验 #性能 ES的服务日志出现一些gc overhead现象,经过调优对比,gc发生率显著下降了85%,分享参数如下: ES的G1GC参数(多实例) -XX:UseG1GC -XX:MaxGCPauseMillis200 -XX:InitiatingHeapOccu…

拒绝机械风,让ChatGPT像真人一样对话

拒绝机械风,让ChatGPT像真人一样对话 在这个信息爆炸的时代,人工智能技术的快速发展让我们的生活变得更加便捷。 特别是在自然语言处理领域,ChatGPT的出现无疑是一次革命性的进步。 然而,虽然ChatGPT在很多方面表现出了惊人的能…