重识时间序列:算法与前沿
版本更新:
2026-04-05:ver-1.0
引言
时间序列,本质上是从海量(抑或稀疏)的历史数据中,挖掘世界运转的隐秘规律。
在过去的一年多时间里,我的主要研究方向是时间序列与深度学习的交叉领域。从传统的频域算法(傅里叶、小波变换),到 Transformer(PatchTST、TimesNet),再到如今前沿的状态空间模型(SSM)与无条件时序生成大模型(Flow Matching),我有幸在各类架构中进行了深度的实践与魔改,相关成果也陆续发表于 ICASSP、DASFAA 等国际顶会。
在这条探索之路上我发现,为了拟合特定的数据集,无数研究者绞尽脑汁寻找规律,却往往导致模型变得牵强、抽象,难以在真实工业界(如能源调度、量化金融)中落地。另一方面,初学者面对从 ARIMA 到大模型之间浩如烟海的文献,极易迷失方向。
撰写这篇文章的初衷,正是为了理清时间序列预测的演进脉络。在接下来的章节中,我将摒弃生涩的数学轮子,从大白话的底层逻辑出发,带你重识时间序列——探讨它有哪些传统基线,深度学习如何对其进行降维打击,以及当前的大模型究竟是革命还是噱头。同时,我也会毫无保留地分享我在科研中总结的架构创新经验与 GPU 加速技巧。
受限于个人大三学生的视野与能力,文中难免有偏颇或疏漏之处,恳请各位同仁斧正。
作者:黎玮 - 上海大学
时间:2026.04.04
个人主页:weili.space/about
第1章 绪论
时间序列,是一种按照时间轴T组织起来的具有先后顺序的数据串。
一直以来,无论是在传统教材中,还是在诸如 PatchTST、TimesNet 等前沿的深度学习研究中,往往将时间序列作为一个同质化的整体数据类型加以研究。然而,实践证明,不同领域的时间序列,除了其均是按照时间轴进行组织的这一共同特点之外,从数据分布、变量类型、变量数量、时间轴长度、样本数量、跨变量相关性、平稳性等等方面都有着截然不同的特点。因此,想要找到对世界上所有时间序列都普适的规律,往往是极其困难的,这也是为什么截止到2026年,我们依然很难找到一个真正能够在实际世界上而不是特定数据集上适用的时间序列基础模型(Time Series Foundation Model)。
近些年来,以Chronos、TimeMoE等为代表的时序基础模型层出不穷,但都具有一个很大的局限性:只能对自己所训练过领域的数据集进行推理,换而言之,无论其自我宣称做到Zero-Shot与否,都无法规避一个时间序列相比起自然语言或代码的最关键的不同之处——绝对的数据分布差异性。自然语言作为人类文明的来源,具有物理意义上的底层硬件一致性,这令其分布具有相关性;代码,同样需要运行在以二进制为基础的机器中,具有非常典型的逻辑一致性。然而时间序列完全不同,对于一个来自太阳能的时间序列,是绝对不可能和一个来自股票市场的时间序列具有普适的规律的,除非这只股票是太阳能企业。当然我们也必须承认,的确存在一些任何领域都适用的时序规律,但这些规律并不占据主要地位,也往往无法代表所有领域的特性。
对于传统的时序算法,在此我们进行简单介绍:
时间序列的传统分解:
传统的时间序列分解法将时间序列分成如下四个方面的累加:趋势(Trend)+季节性(Seasonal)+周期性(Periodical)+噪声(Noise)。事实证明,在绝大多数的时间序列中,这一分解都是极其高效的,但是却又是极其无用的——真实世界中的时间序列往往会被Noise占据不少的比例,导致整体的其他规律性的数据被Noise掩盖,无法被发掘出来。
时间序列的传统预测方法:
第一种,Naive,即使用最后一次已知的历史数据作为未来的预测结果,是一条水平的直线。这一方法看似简单,但很多时候效果奇佳。
第二种,ARIMA,即自回归积分滑动平均模型,将大体趋势保留下来,形成以Trend为主线的一条保持原始数据斜率的直线。这一方法极其有效,甚至很多时候比某些Transformer-Based Model要更好。
时间序列的传统算法:
第一种,频域算法(傅里叶变换、小波变换等)。
第二种,时域算法(分解法、ARIMA等)。
第三种,多项式拟合算法。
总的来说,传统算法在很多情况下具有很强大的优势,比其新兴的深度学习与大模型,甚至并不逊色。
近年来以Transformer为代表的深度学习方法变成了一种趋势,采用LLM作为外部知识的时序模型也屡屡出现,对于这类新型的时序模型,我们将其大致划分为如下几类:
- 机器学习模型。
- 深度学习模型。以TimesNet,PatchTST为代表。
- 大模型、基础模型与新兴算法模型。
此外,本书将会介绍作者提出的几类模型。
最后,本书会介绍关于如何加速模型训练与推理的几个小技巧,由于作者曾参加过ASC 2026超算竞赛并取得了国际一等奖,故这些加速模型训练与推理的技巧对于初学者来说具有一定的借鉴作用。当然,对专业学者而言,这一段落或略显幼稚,在此望多见谅,也欢迎斧正。
1.1 时间序列的预处理与评估指标
在深入算法之前,有两个绕不开的工程基石:预处理与评估。真实世界的数据往往并不规整。在预处理阶段,除了常规的标准化(归一化)外,我们必须处理缺失值(Missing Values,如采用线性插值或KNN插补)、异常值(Outliers)以及严格对齐时间戳。而在评估阶段,我们不能仅仅依靠肉眼观察。对于点预测(Point Forecasting),常用的量化指标包括均方误差(MSE)和平均绝对误差(MAE);而对于工业界极为关注的概率区间预测(Probabilistic Forecasting),则需要引入连续排位概率分数(CRPS)或预测区间覆盖率(PICP)等指标。
第2章 时域算法与多项式拟合算法
本章将介绍时域算法与多项式拟合算法。
2.1 分解法
分解法是一种解耦的思想,它将时间序列拆解为3或4个组成成分,包括:趋势、季节性、周期性、噪声。此处的周期性有时候也会与季节性和为一处。趋势,顾名思义,是数据的大体走向,也决定着数据的平稳性——即均值和方差是否随着时间的变化而变化,这决定着对未来预测时我们的大致走向。季节性/周期性,显而易见,是一种周期函数,可以用正弦波sin的组合来表示,往往也是时序分析里重要的规律。噪声,是时间序列的最大特征之一,也是时间序列分析的头号敌人和头号朋友。如EEG,其噪声占比非常大,对于时序预测任务来说,EGG相关的任务是最困难的。从另一个角度来看,对于时序生成任务,我们却必须要牢记这一点——那就是噪声也是时间序列的本质属性,是必须要严肃地纳入考量之中而不是直接过滤。
分解法的进一步深化,则是解耦与多尺度分析。在后续的研究中,研究人员往往会不自觉地采用例如多尺度分析、残差神经网络等方法来实现更优模型的构建,这实际上就是分解法的思想精髓。
2.2 ARIMA
ARIMA,全称AutoRegressive Integrated Moving Average,即自回归积分滑动平均模型。总体来说,ARIMA是对时间序列做自回归分析的头号祖宗,甚至某种意义上可以说是GPT模式的灵感来源之一。ARIMA的精髓是需要对时间序列做一次预处理——即对时间序列在时间维度上做差分,得到平稳的数据。接着,通过自回归的分析,用滑动平均的方式得到最终结果。
具体来说,我们做出如下定义:延迟算子(Lag Operator, 通常用
我们定义延迟算子
很多同学看到延迟算子
第一步:I (Integrated) 差分公式
差分的目的是消除非平稳性。
一阶差分(今天减昨天):
d 阶差分:
第二步:AR (AutoRegressive) 自回归公式
AR(p) 模型假设当前的平稳值
其中:
是常数项(通常代表序列的漂移/基准线)。 是自回归系数,衡量历史记忆的强度。 是时刻 的白噪声(均值为0,方差为 的独立同分布随机变量)。
引入延迟算子
我们把前面那一长串定义为 **自回归多项式
所以 AR(p) 可以极简地写为:
第三步:MA (Moving Average) 滑动平均公式
MA(q) 模型假设当前的平稳值
其中:
是滑动平均系数,衡量系统吸收外部冲击的能力。
我们把括号里的一长串定义为 **滑动平均多项式
所以 MA(q) 可以极简地写为:
ARIMA(p, d, q) 公式
现在,我们将 AR(p) 和 MA(q) 结合,形成 ARMA(p,q) 模型(针对平稳序列
最后,把第一步中差分算子的定义
上述公式看似复杂,实际上我们并不需要过多深入。在计算机中,真正实现的方法类似于下述内容:
1 | y[t] = c + AR*y[t-1] + MA*e[t-1] + e[t] |
翻译成大白话,预测今天的d阶增量 = 常数 + (AR系数 × 前段时间的d阶增量) + (MA系数 × 前段时间的误差) + 今天的未知误差。由于今天的数值是未知的,因而今天的未知误差在数学期望上只能被设定为 0。这也导致ARIMA在长期预测上存在缺乏波动的问题。
2.3 多项式拟合
多项式拟合是一种非常典型的数学思维在实际的运用。然而,受限于数据量和运算量,这一方法往往效果不佳,或者会发生外推异常,因此已很少使用。当然,你经常会在Excel,SPSS等软件中找到他们,因为这是实现起来最容易,效率最高的时间序列分析算法。
2.4 其他算法(Naive等)
Naive算法是一种非常”简单“的算法,即维持已知历史序列的最后一次样本点的数据,形成一条向未来的直线。这一方法看似简单,但很多时候反而效果很好。
季节性Naive算法是Naive思维基于分解法的产物,其并不只简单维持最后一次样本点数据,而是维持整体的季节性的最后的样本数据。
第3章 频域算法
时域算法往往浮于表面,并未真正深入到时间序列的本质属性——频域。对此,我们可以从如下几种算法进行学习。
3.1 傅里叶变换
傅里叶变换是频域算法的源头,其由法国数学家傅里叶提出的定理而得名:任何连续的周期信号,都可以表示为一系列不同频率的正弦波和余弦波的叠加。
这里的
然而傅里叶变换最大的问题是,其虽然完美保留了频域特征,但也完全丢弃了时域的信息,除非进行短时傅里叶变换 STFT。我们只能知道某一频率的信号存在的强度,却不能知道其在时域上的分布,这也限制了我们从有限信息量中提取更多的规律性。
3.2 小波变换
小波变换是对于傅里叶变换的改进,其采用一个”母小波函数“作为基础,在时域上进行乘积后积分。其本质是在做拉伸和平移两种操作。
小波变换具有多尺度的特点,也即可以提取时间序列中不同尺度的规律性。但其最大的缺陷在于固定的母小波函数,这一限制导致其无法像可训练的网络参数一样,可以适应任何领域的数据。
在 AWGformer 的研究中,我们将小波函数进行了神经网络参数化(Adaptive Wavelet Decomposition Module),让梯度反向传播去教导小波如何变形以最契合当前数据集的特性,保留了小波优异的时频局部化特征的同时,又获得了深度学习可训练化的优越特性。
3.3 散射变换
散射变换解决了一个根本问题:小波变换对时间平移极其敏感,缺乏稳定性。
散射变换通过三步级联操作解决这个问题:
- 小波滤波 (Wavelet Filter,
): 提取高频细节。 - 取模非线性 (Modulus,
): 取绝对值,类似检波器,它去除了高频信号中极不稳定的“相位(Phase)”信息,将高频振荡的能量“解调”拖拽回了低频。 - 低通滤波 (Low-pass,
): 对取模后的能量进行局部平均。抹平微小的时间偏移。
经过这三步循环,我们得到了一组特征,它们不仅保留了高频的能量信息,而且在数学上被严格证明具有平移不变性 (Translation Invariance) 和 **形变稳定性 (Deformation Stability)**。
普通的 Transformer 面对‘相位偏移’会产生巨大的 Attention 误差。而在 ScatterFusion 的研究中,我们利用了散射变换的李普希茨连续性(Lipschitz continuity),从而能够极其有效而精准地提取时序特性,提高了整体精度。
3.4 其他算法
经验模态分解 (EMD) 与 希尔伯特-黄变换 (HHT): 完全脱离了预设基函数(不需要选小波),而是根据数据本身的极值点,自适应地将信号分解为一系列“本征模态函数(IMF)”。它极其适合处理非线性、非平稳的极端信号。
奇异谱分析 (SSA): 结合了时间序列分析与多变量统计(PCA/SVD)的思想。通过构造轨迹矩阵并进行奇异值分解,提取出趋势、周期和噪声子空间。
第4章 机器学习算法与深度学习初步
本章将进入对机器学习算法的初步介绍,并在最后对于深度学习的三大基本模型做出基础介绍,为后续引入Transformer技术做铺垫。
4.1 遗传算法
遗传算法是一种类似生物基因遗传的仿生算法,本质上是不停迭代并寻找最优解的过程。常见的遗传算法有如下几个算子:变异、交叉、选择。变异是指随机地更改某一些参数,使之能够遍历整个参数空间;交叉是指基因重组的过程,模拟生育后代;选择则是物竞天择的过程,让优势参数进一步保持下去。
这一算法虽然古老,而且效率不高,但在许多领域(例如量化)仍然具有很重要的地位。
4.2 KDE
KDE(Kernel Density Estimation),核密度估计,又叫Parzen窗,是一种数据驱动的非参数概率分布估计方法。
具体来说,KDE在每一个真实的数据点上,都放置一个平滑的“核函数”(最常见的是高斯核)。最后,把所有数据点上的核函数叠加起来,就得到了一条平滑的概率密度曲线。这里面最重要的参数是带宽(Bandwidth,
我们在SDFlow中便采用了KDE方法来得到低秩流形锚点的几何约束。面对 VQ 离散空间生成时间序列时的“维度灾难”,我们摒弃了传统的高斯噪声初始化。正是利用了 KDE,我们在低秩坐标上进行核密度采样,确保了生成的初始锚点被牢牢固定在真实数据的低秩流形附近。KDE 赋予了离散数据在连续高维空间中的拓扑平滑性,这是 SDFlow 能够彻底消除暴露偏差的底层数学基石。
4.3 支持向量机
SVM,支持向量机,曾经是机器学习领域最为热门的方法,比起当今的Transformer有过之而无不及。
处理复杂时间序列时,数据在低维空间中往往是线性不可分的。SVM 通过核函数,将低维的时序特征瞬间映射到无限维的希尔伯特空间中,然后在高维空间里寻找一个完美的超平面来进行分类或预测。
SVM最大的局限性在于其所依赖的核函数几乎完全依靠人工设计与调参,无法像深度学习一样采用数据驱动的方式做优化,这也导致了其在Transformer出现之后被迅速击败。
4.4 卷积
卷积(Convolution)自发明以来便长盛不衰,尤其是在对手写数字识别的过程中受到了世人瞩目。
在处理一维时间序列(1D-Convolution)时,它同样具有极其深刻的物理意义。 在一维时序中,卷积本质上是一个滑动窗口特征匹配器。卷积核(Kernel)是一个特定形状的模板。当这个模板在时间轴上滑动时,它在不断计算与原始信号的内积。只要碰到了相似的局部形态,卷积的输出就会产生一个高响应的峰值。
4.5 CNN & RNN & LSTM
在Transformer之前,深度学习处理序列数据有三大基本模型:
1D-CNN (一维卷积网络): 优势在于计算极快(可高度并行化),且极擅长捕捉局部的短时模式。劣势在于感受野受限,很难记住相隔很远的两个时间点之间的关联(除非使用极其深层的膨胀卷积 Wavenet)。
RNN (循环神经网络): 它的设计最符合人类直觉——序列化处理。隐藏层状态
不仅取决于当前的输入 ,还取决于上一时刻的状态 。但致命弱点是梯度消失与梯度爆炸:由于反向传播时需要不断的连乘,导致稍微长一点的历史记忆就会在乘法中要么趋于零、要么趋于无穷。LSTM (长短期记忆网络): 为了拯救 RNN,Hochreiter 等人引入了“细胞状态 (Cell State)”和“门控机制 (Gating)”。
遗忘门 (Forget Gate): 决定哪些陈旧的历史应该被丢弃。
输入门 (Input Gate): 决定今天的新信息有哪些应该被刻录到细胞状态中。
输出门 (Output Gate): 决定当前状态该如何对外输出。
LSTM 通过细胞状态完美跨越了长程梯度消失的陷阱,成为了时序预测领域当时的王者。
4.6 拓展:时空图神经网络(STGCN)
时间序列中还有一个极其庞大的子分支,时空数据(Spatial-Temporal Data)。例如城市交通车流量、风电场阵列发电量等,它们不仅在时间轴上具有先后顺序,在物理空间上也具有拓扑关联。此时,单纯的 1D-CNN 或 LSTM 就显得捉襟见肘。引入图神经网络(GNN),将空间拓扑结构(邻接矩阵)与时序网络结合,形成了时空图卷积网络(STGCN)等经典架构,这在交通与能源预测领域是绝对的中坚力量。由于作者没有该方面的更多知识与实践经验,故不在此展开分析。
第5章 Transformer基础
本章将深入探讨当今大模型时代的底层基石,以及正在向其发起挑战的 SSM 架构。
5.1 Transformer架构
Transformer架构的核心在于Self-Attention,这也是其所在的论文《Attention is all you need》的名称来由。
- Query (Q): 当前时间点向其他时间点需要询问什么特点。
- Key (K): 其他时间点拥有什么特定。
- Value (V): 实际被提取的特点。
简单来说就是一个类似数据库查询的过程,只不过这一过程采用了
为什么要除以
如果我们直接计算
为什么要位置编码(Positional Encoding)?
因为 Attention 是一种无视顺序的集合操作,纯粹的 Transformer 根本不知道时间的先后。这就引出了它的另一个核心组件:位置编码(Positional Encoding)。我们必须强行把时间戳信息注入到数据中,模型才能感知到这是一串“时间序列”。
经典的绝对位置编码公式如下:
5.2 Transformer参数分析
- 隐藏层维度 (
): 决定了模型表征向量的丰富度。 - 多头注意力 (Multi-Head): 允许模型在不同的表示子空间里同时捕获信息。
- 层数 (Layers): 决定了抽象特征的深度。
5.3 KV Cache
在使用 Transformer 进行自回归生成时,每生成一个新的时间点,如果重新计算之前所有历史节点的
KV Cache 的智慧在于“用空间换时间”:把历史节点算好的
5.4 常规Norm分类与作用
- BatchNorm: 在 Batch 维度上归一化,适合 CV,但在时序序列长度不一或 Batch 较小时表现不佳。
- LayerNorm: 在特征维度上归一化,是 Transformer 的标配。
深度学习中的归一化(Normalization)是为了解决协变量偏移(Covariate Shift),稳定梯度。
5.5 RevIN (可逆实例归一化)
这是一种用于时间序列的Transformer的归一化方法,其核心思想其实就是中心化:
- 前向平稳化: 在数据进入 Transformer 之前,减去实例均值,除以标准差
。 - 反向还原: Transformer 输出预测值后,强行将均值和方差乘加回去
。
5.6 拓展:SSM与Mamba
Transformer 有一个致命缺陷:计算复杂度随序列长度几何级增加:
状态空间模型(State Space Model, SSM,以 Mamba 为代表)则做到了“有损压缩,隐式转移”(通过一个极其精妙的隐藏状态
其连续时间的微分方程定义为:
为了让计算机能处理,必须通过零阶保持(Zero-Order Hold, ZOH)将其离散化:
(其中
为什么 SSM 如此强大?
- 训练时(并行化): 由于它是线性系统,这个展开式可以转化为一个全局一维卷积(Global Convolution)。借助快速傅里叶变换(FFT),它可以像 CNN 一样在 GPU 上进行
的极速并行训练。 - 推理时(恒定内存): 它又退化成了经典的 RNN 结构。历史的所有信息都被压缩在固定维度的隐藏状态
中,无论序列多长,推理复杂度和内存占用永远是
在 SWIFT 中,我将小波多尺度卷积与并行状态空间结合,正是为了在“高频细节不丢失”和“长程记忆低开销”之间寻找完美的平衡。
第6章 深度学习与时间序列
在Transformer霸榜自然语言处理之后,学界自然而然地将其引入到了时间序列领域(如Informer, Autoformer, FEDformer等)。然而,研究人员逐渐发现,直接将处理离散文本的架构生搬硬套到连续的时序数据上,往往会遭遇水土不服。
时间序列有着极其特殊的属性:局部语义性(单个数据点往往没有独立意义,一段趋势才有意义)、多周期嵌套性(日周期、周周期、年周期交织),以及多变量间的极度异质性。在 TimesNet 和 PatchTST 诞生之前,Transformer 在时序领域的演进其实经历了一段很长的演变期。起初,为了解决长序列预测(Long Sequence Time-Series Forecasting, LSTF)中 Transformer 计算复杂度随序列长度呈平方级爆炸的问题,Informer(2021)提出了 ProbSparse 稀疏注意力机制;紧接着,Autoformer(2021)将传统时间序列的“分解(Decomposition)”思想内置到了网络内部;FEDformer(2022)则进一步将注意力机制转移到了频域(傅里叶空间)。
本章将重点介绍两篇里程碑式作品——TimesNet 和 PatchTST。它们分别从“多周期2D化”和“分块与通道独立”的角度,深刻重塑了深度学习在时间序列中的应用范式。
6.1 TimesNet:一维时间序列的二维化降维打击
TimesNet(清华大学软件学院提出)解决了一个痛点:一维时间序列中,不同周期的变化交织在一起,一维的卷积或注意力机制很难把它们剥离开来。
核心思想:时间序列的二维本质
自然界的时间序列往往包含多重周期。比如当天的气温,既受到“一天24小时(日周期)”的影响,又受到“一年四季(年周期)”的影响。
如果在1D时间轴上看,昨天的同一时刻与今天的同一时刻,在数组索引上相隔了很久(比如相隔24个数据点)。但如果在2D视角下,把每一天的数据作为矩阵的一行,那么“昨天的这一时刻”和“今天的这一时刻”在二维矩阵中就是紧紧相邻的。
TimesNet正是抓住了这一点:一维时序的周期性变化,本质上是二维空间中的局部特征。
算法流程:
- 频域分析(FFT)提取周期: 首先利用快速傅里叶变换(FFT),在频域中找到能量最强(Amplitude最大)的 top-
个频率。这 个频率就对应了序列中的 个主导周期(Periods)。 - 1D 到 2D 的折叠(Reshape): 根据找到的周期长度,将原本一维的长序列像折纸一样,折叠成
个二维矩阵。- 矩阵的列(Intra-period): 代表周期内的短期变化(如一天内从早到晚的变化)。
- 矩阵的行(Inter-period): 代表周期之间的长期变化(如周一到周二同时刻的变化)。
- 2D-CNN(Inception Block)特征提取: 既然数据变成了包含局部视觉特征的2D图片,TimesNet 直接借用了计算机视觉中最经典的 Inception 模块(多尺度二维卷积)。由于二维卷积同时跨越了行和列,它能极其高效地同时捕获短期和长期趋势。
- 自适应融合: 将
个二维特征图重新展平回一维,并根据其初始傅里叶振幅的大小作为权重,进行加权求和,得到最终特征。
TimesNet 巧妙地利用了频域和时域的数学对应关系,用极其简单高效的二维卷积击败了众多复杂的 Transformer,成为了当时的一个绝对 SOTA。
6.2 PatchTST:分块与通道独立,让Transformer重获新生
PatchTST 的出现,某种程度上是对过去几年时序 Transformer 复杂化趋势的一记响亮耳光。它用极其极简的两个改动,证明了纯粹的 Transformer 依然是时序领域的王者。
这篇论文有两个极其关键的核心设计:Patching(分块) 和 Channel Independence(通道独立,简称 CI)。
核心设计一:Patching(分块机制)
自然语言中的一个 Token(单词)拥有极强的信息熵,但时间序列中的一个点(比如温度 25.5℃)往往毫无意义,只有一段连续的点结合在一起(比如温度在十分钟内从 20℃ 升到 25.5℃),才具备“语义(Semantic)”信息。
在早期的时序模型中,大家习惯把每个时间步(Time Step)作为一个 Token 输入到 Transformer 中,这带来了两个致命问题:
- 缺乏局部语义: 模型很难学到局部的波形结构。
- 显存灾难: 时间轴太长,Transformer 的
复杂度直接爆炸。
PatchTST 怎么做?
直接借鉴计算机视觉中的 ViT(Vision Transformer),把时间序列切分成一个个小块(Patch)。例如,长度为 512 的序列,每 16 个点切成一个 Patch,总共得到 32 个 Patch。
- 语义丰富: 每个 Patch 作为一整个 Token,保留了局部的形状(如峰值、波谷),富含时序语义。
- 复杂度暴降: 输入的 Token 数量从
变成了 。对于 Transformer 的二次方复杂度而言,计算量直接降低了 倍(比如 16 的平方,256倍的计算量锐减)!这使得模型有能力接收更长的历史数据(比如输入长度直接拉到 1024 甚至更长)。
核心设计二:Channel Independence (CI,通道独立)
传统的多元时间序列预测(Multivariate Forecasting)有一个根深蒂固的执念:认为不同变量之间一定存在关联(比如气温和冰淇淋销量),因此模型必须在同一个时间步内,把所有变量的特征揉在一起进行注意力计算(Channel Mixing)。
然而 PatchTST 发现了盲点:现实世界中,跨变量的关系往往充满噪声且极不稳定。强行让模型去学习变量间的注意力,反而会导致严重的过拟合和分布偏移。 就像我在第一章提到的,数据分布差异极大,硬把它们凑一起往往适得其反。
PatchTST 怎么做?
采用通道独立(CI)。不管你有多少个变量(通道),全部拆散!把一个多元时间序列(形状为 [Batch, Length, Channels])直接重塑为单变量序列(形状为 [Batch * Channels, Length, 1])。
然后,让所有的变量共享同一个 Transformer 权重进行前向传播。
- 优点1: 有效屏蔽了不同变量之间的噪声干扰。
- 优点2: 扩大了训练集。原本的一个多元样本,被拆成了
个独立的单变量样本,等价于对模型进行了极大的数据增强。
正是 PatchTST 的出现(我也曾有幸基于其思想提出了首篇会议论文 EnergyPatchTST,加入了多尺度与蒙特卡洛 Dropout),彻底确立了“Patching”在时间序列分析中不可撼动的基石地位,也为后续的时序大模型预训练(如基于掩码重建的各种大模型)铺平了道路。
6.3 iTransformer:反其道而行之的通道注意力
尽管 PatchTST 证明了“通道独立(CI)”在屏蔽跨变量噪声方面的奇效,但这同时也引出了一个无法回避的物理悖论:现实世界中的多元变量(如天气系统中的风速、气压、温度)在物理机制上是绝对互相关联的,强行切断它们,必然会丢失宝贵的空间动力学信息。
清华大学提出的 iTransformer 给出了一个解法:倒转序列与通道的维度。 传统 Transformer 是把同一个变量的多个时间步切成 Patch 输入;而 iTransformer 直接把整个单一变量的全部历史序列压缩成一个 Token。如果输入有 21 个天气变量,它就只输入 21 个 Token。 这样一来,Transformer 的注意力机制不再作用于“时间点”之间,而是直接作用于“变量(通道)”之间。它完美避开了时间轴过长导致的计算爆炸,同时极大地恢复了捕捉多元变量之间“全局相关性”的能力。PatchTST 与 iTransformer 的路线之争,本质上是“时间局部特征”与“空间全局变量特征”在注意力分配上的权衡。
第7章 大模型与基础模型
本章将探讨大模型在时间序列中的两种主流发展演进路线:一是借助现有文本大模型的跨模态与多模态,二是试图从零训练的时间序列基础模型(Time Series Foundation Model)。
7.1 大模型与多模态
在这一路线中,研究人员的核心思路是:既然训练一个全新的大模型极其昂贵,而现成的语言模型(如LLaMA、GPT)已经具备了极其强大的逻辑推理和模式识别能力,我们能否直接使用文本大模型的智慧?
由此,衍生出了几种截然不同的流派:
1. 跨模态重编程(Cross-modal Reprogramming)
这是目前非常流行的一种做法,代表作如 Time-LLM。
文本大模型只认识文本的Token(词向量),不认识连续的数字。跨模态重编程的做法是:先利用上文提到的Patch技术,把时间序列切成块,然后通过一个极小的线性映射层(类似于翻译官),把这些时序Patch强行映射到文本大模型的词嵌入空间(Embedding Space)中。
在训练时,冻结(Freeze)语言大模型的绝大部分参数,只微调外围的映射层。实验证明,文本大模型内部对于“序列先后顺序”、“周期波动”的注意力权重机制,竟然能够奇迹般地跨越模态,运用到时间序列的预测上!
2. 将时间序列直接转化为文本(Tokenization as Text)
这种做法更加直接(甚至显得有些暴力),代表作如 PromptCast。
它直接将数字转化为字符串,比如输入:"过去三天的温度是 [20.1, 21.3, 22.5],请预测明天的温度。" 交给LLM去生成文本答案。
这种方法的致命弱点在于:LLM的Tokenizer对数字极其不友好。比如 20.1 和 201 在Tokenizer眼里可能是完全没有数学大小关联的两个独立词汇。这导致模型完全丧失了数学计算精度。
3. 真正的多模态:文本与时序的协同(Text + Time Series)
前两种方法本质上还是在做单一的时序预测,只是借用了LLM的壳子。而真正的多模态,是引入外部的语义知识来指导时间序列的生成与分析。
目前我正与南京大学、汉诺威大学课题组在多模态大模型与文本时序生成方面展开合作。现实世界中的时间序列不是孤立的:同样是一段上升的股票K线,如果加上文本提示“该公司昨日发布了革命性新产品”,和提示“该行业正面临泡沫崩溃”,其未来的走势绝对是天壤之别。
文本可以为时序提供宏观的Context(上下文),而时序可以为文本提供微观的连续Dynamics(动态特性)。 两者的结合,将是未来AI辅助科学发现(AI for Science)的一大核心。
7.2 时间序列基础模型
近两年,学术界和工业界推出了多款标榜为“时间序列基础模型”的巨兽,例如亚马逊的 Chronos、Salesforce 的 UniTS、基于MoE架构的 TimeMoE 和 MOIRAI 等。它们的目标很明确:像GPT处理任何语言一样,做到 Zero-Shot(零样本) 预测——即模型在预训练后,面对一个从未见过的、来自全新领域的时间序列,依然能给出精准的预测。
目前构建时间序列基础模型主要有两派路线:
1. 离散化Token路线(以 Chronos 为代表)
亚马逊提出的 Chronos 非常激进。它认为,既然语言模型那么成功,我们就把时间序列彻底变成“语言”。
它通过分箱(Binning)和量化(Quantization)技术,把连续的实数值强制划分到有限的字典库中(比如设定4096个离散Token)。这样一来,时间序列就变成了一篇由离散单词组成的“文章”,然后直接丢给标准的Transformer进行自回归(Auto-regressive)预测。
优势: 完美复用了NLP领域的成熟架构,生成具有多样性。
劣势: 量化误差极其严重。丢失了连续数字的精确度,对于需要高精度预警的工业级场景来说,几乎不可用。
2. 连续Patch与混合专家路线(以 MOIRAI, TimeMoE 为代表)
这一路线保留了时间序列实数的连续性,依然采用Patch分块,但在架构上引入了混合专家系统(Mixture of Experts, MoE)。
由于预训练数据极其庞杂(包含高频的脑电波EEG、低频的年度经济数据、中频的交通流量等),如果用同一套权重去拟合所有数据,模型会发生严重的冲突。
需要补充的是,时序大模型目前面临的最大瓶颈其实并非单纯的架构设计,而是数据的“Scaling Law(缩放定律)”。NLP 之所以能产生涌现能力,是因为有万亿级别的高质量文本语料。而时序领域长期缺乏一个类似于 Common Crawl 的统一多领域数据集。虽然近年来出现了诸如 LOTSA 这样的大规模预训练语料库,但如何跨越不同领域特征的鸿沟,让海量异质数据真正反哺模型能力,依然是当下研究的重点。
MoE的精髓在于“术业有专攻”。模型内部包含多个并行的“专家网络”,通过一个路由机制(Router),让模型根据当前输入序列的频率和特性,自动将数据分配给最擅长处理该特性的专家。
正如我在第一章的绪论中明确指出的:时间序列不同于自然语言,它缺乏物理意义上的底层一致性。人类语言无论英语还是中文,背后都是人类大脑相同的逻辑思维;但自然界的时间序列,太阳能的周期波动和金融市场的随机游走,其底层生成机制是彻底割裂的。截止到目前的2026年,所谓的时间序列基础模型,往往只能在自己“刷过”的领域内表现良好。一旦面临跨度极大的Zero-Shot任务,其表现甚至不如我前面提到的传统 ARIMA 或 Naive 算法。强行用一个海量参数的大模型去寻找世界上所有序列的统一规律,往往会退化为预测一条平庸的均值直线。
正因认识到了异质数据带来的灾难性冲突,在我的 ClusterPatchTST(已录用于DASFAA 2026)工作中,我并未盲目追求大一统的Foundation Model,而是巧妙结合了 MoE与聚类(Clustering)思想。通过在表征空间对异质时间序列进行聚类指导,让不同的专家网络去处理具有相似几何拓扑结构的时序簇,从而在不无限扩大模型参数量的前提下,实现了对复杂异构数据的高效处理。
第8章 时间序列其他任务
在之前的章节中,我们几乎所有的讨论都围绕着“预测(Forecasting)”展开。然而,在真实的研究与工业场景中,时间序列还包含着其他任务:异常检测、分类、插补、生成。
8.1 异常检测
异常检测(Anomaly Detection)的目标是在海量的正常波动中,精准定位出那些违反规律的离群点或异常片段。
- 统计学方法: 最经典的是基于
原则或箱线图。然而,这些方法无法处理具有季节性和趋势性的复杂序列。 - 基于重构的方法: 这一流派的思想非常精妙——利用 AutoEncoder 或 Transformer 对原始序列进行压缩再重构。正常的序列由于符合规律,重构误差极小;而异常点由于不符合模型学到的“本质规律”,重构误差会显著放大。代表作如 Anomaly Transformer,它利用关联差异(Association Discrepancy)来显式放大异常点的重构难度。
- 基于预测的方法: 利用模型预测下一时刻的值,如果真实观测值与预测值的残差超过阈值,则判定为异常。这在 AIOps(智能运维)领域应用极广。
8.2 分类
分类(Classification)任务旨在给一段序列贴上标签,比如判断心电图(ECG)是否属于心律失常,或识别传感器的运动轨迹。
- 传统方法: 往往依赖于特征工程,提取均值、方差、偏度,或是利用 DTW(动态时间规整) 计算序列间的距离。
- 深度学习方法: InceptionTime 是该领域的里程碑,它借鉴了 CV 领域的 Inception 模块,通过多尺度卷积捕获不同长度的局部模式。
- 对比学习: 近年来,利用对比学习(如 TS2Vec)在无标签数据上进行预训练,再进行下游分类,已成为处理海量未标记时序数据的主流。
8.3 插补
在传感器网络或医疗监测中,数据缺失是常态。插补(Imputation)不再是简单的均值填充,而是要恢复数据的动力学特性。
- 生成式模型(扩散模型): 正如我之前所做的一项工作 TimeFlowDiffuser,插补任务正是扩散模型的“主场”。代表作 CSDI 利用条件扩散模型,将观测到的数据作为约束,通过逆向去噪过程生成缺失部分的真实分布。
- 协同过滤与矩阵分解: 对于跨变量缺失,利用变量间的相关性进行低秩矩阵恢复(如 TRMF)也是一种极其高效的工程手段。
8.4 生成
除了对现有数据进行分析,无条件或有条件地“凭空创造”高保真的时间序列,正成为 AIGC 领域的新浪潮。
- 应用场景: 在医疗(如心电图、脑电图)或金融领域,真实数据往往伴随极高的隐私风险或获取成本。生成高保真且包含极端长尾分布(如金融海啸、罕见病理波动)的虚拟数据,是训练鲁棒判别模型的关键。
- 主流流派: 早期以基于生成对抗网络(GAN)的 TimeGAN 为主。而近年来,基于扩散模型(Diffusion)与连续流匹配(Flow Matching)的模型开始大放异彩。如何解决生成过程中的长序列误差累积(暴露偏差)与高维空间的“维度灾难”,是当前生成式时序模型最核心的攻坚战。
第9章 个人研究案例解析
本章将介绍一些个人研究案例,为读者提供一些灵感与实践经验。需要说明的是,任何模型都存在其适用的数据边界,这里的经验分享更多侧重于研究方法与实践小技巧,而非宣扬某种大一统的万能解法。若需详细了解具体案例,欢迎在我的个人网站或 GitHub 中查阅。
9.1 EnergyPatchTST
研究背景
PatchTST 虽然在学术界的数据集上取得了极佳的成绩,但在真实的能源预测场景中却面临严重的水土不服。能源数据有三个致命痛点:一是多尺度嵌套;二是强烈的外部依赖性;三是工业界不相信绝对的“点预测”,电网调度真正需要的是带有置信度的“概率区间预测”,以便进行风险评估。
核心创新点
在这篇作品中,我基于 PatchTST 做了四项专门针对能源场景的硬核改造:
- 多尺度特征提取(Multi-scale Feature Extraction): 不再只输入原始序列,而是并行输入原始(1h)、日均(24h)、周均(168h)三种尺度的Patch,让不同的Transformer分支专门学习不同级别的周期。
- 基于蒙特卡洛Dropout的置信度估计(Uncertainty Estimation): 在推理(Inference)阶段开启 Dropout,进行多次前向传播(Monte Carlo 采样)。其均值作为预测结果,其方差不仅代表了数据的偶然不确定性(Aleatoric),更代表了模型本身的认知不确定性(Epistemic)。
- 未来协变量的融合路径(Future Variables Integration): 开辟了一条专门的投影路径,将已知的天气预报等未来变量与时序历史特征在最终层进行深度融合。
- 预训练与微调范式(Pre-training and Fine-tuning): 针对新建电站数据量极小的问题,先在海量的通用电力数据集(如 ETTh)上预训练,再迁移到具体的风电数据集上。
其最大的亮点在于实用性与工程思维。模型没有造生涩的数学轮子,而是精准打击了工业界的痛点。特别是引入 MC Dropout,它巧妙地利用了深度学习网络对未知分布犹豫不决时的神经元失活反应,以极低的计算成本换取了极其珍贵的概率分布边界(PI-Coverage),这在极度厌恶风险的能源调度中具有极高的商业价值。
9.2 LWSpace
研究背景
当时,Mamba(Selective State Space)在 NLP 领域大杀四方,学界开始将其引入时序领域。然而,无论是标准的 Transformer 还是初代的 SSM 模型,在处理包含大量高频噪声和低频趋势的复杂时序时,都显得力不从心。虽然 WFTNet 尝试了傅里叶变换,但傅里叶变换的全局性导致其完全丧失了局部突变特征。
核心创新点
LWSpace 巧妙结合了离散小波变换(DWT)的局部多尺度能力与 SSM 的线性复杂度:
- 小波分解模块(WDM): 采用 Daubechies 小波,将时序严格分解为一个低频近似系数(Approximation)和多个高频细节系数(Detail)。
- 尺度特异性选择状态空间(Scale-Specific S4): 为每一个频率分量分配一个专属的 SSM 模块。最精妙的是,我们将 Mamba 的输入依赖参数(
)做成了随频率特性自适应调整的机制。 - 跨尺度注意力融合(CSAI): 高低频特征处理完后,不进行简单的加和,而是通过多头注意力机制,让模型自己决定在当前时刻,是高频的波动更重要,还是低频的趋势更重要。
- 自适应视界预测(AHP): 根据预测步长的长短,动态调整各个频率的权重(短期预测看重高频,长期预测看重低频)。
这篇论文的底气在于其严谨的数学理论支撑。在论文中,我给出了严格的理论证明:LWSpace 具备时间扭曲鲁棒性(Time Warping Robustness)和噪声稳定性(Noise Stability)。小波变换天然的拉伸和平移特性,配合上状态空间的平滑过滤,使得即使真实世界的数据发生了时间轴的轻微偏移或传感器抖动,模型依然稳如泰山。
9.3 SWIFT
研究背景
在做完 LWSpace 后,我进一步思考:小波+SSM 虽然好,但 SSM 终究是一个一维的序列扫描器,它在捕捉长程依赖时是无敌的,但在提取局部、并行的纹理特征时,仍然不如卷积网络(CNN)直接、高效。能不能把两者的优势结合起来?
核心创新点
SWIFT(State-space Wavelet Integrated Forecasting Technology)应运而生。这是一种并行的双通路(Dual-pathway)异构架构:
- 主通路 - 增强型选择性状态空间(STSS): 在 Mamba 的基础上,我加入了一个以卷积为基础的时间门控机制(Temporal Gating)。在更新隐藏状态前,先看一眼前后的局部上下文,再决定记住多少、遗忘多少。
- 副通路 - 多尺度空洞卷积网络(MSDCN): 接收小波分解后的多频特征,用具有不同感受野的并行空洞卷积(Dilated Convolutions)去疯狂提取局部的形态特征。
- 特征交互桥梁(FIB,核心亮点): 两条平行线如果不交汇就没有意义。FIB 是一种交叉注意力机制(Cross-Attention),STSS 抽取的长程“骨架”与 MSDCN 抽取的局部“血肉”在这里进行双向的信息交换与融合。
“解耦与互补” 的思想。时序数据兼具“马尔可夫演化性”(适合 SSM 处理)和“局部形态语义”(适合 CNN 处理)。SWIFT 让两条通路各司其职,又通过 FIB 进行通信。更重要的是,相比于 Transformer
9.4 TimeFlowDiffuser
研究背景
扩散模型(Diffusion Models)在图像生成上已经表现极佳,但在时间序列预测上却举步维艰。第一,时序预测对推理速度要求极高,而扩散模型的几十步采样耗时极长;第二,预测需要强烈的历史条件约束,普通的扩散模型无法从海量历史中找到真正有用的上下文;第三,时序有长短视界之分,传统模型长短预测往往需要训练不同的权重。
核心创新点
TimeFlowDiffuser 是一次将扩散模型在时序领域的大胆尝试:
- 层次化时间分辨率(HTR): 不在一维的超长序列上直接做扩散,模型在原序列、2倍下采样、4倍下采样的多个尺度上同时进行扩散加噪和去噪,通过跳跃连接(Skip Connections)保持宏观结构不崩塌。
- 自适应上下文采样(ACS): 在预测未来时,历史并不都是有用的。ACS 通过一个可训练的打分网络,在长历史中动态裁剪出最相关的几个历史滑动窗口,作为扩散模型的条件输入(Condition),大幅降低了无关噪声的干扰。
- 频域感知条件(FAC): 将时序强制解耦为趋势(Trend)、季节(Seasonal)和残差(Residual),让扩散网络在这三个分量上进行分别的交叉注意力注入。
- 多视界生成策略(MHG): 采用课程学习(Curriculum Learning),训练时逐步拉长预测视界;推理时,利用自回归的思想,先生成短视界,再把短视界作为条件去生成长视界,一套权重打天下。
生成式 AI 做预测的一次尝试。在 TimeFlowDiffuser 中,虽然全采样需要 50 步,但由于采用了多尺度生成与 MHG 策略,所有的视界(如 24h, 48h, 168h)是一次性并行生成的,摊薄了计算成本。此外,结合 DDIM 采样加速,可以把 50 步压缩到 10 步,推理时间从 0.42s 降到 0.12s,仅带来 1.2% 的精度损失。该模型在处理极端情况(比如人为遮蔽 50% 的缺失值或制造分布偏移)时,展现出了判别式模型(如传统 Transformer)绝对无法企及的极强鲁棒性。
9.5 AWGformer
研究背景
在深度学习预测时间序列时,模型往往面临一个困境:真实世界的数据是从高频噪声到低频趋势的混合体。虽然我们可以用小波变换来进行多尺度分解,但传统小波变换(如 Daubechies)的基函数是固定的。面对千变万化的异构数据集,固定的小波基无法完美契合所有数据的频率特征,而简单的 Transformer 又缺乏显式的频域解析能力。
核心创新点
AWGformer 是一次将“经典信号处理”与“现代深度学习”端到端融合的尝试,让模型自己去学习最适合当前数据的小波函数:
- 自适应小波分解模块(AWDM): 摒弃了固定的小波基,利用神经网络来参数化小波的包络(Envelope)、频率和相位。同时,加入稀疏性正则化,让模型自适应地决定最佳的分解层数。
- 跨尺度特征融合(CSFF): 不同频段的信息并非孤立。该模块通过可学习的耦合矩阵捕获高频细节与低频趋势之间的非线性相互作用,并引入频域 Dropout 防止过拟合。
- 频率感知多头注意力(FAMA): 传统的 Attention 对所有频率一视同仁。FAMA 为每个 Attention Head 分配了一个特定的频率响应函数(类似带通滤波器),让不同的 Head 专门负责处理特定频段的信息。
- 层次化预测网络(HPN): 不在时域直接预测,而是在分解后的多个分辨率上分别生成预测结果,最后通过逆小波变换重建出未来的时间序列。
这一工作的底层逻辑在于“不确定性原理”在深度学习中的体现。在论文中,我给出了严格的数学证明:自适应小波不仅能提供完美的重构保证,其频率感知的 Attention Head 还严格满足时频局部化的不确定性原理。在面试时可以强调:这不仅是一个模型,更是一个从数据驱动角度重新定义小波基的自适应信号处理框架,在缺失值高达 30% 的情况下,凭借小波平滑先验依然表现极佳。
9.6 ScatterFusion
研究背景
Transformer 和 CNN 虽然强大,但它们面对时间序列中微小的时间偏移(Time-warping)或相位移动时,往往极其敏感,极易产生巨大的预测误差。数学上的“散射变换(Scattering Transform)”通过级联的小波滤波和取模运算,被证明可以提取具有“平移不变性”和“形变稳定性”的特征,但它通常缺乏对长时间依赖的建模能力。
核心创新点
ScatterFusion 成功将散射变换的数学稳定性与深度学习的时序建模能力结合了起来:
- 层次化散射变换模块(HSTM): 使用可学习的小波滤波器提取特征,最关键的是保留了“取模(Modulus)”这种非线性操作。取模的作用类似通信中的检波器,能消除高频信号中极不稳定的相位信息,将能量拖拽回低频。
- 尺度自适应特征增强(SAFE): 通过一个尺度级别的注意力机制(Scale-wise Attention),根据预测任务的需求,动态调整不同散射阶数(不同尺度)特征的权重。
- 多分辨率时间注意力(MRTA): 通过对不同分辨率的特征图进行下采样和上采样,在一个统一的框架内同时捕获细粒度的局部模式和粗粒度的全局趋势。
- TSR 结构感知损失函数: 不再单纯使用 MSE,而是将预测结果强制解耦为趋势(T)、季节(S)和残差(R),为不同成分分配不同的损失权重,极大地增强了预测的结构准确性。
这篇论文的关键在于对 “取模(绝对值)非线性”物理意义的解释。普通的神经网络靠 ReLU 激活,而 ScatterFusion 靠取模运算获得了严格的数学保证——形变稳定性(Deformation Stability)。这就意味着,当电网负荷因为天气原因整体推迟了半小时(时间形变)时,ScatterFusion 的特征表达几乎不会改变,从而做到了极强的抗干扰预测。
9.7 ClusterPatchTST
研究背景
面对包含成千上万条时间序列的异构数据集,传统的“单一模型(Monolithic)”试图用一套权重拟合所有规律,注定会失败。虽然目前有基于混合专家系统(MoE)的方案,但它们存在三个致命缺陷:一是聚类过程与预测任务脱节(只看长得像不像,不管预测准不准);二是路由分发时忽略了专家的不确定性;三是黑盒模式极易学到虚假的伪相关性(Spurious Correlations),一旦数据分布发生改变(OOD),模型就会崩溃。
核心创新点
这篇录用于 DASFAA 2026 的工作,是一次对异构时序处理范式的重构,通过三个维度的协同创新解决了上述痛点:
- 梯度引导的集群演化(Gradient-guided Cluster Evolution): 解决“有什么规律”的问题。不是基于输入特征聚类,而是基于预测损失的梯度方差进行软聚类。如果一个簇内的梯度方差过大,说明强行把它们放在一起导致了“参数打架”,模型会自动将其分裂(Split);如果两个簇的梯度高度相似,则自动合并(Merge),从而自适应寻找最优的专家粒度。
- 不确定性感知的专家路由(Uncertainty-Aware Routing): 解决“该信谁”的问题。引入蒙特卡洛 Dropout 评估每个专家的认知不确定性(Epistemic Uncertainty)。在进行路由加权时,遵循贝叶斯最优原则,对那些虽然权重高、但方差大(极不自信)的专家进行降权(Down-weighting)。
- 因果感知的模式发现(Causal-aware Pattern Discovery): 解决“为什么准”的问题。在每个簇内部,使用可微分的 DAG(有向无环图)学习算法,挖掘变量间的真实因果机制。在推理时,使用因果干预(
do-operator)代替条件概率,切断伪相关路径。
这篇工作真正做到了兼顾精度、鲁棒性与可解释性。在夏季热浪来袭的极端天气下(OOD场景),传统模型会因为“星期几”与“用电量”的伪相关性而预测失败;而 ClusterPatchTST 的因果图准确识别出了“温度”才是驱动用电量的真正因果父节点,从而在分布偏移的情况下依然保持了极高的准确率。
9.8 SDFlow (Similarity-Driven Flow Matching)
研究背景
这是我在生成式 AI 领域的集大成之作。目前,基于 VQ-VAE 的自回归(AR)模型(如 SDformer)在时序生成上达到了 SOTA。但是,只要是自回归,就绝对逃不掉“暴露偏差(Exposure Bias)”的诅咒:推理时只能用自己上一步生成的 Token,误差随着序列长度指数级累积,导致长序列生成质量断崖式下跌。
为了解决这个问题,我们要转向非自回归的连续流匹配(Flow Matching)。但新的灾难出现了:VQ 的离散潜在空间维度极高(通常
核心创新点
SDFlow(相似度驱动的流匹配)通过将“流匹配”与“低秩几何”深度绑定,彻底击穿了自回归与高维连续生成的壁垒:
- 低秩流形锚点初始化(Manifold-Anchored Initialization): 我们发现真实的时序特征只存在于一个极低维的子空间中。因此,SDFlow 摒弃了高维高斯噪声,转而联合学习一个低秩的正交空间。
- 保留拓扑的 KDE 先验(KDE Prior): 在低维空间中,我们使用核密度估计(KDE)对真实数据的坐标进行采样,并将其投影回高维空间作为流匹配的起点(Anchor)。这在数学上,将一个原本需要横跨高维宇宙的全局传输问题(Global Transport),降维打击成了一个流形附近的局部插值问题(Local Refinement)。
- 分类后验流匹配(Categorical Flow Matching): VQ 空间的端点是离散的代码本。SDFlow 没有使用传统的连续 MSE 损失,而是引入了变分流匹配的思想:虽然神经网络计算的是连续空间中的速度场,但损失函数使用的是对其终点代码本索引的交叉熵损失(Categorical Cross-Entropy)。这使得模型既拥有连续传输的平滑性,又获得了明确的离散 Token 监督。
如果用标准高斯初始化,传输距离与环境维度
由于去掉了自回归的串行依赖,SDFlow 实现了并行的 ODE 生成。它不仅彻底根除了长序列生成的误差累积(在 256 长度序列上,Context-FID 骤降 95%),还实现了高达 3~10 倍的推理加速。这证明了:在时间序列生成中,理解数据的内在几何流形,比盲目堆砌大模型算力要有效得多。
第10章 加速训练与推理入门
在前面的章节中,我们探讨了大量优美的数学模型与算法架构。然而,在真实的学术实验(尤其是在算力有限的学生阶段)乃至工业界落地中,我们往往会发现模型训练和推理的速度极其缓慢,可能训练一次都需要大半天的时间。这会导致你无法及时了解自己的创新点是否能够让模型涨点。
2026年,我有幸参加了 ASC 世界大学生超级计算机竞赛,并与团队共同拿下了国际一等奖,也在此过程中学到了不少关于模型加速的小技巧。
时间序列模型(尤其是引入了 Transformer 甚至大模型后)往往伴随着极长的序列输入和庞大的矩阵运算。本章将从代码工程角度,教你如何用最少的修改,换来最大的训练与推理加速。
10.1 TensorRT
TensorRT(TRT) 是 NVIDIA 推出的一款专门用于深度学习推理(Inference)的高性能优化SDK。
- 层融合(Layer Fusion): 在我们写的代码里,经常是 卷积层 -> 归一化层 -> 激活函数(Conv + BatchNorm + ReLU)。在标准的执行中,GPU 需要把数据从显存读到计算核心算卷积,写回显存;再读出来算BN,再写回;再读出来算ReLU……这种频繁的显存读写奇慢无比。TensorRT 会将这三层在底层融合成一个 CUDA Kernel,数据只读写一次。
- 精度校准与量化(Quantization): 深度学习训练通常使用单精度浮点数(FP32),但在预测时,很多时候半精度(FP16)甚至8位整数(INT8)就足够了。TensorRT 可以在几乎不损失模型精度(特别是时序模型中往往具有很强鲁棒性)的前提下,将模型权重量化,这不仅让显存占用减半或缩减为四分之一,还能激活新架构 GPU 中的 Tensor Core 计算单元。
- 内核自动调整(Kernel Auto-tuning): TensorRT 会根据你当前实际插在主板上的那张显卡(比如是 RTX 3090 还是 A100),自动挑选出跑得最快的内核。
对于时间序列模型,通常的做法是:在 PyTorch 中训练完毕后,将模型导出为 ONNX 格式,然后再由 TensorRT 解析 ONNX 生成特定 GPU 的 Engine 文件。对于高频交易或自动驾驶等对延迟(Latency)要求在毫秒级的时序任务,TensorRT 是必不可少的核武器。
10.2 model.compile()
如果你觉得 TensorRT 的导出过程太繁琐,或者你现在的首要任务是加速训练过程,那么 PyTorch 2.0 引入的torch.compile() 是你的首选。
1 | # 传统的训练代码 |
在 PyTorch 2.0 之前,代码是解释执行的(Python 跑一行,C++ 算一行),这在遇到复杂的 for 循环或大量琐碎的运算时非常慢。model.compile() 引入了 JIT(即时编译)机制:
- TorchDynamo 会在代码第一次运行前,拦截你的 Python 代码,并将其记录成一张静态的计算图。
- TorchInductor 会接管这张图,并自动生成高度优化的 Triton 底层代码。
我在实现诸如 EnergyPatchTST 或 AWGformer 这种包含多重注意力机制和小波变换的模型时,发现 model.compile() 极其有效。因为 Transformer 架构中有大量的内存带宽瓶颈操作(比如 Softmax、Dropout 等)。compile() 会自动把这些操作融合(类似刚才提到的 TensorRT 层融合),极大地减少了 GPU 显存带宽的压力。通常情况下,只需加上这一行代码,训练时间就能缩短 20% 到 40% 不等。
10.3 预处理与内存/显存优化
1. 数据预处理的 I/O 瓶颈
很多人的 Dataset 类的 __getitem__ 方法中,每次抓取数据时都使用 pandas.read_csv() 去读取硬盘上的文件。这会导致 GPU 永远在干等 CPU 。如果内存足够,在初始化时一次性将数据加载为 NumPy 数组或 PyTorch Tensor,并存放在内存中。如果数据大到内存装不下,在预处理阶段将其转化为 .npy,使用 np.load('data.npy', mmap_mode='r'),或者将数据存为 .h5 (HDF5) 格式进行磁盘级切片读取。
2. Dataloader 的小参数
在定义 DataLoader 时,有两个参数必须开启:
num_workers=4或更高(取决于你的CPU核心数):开启多进程抓取数据。pin_memory=True:锁页内存。这能让数据从内存向 GPU 显存传输时,直接走 PCIe 通道的最高速度,无需经过操作系统的虚拟内存调度。
3. CUDA OOM
当你遇到 CUDA Out of Memory 时,除了调小 Batch Size,你还有以下选择:
- 自动混合精度(AMP): 引入
torch.cuda.amp.autocast()。它会在前向传播时,自动判断哪些矩阵相乘可以用 FP16 算,哪些需要保持 FP32。这能瞬间省下近一半的显存,并大幅提速。 - 梯度累加: 例如,模型必须用
Batch_size = 32才能收敛,但显存只能撑下 8。这时候可以让模型每次输入 8 个样本,计算梯度但不更新权重,把梯度累加起来。循环 4 次后,再执行一次optimizer.step()。 - 善用
.detach()与del: 在验证集(Validation)推理时,除了加上with torch.no_grad():,对于不需要保存计算图的中间变量(尤其是用作统计 Loss 的张量),记得调用.item()或.detach()。
第11章 总结
本书重点介绍了时间序列的背景知识、传统算法、机器学习算法、深度学习基础、深度学习算法、大模型算法与新兴模型算法、个人研究案例分析、模型训练与推理加速等几个方面。
由于作者本人能力有限,外加编写的时间有限,其中不免有许多差错与疏漏,望读者能够多多提出宝贵意见。
最后,祝愿各位读者身体健康,学业有成,事业顺利!
致谢
撰写这篇长文的过程,既是我对自己过去一年科研之路的复盘与总结,也是希望尽我所能,为刚刚踏入时间序列领域的初学者点亮一盏微弱的路灯。受限于个人作为大三学生的阅历与实力,文中的讲解必然存在局限、误区甚至错误,恳请各位前辈与同仁不吝赐教。
独学而无友,则孤陋而寡闻。如果有学者希望与我进一步交流学术问题,或是探讨未来的相关合作,非常欢迎通过邮箱与我联系。再次感谢所有指导过我的恩师,以及每一位读到这里的读者!
作者:黎玮 - 上海大学
时间:2026.04.04
个人主页:weili.space/about
附录
相关资源可见下述。
链接
- NeuralForecast: 集成了大量最先进的深度学习时序模型,易用性极高。
- Darts: 提供了极其统一的 API,可以一键对比 ARIMA 到 Transformer 的所有模型。
- Time-Series-Library: 清华大学软件学院维护,涵盖了绝大多数顶会论文的复现。
- GluonTS: 亚马逊开发的基于 MXNet/PyTorch 的概率时序建模库,Chronos 等模型多源于此。
- 本文作者: Wei Li
- 本文链接: https://weili.space/2026/04/05/重识时间序列:算法与前沿/
- 版权声明: © William-Liwei. All rights reserved.
