顶会VLDB‘22论文解读:CAE-ENSEMBLE算法
摘要:针对时间序列离群点检测问题,提出了基于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官网:https://www.huaweicloud.com/lab/clouddb/home.html
顶会VLDB‘22论文解读:CAE-ENSEMBLE算法的更多相关文章
- VLDB'22 HiEngine极致RTO论文解读
摘要:<Index Checkpoints for Instant Recovery in In-Memory Database Systems>是由华为云数据库创新Lab一作发表在数据库 ...
- 解读ICDE'22论文:基于鲁棒和可解释自编码器的无监督时间序列离群点检测算法
摘要:本文提出了两个用于无监督的具备可解释性和鲁棒性时间序列离群点检测的自动编码器框架. 本文分享自华为云社区<解读ICDE'22论文:基于鲁棒和可解释自编码器的无监督时间序列离群点检测算法&g ...
- Tsunami: A Learned Multi-dimensional Index for Correlated Data and Skewed Workloads 论文解读(VLDB 2021)
Tsunami: A Learned Multi-dimensional Index for Correlated Data and Skewed Workloads 论文解读(VLDB 2021) ...
- Fauce:Fast and Accurate Deep Ensembles with Uncertainty for Cardinality Estimation 论文解读(VLDB 2021)
Fauce:Fast and Accurate Deep Ensembles with Uncertainty for Cardinality Estimation 论文解读(VLDB 2021) 本 ...
- zz扔掉anchor!真正的CenterNet——Objects as Points论文解读
首发于深度学习那些事 已关注写文章 扔掉anchor!真正的CenterNet——Objects as Points论文解读 OLDPAN 不明觉厉的人工智障程序员 关注他 JustDoIT 等 ...
- NIPS2018最佳论文解读:Neural Ordinary Differential Equations
NIPS2018最佳论文解读:Neural Ordinary Differential Equations 雷锋网2019-01-10 23:32 雷锋网 AI 科技评论按,不久前,NeurI ...
- CVPR2020行人重识别算法论文解读
CVPR2020行人重识别算法论文解读 Cross-modalityPersonre-identificationwithShared-SpecificFeatureTransfer 具有特定共享特征变换 ...
- CVPR2020论文解读:手绘草图卷积网络语义分割
CVPR2020论文解读:手绘草图卷积网络语义分割 Sketch GCN: Semantic Sketch Segmentation with Graph Convolutional Networks ...
- CVPR2020论文解读:3D Object Detection三维目标检测
CVPR2020论文解读:3D Object Detection三维目标检测 PV-RCNN:Point-Voxel Feature Se tAbstraction for 3D Object Det ...
- 可视化反投射:坍塌尺寸的概率恢复:ICCV9论文解读
可视化反投射:坍塌尺寸的概率恢复:ICCV9论文解读 Visual Deprojection: Probabilistic Recovery of Collapsed Dimensions 论文链接: ...
随机推荐
- kubeadm 工具部署 kubernetes v1.16.2
环境准备 3个节点,以下基于 Centos 7.6 系统, 内核版本:3.10.0-957.12.2.e17.x86_64 HOST NODE CPU MEM 192.168.1.111 master ...
- ELK7.x环境部署
1.Elasticsearch (ES)配置: 部署配置ES,需要配置JDK环境,JDK是Java语言的软件开发工具包: 下载JAVA jdk源码包: wget https://mirrors.yan ...
- 采药(lgP1048)
emmm 01 背包模板... 设 f[i] 表示背包容积为 i 时所得的最大价值. 则状态转移方程为 f[j] = f[j - w[i]] + c[i] . #include<bits/std ...
- Go语言基准测试(benchmark)三部曲之三:提高篇
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 -<Go语言基准测试(benchmar ...
- 文心一言 VS 讯飞星火 VS chatgpt (128)-- 算法导论11.1 3题
三.用go语言,试说明如何实现一个直接寻址表,表中各元素的关键字不必都不相同,且各元素可以有卫星数据.所有三种字典操作(INSERT.DELETE和SEARCH)的运行时间应为O(1)(不要忘记 DE ...
- 接口开放太麻烦?试试阿里云API网关吧
前言 我在多方合作时,系统间的交互是怎么做的?这篇文章中写过一些多方合作时接口的调用规则和例子,然而,接口开放所涉及的安全.权限.监控.流量控制等问题,可不是简简单单就可以解决的,这一般需要专业的开放 ...
- 按既定顺序创建目标数组 (leetcode181周赛T1)
给你两个整数数组 nums 和 index.你需要按照以下规则创建目标数组: 目标数组 target 最初为空. 按从左到右的顺序依次读取 nums[i] 和 index[i],在 target 数组 ...
- 关联规则挖掘:Apriori算法的深度探讨
在本文中,我们深入探讨了Apriori算法的理论基础.核心概念及其在实际问题中的应用.文章不仅全面解析了算法的工作机制,还通过Python代码段展示了具体的实战应用.此外,我们还针对算法在大数据环境下 ...
- Centos 7在线安装JDK1.8+Tomcat+MySQL8.0+Nginx
一.安装JDK 注: 以下命令环境在Xshell中进行. 温馨提示: 在线安装方式需要有网速的前提,有的软件下载需要大量时间. 1.查询出系统自带的OpenJDK及版本 rpm -qa | grep ...
- 通过 VS Code 优雅地编辑 Pod 内的代码(非 NodePort)
目录 1. 概述 2. NodePort 方式 3. Ingress 方式 4. 救命稻草 5. 其他 1. 概述 今天聊点啥呢,话说,你有没有想过怎样用 VS Code 连上 K8s 集群内的某个 ...