在数据输入阶段,我们首先对原始滑动窗口数据进行特征嵌入,包含位置与观测嵌入两种方法,具体实现如下图所示。
本文针对时间序列的离群点检测问题,提出了基于 CNN-AutoEncoder 和集成学习的 CAE-ENSEMBLE 算法,通过大量的实验测试,证明了 CAE-ENSEMBLE 算法表现比现有的无监督方法优异,并能提高离群点检测的精度和效率。
其中★★■◆★,D^{(L+1)}D(L+1)代表解码器最后一层学习到的隐藏特征。
由于自动编码器属于无监督模型,且对时间序列数据具有强大的学习能力,本文采用自动编码器作为基本模型,用于时间序列离群点检测。具体来说,我们首先将原始时间序列\mathcal{T}T 输入到编码器中进行表示学习,然后将学习到的表示输入到解码器中进行复原,得到重建的时间序列\hat{\mathcal{T}}T^,最后计算重建差异(reconstruction error)◆★,即\mathcal{T}T 与\hat{\mathcal{T}}T^之间的差异,作为离群点分数。
最终,对解码器最后一层网络生成的隐藏特征,利用全连接层进行重构★★★★★,公式如下:
解码器与编码器类似,但存在轻微的不同■■◆,我们利用 padding 的方式确保在 tt时刻的输入不晚于 tt◆★,下图给出了一个由三层卷积网络组成的解码器示例★★◆★★◆。
在编码阶段,编码器采用堆叠的卷积层学习时间序列的时序特征,下图给出了一个由三层卷积网络组成的编码器示例。
本文采用基于 CNN 的自动编码器 CAE 作为集成学习的基础模型,并对时间序列进行建模,CAE 结合了卷积神经网络 CNN 与 Seq2Seq 模型■★★◆◆,结构如下图所示。首先,我们将一个滑动窗口的时间序列数据输入到由一维卷积组成的编码器中学习数据的时间依赖,然后将同样的数据和编码器学到的隐藏表示一起输入到由一维卷积组成的解码器中进行特征学习★■◆◆,最后利用注意力机制组合编码器和解码器学习到的特征,并用于重构时间序列◆★★■。
离群点分数计算为了防止过拟合,我们采用多个模型计算出来的离群点分数\mathcal{OS}(x_t)OS(xt)的中位数作为最终的离群点分数■★★。
随着交通、医疗和金融等方面的全面数字化,大量的传感器被布置在我们生活的环境中★★,产生了各种各样的时间序列数据,随即催生出大量新的应用■★◆■。本文研究时间序列的离群点检测问题,尽管过去有很多相关的研究,现有的离群点检测方法在算法的准确性与效率方面还是存在不足。本文针对这些问题提出了相应的解决方法★◆,主要贡献如下◆◆◆■★:
为了解决现有方法准确度低和训练成本高的问题,我们将 CAE 作为基础模型◆■◆,提出了一个新颖的多样性驱动的集成方法 CAE-ENSEMBLE,如下图所示。与传统方法不同的是,我们一个一个的生成基础模型★★,而不是采取分别生成的方式。同时★★◆,我们还设计了一个用于保证模型多样性的目标函数,防止模型过于相似,以提高准确度◆■■★★◆。同时,我们在训练模型时◆■★★★,将一部分前一个模型的参数迁移到当前训练的基本模型中■◆★■◆,这个操作可以显著地减少训练时间,提升效率。
本文分享自华为云社区《VLDB22 CAE-ENSEMBLE论文解读》,作者◆◆■:云数据库创新 Lab◆■。
我们还在 ECG 与 SMAP 两个数据集上对对离群点的比例 KK做了敏感度分析,发现在 ECG 数据上■★★★■◆,K 选 5 效果最好◆★◆,而在 SMAP 数据上◆■★■■★,K 选 12 效果最优。
本文选择了五个常见的公开数据集 ECG、SMD■■、MSL、SMAP、WADI◆◆■■,并选取了 10 个 baseline 与本文提出的 CAE-ENSEMBEL 算法比较★◆。根据上述的无监督超参选择方法,对不同数据集设定的超参设置如下。
在本节中,首先,我们将介绍如何用基于 CNN 的自动编码器对时间序列数据进行建模,然后介绍多样性驱动的集成方法构建 CAE-ENSEMBLE 模型★◆★◆★■。
我们对模型的四个部分分别进行了消融实验,从实验结果中可以看出每个模块对于我们的任务都有一定的贡献◆★◆■。
摘要■◆:针对时间序列离群点检测问题,提出了基于 CNN-AutoEncoder 和集成学习的 CAE-ENSEMBLE 深度神经网络算法,并通过大量的实验证明 CAE-ENSEMBLE 算法能有效提高时间序列离群点检测的准确度与效率。
CAE-ENSEMBLE 算法的表现在真实的时间序列数据集上击败了现有的方法。
数据预处理的目的在于将原始的时间序列数据处理为时间序列窗口数据,并用于模型训练和测试■■★◆。防止减少不同特征对最后重构损失 RE 的影响■◆,我们首先将原始数据进行标准化◆◆,公式如下:
华为云开发者社区◆◆,提供全面深入的云计算前景分析■★◆、丰富的技术干货、程序样例★■★◆★,分享华为云前沿资讯动态,方便开发者快速成长与发展◆★★◆,欢迎提问、互动,多方位了解云计算! 传送门★◆■:
本文提及了 6 种编码器:普通自动编码器 AE(由全连接层组成)、基于 RNN 的自动编码器 RAE、基于 CNN 的自动编码器◆★★、集成的普通自动编码器 AE-Ensemble◆◆■、集成的基于 RNN 的自动编码器 RAE-Ensemble、集成的基于 CNN 的自动编码器 CAE-Ensemble。这六种编码器在建模时间依赖、效率和多样性方面的区别如下图所示。
同时,我们去除了模型的多样性部分◆■■,并与完整的模型进行对比,发现 CAE-Ensemble 模型在多样性方面远远超过去除多样性的模型★★■◆。
本文有三个重要的超参:滑动窗口大小 ww,参数转移比例\betaβ,平衡参数\lambdaλ◆◆,由于我们的方法是无监督的,首先,我们将划分无标签的训练集和验证集,然后我们为这三个参数设定一个范围■◆◆◆,然后利用随机搜索,通过最小化重构损失确定一个最优的超参组合■■◆■★,■◆,其中利用重构损失可以使得我们的算法不需要标签■■★,达到无监督的作用。同时■■★,在寻找某个参数的最优值的过程中,我们会将另外两个参数固定在默认值。具体算法如下图所示★◆★。
提出了 CAE-ENSEMBLE 算法,本算法包括基于 CNN 的自编码器和多样性驱动的集成学习方法,其中基于 CNN 的自编码器用于对时间序列的时间依赖进行高效建模,多样性驱动的集成学习方法进一步提升了算法的准确性◆■★◆。
实验结果我们在五个数据集上分别做了对比实验,用 Precision、Recall★◆★、F1◆■★★、PR 和 ROC 作为评价手段◆◆,总体的精度结果如下图◆■■★◆,可以发现 CAE-Ensemble 的结果在大部分情况下优于 baselines。
CAE-ENSEMBLE 算法设计如下图所示,包含数据预处理■■◆★、集成的 CAE 模型和无监督超参选择三部分★★,我们将从这三部分分别介绍本模型。
最后我们还对比了不同模型的训练时间■◆◆■◆,结果如下图,可以看出我们的模型在提升精度的同时◆★■★◆,也提升了算法的效率。