摘要:针对时间序列离群点检测问题,提出了基于CNN-AutoEncoder和集成学习的CAE-ENSEMBLE深度神经网络算法,并通过大量的实验证明CAE-ENSEMBLE算法能有效提高时间序列离群点检测的准确度与效率。

本文分享自华为云社区《VLDB'22 CAE-ENSEMBLE论文解读》,作者:云数据库创新Lab。

导读

本文(Unsupervised Time Series Outlier Detection with Diversity-Driven Convolutional Ensembles)是由华为云数据库创新Lab联合丹麦Aalborg University与电子科技大学发表在顶会VLDB’22的文章。该文章针对时间序列离群点检测问题,提出了基于CNN-AutoEncoder和集成学习的CAE-ENSEMBLE深度神经网络算法,并通过大量的实验证明CAE-ENSEMBLE算法能有效提高时间序列离群点检测的准确度与效率。VLDB是CCF推荐的A类国际学术会议,是数据库和数据挖掘领域顶级学术会议之一。

1. 摘要

随着交通、医疗和金融等方面的全面数字化,大量的传感器被布置在我们生活的环境中,产生了各种各样的时间序列数据,随即催生出大量新的应用。本文研究时间序列的离群点检测问题,尽管过去有很多相关的研究,现有的离群点检测方法在算法的准确性与效率方面还是存在不足。本文针对这些问题提出了相应的解决方法,主要贡献如下:

  • 提出了CAE-ENSEMBLE算法,本算法包括基于CNN的自编码器和多样性驱动的集成学习方法,其中基于CNN的自编码器用于对时间序列的时间依赖进行高效建模,多样性驱动的集成学习方法进一步提升了算法的准确性。
  • 本文提出了一种无监督的超参数选择方法,减少了对昂贵标签数据的依赖。
  • CAE-ENSEMBLE算法的表现在真实的时间序列数据集上击败了现有的方法。

2. 背景

时间序列离群点检测 给定一个长度为CC的时间序列\mathcal{T}=<s_1, s_2, ..., s_C>T=<s1​,s2​,...,sC​>,即在第tt时刻的观测值为s_tst​。 离群点检测的目标在于给每个观测值s_tst​计算一个离群点分数\mathcal{OS}(s_t)OS(st​),这个离群点分数越大,这个观测值越可能是离群点。比如可以根据领域知识预先设定一个阈值\epsilonϵ,那么如果\mathcal{OS}(s_t)>\epsilonOS(st​)>ϵ, s_tst​就被认为是离群点。

由于自动编码器属于无监督模型,且对时间序列数据具有强大的学习能力,本文采用自动编码器作为基本模型,用于时间序列离群点检测。具体来说,我们首先将原始时间序列\mathcal{T}T输入到编码器中进行表示学习,然后将学习到的表示输入到解码器中进行复原,得到重建的时间序列\hat{\mathcal{T}}T^,最后计算重建差异(reconstruction error),即\mathcal{T}T与\hat{\mathcal{T}}T^之间的差异,作为离群点分数。

如下图中时刻3的观测值的重建差异很大,它就很有可能是一个离群点。

自动编码器 自动编码器由一个编码器(Encoder)和解码器(Decoder)组成,给定输入X = [x_1, x_2, ..., x_C]X=[x1​,x2​,...,xC​],则相对应的自动编码器输出为\hat{X} = [\hat{x}_1, \hat{x}_2, ..., \hat{x}_C]X^=[x^1​,x^2​,...,x^C​],用于离群点检测的自动编码器目标函数为:

其中\theta_{AE}θAE​代表自动编码器的参数。我们将重建损失RE定义为||x_i - \hat{x}_i||^2∣∣xi​−x^i​∣∣2,若重建损失RE超过设定好的阈值\epsilonϵ,则代表这个点为离群点。

本文提及了6种编码器:普通自动编码器AE(由全连接层组成)、基于RNN的自动编码器RAE、基于CNN的自动编码器、集成的普通自动编码器AE-Ensemble、集成的基于RNN的自动编码器RAE-Ensemble、集成的基于CNN的自动编码器CAE-Ensemble。这六种编码器在建模时间依赖、效率和多样性方面的区别如下图所示。

3. CAE-ENSEMBLE算法设计

CAE-ENSEMBLE算法设计如下图所示,包含数据预处理、集成的CAE模型和无监督超参选择三部分,我们将从这三部分分别介绍本模型。

A. 数据预处理

数据预处理的目的在于将原始的时间序列数据处理为时间序列窗口数据,并用于模型训练和测试。防止减少不同特征对最后重构损失RE的影响,我们首先将原始数据进行标准化,公式如下:

​其中\muμ与\sigmaσ分别是训练集中观测值xx的均值和标准差。

将数据标准化后,设定滑动窗口大小为ww,然后对当前的时间序列观测数据进行滑动窗口,若原始时间序列为\mathcal{T}=<s_1, s_2, ..., s_C>T=<s1​,s2​,...,sC​>,则第一个窗口为<s_1, s_2, ..., s_w><s1​,s2​,...,sw​>,第二个窗口为<s_2, s_3, ..., s_{w+1}><s2​,s3​,...,sw+1​>。

B. 集成的CAE模型CAE-ENSEMBLE

在本节中,首先,我们将介绍如何用基于CNN的自动编码器对时间序列数据进行建模,然后介绍多样性驱动的集成方法构建CAE-ENSEMBLE模型。

(1). 基于CNN的自动编码器(Convolutional Sequence-to-Sequence Autoencoder CAE)

本文采用基于CNN的自动编码器CAE作为集成学习的基础模型,并对时间序列进行建模,CAE结合了卷积神经网络CNN与Seq2Seq模型,结构如下图所示。首先,我们将一个滑动窗口的时间序列数据输入到由一维卷积组成的编码器中学习数据的时间依赖,然后将同样的数据和编码器学到的隐藏表示一起输入到由一维卷积组成的解码器中进行特征学习,最后利用注意力机制组合编码器和解码器学习到的特征,并用于重构时间序列。

在数据输入阶段,我们首先对原始滑动窗口数据进行特征嵌入,包含位置与观测嵌入两种方法,具体实现如下图所示。

在编码阶段,编码器采用堆叠的卷积层学习时间序列的时序特征,下图给出了一个由三层卷积网络组成的编码器示例。

解码器与编码器类似,但存在轻微的不同,我们利用padding的方式确保在tt时刻的输入不晚于tt,下图给出了一个由三层卷积网络组成的解码器示例。

然后,利用注意力机制学习局部的时间依赖,注意力机制公式如下。

最终,对解码器最后一层网络生成的隐藏特征,利用全连接层进行重构,公式如下:

其中,D^{(L+1)}D(L+1)代表解码器最后一层学习到的隐藏特征。

(2). 多样性驱动的集成方法(Diversity-driven Ensembles)

为了解决现有方法准确度低和训练成本高的问题,我们将CAE作为基础模型,提出了一个新颖的多样性驱动的集成方法CAE-ENSEMBLE,如下图所示。与传统方法不同的是,我们一个一个的生成基础模型,而不是采取分别生成的方式。同时,我们还设计了一个用于保证模型多样性的目标函数,防止模型过于相似,以提高准确度。同时,我们在训练模型时,将一部分前一个模型的参数迁移到当前训练的基本模型中,这个操作可以显著地减少训练时间,提升效率。

目标函数 CAE-ENSEMBLE目标函数包含两部分:重构损失\mathcal{J}_{f_m}Jfm​​和模型的多样度损失\mathcal{K}_{f_m}Kfm​​,公式如下。

离群点分数计算 为了防止过拟合,我们采用多个模型计算出来的离群点分数\mathcal{OS}(x_t)OS(xt​)的中位数作为最终的离群点分数。

其中MM代表基础模型的个数。

C. 无监督超参选择

本文有三个重要的超参:滑动窗口大小ww,参数转移比例\betaβ,平衡参数\lambdaλ,由于我们的方法是无监督的,首先,我们将划分无标签的训练集和验证集,然后我们为这三个参数设定一个范围,然后利用随机搜索,通过最小化重构损失确定一个最优的超参组合,,其中利用重构损失可以使得我们的算法不需要标签,达到无监督的作用。同时,在寻找某个参数的最优值的过程中,我们会将另外两个参数固定在默认值。具体算法如下图所示。

4. 实验

本文选择了五个常见的公开数据集ECG、SMD、MSL、SMAP、WADI,并选取了10个baseline与本文提出的CAE-ENSEMBEL算法比较。根据上述的无监督超参选择方法,对不同数据集设定的超参设置如下。

实验结果 我们在五个数据集上分别做了对比实验,用Precision、Recall、F1、PR和ROC作为评价手段,总体的精度结果如下图,可以发现CAE-Ensemble的结果在大部分情况下优于baselines。

我们还在ECG与SMAP两个数据集上对对离群点的比例KK做了敏感度分析,发现在ECG数据上,K选5效果最好,而在SMAP数据上,K选12效果最优。

我们对模型的四个部分分别进行了消融实验,从实验结果中可以看出每个模块对于我们的任务都有一定的贡献。

同时,我们去除了模型的多样性部分,并与完整的模型进行对比,发现CAE-Ensemble模型在多样性方面远远超过去除多样性的模型。

最后我们还对比了不同模型的训练时间,结果如下图,可以看出我们的模型在提升精度的同时,也提升了算法的效率。

5. 总结

本文针对时间序列的离群点检测问题,提出了基于CNN-AutoEncoder和集成学习的CAE-ENSEMBLE算法,通过大量的实验测试,证明了CAE-ENSEMBLE算法表现比现有的无监督方法优异,并能提高离群点检测的精度和效率。

华为云数据库创新lab官网:云数据库创新Lab-主页-华为云

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

顶会VLDB‘22论文解读:CAE-ENSEMBLE算法相关推荐

  1. 顶会CIKM‘21论文解读:基于图神经网络的人类行为轨迹恢复模型

    摘要:本文是由华为云数据库创新Lab联合电子科技大学数据与智能实验室发表在顶会CIKM'21的文章,该文章提出首个克服人类移动轨迹数据中普遍存在的多层次周期性.周期偏移现象以及数据稀疏问题的轨迹恢复模 ...

  2. 前沿 | VLDB 2019论文解读:阿里巴巴大规模数据库智能参数优化的创新与实践

    一年一度的数据库领域顶级会议VLDB 2019于美国当地时间8月26日-8月30日在洛杉矶召开.在本届大会上,阿里云数据库产品团队多篇论文入选Research Track和Industrial Tra ...

  3. 论文解读|算子分裂算法中的安德森加速法

    作者:陈宇文,赵田田,胡明杰,史铭伟 编者按 本文考虑用I型安德森加速算法 (type-I Anderson acceleration) 来求解一般的非光滑不动点问题.对于非扩张的不动点映射(non- ...

  4. ORB_SLAM2 原理、论文解读、代码流程

    ORB_SLAM2 原理+论文解读+代码流程 算法原理 Tracking LocalMapping LoopClosing 代码流程 文件的调用关系 重要变量的数据结构 Tracking流程 Loca ...

  5. VLDB‘22 HiEngine极致RTO论文解读

    摘要:<Index Checkpoints for Instant Recovery in In-Memory Database Systems>是由华为云数据库创新Lab一作发表在数据库 ...

  6. 解读ICDE‘22论文:基于鲁棒和可解释自编码器的无监督时间序列离群点检测算法

    摘要:本文提出了两个用于无监督的具备可解释性和鲁棒性时间序列离群点检测的自动编码器框架. 本文分享自华为云社区<解读ICDE'22论文:基于鲁棒和可解释自编码器的无监督时间序列离群点检测算法&g ...

  7. Zilliz 论文入选数据库顶会 VLDB‘22

    近日,Zilliz 技术团队最新数据库研究成果再获国际认可.面向向量数据管理而设计的云原生数据库系统 Milvus 2.0 论文<Manu: A Cloud Native Vector Data ...

  8. CVPR 2017 全部及部分论文解读集锦

    转发链接:http://mp.weixin.qq.com/sbiz=MzI5MDUyMDIxNA==&mid=2247484464&idx=1&sn=b852980edd194 ...

  9. YOLOv7来临:论文解读附代码解析

    前言: 是一份关于YOLOv7的论文解读,首发于[GiantPandaCV]公众号,写的不是很好,望大佬们包涵! 2022年7月,YOLOv7来临, 论文链接:https://arxiv.org/ab ...

最新文章

  1. R语言:再谈REmap包
  2. 动态DNS——本质上是IP变化,将任意变换的IP地址绑定给一个固定的二级域名。不管这个线路的IP地址怎样变化,因特网用户还是可以使用这个固定的域名 这样看的话,p2p可以用哇...
  3. IHttpHandler的妙用(2):防盗链!我的资源只有我的用户才能下载
  4. stm32机器学习_STM32机器学习开发实战
  5. java源码 1.8_Java源码下载和阅读(JDK1.8/Java 11)
  6. linux shell 变量 管道,linux下shell,变量,管道,重定向等基础知识及技巧
  7. android复选按钮,Android的复选框的详细开发案例分析
  8. Java高新技术 枚举
  9. hashmultimap java_【Java 学习笔记】 HashMultimap(guava)
  10. MediaStreamAudioSourceNode
  11. SqlLite在Net中的使用
  12. 删除none 的images报错 image has dependent child images 解决办法
  13. 简单记录 Part1.3
  14. 斐波那契数列(Java递归)
  15. 美国专利分类体系 USPC 检索
  16. 偶尔也需要强烈的孤独
  17. 关于Big-O表示法
  18. 一分钟实现动态模糊效果
  19. 拥抱组件化开发,手淘项目内部架构分享
  20. keyshot怎么批量渲染_如何提高KeyShot的输出渲染速度

热门文章

  1. JavaScript_Object.assign(目标对象,源对象1,源对象2,...)
  2. 牛客网 [编程题]餐馆
  3. Bootstrap 警告框插件Alert
  4. mysql oracle 锁机制_Mysql锁机制
  5. 苹果x屏幕出现一条绿线_部分用户反映苹果 iPhone 12 屏幕出现划痕 - iPhone 12
  6. dll domodal运行时异常_软件运行异常时的多种排查思路与方法
  7. datagridview 筛选_【Excel】如何用通配符快速筛选到所需信息
  8. 简单粗暴地理解js原型链--js面向对象编程
  9. Element表单验证(2)
  10. iOS常用的存储方式介绍