引言: 缺失时间的问题
想象一下,你是一位医生,正在通过心电图 (ECG) 监测病人的心脏,但传感器突然出故障,丢失了几秒关键数据。或者,你是一位金融分析师,正在追踪股票价格,而数据源突然出现缺口。缺失数据不仅让人不便——它在现实应用中极为常见,可能破坏机器学习模型,引入偏差,并导致错误结论。
对于时间序列数据——时间的连续性和顺序至关重要——这些缺口尤其具有破坏性。大多数机器学习算法无法容忍缺失值,因此常见的解决办法是**插补 **(imputation) : 用合理的估计值填补缺失条目。那么,什么才是好的估计呢?简单做平均可能会抹平重要峰值,而朴素插值可能完全忽略潜在趋势。糟糕的插补会污染下游分析结果。
论文《Diffusion-based Time Series Imputation and Forecasting with Structured State Space Models》提出了一种新模型——SSSD (Structured State Space Diffusion) ,旨在应对这一挑战。它结合了两种强大的现代深度学习技术:
- 扩散模型 (Diffusion Models) — 先进的生成模型,通过逆转逐渐加噪的过程来生成逼真的数据。
- 结构化状态空间模型 (S4) — 用于捕捉序列长程依赖的高效架构,性能常常超越 RNN 和 Transformer。
融合两者,作者构建了一个在多种基准测试中均取得当前最佳 (state-of-the-art) 结果的模型,即使是在最困难的情形——如填补大段连续缺失数据块——也能表现优异,而传统方法在这类场景下往往完全失效。
本文将从基础理论到架构与训练策略,完整解析 SSSD 的工作原理,并展示实验结果,说明它为何代表了时间序列建模的重大进步。
背景: SSSD 的核心构件
在探讨架构之前,先理解 SSSD 的基础概念: 缺失类型、扩散模型原理以及状态空间模型的优势。
缺失场景
并非所有缺失模式的难度相同。论文主要关注以下四种场景,如下图所示。
图 1: 缺失场景示例。蓝色区域为已知数据;灰色区域为待插补的缺失点。浅/深绿色带表示多次插补的预测区间;橙色为一次插补样本。
- 随机缺失 (RM) : 序列中零散的数据点随机缺失——通常是最简单的情形,因为邻近值可提供估计依据。
- 随机块缺失 (RBM) : 连续数据块缺失,不同通道的缺失位置不同。
- 黑块缺失 (BM) : 所有通道缺失同一段连续数据块——严重挑战,因为无法利用其他通道的对齐信息。
- 时间序列预测 (TF) : BM 的特例,缺失块位于序列末尾——任务变为预测未来数据点。
SSSD 针对全部上述场景,尤其擅长 BM 与 TF。
扩散模型: 用去噪生成数据
扩散模型通过学习逐步从信号中去除噪声来生成数据。流程如下:
- 从干净信号 \(x_0\) 开始。
- 前向过程: 在 \(T\) 步内逐步添加高斯噪声,直到信号变成纯噪声 \(x_T\)。形式上: \[ q(x_1, \dots, x_T | x_0) = \prod_{t=1}^T q(x_t | x_{t-1}). \]
- 反向过程: 训练模型逐步逆转该过程,将 \(x_T\) 还原为 \(x_0\): \[ p_{\theta}(x_0, \dots, x_{t-1} | x_T) = p(x_T) \prod_{t=1}^T p_{\theta}(x_{t-1} | x_t). \]
关键简化在于让网络 \(\epsilon_{\theta}(x_t, t)\) 直接预测每一步添加的噪声 \(\epsilon\),并用均方误差损失优化:
\[ L = \min_{\theta} \mathbb{E}_{x_0 \sim \mathcal{D}, \epsilon \sim \mathcal{N}(0,1), t \sim \mathcal{U}(1,T)} \|\epsilon - \epsilon_{\theta} (\sqrt{\alpha_t} x_0 + \sqrt{1-\alpha_t} \epsilon, t)\|_2^2. \]在插补任务中,采用条件扩散——网络输入已知数据与缺失掩码 (mask) 作为条件,指导去噪过程一致地填补缺口。
结构化状态空间模型 (S4) : 掌控长序列
状态空间模型 (SSM) 通过潜在状态向量 \(x(t)\) 将输入序列 \(u(t)\) 映射到输出 \(y(t)\):
\[ x'(t) = A x(t) + B u(t), \quad y(t) = C x(t) + D u(t). \]基于 HiPPO 的 \(A\) 矩阵初始化,使 S4 在长上下文中拥有强记忆力。离散化后,这些运算变为卷积操作——可用快速傅里叶变换 (FFT) 高效并行化——结合了类似 RNN 的时间建模能力与 CNN 的效率,因此在扩散模型中处理长序列插补任务时非常理想。
核心方法: SSSD 模型解析
SSSD 在条件扩散框架中嵌入 S4 层,增强去噪网络捕捉长程依赖的能力。
SSSDS4 架构
SSSDS4 基于 DiffWave 音频模型,将其中的扩张卷积层替换为 S4 层。
图 2: SSSDS4 架构。粉色模块为嵌入残差扩散块中的 S4 层。
信息流如下:
- 输入:
- 在时间步 \(t\) 的带噪样本 \(\bar{x}\)
- 条件 \(C\): 已知值 (缺口处用零填充) 与二进制掩码拼接
- 时间步嵌入 (经全连接层) ,指示噪声水平
- 带 S4 的残差块:
- 首个 S4 层在加入时间步嵌入后处理输入——建模噪声中的长程时间结构
- 第二个 S4 层在融合条件信息后处理——使信号模式与约束一致
- 输出: 噪声预测 \(\epsilon_{\theta}\),用于计算损失或采样
训练策略: 聚焦未知区域
论文测试了两种加噪策略:
- \(D_0\): 对整个信号加噪——损失同时包括已知部分的重建与未知部分的插补
- \(D_1\): 仅对未知区域加噪——已知部分保持干净,作为条件输入
\(D_1\) 策略让模型专注于插补缺失数据,实验显示该策略始终优于 \(D_0\)。
实验与结果: 检验 SSSD
SSSD 在多种数据集上与强基线模型进行了插补与预测的对比测试。
ECG 插补: 质的飞跃
在 PTB-XL ECG 数据集上,SSSDS4 表现显著优于基线,尤其是在 BM 场景。
表 1: PTB-XL 插补 (MAE/RMSE) 。SSSDS4 在 RBM 与 BM 场景下成绩显著更佳。
可视化对比显示其改进幅度。
图 3: 健康 ECG 导联的 BM 插补。CSDI 输出不合理;SSSDS4 与真实值高度吻合。
CSDI 在 BM 场景完全崩溃——产生无意义输出。SSSDS4 能重现逼真的波形,包括关键的 QRS 波群时序与振幅。
挑战极限: 高稀疏性与高维度
在 MuJoCo 数据集 (缺失率高达 90%) 中,SSSDS4 在极端稀疏下表现优异,90% 缺失时的 MSE 比最佳基线降低超 50%。
表 2: MuJoCo 插补 MSE。SSSDS4 在最困难情境中优势明显。
在高维 Electricity 数据集 (370 通道) 中,通过通道拆分技术,SSSDS4 相较于 SAITS 等顶级基线将误差减少超 50%。
表 3: Electricity RM 插补。在 10% 与 30% 缺失率下表现突出。
预测性能
预测任务是序列末端的 BM 任务——SSSDS4 可直接应用。
在 PTB-XL ECG 预测中:
图 4: ECG 预测。SSSD 变体生成更紧凑的不确定区间,更好匹配信号趋势。
在 Solar 数据集中,SSSDS4 较最强基线将 MSE 降低 27%。
表 4: Solar 预测 MSE。SSSDS4 超越了专用基线。
在长时程预测的 ETTm1 数据集中,SSSDS4 在多个预测长度下与 Informer、Autoformer 等专用模型持平或更优。
表 5: ETTm1 预测 (MAE/MSE) 。SSSDS4 展现强大长时预测能力。
结论与启示
将扩散模型的生成优势与 S4 层的长序列处理能力相结合,SSSDS4 带来了:
- 当前最佳性能: 在各类数据集和缺失类型上持续超越顶级模型
- 黑块缺失的掌控力: 在传统方法失败处生成逼真输出
- 架构优势: S4 层捕捉关键的长程依赖
- 训练效率: \(D_1\) 噪声聚焦策略显著提升效果
SSSD 提供了强大通用的序列数据建模框架——适用于医疗、金融、气候科学等数据完整性至关重要的领域。它不仅填补缺口,更以高保真度重构全貌。
作者已在 https://github.com/AI4HealthUOL/SSSD 发布代码,邀请社区深入探索并应用这一前景可观的方法。