解读顶会ICDE’21论文:利用DAEMON算法解决多维时序异常检测问题

摘要:该论文针对多维时序数据的异常检测问题,提出了基于GAN和AutoEncoder的深度神经网络算法,并取得了当前State of the Art (SOTA)的检测效果。论文是云数据库创新LAB在轨迹分析层面取得的关键技术成果之一。

本文分享自华为云社区《ICDE‘21 DAEMON论文解读》,作者:云数据库创新Lab。

导读

本文( DAEMON: Unsupervised Anomaly Detection and Interpretation for Multivariate Time Series)是由华为云数据库创新Lab联合电子科技大学数据与智能实验室发表在顶会ICDE’21的文章。该文章针对多维时序数据的异常检测问题,提出了基于GAN和AutoEncoder的深度神经网络算法,并取得了当前State of the Art (SOTA)的检测效果。ICDE是CCF推荐的A类国际学术会议,是数据库和数据挖掘领域*学术会议之一。该论文是华为云数据库创新LAB在轨迹分析层面取得的关键技术成果之一。

1. 摘要

随着IoT时代的到来,越来越多的传感器采集的时序数据被存储在数据库中,而怎么样处理这些海量数据以挖掘其中的价值是近些年来学术界和工业界热门的研究点。本文研究了多指标时序数据的异常检测问题,以诊断产生时序数据的实体可能存在的异常。

本文的主要贡献如下:

  • 提出了DAEMON算法,其算法基于自编码器和GAN结构,自编码器用于重构输入时序数据,GAN结构分别用于约束自编码器的中间输出以及自编码器的重构输出以使自编码器结构的训练过程更加鲁棒并且减少过拟合。
  • 本文提出了利用多维异常检测的重构结果进行根因定位的方式
  • DAEMON算法能够在测试数据集上击败现有算法

2. 背景

解读顶会ICDE’21论文:利用DAEMON算法解决多维时序异常检测问题

3. 算法设计

解读顶会ICDE’21论文:利用DAEMON算法解决多维时序异常检测问题

图.1 DAEMON的网络结构

A. 算法结构简介

DAEMON算法的总体网络结构如图.1所示,包含了三个网络模块,变分自编码器G_AGA?(其中包含编码器G_EGE?和解码器G_DGD?,编码器和解码器同时作为两个GAN结构中的生成器), 对应编码器的GAN结构判别器D_EDE?以及对应解码器的GAN结构判别器D_DDD?。

下面简述一下各个网络结构的具体功能

解读顶会ICDE’21论文:利用DAEMON算法解决多维时序异常检测问题

B. 数据预处理

  • 数据清洗:利用spectral residual算法首先清理掉训练数据集中可能存在的异常点,这样一来,VAE将会更准确的学习到时间序列的正常分布。
  • 数据归一化:本文利用MINMAX归一化方式对训练以及测试数据进行归一化。

C. 线下训练过程

DAEMON的网络包含三个模块,一个变分自编码器,两个GAN结构的判别器。由于GAN结构网络需要异步训练,因此,DAEMON结构对应了三个异步的训练过程,每个训练规程都对应了各自的优化器以及损失函数。

下面分别介绍各个模块:

GAN结构1:GAN结构1中,生成器对应的是变分自编码器的编码器部分G_EGE?,而判别器对应的是D_EDE?,此GAN结构的目的是约束生成器的分布q(z)q(z) 。由GAN的标准损失函数公式可以推导出生成器和判别器的损失函数分别为

解读顶会ICDE’21论文:利用DAEMON算法解决多维时序异常检测问题

GAN结构2:GAN结构2中,生成器对应的是变分自编码器中的解码器部分G_DGD?,判别器对应的是D_DDD?,此GAN结构的目的是进一步约束自编码器的输出以让自编码器更好的学习时序数据的正常分布。和上面相似,生成器和判别器的损失函数为

解读顶会ICDE’21论文:利用DAEMON算法解决多维时序异常检测问题

变分自编码器模块:变分自编码器用于数据的重构,其自身的损失函数用输入和输出的一范数距离定义

解读顶会ICDE’21论文:利用DAEMON算法解决多维时序异常检测问题

注意。GAN结构1,2中的判别器损失函数都只涉及到判别器本身,在训练的时候,可以直接用(1),(3)进行训练,而生成器的损失函数和变分自编码器的损失函数同时涉及到一个公共的模块,即变分自编码器本身,因此,在训练自编码器网络时,实际上要同时训练三个损失函数,具体的方法为,令三个损失函数的加权和为变分自编码器的损失函数,即

解读顶会ICDE’21论文:利用DAEMON算法解决多维时序异常检测问题

在线下训练时,依次针对公式(1),(3),(6)进行训练。

D. 在线检测过程

在线数据W_{x_t}Wxt??输入到检测器后,得到重构W‘_{x_t}Wxt?′?,之后把被检测点x_txt?和被检测点的重构x‘_txt′?做比较以求取异常得分,即

解读顶会ICDE’21论文:利用DAEMON算法解决多维时序异常检测问题

E. 根因分析

从公式(7)中可以看出,异常得分实际上是由每一个维度的误差所加和得出的,因此,在根因定位的时候,直接从S_{x_t}^jSxt?j?中找出最大的kk个得分对应的指标既可视为根因可能出现的位置。

4. 实验

4.1 环境设定

在仿真中,作者对比了四个常用且公开的时序异常检测数据集,即SMD, SMAP, MSL, SWaT数据集。下面是各个数据集的具体指标。

解读顶会ICDE’21论文:利用DAEMON算法解决多维时序异常检测问题

作者在仿真中对比的指标为precision, recall以及F1-score。

在对比算法方面,作者对比了8种现有的算法,其中VAE算法是DAEMON去掉GAN结构后的结构,目的是为了测试GAN约束的有效性。为了体现本文GAN结构的有效性以及创新型,作者还对比了另外两种利用GAN结构的异常检测算法GANomaly以及BeatGAN。其次,OmniAnomaly是业界著名AIOps团队,北大的裴丹教授团队发表在KDD上的异常检测算法。

下表是作者公布的参数设置

解读顶会ICDE’21论文:利用DAEMON算法解决多维时序异常检测问题

4.2 检测结果

仿真对比结果如下表所示

解读顶会ICDE’21论文:利用DAEMON算法解决多维时序异常检测问题

可以看到,在四个公开数据集上,DAEMON都能达到SOTA的效果。

4.3 时间消耗

同时,从训练时间和检测时间来看,DAEMON算法也能在现有算法中达到中上的水平

解读顶会ICDE’21论文:利用DAEMON算法解决多维时序异常检测问题

图.2 训练检测时间对比

4.4 根因定位

最后,作者对比了根因定位的准确性,DAEMON也能在对比算法中达到SOTA的性能

5. 应用

本算法已经被集成在华为云时序存储与分析组件GaussDB for Influx中,用于监控指标的异常检测与根因定位。

解读顶会ICDE’21论文:利用DAEMON算法解决多维时序异常检测问题

图.4 DAEMON应用场景

6. 总结

在论文中,作者针对多维时序异常检测问题提出了基于变分自编码器以及GAN的DAEMON算法,经过测试,DAEMON算法可以在公开数据集上达到SOTA的性能,并且也能达到SOTA的根因定位能力。其次,DAEMON的训练,检测时间效率也能在现有算法中达到中上水平。

华为云数据库创新lab官网:https://www.huaweicloud.com/lab/clouddb/home.html

 

点击关注,第一时间了解华为云新鲜技术~

解读顶会ICDE’21论文:利用DAEMON算法解决多维时序异常检测问题

上一篇:oppo手机连接appium失败,无法连接成功问题


下一篇:安卓系统源码添加自己的可执行文件到system/bin目录