EN

AI驱动的先进时间序列预测:N-BEATS、PatchTST与基础模型

从经典ARIMA到神经网络与基础模型方法的生产级预测

返回教程列表🌐 Read in English
高级35 分钟

AI驱动的先进时间序列预测:N-BEATS、PatchTST与基础模型

从经典ARIMA到神经网络与基础模型方法的生产级预测

进阶时间序列预测:经典(ARIMA/Prophet)到深度(N-BEATS/N-HiTS/TFT)到时序基础模型(TimeGPT/Chronos/Moirai),方法选型、指标与回测。

时间序列预测是数据科学中最古老也最活跃的领域之一。从经典的 ARIMA 到近年涌现的时序基础模型,技术栈经历了数次范式转移。本文聚焦于 N-BEATS、PatchTST 等代表性深度模型,以及 TimeGPT、Chronos 等基础模型,梳理其核心思想、适用场景与选型逻辑。

经典方法的局限与深度学习的入场

传统方法如 ARIMA、指数平滑(ETS)和 Prophet 依赖强假设:ARIMA 要求数据平稳,ETS 假设季节性模式固定,Prophet 则针对业务时间序列设计(节假日效应、趋势变化点)。当数据呈现非线性、多周期叠加、高维协变量时,这些方法往往力不从心。

深度学习的优势在于自动特征提取与端到端学习。DeepAR(2017)首次将自回归 RNN 引入概率预测,输出参数化分布(如高斯分布)。但 RNN 的梯度消失问题使其难以捕获长程依赖,这为后续基于注意力机制和全连接架构的模型铺平了道路。

N-BEATS:纯全连接的突破

N-BEATS(Element AI, 2019)的核心创新是纯全连接架构,完全摒弃特征工程和时序特定组件(如 RNN/CNN)。它由多个“块”(Block)堆叠成“栈”(Stack),每个块输出两个分支:回测分支(Backcast)拟合输入序列,预测分支(Forecast)生成未来值。通过残差连接,后一个块只学习前一个块未能解释的部分。

  • 可解释性变体:N-BEATS 提供“趋势+季节性”分解模式,每个栈分别学习趋势基函数(多项式)和季节性基函数(傅里叶级数),预测结果可分解为可解释成分。
  • 适用场景:单变量预测,尤其是数据量中等(数千至数万时间点)、无明显外部协变量的场景。在 M4 竞赛中,N-BEATS 的纯统计版本(无外部数据)击败了多数混合模型。
  • 常见坑:对缺失值敏感,需预处理;超参数(块数、栈数、隐藏层宽度)对性能影响大,建议使用贝叶斯优化或网格搜索。
  • N-HiTS:处理长序列的改进

    N-HiTS(2022)是 N-BEATS 的升级版,主要解决长序列预测中的计算效率与过拟合问题。它引入层次化插值:在输入序列上应用下采样(池化),生成多个分辨率的时间表示,每个分辨率对应一个栈。预测时,低分辨率栈捕获长期趋势,高分辨率栈补充细节。

  • 核心优势:相比 N-BEATS,N-HiTS 在长预测长度(如 96 步以上)时训练速度更快,且对噪声更鲁棒。它天然适合多周期数据(如同时包含日、周、年周期)。
  • 局限性:仍为单变量设计,无法直接利用多变量协变量。
  • PatchTST:Transformer 的时序适配

    PatchTST(2023)将 Transformer 应用于时间序列,但做了关键改造:将时间点分割为“补丁”(Patch)。传统 Transformer 将每个时间步作为 token,导致计算复杂度为 O(L²)(L 为序列长度),且难以捕获局部模式。PatchTST 将长度为 L 的序列划分为 P 个不重叠的补丁,每个补丁包含 S 个时间步,token 数量降为 P,复杂度降为 O(P²)。

  • 通道独立性:多变量预测时,每个变量独立输入共享权重的 Transformer,避免变量间干扰。这看似反直觉,但在多个 benchmark 上效果优于全变量联合建模。
  • 适用场景:多变量预测,尤其是变量数量多(>10)且存在复杂非线性依赖的场景。PatchTST 在长预测长度(如 720 步)上显著优于 N-BEATS 和 N-HiTS。
  • 常见坑:补丁大小 S 是敏感超参数,过小则失去局部建模优势,过大则丢失细节;建议在 S=8~32 之间搜索。
  • 时序基础模型:预训练时代的到来

    2023-2024 年,时间序列领域迎来“基础模型”浪潮,核心思路是:在大量异构时间序列上预训练一个通用模型,然后零样本或少样本迁移到新任务。

  • TimeGPT(Nixtla, 2023):首个商业化的时序基础模型,声称在超过 1000 亿时间点数据上预训练。用户只需传入历史数据,无需特征工程即可获得预测。其架构细节未完全公开,但推测基于 Transformer 变体。
  • Chronos(Amazon, 2024):基于 T5 编码器-解码器架构,将时间序列通过缩放和量化转换为 token 序列,然后用语言模型的方式训练。支持零样本预测,在多个公开数据集上表现接近甚至超过专门训练的模型。
  • Moirai(Salesforce, 2024):统一多变量与单变量预测,使用“补丁+注意力”架构,支持任意变量数的输入。其关键创新是变量掩码:训练时随机屏蔽部分变量,迫使模型学习跨变量依赖。
  • TimesFM(Google, 2024):基于 decoder-only 架构,将时间序列切分为固定长度的补丁,每个补丁通过 MLP 映射为 embedding,然后输入 Transformer 解码器。在长序列预测上表现突出。
  • 基础模型的适用场景

  • 数据量极少(如只有几十个时间点)时,零样本预测可能优于传统方法。
  • 需要快速原型验证,不想花时间调参。
  • 跨领域迁移(如用金融数据预训练模型预测天气)。
  • 局限性

  • 对数据分布偏移敏感:如果目标序列的统计特性与预训练数据差异大(如高频交易数据 vs 预训练用的日频数据),效果可能不如专门模型。
  • 计算资源需求高:推理时仍需要 GPU,且模型参数量大(通常数亿至数十亿)。
  • 可解释性差:无法像 N-BEATS 那样分解趋势/季节性。
  • 评估指标与回测策略

    常用指标

  • MAPE(平均绝对百分比误差):直观但分母为零时无定义,且对低值敏感。
  • sMAPE(对称 MAPE):解决 MAPE 的不对称性,但仍有分母为零问题。
  • MASE(平均绝对缩放误差):用训练集的一阶差分均值做缩放,不受量纲影响,适合比较不同尺度的时间序列。MASE < 1 表示模型优于朴素预测(naive forecast)。
  • 回测核心原则

  • 时间顺序不可逆:必须按时间顺序划分训练/验证集,禁止随机洗牌。
  • 滚动窗口:固定窗口大小,每次向前滑动一步,计算多步预测误差。这比单次划分更稳健。
  • 多步预测评估:不要只看一步预测误差,应评估预测长度内的所有步长。例如,预测 24 小时时,应报告第 1、6、12、24 小时的误差。
  • 避免数据泄露:特征工程(如滞后变量、滚动统计量)必须在每个时间窗口内重新计算,不能使用未来信息。
  • 常见坑

  • 过拟合到验证集:反复调整超参数直到验证集表现完美,导致在测试集上失效。建议使用嵌套交叉验证或保留一个独立的测试集。
  • 忽略季节性:如果数据有强季节性,但模型未显式建模,预测可能滞后一个周期。检查残差的自相关函数(ACF)可发现此问题。
  • 分布假设错误:DeepAR 假设高斯分布,但实际数据可能偏态或厚尾。使用分位数损失(Quantile Loss)或负二项分布可缓解。
  • 选型决策树

  • 数据量极少(<100 时间点):尝试基础模型(TimeGPT/Chronos)零样本预测,或使用简单方法(Prophet + 强先验)。
  • 单变量,中等数据量(100-10000 时间点):N-BEATS 或 N-HiTS。若预测长度长(>50 步),优先 N-HiTS。
  • 多变量,变量数少(<10):PatchTST 或 TFT(Temporal Fusion Transformer,支持可解释注意力)。
  • 多变量,变量数多(>10):PatchTST(通道独立性)或 Moirai。
  • 需要可解释性:N-BEATS(趋势/季节分解)或 TFT(注意力权重可视化)。
  • 快速原型:基础模型(TimeGPT/Chronos)或 AutoML 工具(如 Auto-ARIMA)。
  • FAQ

    Q1: N-BEATS 和 N-HiTS 的主要区别是什么? A: N-HiTS 引入了层次化下采样,在长序列预测时计算更快、对噪声更鲁棒。N-BEATS 更简单,适合中等长度序列。

    Q2: PatchTST 的“通道独立性”是否总是优于联合建模? A: 不一定。当变量间存在强且稳定的依赖关系时(如传感器网络),联合建模可能更好。通道独立性在变量多且关系复杂时更稳健。

    Q3: 时序基础模型能否替代传统模型? A: 不能完全替代。基础模型在零样本场景和快速原型中优势明显,但在特定领域(如金融高频、工业传感器)中,专门训练的模型通常更优。建议将基础模型作为基线,再与领域专用模型对比。

    Q4: 如何选择预测长度? A: 预测长度应基于业务需求,但技术上限取决于模型。N-BEATS 通常支持预测长度不超过输入长度的 2 倍;PatchTST 和基础模型可支持更长的预测(如输入 512 步,预测 720 步)。建议预测长度不超过输入长度的 1.5 倍,否则误差会急剧上升。

    Q5: MASE 的值如何解读? A: MASE < 1 表示模型优于朴素预测(naive forecast,即用最后一个观测值作为所有未来预测)。MASE = 0.5 表示误差比朴素预测低 50%。MASE > 1 表示模型不如朴素预测,需要重新审视模型选择。

    *最后更新:2026 年 7 月。请以各工具官方文档为准。*