跳转至

Contextual and Seasonal LSTMs for Time Series Anomaly Detection

会议: ICLR 2026
arXiv: 2602.09690
代码: https://github.com/NESA-Lab/Contextual-and-Seasonal-LSTMs-for-TSAD
领域: AI Safety / 时间序列异常检测
关键词: time series anomaly detection, LSTM, frequency domain, noise decomposition, univariate time series

一句话总结

针对单变量时间序列中现有方法难以检测的"小幅点异常"和"缓慢上升异常",提出 CS-LSTMs 双分支架构——S-LSTM 在频域建模周期性演化、C-LSTM 在时域捕捉局部趋势,结合小波噪声分解策略,在四个基准上全面超越 SOTA 且推理速度提升 40%。

研究背景与动机

  1. 领域现状:单变量时间序列(UTS)异常检测是云服务、IoT 和系统监控的核心任务。主流方法分为基于重构(如 VAE)和基于预测(如 Transformer/LSTM)两类。
  2. 现有痛点:通过对 FCVAE、KAN-AD、TFAD 等 SOTA 的复现,发现两类异常难以检测——(1) 小幅点异常:短时小尖峰在较长窗口下看似正常;(2) 缓慢上升异常:渐变偏离周期模式的段异常。
  3. 核心矛盾:异常判定依赖局部上下文而非绝对值,同一幅度的变化在不同上下文中可能是正常或异常。现有方法要么只关注频率成分(忽略局部依赖),要么只用时序信息(忽略周期演化)。
  4. 本文要解决什么? 三个挑战:(1) 捕捉局部趋势而非绝对值;(2) 建模周期性的动态演化而非静态周期;(3) 在包含异常和噪声的数据中学习正常模式。
  5. 切入角度:结合时域和频域表示,用双分支 LSTM 分别处理周期性演化和局部趋势变化。
  6. 核心 idea 一句话:通过时频双域双分支 LSTM 联合建模周期演化和局部趋势,配合小波噪声分解,实现对微妙异常的精准检测。

方法详解

整体框架

输入为单变量时间序列 \(x_{0:t}\),先经小波噪声分解去除噪声得到 \(\hat{x}\),然后输入双分支网络:S-LSTM(周期分支)将历史序列分窗做 FFT 后学习周期演化;C-LSTM(上下文分支)用重叠窗口捕捉局部趋势。两分支各自预测未来值的均值和方差,通过 NLL 损失联合训练。推理时比较预测值与实际值的偏差来检测异常。

关键设计

  1. 小波噪声分解(Noise Decomposition):
  2. 做什么:在训练前过滤噪声和异常点,保留趋势+周期成分
  3. 核心思路:用小波变换将信号分解为近似系数 \(c_A\) 和各层细节系数 \(c_D^{(i)}\),基于 MAD 估计噪声水平 \(\sigma_i = \frac{\text{median}(|c_D^{(i)}|)}{\Phi^{-1}(0.75)}\),计算通用阈值 \(\lambda_i = \sigma_i \sqrt{2\log n}\),对细节系数做软阈值后重构
  4. 设计动机:比 DLinear 的 pooling 分解更精细,比 STL 分解更高效。关键是只去噪不做趋势/周期分解,保留完整信号给后续分支

  5. S-LSTM(Seasonal 分支):

  6. 做什么:学习历史序列中周期性模式的演化趋势
  7. 核心思路:将检测点前的历史序列划分为等长、不重叠的窗口,每个窗口做 FFT 得到频域向量 \(z_s \in \mathbb{R}^{n \times w_s}\),用时域原始值作为协变量拼接后输入单层 LSTM,预测未来周期模式
  8. 设计动机:周期性是动态演化的(周期长度和频率随时间变化),仅看相邻周期不够,需要建模跨多个周期的演化趋势

  9. C-LSTM(Contextual 分支):

  10. 做什么:捕捉短时局部趋势和分布变化
  11. 核心思路:对检测点前的短历史序列划分为重叠窗口(窗口大小 \(w_c\) 较小),各窗口做 FFT 后拼接为 \(z_c \in \mathbb{R}^{n \times w_c}\),输入单层 LSTM 预测未来值
  12. 设计动机:UTS 每个时间点只有一个值,信息稀缺。通过重叠窗口将点级学习转为段级学习,缓解单点信息不足的问题

损失函数 / 训练策略

采用带噪声分解的负对数似然(NLL)损失,同时预测均值 \(\mu\) 和方差 \(\sigma^2\): $\(\mathcal{D}(\mu, \sigma, x, \hat{x}) = \log \sigma^2 + \frac{(x \odot \text{mask} + \hat{x} \odot \tilde{\text{mask}} - \mu)^2}{\sigma^2}\)$ 其中 mask 标记正常区域使用原始值 \(x\),异常区域使用去噪值 \(\hat{x}\) 作为参考。总损失 \(L = L_s + L_c\)

实验关键数据

主实验

数据集 指标 CS-LSTMs FCVAE (之前SOTA) 提升
Yahoo Best F1 0.885 0.854 +3.1%
KPI Best F1 0.936 0.924 +1.2%
WSD Best F1 0.910 0.805 +10.5%
NAB Best F1 0.996 0.972 +0.6%
Yahoo Delay F1 0.878 0.839 +3.9%
KPI Delay F1 0.879 0.851 +2.8%
WSD Delay F1 0.857 0.696 +16.1%

消融实验

配置 Yahoo Best F1 KPI Best F1 WSD Best F1 说明
Full CS-LSTMs 0.885 0.936 0.910 完整模型
w/o C-LSTM 0.864 0.923 0.856 去掉局部分支掉 5.4% (WSD)
w/o S-LSTM 0.717 0.904 0.762 去掉周期分支掉 16.8% (Yahoo)
w/o Covariate 0.826 0.925 0.840 去掉协变量掉 7.0% (WSD)
w/o Noise Decomp 0.868 0.913 0.858 去掉去噪掉 5.2% (WSD)

关键发现

  • S-LSTM 贡献最大:去掉 S-LSTM 后 Yahoo 下降 16.8%,说明周期演化建模对周期性强的数据集至关重要
  • WSD 提升最显著(+10.5%/+16.1%):WSD 数据包含大量缓慢变化的段异常,恰好是 CS-LSTMs 针对优化的目标
  • 效率优势明显:仅 600K 参数(SOTA 的 1.4M 的一半不到),推理时间 4.62ms(GPU)降低约 40%
  • 迁移能力强:Yahoo→KPI/WSD 跨域测试中 F1 达 0.929/0.883,大幅优于其他方法

亮点与洞察

  • 时频双域互补设计很巧妙:频域捕周期性,时域捕局部趋势,两个 LSTM 分支各司其职又互补,简单有效。这种双视角理念可迁移到其他时序任务。
  • 噪声分解用 MAD 而非均值/标准差:对异常值的鲁棒性更好,因为异常值不会影响中位数。这个 trick 在任何需要鲁棒统计估计的场景都可以复用。
  • 重叠窗口缓解 UTS 信息稀缺:把"点级"问题转为"段级"问题,是处理单变量数据的通用技巧。

局限性 / 可改进方向

  • 仅针对 UTS:多变量时序场景下需要建模变量间依赖,当前架构未涉及
  • 窗口大小需要手动调参\(w_s\)\(w_c\) 的选择对结果有影响,自适应窗口大小可能更好
  • LSTM 而非 Transformer:虽然参数更少更快,但对超长序列的建模能力可能受限
  • 评估协议争议:point adjustment 策略(检测到段中任一点即算正确)可能高估了实际部署的检测精度

相关工作与启发

  • vs FCVAE: FCVAE 侧重频域重构但忽略局部依赖,CS-LSTMs 用双分支弥补了这一缺陷
  • vs Anomaly-Transformer: Anomaly-Transformer 用 minimax 策略增强鲁棒性,但参数多推理慢;CS-LSTMs 以更小代价获得更好效果
  • vs KAN-AD: KAN-AD 用时序信息做预测但忽略频域细节,本文恰好互补

评分

  • 新颖性: ⭐⭐⭐ 双分支时频联合建模不算全新概念,但具体设计和噪声分解策略有新意
  • 实验充分度: ⭐⭐⭐⭐ 四个数据集、十个baseline、消融/迁移/效率实验完整
  • 写作质量: ⭐⭐⭐⭐ 动机分析清晰,方法描述系统
  • 价值: ⭐⭐⭐⭐ 实用性强,轻量高效适合工业部署