AAAI AIOps案例:无监督多指标异常检测及诊断
本文介绍一篇来自 AAAI 19 的时间序列异常检测工作:A Deep Neural Network for Unsupervised Anomaly Detection and Diagnosis in Multivariate Time Series Data。这篇工作延续了使用正常数据对 AutoEncoder 进行训练,使 AutoEncoder 拟合正常数据特征,而后使用未知数据数据通过 AutoEncoder 后的重建误差大小区分异常数据和正常数据的思路,提出了一种使用 Conv-LSTM 结构的新方法,称为 MSCRED。与之前工作相比,MSCRED 有两处创新点: 首先, 通过计算多元时间序列两两之间的协方差将多元时间序列数据转换为多分辨率特征矩阵,再将特征矩阵作为 AutoEncoder 结构的输入。其次,在网络结构方面,它综合使用了卷积层、LSTM 层和注意力机制构造 Encoder;使用图像分割中常规的手段,在 Decoder 中将 Encoder 输出的特征图与上一级输出级联后再进行解卷积以逐级重建特征图,以此增加网络的拟合能力。在一份人工数据和一份从真实发电站场景上采集得到的数据上,MSCRED 都表现出了优于基线模型的准确率。
基于某种距离度量计算样本间距离,例如 kNN。
基于无监督聚类。
估计正常样本分布的概率密度,例如 One-Class SVM。
多元时间序列中同时包含时序依赖和特征间的相互关系,因此将适用于非时序数据的算法直接用于时序数据很有可能会因为不能提取时序信息而失效。
实际应用中的多元时间序列通常会含有噪声,噪声会影响时序预测模型的泛化能力,例如自回归滑动平均模型(ARMA) 和 LSTM 自动编解码器等,从而使其检测精度下降。
真实应用场景对于细粒度的异常结果有实际的需求,细粒度则包含根因分析和严重程度判断两个方面,现有的根因方法,如 RCA 等,对于噪声敏感,因此不能解决这一问题。
预处理
首先,如果不同特征上的噪声是彼此无关的,相关计算可以消除这些噪声的影响,这可以消除一部分与感兴趣的系统状态无关的噪声,例如传感器的测量误差等。
第二,可以通过观察特征图上各个位置的重建误差分布便捷地对产生异常的特征进行定位,如果单个特征中出现异常,那么其在特征图上对应的一行和一列很可能会出现很大的重建误差。
第三,可以通过比较不同时间尺度特征矩阵的重建误差推断误差的严重程度,如果短时间尺度的特征矩阵重建误差较大,而长时间尺度的特征矩阵的重建误差并不显著,那么就可以认为这是一次持续时间较短的异常。
网络框架
实验结果
OC-SVM(Manevitz and Yousef 2001): 作为分类模型的代表,通过学习一个决策函数判断样本属于正常类的似然来进行异常检测。
DAGMM(Zong et al. 2018): 作为密度估计模型的代表,通过拟合正常数据分布,并计算样本概率密度进行异常检测。
ARMA(Hamilton 1994): 作为传统时序数据预测模型的代表,通过使用当前数据预测未来数据,通过误差来进行异常检测。
LSTM-ED(Cho et al. 2014): 作为深度学习方法进行时序数据预测的模型的代表,思路与 ARMA 类似。在 Decoder 的 LSTM 结构中,重建是通过显式使用历史数据对当前数据进行预测完成的。
介绍世界范围内智能运维的前沿进展
推动智能运维算法在实践中落地和普世化