
摘要
时间序列异常检测(TSAD)面临的一个主要挑战是,在许多现实场景中缺乏标注数据。现有的大多数异常检测方法通常采用无监督方式学习未标注时间序列的正常行为模式。然而,正常行为的边界往往被定义得过于严格,导致微小的偏离即被误判为异常,从而造成较高的误报率,并限制了模型对正常模式的泛化能力。为解决这一问题,本文提出一种新颖的端到端自监督对比表示学习方法——用于时间序列异常检测的CARLA(ContrAstive Representation Learning for Anomaly detection)。与现有对比学习方法假设增强后的时间序列窗口为正样本、时间上相距较远的窗口为负样本不同,我们指出此类假设存在局限性:时间序列的增强操作可能使其转变为负样本,而时间上相距较远的窗口反而可能代表正常行为,应视为正样本。为此,CARLA的对比学习机制充分利用了关于时间序列异常的通用先验知识,并主动引入多种类型的异常作为负样本,使模型不仅能够学习正常行为,还能识别出偏离正常模式的异常特征。该方法通过为时间上相近的窗口生成相似的表示,而对异常窗口生成差异显著的表示,从而实现更精准的区分。此外,CARLA采用自监督策略,利用表示向量邻域信息,基于窗口与其最近邻/最远邻的关系进行分类,进一步提升异常检测性能。在七个主流真实世界时间序列异常检测数据集上的大量实验表明,CARLA在性能上显著优于当前最先进的自监督与无监督TSAD方法。本研究充分展示了对比表示学习在推动时间序列异常检测技术发展方面的巨大潜力。
代码仓库
zamanzadeh/CARLA
官方
pytorch
GitHub 中提及
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| time-series-anomaly-detection-on-kpi | CARLA | AUPR: 0.299 F1 Score: 0.3083 Recall: 0.736 precision: 0.195 |
| time-series-anomaly-detection-on-msl | CARLA | AUPR: 0.501 F1 Score: 52.27 Recall: 0.7959 precision: 0.3891 |
| time-series-anomaly-detection-on-smap | CARLA | AUPR: 0.448 F1 Score: 0.5292 Recall: 0.804 precision: 0.3944 |
| time-series-anomaly-detection-on-smd | CARLA | AUPR: 0.507 F1 score: 0.5114 Recall: 0.63062 precision: 0.4276 |
| time-series-anomaly-detection-on-swat | CARLA | AUPR: 0.681 F1 Score: 0.7209 Recall: 0.5673 precision: 0.9886 |
| time-series-anomaly-detection-on-wadi | CARLA | AUPR: 0.126 F1 Score: 0.2953 Recall: 0.7316 precision: 0.185 |
| time-series-anomaly-detection-on-yahoo-a1 | CARLA | AUPR: 0.645 F1 Score: 0.7233 precision: 0.9755 |