论文题目:Patch-wise Structural Loss for Time Series Forecasting(时间序列预测的斑块结构损失)

会议:ICML2025

摘要:时间序列预测由于其在各个领域的重要作用,在机器学习中得到了广泛的关注。然而,大多数现有的预测模型严重依赖于均方误差(Mean Squared Error)等逐点损失函数,这些函数独立地处理每个时间步,而忽略了时间序列数据固有的结构依赖性,这使得准确捕获复杂的时间模式具有挑战性。为了解决这些挑战,我们提出了一种新的斑块结构(PS)损失,旨在通过比较斑块水平的时间序列来增强结构对齐。通过利用局部统计属性(如相关性、方差和平均值),PS损失捕获了被传统逐点损失忽略的细微结构差异。此外,它与逐点损失无缝集成,同时解决局部结构不一致和单个时间步误差。PS损失为精确建模复杂时间序列数据提供了新的基准,为时间序列损失函数设计提供了新的视角。大量的实验表明,PS损失显著提高了最先进的模型在不同现实世界数据集上的性能。

数据和代码可在https://github.com/Dilfiraa/PS_Loss


MSE 只会数错误,不会看形状:用结构性损失重新定义时序预测的对齐标准

引言:同样的误差,三种不同的"错"法

假设你是一名气象预报员,你的模型在今天的测试集上得了同样的 MSE 分数——但仔细看预测曲线,却发现三种完全不同的问题:

  • 第一条曲线跟真实走势方向相反,真实值在上涨,它在下跌;
  • 第二条曲线方向对了,但波动幅度差了两倍多,忽高忽低的节奏全错;
  • 第三条曲线形状和节奏都不错,只是整体抬高了一截,像是真实曲线平移复制了一份。

【此处配图:论文 Figure 1,展示三种预测错误(相关性差、方差不匹配、均值偏移)在相同 MSE 下的表现】

这三种错误在实际应用中后果截然不同,但 MSE 对它们一视同仁,打出了完全相同的 0.83 分。这就是本文要解决的核心问题。


一、MSE 的根本缺陷:只看距离,不看结构

MSE 的计算逻辑是:把每个时间步的预测误差单独平方,再求平均。这意味着每个时间点是完全独立的,相邻时间点之间的关联——也就是时间序列最核心的"结构信息"——被彻底丢弃了。

具体来说,MSE 对以下三种结构特征完全不敏感:

相关性(Correlation):预测曲线和真实曲线是否同升同降、方向一致?MSE 不管,只要点与点的距离差不多,分数就一样。

方差(Variance):预测曲线的波动幅度是否和真实曲线匹配?MSE 不管,一个剧烈抖动的预测和一条平滑曲线在某些条件下可以得到相同的 MSE。

均值(Mean):预测曲线的整体水平是否和真实曲线对齐?MSE 对系统性偏移(整体抬高或压低)的惩罚和随机噪声一样,无法区分"方向性偏差"和"随机误差"。

更关键的是,即便有人意识到应该在整段序列上补充这些统计量,也仍然不够——时间序列往往是非平稳的,前半段可能剧烈波动,后半段可能趋于平稳。用一个全局的相关系数或方差掩盖了这种局部变化,仍然无法精准定位结构性的预测偏差出现在哪里。


二、PS Loss 的设计:三步走

本文提出的 PS Loss(Patch-wise Structural Loss,分块结构损失) 从三个层次解决上述问题:先把序列切成小块,再在每一块内计算三种结构相似度,最后用梯度动态平衡三者的权重。

【此处配图:论文 Figure 2,展示 PS Loss 的整体流程:傅里叶自适应分段 → 三种结构损失 → 梯度动态权重 → 与 MSE 合并】

2.1 第一步:用傅里叶自适应分段(FAP)

"把序列切成小块"说起来简单,但块的大小怎么定?太大了,每块包含太多时间步,局部结构被平均掉,跟全局统计没区别;太小了,每块只有两三个点,根本算不出有意义的相关性和方差。

论文的做法是让数据自己决定:对真实序列做快速傅里叶变换(FFT),找出振幅最大的频率 f,对应的周期$p = \lfloor T/f \rfloor$ 就是序列最主要的重复结构的长度。最终 Patch 长度取 $P = \min(\lfloor p/2 \rfloor, \delta)$,其中 $\delta$ 是一个上限阈值,防止周期太大时分段粒度过粗。

这样做的直觉是:一个 Patch 大约覆盖半个主周期,足够包含完整的局部涨跌结构,同时又不至于跨越太多不同的统计特性区域。步长设为 $S = \lfloor P/2 \rfloor$,相邻 Patch 之间有一半重叠,确保边界处的结构不被遗漏。

2.2 第二步:三种结构损失

分好块之后,对每一个 Patch 分别计算三种局部结构相似度指标。

相关性损失 $L_{Corr}$:方向对不对?

用皮尔逊相关系数(PCC)衡量每个 Patch 内预测与真实值的线性一致性,对 N 个 Patch 平均:

$L_{Corr} = \frac{1}{N} \sum_{i=0}^{N-1} \left(1 - \rho(Y_p^{(i)}, \hat{Y}_p^{(i)})\right)$

相关系数为 1 时损失为 0,相关系数越低(方向越不一致)损失越大。这一项直接惩罚了 Figure 1(a) 中"走势相反"的问题。

方差损失 $L_{Var}$:波动幅度对不对?

论文没有直接比较方差数值——因为方差值本身与均值耦合,直接比数值容易受到均值偏移干扰。更优雅的做法是:把每个 Patch 内每个点相对于本 Patch 均值的偏差,用 softmax 函数转换成概率分布,再用 KL 散度衡量两个分布的差异:

$L_{Var} = \frac{1}{N} \sum_{i=0}^{N-1} KL\left(\varphi(Y_p^{(i)}) | \varphi(\hat{Y}_p^{(i)})\right)$

这里利用了 softmax 的"平移不变性"——减去均值和不减均值,softmax 结果相同——从而只比较"相对分散程度",与均值完全解耦。这一项直接惩罚了 Figure 1(b) 中"波动幅度不匹配"的问题。

均值损失 $L_{Mean}$:整体水平对不对?

最直接的一个:比每个 Patch 的均值之差(MAE):

$L_{Mean} = \frac{1}{N} \sum_{i=0}^{N-1} \left|\mu^{(i)} - \hat{\mu}^{(i)}\right|$

这一项负责纠正预测的系统性偏高或偏低,直接对应 Figure 1(c) 的"均值偏移"问题。

三者合并为 PS Loss:

$L_{PS} = \alpha L_{Corr} + \beta L_{Var} + \gamma L_{Mean}$

三个分量各管一个维度,互相补充,合力描述一个 Patch 的完整结构相似性。

2.3 第三步:基于梯度的动态权重(GDW)

$\alpha, \beta, \gamma$ 不是固定的超参数,而是每一轮训练时根据三个损失各自对模型输出层的梯度大小自动调整:

$\alpha^{(t)} = \frac{\bar{G}^{(t)}}{G_{Corr}^{(t)}}, \quad \beta^{(t)} = \frac{\bar{G}^{(t)}}{G_{Var}^{(t)}}, \quad \gamma^{(t)} = c \cdot v \cdot \frac{\bar{G}^{(t)}}{G_{Mean}^{(t)}}$

其中 $\bar{G}^{(t)}$是三个梯度的平均值。直觉是:梯度大的损失说明模型在这个维度还差得远,应该多关注;梯度已经很小的损失说明这方面已经学得不错,可以少分配一点权重。

均值损失还额外引入了两个动态缩放因子 c 和 v,它们分别衡量当前预测在相关性和方差上与真实值的对齐程度(取值 [0,1])——当相关性和方差已经很好时,$c \cdot v$ 接近 1,均值损失的权重自动上升,把注意力精细转向均值对齐。这体现了一种"先纠方向、再纠幅度、最后精调均值"的学习优先级。

2.4 与 MSE 合并,即插即用

PS Loss 不替代 MSE,而是作为补充:

$L = L_{MSE} + \lambda \cdot L_{PS}$

只需调整一个超参数 $\lambda$,就可以嫁接到任何现有的时序预测模型上,不改动模型结构,不影响推理速度。


三、实验结果

3.1 数据集与骨干模型

论文在 7 个真实数据集(ETTh1、ETTh2、ETTm1、ETTm2、Weather、ECL、Exchange)上测试,涵盖电力、气象、金融等多个领域,预测长度从 96 到 720 步不等。

测试的骨干模型覆盖了当前主流的四种架构:

骨干模型 架构类型
iTransformer Transformer
PatchTST Transformer
DLinear MLP(纯线性)
TimeMixer MLP
TimesNet CNN

3.2 主要结果

【此处配表:论文 Table 1,7 个数据集、5 个骨干模型的 MSE/MAE 对比表(MSE vs MSE+PS)】

在 140 个预测任务(5 个模型 × 7 个数据集 × 4 个预测长度)中,PS Loss 在 134 个任务(95.7%) 上优于纯 MSE 训练。

性能提升在不同骨干上均有体现,其中 DLinear 受益最明显:

骨干模型 MSE 平均降低 MAE 平均降低
DLinear 5.22% 4.39%
iTransformer ~3.7% ~2.5%
PatchTST ~3.2% ~2.4%
TimeMixer ~4.3% ~2.8%
TimesNet ~4.6% ~3.3%

一个值得注意的现象:DLinear 是五个骨干中结构最简单的(仅线性层),本身在结构建模上最弱,因此 PS Loss 的结构补偿效果也最为显著。

3.3 在大语言模型时序预测器上的验证

【此处配表:论文 Table 2,OFA 和 AutoTimes 两个 LLM-based 模型的 MSE/MAE 对比表】

将 PS Loss 嫁接到基于 GPT-2 的 OFA 和基于 LLaMA 的 AutoTimes 上,同样带来一致性的性能提升,说明 PS Loss 的有效性不依赖于特定的骨干架构,具有良好的通用性。

3.4 与其他损失函数的对比

【此处配表:论文 Table 3,PS Loss vs TILDE-Q vs FreDF 的对比表(iTransformer 骨干,三个数据集)】

论文将 PS Loss 与两类专门设计的结构性损失函数对比:

  • TILDE-Q:基于变换不变性的形状相似损失,对振幅缩放、相位偏移等变换具有鲁棒性
  • FreDF:在频域进行预测对比,绕开时域的标签相关性问题

在 ETTh1、ETTm1、Weather 三个数据集的大多数预测长度上,PS Loss 取得了最低的 MSE 和 MAE,尤其在长预测窗口(336、720 步)上优势更为明显。

3.5 消融实验

【此处配表:论文 Table 4,消融实验结果(DLinear 骨干,ETTh1 和 Weather 数据集)】

论文逐一去掉各个组件,结果一目了然:

去掉的组件 主要影响
去掉 $L_{Corr}$ MSE 显著上升,尤其长预测窗口(720步 ETTh1:0.463→0.510)
去掉 $L_{Var}$ MSE 同样大幅上升(720步 ETTh1:0.463→0.509)
去掉 $L_{Mean}$ 影响相对较小,但仍有显著退化
去掉 Patch 分段(全局比较) 长预测窗口退化最严重(720步 ETTh1:0.463→0.522)
用固定权重替代 GDW 各长度均有退化(720步 ETTh1:0.463→0.528)

相关性损失和分段机制是贡献最大的两个组件——去掉任何一个,长序列预测的性能都会明显变差。这与直觉吻合:长序列更需要方向对齐,也更需要局部分段来处理非平稳性。

3.6 零样本泛化实验

【此处配表:论文 Table 5,零样本预测结果(用一个 ETT 数据集训练,在另外三个 ETT 数据集上零样本预测)】

论文做了一组很有说服力的零样本实验:在 ETTh1、ETTh2、ETTm1、ETTm2 四个数据集中各取一个作为训练集,其余三个作为测试集,完全不使用目标数据集的任何训练数据。

PS Loss 在 36 个零样本设置中的 34 个(94.4%) 上优于纯 MSE 训练,平均 MSE 大幅下降。这说明 PS Loss 通过让模型学习局部结构模式,而非死记硬背点位数值,确实提高了模型对新分布的泛化能力。

3.7 计算开销

PS Loss 会带来多少额外的训练开销?论文在附录中提供了详细的对比:以 iTransformer 为骨干,在 ETTh1(小数据集)上每轮训练时间从 1.96s 增加到 2.66s,额外开销约 0.7s;在 Weather(中等规模)上额外开销 3.40s;在 ECL(大规模,321 个通道)上额外开销 5.18s。

从时间复杂度来看,FAP 模块的主要开销是 FFT($O(CT \log T)$),PS 损失计算为 $O(CT)$,GDW 的梯度计算为 $O(dT)$,整体在可控范围内,且随数据规模增长的幅度相对平缓。

3.8 预测可视化

【此处配图:论文 Figure 3,在 Weather 数据集上对比 MSE 和 PS Loss 预测曲线的三组可视化(更好的相关性、更好的方差匹配、更好的均值匹配)】

Figure 3 从可视化角度直观验证了三个损失分量各自的效果:

  • 图 (a) 对应相关性改善:PS Loss 的预测曲线与真实值的涨跌方向高度一致,MSE 的预测则有明显的方向偏差
  • 图 (b) 对应方差改善:PS Loss 的预测曲线波动幅度与真实值更为接近,MSE 的预测则偏平或偏激
  • 图 (c) 对应均值改善:PS Loss 的预测曲线整体水平与真实值贴合,MSE 的预测则存在明显的系统性偏移

3.9 超参数敏感性

【此处配图:论文 Figure 4,展示 λ 和 δ 两个超参数对性能的影响曲线】

PS Loss 引入了两个关键超参数:

$\lambda$(PS Loss 权重):在 ${0.1, 0.3, 0.5, 0.7, 1.0, 3.0, 5.0, 10.0}$ 范围内,性能随 $\lambda$ 增大而提升,在 $\lambda = 3.0$ 附近达到峰值,此后基本保持稳定。性能对 $\lambda$ 的变化相当鲁棒,在宽泛的范围内都有稳定提升,这降低了实际使用中的调参难度。

$\delta$(Patch 长度上限):对于主周期本身已经较短的数据集(如 ETTh1),$\delta$ 的变化几乎不影响结果,因为 FAP 自动选出的 Patch 长度本来就比上限小。对于主周期较长的数据集(如 ETTm1),过大的 $\delta$ 会导致 Patch 太长,局部结构被平均化,性能下降——说明保持 Patch 的精细粒度对结构对齐至关重要。


四、方法总结与启示

PS Loss 的核心贡献用三句话概括:

发现了什么问题:MSE 对时序结构信息(方向、波动、均值)完全不敏感,三种截然不同的"错法"在 MSE 面前一视同仁。

怎么解决的:把序列切成与数据周期对齐的 Patch,在每个 Patch 内分别从相关性、方差、均值三个维度衡量预测质量,三者用动态梯度权重平衡,叠加在 MSE 之上共同优化。

为什么有效:PS Loss 让模型不只是"尽量让每个点接近真实值",而是同时要求"预测曲线的方向、节奏、整体水平都要对"——这正是时间序列最核心的结构属性。

从更广的视角看,PS Loss 代表了时序预测损失函数设计的一种新范式:从点对点的距离度量,转向局部结构的统计对齐。这种思路天然与时序数据的非平稳性、周期性、局部相关性相适配,也为未来进一步引入频域结构、多尺度结构等更复杂的对齐约束提供了清晰的框架。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐