时序分析五边形战士!清华提出TimesNet:预测、填补、分类、检测全面领先|ICLR 2023(1)

简介: 时序分析五边形战士!清华提出TimesNet:预测、填补、分类、检测全面领先|ICLR 2023



 新智元报道  

编辑:LRS 好困

【新智元导读】时间序列分析在现实世界中的应用非常广泛,覆盖气象、工业、医疗等众多领域。近期,清华大学软件学院机器学习实验室提出了时序基础模型TimesNet,在长时、短时预测、缺失值填补、异常检测、分类五大任务上实现了全面领先。


实现任务通用是深度学习基础模型研究的核心问题,也是近期大模型方向的主要关注点之一。

 

然而,在时间序列领域,各类分析任务的差别较大,既有需要细粒度建模的预测任务,也有需要提取高层语义信息的分类任务。如何构建统一的深度基础模型高效地完成各类时序分析任务,此前尚未有成型方案。

 

为此,来自清华大学软件学院的团队围绕时序变化建模这一基本问题展开研究,提出了任务通用的时序基础模型TimesNet,论文被ICLR 2023接收。

 

作者列表:吴海旭*,胡腾戈*,刘雍*,周航,王建民,龙明盛

链接:https://openreview.net/pdf?id=ju_Uqw384Oq

代码:https://github.com/thuml/TimesNet

时序算法库:https://github.com/thuml/Time-Series-Library

 

TimesNet在长时、短时预测、缺失值填补、异常检测、分类五大任务上实现了全面领先。

 


1 问题分析

 

不同于自然语言、视频等序列数据,时间序列中单个时刻仅保存了一些标量,其关键信息更多地被蕴含在时序变化(Temporal Variation)中。

 

因此,建模时序变化是各类时序分析任务共同的核心问题。

 

近年来,各类深度模型被广泛用于时序分析任务中,例如循环神经网络(RNN)、时序卷积网络(TCN)和变换器网络(Transformer)。

 

然而,前两类方法主要关注捕捉临近时刻之间的变化,在长期依赖上建模能力不足。

 

Transformer虽然在建模长期依赖上具有天然优势,但是由于现实世界的时序变化极其复杂,仅仅依靠离散时间点之间的注意力(Attention)难以挖掘出可靠的时序依赖。

 

为此,本文从一个全新的多周期(Multi-periodicity)视角对时序变化进行了分析,如下图所示。我们观察到:

 

 

  • 时间序列天然具有多周期性

现实世界的时序数据往往是不同周期过程的相互叠加,例如交通数据在短期内的以日为周期变化,而长期则以星期为周期变化。这些不同周期的数据互相叠加、互相干扰,给时间序列分析带来了极大挑战。


  • 时间序列呈现周期内与周期间两种时序变化

具体地,对于某一特定周期的过程,每个时间点的变化既与临近时刻有关,也与临近周期的相似过程高度相关。其中周期内变化对应着短期过程,周期间变化则可以反应连续周期间的长期趋势。注:如果时间序列没有明显周期性,则等价于周期无限长的情况。

 

2 设计思路


基于以上两点观察,我们对TimesNet的结构作出了如下设计:

 

  • 时间序列的多周期性自然地启发了一个模块化(Modular)的设计思路,即一个模块捕捉由某一特定周期主导的时序变化。这种模块化的设计思路可以将复杂的时间变化解耦,从而有利于后续建模。


  • 对于时间序列的周期内与周期间变化,本文创新性地提出将一维时序数据扩展至二维空间进行分析。如上图所示,将一维时间序列基于多个周期进行折叠,可以得到多个二维张量(2D tensors),每个二维张量的列和行分别反应了周期内与周期间的时序变化,即得到了二维时序变化(Temporal 2D-variations)

 

 

上图示例展示了将一维时序数据折叠至二维空间的可视化效果。此处,Period方向反应周期内变化,而Frequency方向代表周期间变化。我们可以看出转化至二维空间的时序数据具有明显的二维局部性(2D locality)。

 

因此,在折叠时序数据后,我们可以直接采用先进的视觉骨干网络对时序数据进行特征提取,例如Swin Transformer、ResNeXt、ConvNeXt等。这种设计也使得时序分析任务可以直接受益于蓬勃发展的计算机视觉领域

 


相关文章
|
Serverless
MATLAB-常见插值方法及常见知识
MATLAB-常见插值方法及常见知识
886 0
MATLAB-常见插值方法及常见知识
|
Linux Docker Python
|
3月前
|
安全 Java API
一文吃透:若依框架静态资源防盗链从原理到代码
若依(RuoYi)框架的防盗链功能实现方式,我会从核心原理、代码实现、配置方式、关键细节四个维度拆解,兼顾原理理解和实操落地,适配若依单体版(RuoYi-Vue)和微服务版(RuoYi-Cloud)的通用逻辑
208 3
|
11月前
|
SQL 关系型数据库 API
MCP Server 的开发实践- Alibaba Cloud RDS OpenAPI MCP Server
本文介绍了基于阿里云 RDS OpenAPI 实现的 MCP Server(Model Context Protocol Server)架构与开发实践。该中间件使大语言模型(LLM)可通过自然语言调用 RDS 服务,实现数据库实例的创建、查询、配置等操作。通过 OpenAPI 接入、SQL 执行与大模型交互三大模块的协同工作,MCP Server 实现了 AI 助手对云数据库的自动化管理,提升易用性与安全性。
577 0
|
11月前
|
分布式计算 算法 Go
【LeetCode 热题100】BFS/DFS 实战:岛屿数量 & 腐烂的橘子(力扣200 / 994 )(Go语言版)
本文讲解了两道经典的图论问题:**岛屿数量(LeetCode 200)** 和 **腐烂的橘子(LeetCode 994)**,分别通过 DFS/BFS 实现。在“岛屿数量”中,利用深度或广度优先搜索遍历二维网格,标记连通陆地并计数;“腐烂的橘子”则采用多源 BFS,模拟腐烂传播过程,计算最短时间。两者均需掌握访问标记技巧,是学习网格搜索算法的绝佳实践。
467 1
|
11月前
|
Python
如何在命令行中执行3ds Max脚本(MAXScript或Python)
执行3ds Max命令行魔法时,记得检查语法,不要让任何拼写错误破坏了咒语。一旦你习惯了这种方式,你会发现,它不仅能够极大地提高你的生产效率,而且还可以在不打开3D软件的情况下完成重复性的任务,让你的创作更加得心应手。
743 0
|
机器学习/深度学习 数据采集 PyTorch
PyTorch搭建卷积神经网络(ResNet-50网络)进行图像分类实战(附源码和数据集)
PyTorch搭建卷积神经网络(ResNet-50网络)进行图像分类实战(附源码和数据集)
1289 2
|
Java 编译器 C#
【C++ 继承的多样性】C++ 多继承与虚拟继承:探究核心原理与应用实践
【C++ 继承的多样性】C++ 多继承与虚拟继承:探究核心原理与应用实践
567 1
|
机器学习/深度学习 算法 搜索推荐
一个开源且全面的C#算法实战教程
一个开源且全面的C#算法实战教程
331 0