EventTSF的训练与预测逻辑

公式和数据流的角度来剖析《EventTSF: Event-Aware Non-Stationary Time Series Forecasting》的训练和预测逻辑。

1. 数据准备

假设你有时间序列 x 1 , x 2 , ... , x T x_1, x_2, \dots, x_T x1,x2,...,xT 和事件信息 e 1 , e 2 , ... , e T e_1, e_2, \dots, e_T e1,e2,...,eT。

  • 历史序列长度: L hist L_{\text{hist}} Lhist
  • 预测长度(horizon): H H H
  • 模型输出维度: C C C

论文把时间序列拆成 块 (block) ,每个 block 的长度是 H H H(或 block_len),便于 U-shaped Transformer 做下采样/上采样。

训练样本公式:

Input: x t − L hist : t , e t \text{Input: } x_{t-L_{\text{hist}}:t}, \quad e_t Input: xt−Lhist:t,et

Target: v t : t + H = x t + 1 : t + H − x t : t + H − 1 \text{Target: } v_{t:t+H} = x_{t+1:t+H} - x_{t:t+H-1} Target: vt:t+H=xt+1:t+H−xt:t+H−1

这里 v t v_t vt 是速度 (velocity),即时间序列的增量。

  • 公式(1)

v t = x t − x t − 1 v_t = x_{t} - x_{t-1} vt=xt−xt−1


2. 训练阶段逻辑

论文训练的是 velocity denoising

v ^ t : t + H = f θ ( x t − L hist : t , e t ) \hat{v}{t:t+H} = f\theta(x_{t-L_{\text{hist}}:t}, e_t) v^t:t+H=fθ(xt−Lhist:t,et)

  • 输入:

    • 历史序列 x t − L hist : t x_{t-L_{\text{hist}}:t} xt−Lhist:t
    • 对应事件 embedding e t e_t et
    • 时间 embedding t _ e m b t\_emb t_emb(编码位置/时间)
  • 输出:

    • 预测速度 v ^ t : t + H \hat{v}_{t:t+H} v^t:t+H
  • 损失函数

L = 1 H ∑ i = 1 H ∥ v ^ t + i − v t + i ∥ 2 2 \mathcal{L} = \frac{1}{H} \sum_{i=1}^{H} \| \hat{v}{t+i} - v{t+i} \|_2^2 L=H1i=1∑H∥v^t+i−vt+i∥22

注意:训练是在 velocity 上 MSE,而不是直接预测 x x x。

  • 如果论文用 multi-block 自回归(多步训练):

    • 先预测 block1,累加得到 x
    • 再把 block1 作为历史预测 block,预测 block2
    • 保证模型能学习到滞后和非平稳变化

3. 自回归预测阶段

预测阶段核心公式在论文中就是 公式(3) + velocity 累加

  1. EventSteps 决定 block 的步长 Δ t \Delta t Δt:

δ T = σ ( Linear ( e ) ) \delta T = \sigma(\text{Linear}(e)) δT=σ(Linear(e))

t step = 1 T + δ T t_\text{step} = \frac{1}{T + \delta T} tstep=T+δT1

  1. 模型预测 velocity

v ^ t : t + H = f θ ( x t − L hist : t , e t ) \hat{v}{t:t+H} = f\theta(x_{t-L_{\text{hist}}:t}, e_t) v^t:t+H=fθ(xt−Lhist:t,et)

  1. 自回归累加得到预测序列:

x ^ t + i = x ^ t + i − 1 + v ^ t + i − 1 , i = 1 , ... , H \hat{x}{t+i} = \hat{x}{t+i-1} + \hat{v}_{t+i-1}, \quad i=1,\dots,H x^t+i=x^t+i−1+v^t+i−1,i=1,...,H

预测阶段直接用 x 递推,不再用真实 velocity。

这个逻辑严格对应论文里 velocity → accumulate → forecast


4. 数据流总结(训练 vs 预测)

阶段 输入 输出 公式/说明
训练 历史 x, event embedding 预测 velocity v ^ \hat{v} v^ v t = x t − x t − 1 v_t = x_t - x_{t-1} vt=xt−xt−1, 训练 MSE( v ^ , v \hat{v}, v v^,v )
预测 历史 x, event embedding 预测 x 预测 v ^ \hat{v} v^ 后累加: x ^ t + 1 = x t + v ^ t \hat{x}_{t+1} = x_t + \hat{v}_t x^t+1=xt+v^t
block 自回归 前一个 block 预测序列 后一个 block 保持历史信息,用累加结果作为新的历史

重点理解

  1. 训练是在 velocity 上做 denoising

    • 模型学习的是序列变化趋势,而不是绝对值。
    • 这样能更好适应非平稳序列(趋势、波动变化)。
  2. 预测是自回归累加

    • 测试时不会暴露真实 x,只用模型预测的 velocity 累加得到序列。
    • 保证和真实应用一致。
  3. 事件 embedding 直接调节 block 步长和注意力

    • EventSteps 模块学习如何根据事件重要性调整 timestep 分配(公式(3))。

如果用 Python 实现:

python 复制代码
# 训练阶段
v_true = x[:,1:] - x[:,:-1]         # velocity
v_hat  = model(x_hist, ev_emb)
loss   = F.mse_loss(v_hat, v_true)

# 测试阶段
x_pred = x_hist[:,-1:]              # last known value
for t in range(H):
    v_hat = model(x_hist, ev_emb)
    x_new = x_pred + v_hat
    x_pred = x_new                  # 自回归累加
相关推荐
迪娜学姐5 小时前
Nano Banana Pro科研绘图能力实测
论文阅读·人工智能·chatgpt·prompt·论文笔记
想看雪的瓜6 小时前
Origin将普通点线面积图升级为3D点线瀑布图
论文阅读·论文笔记
大模型任我行1 天前
电信:Agent记忆管理决策理论框架DAM
人工智能·语言模型·自然语言处理·论文笔记
醒了就刷牙3 天前
Vilt论文相关工作部分
论文阅读·论文笔记
数说星榆1815 天前
项目管理跨职能泳道图在线生成方法
论文阅读·流程图·论文笔记
deephub7 天前
机器学习时间特征处理:循环编码(Cyclical Encoding)与其在预测模型中的应用
人工智能·python·机器学习·特征工程·时间序列
数据艺术家.8 天前
【论文笔记】On Generative Agents in Recommendation
论文阅读·论文·推荐系统·论文笔记·推荐算法·llm4rec·agent4rec
森诺Alyson9 天前
前沿技术借鉴研讨-2025.12.23(荟萃分析/信号提取/轻量级模型)
论文阅读·人工智能·经验分享·论文笔记·论文讨论
浩浩的科研笔记9 天前
投论文常用技术笔记-使用visio导出贴合图像尺寸大小的PDF(无白边、无黑框)
笔记·pdf·论文笔记