基于无监督域自适应的小样本时间序列异常检测
A B S T R A C T
时间序列数据的异常检测在流应用程序、计算服务和云平台的系统管理中至关重要。
目前大多数的小样本学习(FSL)方法都是在大量的时间序列样本中发现非常低比例的异常样本。
此外,由于标记数据需要付出巨大的努力,大多数时间序列数据集缺乏数据标签,因此需要无监督域自适应(UDA)方法。
因此,时间序列异常检测是一个结合了上述两个困难的问题,称为FS-UDA。
为了解决这一问题,我们提出了一种具有无监督域自适应的少镜头时间序列异常检测框架(FS-ADAPT),
该框架由两个模块组成:一个是用于解决无监督目标信息约束的对抗三重网络,
另一个是用于解决在线场景中少量异常样本限制的增量自适应模块。
使用增强数据和未标记的目标样本对抗性训练决斗三重网络来学习分类器。
增量自适应模块充分利用关键异常样本和最新正常样本,使分类器保持最新状态。
在五个真实世界的时间序列数据集上进行了广泛的实验,以评估FS-ADAPT,它优于最先进的基于FSL和UDA的时间序列分类模型,以及它们的幼稚组合。
1. Introduction
从阿里云(Alibaba cloud)、Microsoft Azure和Amazon Web Services等云平台监控的时间序列数据可能表示不同的系统统计信息,例如CPU使用情况、工作负载和性能计数器。
有效的分析可以提取隐藏在时间序列数据中的有价值的信息,如系统异常。
异常检测在各种实际应用中也很重要,例如,金融欺诈检测、制造问题识别和医疗诊断中的疾病检测。被监测的时间序列数据中的异常模式与数据集中大多数数据的模式不一致,称为新颖性、离群值或异常,可能是由自然变化、测量错误或采集故障等多种因素引起的[50,19]。
尽管异常事件可能由各种原因引起,但与所有监测样本的庞大数量相比,异常样本是罕见的。
由于数据集的不平衡,使得时间序列异常检测变得困难。此外,标记系统监控数据比标记图像数据更具挑战性[17]。
例如,花卉与树木图片的分类标签可以通过手动数据收集轻松获得。相比之下,即使是专家也很难通过扫描各种原始工作负载监控器、性能计数器、温度监控器等来识别系统异常。由于系统监控数据标记的复杂性,目标域一般只能提供未标记的数据,从而使异常检测变得更加复杂。
为了处理不平衡数据集,提出了few-shot 学习(few-shot learning, FSL)方法,该方法训练的分类器可以很好地泛化到看不见的目标异常样本,即使使用来自源域和目标域的少量异常样本进行训练[9]。
然而,除了few-shot time-series classification (FS-TSC)[33,21]外,现有的FSL异常检测方法[49]大多是针对图像数据而非时间序列数据提出的。
在广泛的FS-TSC任务上训练的模型可以通过学习到的参数来利用它们的知识,并在有限的标记样本数量下迅速适应新的任务[21]。
然而,FS-TSC模型假设来自目标域的标记样本是可用的。然而,时间序列异常检测在大多数情况下只能访问未标记的目标数据。
为了降低标记时间序列系统监控数据的成本,设计了无监督域自适应(UDA)方法,该方法使用来自一个或多个源域的标记数据和来自目标域的未标记数据训练分类器[7]。
虽然现有的UDA方法可以处理图像数据,但时间序列数据受到的关注要少得多。
此外,这些UDA方法主要通过对抗性训练来管理域转移,这需要大量标记的训练数据,也就是说,它们假设源域提供足够的标记样本[41]。
因此,尽管UDA方法可以利用目标域的未标记数据,但它们在时间序列异常检测方面泛化得很差,只能在每个源域提供有限数量的训练数据。
由于现有的FSL或UDA方法都无法全面解决FS-UDA时间序列异常检测问题(如图1所示),因此需要一种新的解决方案来同时应对这两大挑战。第一个挑战是每个源域的训练样本太少,这是FSL关注的核心问题。第二个挑战是未标记的训练目标数据,这是UDA解决的主要困难。尽管这两个挑战都是由于缺乏数据标签造成的,但它们需要不同的解决方案。对于来自源域的有限数量的标记样本,解决方案必须解决由于训练样本不足而无法训练深度模型的问题。对于未标记的目标样本,解决方案必须能够执行无监督域转移。结合FSL和UDA方法似乎是一种解决方案。然而,UDA的目标是对齐源数据和目标数据分布;但FSL的目的是将目标域的类分布与任何源域的类分布区分开来,这意味着源域和目标域的分布不一致可能会损害FSL的性能。因此,现有的FSL和UDA方法的简单组合不能很好地工作。
图1,时间序列系统监控数据的异常检测示例,例如云平台。𝑆、𝑇𝑎分别表示𝑖-th源云平台和目标云平台。彩色方块表示正常、异常或未标记的时间序列样本。FSL假设很少有标记样本可以从𝑇𝑎访问,而UDA假设所有𝑆中都有足够的标记数据。然而,这两种假设在时间序列系统异常检测中都不成立,这是一个FS-UDA问题。这是一个困境,结合了FSL的主要挑战(每个源域的样本很少)和UDA的主要困难(来自目标域的未标记样本)。
本文提出了一种基于无监督域自适应的few-shot 时间序列异常检测框架(FSADAPT)。
它由两个模块组成,一个是用于解决时间序列数据上的UDA的决斗三重网络,另一个是用于解决在线场景下的FSL的增量适应模块。该方法通过有效地利用不同持续时间的增广时间序列数据来学习分类器,并彻底识别时间序列数据的领域相似度和类相似度。
在这里,我们引入三重网络,因为它对不平衡数据集更具鲁棒性,特别是对于少数镜头场景[8]。这两个三重网络共享并对抗性地更新嵌入网络,从而得到一个域分类器和一个类分类器。
类分类器可以检测到目标域中不可见的异常样本。增量自适应方法利用每个新样本的特征维护两个样本集,动态更新类分类器。
这种设计可以充分利用大量正常样本的新鲜度和罕见异常样本的临界性,有效地处理数据不平衡问题。
在公共和实际时间序列数据集上进行了全面的实验,证明了FS-ADAPT在解决FS-UDA问题方面的有效性。本文的贡献总结如下:
•我们制定了FS-UDA问题,并提出了一个名为FS-ADAPT的新框架来成功解决它。我们首次同时解决了时间序列异常检测的两个挑战,即每个源域中有限的标记数据和目标域中未标记的数据。
•我们提出了一种新的三重网络,通过充分识别增强时间序列数据的类相似度和域相似度来学习域不变特征表示。
•我们提出了一种增量适应方法,充分利用巨大的正常样本和罕见的异常样本,以保持分类器的最新状态。
•我们在公共和现实世界的时间序列数据集上进行了全面的实验,以显示FS-ADAPT框架的有效性。
2. Related work
本文简要介绍了基于few-shot学习、无监督域自适应、混合方法等技术的时间序列异常检测的相关工作。
2.1. Few-shot learning (FSL)
FSL可以从少量数据中快速泛化,对新任务进行推理。大多数基于fsl的异常检测方法都是在计算机视觉领域提出的,以克服少镜头异常的挑战[49]。ProtoNet采用情景训练程序来适应Few-shot学习[29]。与模型无关的元学习(MAML)[5]学习了一种表示,这种表示很容易适应新数据,标签少,梯度下降步骤少。MatchingNet[38]通过将少量标记和未标记的样本映射到它们的标签,避免了微调以适应新的类类型的要求。RelationNet[32]通过对查询图片与少数目标类样本之间的关系打分来检测目标类样本。虽然这些典型的模型可以检测图像异常,但由于数据结构的差异,它们不能应用于时间序列数据。
少射时间序列分类(few -shot time-series classification, FS-TSC)是一种与时间序列相关的任务,它需要训练具有许多不同FS-TSC任务的模型,使其能够快速推广到标记样本较少的新任务[33,21]。
虽然一般时间序列分类(TSC)的研究已经提出了几种方法,但针对TSC的“few -shot”问题的研究有限。
FS1[21]通过在多个FS-TSC任务上训练残差网络(ResNet)[40],解决了单变量TSC (UTSC)的few-shot学习问题,从而使获得的ResNet在新的FS-TSC任务上表现良好。
双原型shapelet网络(Dual prototypical shapelet networks, DPSN)[33]也可以在特定任务上解决FS-TSC,但其重点是设计一个端到端可解释性模型,而不是解决FS-UDA问题。
综上所述,现有的FS-TSC模型可以处理少量的训练样本,但不能处理未标记的目标数据,这是解决时间序列系统异常检测中的FS-UDA问题所必需的。虽然一些方法如[35]可以解决TSC任务中的无监督问题,但它们不能解决FS-TSC任务中的无监督问题,即FS-UDA问题,因为FS-TSC比TSC有更多的约束,因为训练数据集来自多个域,只包含少数异常样本。
2.2. Unsupervised domain adaptation (UDA)
UDA将从具有大量标记训练样本的源领域学习到的知识转移到仅具有未标记数据的目标领域[47,46]。已经提出了许多用于检测图像数据异常的UDA方法,例如,域不变特征学习器,它通常将自编码器与生成对抗网络(GAN)相结合。
这些方法使用对抗性训练从多个领域中提取领域不变知识[7]。
然而,对抗性训练过程需要大量的训练数据。因此,少量射击场景对传统UDA方法的性能提出了挑战。
此外,很少有研究引入时间序列适应。具体来说,变分递归对抗深度域自适应(VRADA)[24]和域对抗递归神经网络(DA-RNN)[37]将rnn作为特征提取器进行研究,这提出了由于梯度反向传播而抑制长期依赖的挑战。
时间序列数据的卷积深度域自适应模型(CoDATS)[41],处理来自多个源的时间序列数据,每个源使用域分类器和类分类器共享的特征提取器,与我们的工作接近。
然而,我们的框架和CoDATS有三个主要区别。(1)不同的设计目标:与CoDATS不同,CoDATS关注的是有足够标记的源数据和未标记的目标数据的领域适应,而我们关注的是有限数量的标记源数据。
(2)不同的网络结构:与CoDATS不同,我们使用三元网络作为分类器,而不是多个密集层。三元组结构对于三元组增广时间序列数据的训练效率更高。
(3)在线vs离线:与CoDATS相反,CoDATS专门处理离线训练,我们通过维护两个样例集来解决新样本中的数据不平衡,从而实现分类器的在线训练。
2.3. FSL+ UDA
对于图像数据而不是时间序列数据,有一些研究解决了将少镜头和域自适应设置相结合的问题。例如,少射域自适应Few-shot domain adaptation (FSDA)[20]就是一个与我们的FS-UDA问题相关的问题。
FSDA假设目标域可以访问有限数量的标记样本,而FS-UDA的本质不同在于目标域只提供未标记的数据。
一次性无监督域自适应将信息从一个源域转换到目标域,源域提供一个带标签的样本,目标域提供未标记的数据。它与我们的不同之处在于FS-UDA需要从多个源域到目标域的信息转换。
正如我们所知,从多个源域中提取相同的域不变特征比从单个源域中提取相同的域不变特征更具挑战性[6,18]。因此,FS-UDA比先前的问题更具挑战性。此外,据我们所知,这是FSL和UDA在在线环境中进行时间序列异常检测的第一次交叉工作。
2.4. Neither FSL nor UDA
对于时间序列异常检测,与解决有限样本标签和知识转移问题的FSL和UDA方法不同,一些方法侧重于分析非平稳数据流[36]、评估指标[10]、极端值异常和特定场景[47]。
由于研究的重点不同,这些研究需要不同的技术。
例如,在非平稳数据流中检测异常的一些方法主要利用数据窗或概念漂移自适应进行单类学习[36],以解决是否应该利用输入样本来更新检测模型的问题。这些方法考虑了不断变化的环境,并在不断变化的数据中识别异常。一些研究集中在评价时间序列异常检测效果的度量上。虽然度量涉及检测结果的四个特征,即存在性、大小、位置和基数,但由于难以为位置和基数定义合适的度量函数,大多数结果都是以存在性和大小来度量的[10]。虽然这些方法解决了时间序列异常检测中的各种问题,但它们并没有解决FS-UDA问题,即有限的样本标签和域自适应。
另一种与时间相关的异常检测研究是针对具有动态拓扑和/或节点属性演化的动态网络[25,42]。这些研究需要不同的技术,如概率方法、矩阵分解方法和基于距离的方法。概率方法[23]表征动态网络中的正常模式,并根据模式偏差识别异常。矩阵分解方法[45]依赖于动态网络的低秩特征,通常表示为重叠、非重叠或分层社区结构。异常是可检测的,因为它违反了低秩标准。基于距离的方法使用时间进化的度量,如PageRank、节点嵌入和其他动态网络架构的手工特征,并根据度量的变化率检测异常。虽然这些动态网络也与时间相关,但它们不能解决FS-UDA问题,因为它们不能构建具有时间序列数据的动态网络。光谱传播图网络(Spectral propagation graph network, SPGN)[43]通过从时间序列数据中提取逐谱关系构建图网络,然后利用光谱信息传播标签信息对数据进行分类。SPGN可以处理FS-TSC,但不能处理未标记的目标数据,这需要解决时间序列系统异常检测中的FS-UDA问题。
3. FS-UDA problem formulation
UDA方法重用来自一个或多个源域的标记数据,为不同但相关的目标域创建分类器。
形式上,和
分别是输入空间和离散标签空间。一个训练数据集
由来自
源域的数据对
组成,其中包含目标域中的一些
,但没有
。其中,
是一个随机变量
的实现,而标签
是一个随机变量
的实现。
另外,我们也有一个测试数据集,其中包含了一个变量
,其中的变量
是一个随机变量
的实现。
一般情况下,和
之间存在协变量移位,即概率分布
与概率分布
不同。
在此设置下,UDA的目标是利用
学习一个预测函数
,使其在
上表现良好。
时间序列异常检测(例如云平台)可能是典型的UDA问题。
例如,云平台1和云平台2可能存在标记的传感器数据(正常数据或异常数据),而云平台3只能访问未标记的数据。在云平台1和云平台2的数据上训练的异常检测器(分类器)可能在云平台3上表现不佳,因为域之间存在差异。
然而,我们可以提取领域不变特征,并使用它们来训练分类器,该分类器将很好地推广到云平台3。
在这项工作中,我们对具有少量异常样本和每个源域有限数量的正常样本以及目标域中未标记样本的UDA问题版本特别感兴趣,因为这是现实世界系统中最常见的情况。
从形式上看,训练数据集 通常包含来自
源域的数量有限的正常样本。源域的少量时间序列异常样本作为集合
,从
源域的少量时间序列异常样本作为集合
、 以及大量来自目标域的未标记时间序列样本作为
集合、其中,每个源域只提供 D𝑎𝑛𝑜𝑚𝑎𝑙𝑦 中的
个异常样本和 D𝑛𝑜𝑟𝑚𝑎𝑙 中的
个正常样本。一般来说,
。
然后,我们的目标是用训练一个分类器,并进一步评估其在
上的泛化能力。
到目前为止,这个问题被称为FS-UDA,它代表无监督域自适应,每个源域的已知异常样本很少。
FS-UDA设置对应于上述示例,即云平台的时间序列异常检测,其中云平台1和云平台2中标记的传感器数据由少量异常样本(通常为1到10个异常样本)和有限数量的正常样本组成,而云平台3中的传感器数据未标记。
为了学习预测函数,大多数UDA方法使用对抗学习,它训练一个能够区分具有源和目标概率分布的样本的域鉴别器,即
和
。
在这种情况下,鉴别器是一个二元分类器。
对抗性学习试图通过更新预测函数来误导鉴别器。换句话说,在将目标样本映射到特征空间时,预测函数
会误导鉴别器。
UDA必须正确对齐概率分布才能表现良好。这只有在足够大的数据集表示概率分布时才有可能。因此,在FS-UDA问题中,当我们假设的样本有限,而
的样本更少时,UDA方法就处于不利地位。
对于时间序列的样本,即:和
,它们可以是单变量的,也可以是多变量的。
单变量,其中包含
有序实数。
是多元的,其中包含
单变量时间序列(𝐻特性)与
。
例如,云平台上的这些特性可能是CPU利用率、TCP重传率和平均负载,每一个都是实际数据的时间序列。
请注意,每个样本有两个标签:类标签和域标签
。例如,多变量样本
表示来自
域的异常。
表示目标域,
为正值表示源域
。
分别表示样本的类别标签“异常”和“正常”。
4. FS-ADAPT framework
本节介绍图2和算法1所示的无监督域自适应(FSADAPT)的Few-Shot时间序列异常检测框架。它的主要组成部分是对抗三重网络和增量自适应方法。对抗三重网络通过对共享特征提取器的两个三重网络进行对抗性训练,从增强数据中学习分类模型。增量自适应方法利用大量的正常样本和罕见的(但关键的)异常样本,在线增量更新学习到的分类器。
图2所示。FS-ADAPT框架由两个主要模块组成:决斗三重网络和增量自适应。
首先将时间序列数据D𝑠扩充为4元组。特征提取器(N𝑒𝑡)从4元组中收集域和类信息,得到𝑇𝑢𝑝𝑙𝑒1和𝑇𝑢𝑝𝑙𝑒2,可以帮助类分类器生成𝑐𝑙𝑎𝑠𝑠_𝑙𝑎𝑏𝑒𝑙(正常/异常标签)。
当一个在𝑡时刻等待分类的样本(𝑡)被输入到增量适应模块时,训练好的Net将被增量更新,并且类分类器在标记样本D𝑋𝑛(D𝑋𝑛∈D𝑠)的帮助下输出变量(𝑡)的标签。
4.1. Dueling triplet network
为了充分利用所有样本的标签信息(类标签和领域标签),我们提出了如图3所示的决斗三重网络,该网络可以识别来自多个领域的不同标签样本的领域相似度和类相似度。
决斗三联体网络由两个三联体网络组成,一个识别类相似度以提取类特征,另一个识别域相似度以提取域特征。
我们在这里介绍三元网络,因为它对不平衡数据集更健壮,特别是对于少数镜头场景[8]。
这两个网络共享一个特征提取器,并以对抗的方式进行训练。
对这两个三元网络进行训练后,得到了一个域分类器和一个类分类器。类分类器可用于检测离线场景中的异常样本。如文献[48]所述**,这里的三元组网络处理由绘制锚点样本、与锚点样本共享实体的正样本和负样本组成的三元组数据**。具体来说,一个三元组网络处,而另一个则处理
,其中锚定样本
表示来自𝑛-th源域的异常(+);
表示除𝑛-th源域外,可以是任何域的任何类样本;
的类和域标签与(1)相同;其中,
表示任意源域的正态样本(-)。
图3所示。决斗三重网络的结构。增强的时间序列数据被设置为4元组:,其中锚定样本
表示来自𝑛-th源域的异常(+);除𝑛-th源域外,
可以是任何域的任何类样本;
的类和域标签与
相同;其中,
表示任意源域的正态样本(-)。
两个三元组网络共享并对抗性地训练特征提取器。
表示
比较对之间的距离。领域分类器和类分类器是通过识别样本的领域和类相似度得到的。
为了充分利用少数标记样本的标签信息,同时满足两个同时训练的三元组网络的输入格式,我们将训练数据重组为一个4元组。给定一个锚点样本,即来自
源域的一个异常(+),我们可以从𝑛-th源域随机选择另一个异常(+),从任意源域随机选择一个正常样本(+)。这三个样本可以任意地与其他域的任何样本(即
)集成,形成一个4元组。
虽然重组后的4元组可以缓解有限标记数据对训练决斗三元组网络的影响,但仍不能满足FS-UDA设置下训练深度网络的数据量要求。
因此,我们在将扩增的数据重新组织为4元组之前,在每个域中扩增时间序列数据。
第4.2节展示了如何创建额外的异常和正常样本,以及如何重新组织更多的训练元组。
值得注意的是,训练两个分类器检测时间序列异常样本的灵感来自于CoDATS[41]。然而,CoDATS侧重于在有足够标记的源数据和未标记的目标数据的情况下进行离线域自适应,不适合解决训练样本有限的FS-UDA问题。
两个三重网络(即三重网络 1 和三重网络 2)的结构相同,都有一个输入层、一个特征提取器𝑁𝑒𝑡(𝑥)、一个计算距离度量的附加层和一个输出层。
两个输出层分别被视为类分类器和域分类器。类分类器输出的类标签(正常或异常)决定了 4 元组中的锚样本和另一个输入样本是否具有相同的类标签。
域分类器输出域标签(来自同一域或不同域),以确定 4 元组中的锚样本和另一个输入样本是否共享相同的域标签。
特征提取器是一个嵌入网络,由一个全卷积网络(FCN)[40]、一个全局平均池化层、一个128维单元的密集(全连接)层和一个嵌入层组成。最后的输出结果
来自softmax层。在计算成本方面,FCN可与最先进的集成时间序列分类模型相媲美。卷积层是FCN的基础,其次是批处理归一化层[11]和ReLU激活层。FCN中的三个卷积层使用相同的填充。三个卷积层分别使用128个过滤器、256个过滤器和128个过滤器。密集层之后是具有256维单元的嵌入层(完全连接层)。
密集层之后是嵌入层(全连接层),包含 256 维单元。𝑁𝑒𝑡(𝑥)与递归神经网络(RNN)一样,可以处理不同长度的时间序列数据。
RNN按顺序处理可变长度的时间序列数据,而𝑁𝑒𝑡(𝑥)使用全局平均池化层处理它。这一特性使我们能够在数据增强方法中截断时间序列样本到任何长度,而不受决斗三重网络的数据处理要求的约束。
三重对决网络的训练包括训练特征提取器𝑁𝑒𝑡(𝑥)、类分类器和域分类器。
𝑁𝑒𝑡(𝑥)根据训练元组中样本携带的标签类型设计了两个相互竞争的目标,以对抗方式更新。
使用训练元组中同时带有类和域标签的所有样本,𝑁𝑒𝑡(𝑥)和类分类器一起更新,与𝑁𝑒𝑡(𝑥)和领域分类器一样,以确保锚样本𝑥能被类和领域分类器正确分类。
利用训练元组中所有带有域标签的样本,更新𝑁𝑒𝑡(𝑥),使域分类器无法确定锚样本𝑥(对抗成分)的域标签。
在𝑁𝑒𝑡(𝑥)和域分类器之间添加梯度反转层(GRL)[7],以执行对抗步骤。为了实现这一结果,GRL 在更新权重时反转了反向传播中的梯度。
具体来说,决斗三重网络的训练过程形式化如下。
我们三个一组网络1参数和输入包含
,
三重态网络2参数和输入包含
,
𝑁𝑒𝑡(𝑥)参数,标记样本
从源域
,标记目标数据
,
所有的样品在两个和
训练元组表示为4-tuple组织形式,以及每个4元组中锚点样本与其他输入样本之间的标签相似度和域相似度的两个三重态损失
其中表示边距值,
和
表示
距离函数参数将在
时更新,这是所需的目标。
在两个三元组损失的情况下,目标是学习一个分类器来识别哪个样本与锚点变量共享相同的标签。
此外,在距离函数中加入SoftMax函数,使输出为概率分布。因此,当有三个样本,例如,
,距离函数措施𝐿2嵌入式之间的距离的比值表示𝑥和一个输入,即分子上,和两个𝐿2𝑥嵌入式表征之间的距离和其他两个输入,
式中表示
距离。对于类分类器,我们将锚定样本的类标签设置为与异常样本的类标签
相同,而不是与正常样本的类标签
相同,即
。
同理,三重态损失L𝐷为:
式中的公式与式(2)和式(3)相似,不同之处是将其中的𝐿2距离函数替换为Manhattan距离函数3。
对于域分类器,我们设置锚样本 𝑥 的域标签与 相同,而不是 𝑥(¬𝑛) 的域标签,即
。
那么,两个相互竞争的目标是:
式(5)更新了参数,分别为:、
、
,使得域分类器和类分类器分别预测了错误的源域标签和正确的类标签,式(6)修改了域分类器,使其正确预测了域标签。
利用GRL,可以将式(5)和式(6)合并为一步。GRL表示为,具有正向和反向传播行为
,其中𝐈为单位矩阵。则决斗三重网络的优化为:
在训练中一个固定的时间是固定的。
训练完决斗三元组网络后,类分类器即训练后的三元组网络1的输出层,可以检测到目标域中的异常样本。
当需要检测来自目标域的未标记样本时,我们将来自所有源域的标记样本(包括异常样本和正常样本)与未标记的目标样本组织在一起,形成以3元组表示的训练元组。
如果检测到这些元组中的任何异常样本与未标记的目标样本相似,则将其标记为异常。
如果检测到这些元组中的所有正常样本与目标样本相似,我们将未标记的目标样本分类为正常样本。
4.2. Data augmentation数据增加
FS-ADAPT的输入由决斗三重网络的输入要求决定,输入是由增广时间序列样本重组的4元组。
因此,在每个源域给定少量异常样本(一般为1 ~ 10个样本)的情况下,我们通过借用其上下文正常样本来生成更多的异常样本,然后将所有异常样本、正常样本和未标记的目标样本重新组织为元组,以增加训练元组的数量。
与以前预测样本标签的数据增强方法相比,该方法不会产生误导性标签(假阳性或假阴性)。
此外,这种类型的增强可以更好地解决数据不平衡问题。在这里,我们将讨论如何创建额外的异常样本和正常样本,以及如何重组更多的训练元组。
如果时间序列样本收集从开始,系统在
处错误,那么我们在
处拥有所有的时间序列实例。
时间序列实例以相同的间隔进行离散测量。不同的时间序列样本可能有不同的实例数。
每个样本或实例有两个标签:类标签和域标签
。
每个原始异常样本与其上下文正常样本组合,然后将组合结果从原始异常样本的最后一个实例中以不同的长度截断,产生许多截断样本,如图4所示。由于包含的实例不同,因此截断的样本也不同,因此成为新样本。这种增强方法的有效性已经在硬件故障检测领域得到了证明[31]。截断后的样本都按照以下规则重新标记:
(1)时间序列样本的类标签与其最后一个实例的类标签相同;
(2)一个时间序列样本的域标签与其所有实例的域标签相同。将中的所有时间序列数据截断为时间序列样本
,然后按照生成异常样本的方式重新标记为标记样本
。
所有来自所有领域的重新标记的样本都被重组为4元组,基于它们的领域和类标签。如第4.1节所述,4元组被定义为,其中锚定样本
表示来自𝑛-th源域的异常
,≥≥𝑛可以是来自
源域以外的任何域的任何类样本,≥≥(𝑛)具有与≥≥的类和域标签,且≥≥表示来自任何源域的正常样本(−)。给定一个锚定样本,我们可以通过穷尽枚举三个样本的组合来形成许多4元组,它们分别满足了定义的
。这些元组减轻了由于每个源域异常样本很少而导致的对抗性域适应的挑战。
更好地解决数据不平衡问题。欠采样方法通常用于解决数据不平衡问题,但可能会丢失关于大多数类(正常)的大量信息(实例)。
我们的重组方法充分利用了每一个标记和未标记的样本,而不丢失信息,是一种更好的缓解数据不平衡程度的方法。
对于包含个少数类样本(异常)和
个多数类样本(正常)的不平衡数据集,不平衡程度为
。
我们根据少数类对(即异常类对)和多数类对(即正常类对)的数量来计算重组后的新不平衡程度,因为决斗三重网络将锚样本和其他三个样本中的一个组成的样本对在4元组中进行对比。重组后的类标签相同的对个数为,其中
分别为少数类和多数类生成的对个数。重组后的类标签与分类不同的对数为
。新的不平衡度为
由于,新的不平衡度的值将在
左右,这意味着我们的数据增强方法可以有效地将原始数据的不平衡程度降低2倍。
此外,我们的决斗三重网络由于其作为对比网络的性质,对不平衡的数据集相对不敏感(对比网络对数据不平衡相对不敏感[16]),这也在5.4节的实验结果中得到了证明。
因此,即使𝐺接近𝐾,限制了数据不平衡的缓解,我们的框架仍然可以很好地执行。
4.3. Incremental adaptation
我们利用训练好的分类器在线检测目标域的异常样本。然而,当离线训练的模型在线应用时,由于训练数据与目标数据的概率分布之间的关系随时间而变化,因此会发生概念漂移[36]。当概念漂移发生时,无论如何努力更新领域自适应模型,性能损失都是不可避免的[26]。
在线异常检测方法[12]如果不考虑概念的转变,可能会产生令人失望的结果。解决概念漂移的一个成功方法是增量学习,它用最新的数据动态地更新训练好的模型。然而,大多数现有的增量学习方法都是基于缓慢或逐渐漂移等假设提出的[44]。
为了减轻异常的概念漂移,提高检测模型的在线性能,提出了一种增量自适应方法,即动态维护两个样本集,并使用这两个样本集中的样本对模型进行增量自适应。此外,我们的增量适应方法没有限制性假设。
增量自适应方法包括五个步骤,如图5所示。给定在时间更新了特征提取器(算子)的类分类器
,在𝑡时间等待分类的样本(𝑡),这五个步骤如下。
(1)构建两个样本集。我们使用特征提取器计算异常样本的嵌入表示,并根据每个异常样本与所有异常样本的平均值
之间的距离**,维护从最短到最长的异常样本排序列表。由于列表中的**
异常样本最接近平均值,因此对于所有异常样本来说都是典型的,因此我们选择它们来构建样例异常集
,时间为。
中异常样本来自于
时刻的源域。随着检测模型的在线运行,可以在目标域中观察到新的异常样本,并逐步将其纳入样例异常集(sample anomaly set)中。各异常样本(𝑡−1)的平均值计算如下
我们还使用特征提取器计算所有域中所有正常样本的嵌入表示,然后根据每个正常样本与所有正常样本的平均
之间的𝐿2 距离,生成一个从最短到最长的正常样本排序列表。同样,在时间 𝑡 - 1 时,选取最高的正常样本来构建示范正常样本集
。.
中所有正态样本的均值计算公式为
基于公式(9)和(10),我们使用到目前为止看到的所有样本逐步更新和
。因此,我们基于两个排序列表更新两个范例集,以便在下一步中选择新数据来创建3元组数据。
(2)以三元组的形式构造输入数据。任何异常样本在
,
,以及任何正常样本
在
可以组织为包含,这是表示为
。请注意,虽然𝑇𝑢𝑝𝑙𝑒1中的每个示例都有一个域标签,但我们忽略了它,因为在本节中我们关心的是类标签而不是域标签。所有包含数据的元组集合
,用于分类𝑥(𝑡)和增量更新𝑁𝑒𝑡(𝑡)()。
(3)对变量进行分类。给定某个元组中的某个异常样本或正常样本,类分类器对其进行分类
并输出𝑐𝑙𝑎𝑠𝑠_𝑙𝑎𝑏𝑒𝑙。
(4)更新两个样本集。如果标记为异常样本,我们更新
与
和步骤(5)。如果𝑥的距离
的距离小于样本的最长距离𝐒(𝑡−1),𝑥(𝑡)将取代这个示例的样本𝐒(𝑡)。随着时间的推移,样本异常集(𝑡)中的样本可能大部分(如果不是全部)被目标域的异常样本所取代。类似地,如果将(𝑡)标记为正常,则我们用(𝑡)更新(𝑡−1)以获得(𝑡),但随后跳过步骤(5)并返回步骤(1)。
(5)更新特征提取器二进制操作。给定在步骤(2)中构建的元组
中的𝑅元组,则增量优化目标为:
在和
参数更新在
时间
和𝑇𝑢𝑝𝑙𝑒𝑟代表𝑟-th元组在𝐓𝐔𝐏(𝑡)。
5. 业绩评估
我们在4个公开的时间序列异常检测数据集和一个真实的云监测数据集上进行了4个实验,包括少射测试、无监督域自适应测试、消融研究和真实数据集评估**。前两个实验比较了FS-ADAPT与最先进的方法处理不同数量的有限训练样本和不同数量的无监督域自适应域**。消融研究评估FS-ADAPT的两个组成部分对最终结果的贡献。最后,FS-ADAPT在真实数据集上的评估证明了我们的框架在真实应用中的有效性。
5.1. 数据集
我们使用五个时间序列数据集,即AWS、Twitter、Artificial、雅虎和阿里巴巴,来评估我们提出的框架。
三个公共时间序列异常检测数据集,即AWS, Twitter和Artificial,选择自Numenta异常基准(NAB)[14],该基准评估实时流应用中的异常检测方法。
雅虎数据集包括四个不同的类,但我们在这项工作中只使用类,因为它的时间序列,每个长度为1500,来自计算服务[34]。
阿里巴巴数据集是我们从阿里云获取的真实的云监控数据集。AWS、Twitter、雅虎和阿里巴巴的数据集来自真实的云平台,而人工数据集是人工生成的,包含各种类型的异常样本。
所有五个数据集都以时间序列的形式给出,每个实例都被标记。从每个数据集中选择6个时间序列特征,列于表1中。为了在所有数据集中设置合适的样本长度𝐻,我们通过改变𝐻∈{15,30,45,60,75,90}来反复更新模型。
因此,选择最优样本长度为异常检测任务提供最佳精度。所有数据集被分割为60%用于训练,20%用于验证,20%用于测试。
表1显示了有关数据集的更多细节。第一列和第二列分别是实例的总数和异常样本的数量。第三列是异常实例的百分比。我们还在最后一列中显示每个数据集的时间序列特征。
5.2. 实验设置
我们使用**ROC曲线下面积(AUC)**来评估时间序列异常检测模型的性能。AUC值为0.5或更低表明性能比随机标签分配差,当训练数据集中存在混杂特征时,可能会使模型偏置,导致性能差[30]。ROC曲线说明了二元分类器的诊断能力,因为其识别阈值在0.01到0.99之间变化,其中步长为0.01。
由于整个训练和测试过程可以从不同的种子(不同的初始权重)开始,并导致不同的AUC,因此我们用5个随机试验重复该过程,并报告所有实验中每个模型的平均AUC得分。
为了确定第4.3节中描述的两个样本集的大小,即,我们利用前128个新数据创建一个预测试,通过改变
中的块大小来重复更新模型。因此,选择合适的块大小,为异常检测任务提供128个新数据的最佳性能。我们将𝑄和掉头的大小设置为相同的值。
在所有的实验中,我们都遵循[8]中对边距值𝑚的典型设置,将其设置为1。我们使用MindSpore[15]和Tensorflow[1]实现FS-ADAPT。Adam[13]被用来训练我们的框架,学习率为0.001。除非特别说明,我们的增量自适应方法的每个模型都使用目标域中第1到第200个实例的数据进行训练,4记为d2001,然后在d400201上进行测试。训练数据和测试数据在第二次迭代中移动400个实例,分别更改为𝐷600 401和𝐷800 601,以此类推。在一次迭代中训练的每个模型都被用作下一次迭代的输入。所有方法的迭代次数被设置为测试数据集中实例数除以所选块大小的商,除非另有说明。
5.3. Few-shot test
我们使用四个数据集:AWS, Twitter, Artificial和Yahoo,并将其中任意三个设置为源域,另一个设置为目标域,即以3-way方式。
为了与FSL技术进行比较,我们遵循[5]中的设置,分别运行1次、5次和10次测试,每次测试中异常样本和正常样本的数量相同,即每个域提供𝑘正常样本和𝑘异常样本的𝑘-shot测试集,并通过重复𝑘-shot测试5次来报告平均AUC。选择五种典型和最先进的FSL方法作为基准。DPSN[33]利用小块距离提取判别特征,进行少镜头时间序列分类。我们使用Adam以0.002的学习率,1𝑒- 5的学习率退化和0.7的动量训练DPSN 1000次。
Few-shot UTSC method -1 (FS1)[21]是一种基于三重损失的元学习方法,用于对少量时间序列数据进行分类。我们采用ResNet架构,𝐿= 4层,𝑚= 165层卷积滤波器,用于FS1的元训练。对于三重态损耗,我们选择。
Wang等[39]使用一种典型的元学习算法MAML来完成单次时间序列分类任务。SPGN[43]从时间序列数据中提取逐谱关系构建图网络,并通过传播带有谱信息的标签信息对数据进行分类。
动态时间翘曲(Dynamic time warping, DTW)[28]用于多变量时间序列分类。我们在训练数据集上使用留一交叉验证确定范围内的最佳扭曲窗口,其中𝐻和𝑤分别表示时间序列长度和窗口长度。DTW-DBA[4]使用DTW生成新的时间序列,然后使用DBA算法合并它们。Bag-of-SFA-Symbols (BOSS)[27]是一种时间序列表示方法。hyperparameters,即𝑤𝑜𝑟𝑑𝐿𝑒𝑛𝑔𝑡ℎ和𝑛𝑜𝑟𝑚𝑎𝑙𝑖𝑧𝑎𝑡𝑖𝑜𝑛,选择使用分析交叉验证整个范围{8、10、12、14、16}和{𝑇𝑟𝑢𝑒,𝐹𝑎𝑙𝑠𝑒},分别,其余hyperparameters使用默认值。为了提取最终分类决策的特征,使用了1NN。我们还测试了没有IA的FS-ADAPT,即没有第4.3节中描述的增量适应(IA)的整个框架,因为没有基线使用增量学习技巧。请注意,我们的FS-ADAPT和FS-ADAPT w/o IA使用未标记的目标域数据,而这五个基线使用标记的目标域数据,例如,在5次测试中,来自目标域的5个正常样本和5个异常样本。
表2显示了比较结果。我们的观察结果如下:
(1)在所有实验中,即使使用标记的目标域数据(即DTW, DTW- dba, BOSS, FS1和DPSN), FS-ADAPT和FSADAPT也始终优于其他方法,这表明我们的框架能够克服有限的时间序列异常样本所带来的困难,即使使用未标记的目标域数据进行训练。以AWS、Twitter、Artificial→Yahoo为例,在10次测试中,FSADAPT w/o IA的AUC分别比DTW、DTW- dba、BOSS、FS1、DPSN的AUC高30.0%、27.3%、24.4%、19.1%、3.71%。
(2)在所有实验中,FS-ADAPT始终优于FS-ADAPT,证明了在在线场景中集成IA的好处。例如,在AWS, Twitter, Artificial→Yahoo上,FS-ADAPT的AUC在5次测试中比FS-ADAPT在没有IA的情况下的AUC高出29.6%。(3) FS-ADAPT在所有实验中的性能都随着训练样本数量的增加,即𝑘的增加而提高,说明更多的训练样本提供了更有效的信息。这种变化趋势也可以在基线的实验中看到。这一观察结果有助于解释为什么有必要增加训练数据。
6. 结论及未来工作
在这项工作中,我们提出了时间序列异常检测的FS-UDA问题,并提出了一个称为FS-ADAPT的新框架来解决它。
FS-ADAPT由两个模块组成,一个是用于求解时间序列数据UDA的决斗三重网络,另一个是用于在线求解FSL的增量适应模块。
决斗三重网络通过有效地对比增广时间序列数据的域相似度和类相似度来学习分类器。
双样本集增量自适应方法可以充分利用大量正常样本的新鲜度和罕见异常样本的临界性,是解决数据不平衡的有效方法。
从四个公共时间序列数据集和一个现实世界的云监测数据集的实验结果来看,FS-ADAPT即使在每个源和未标记的目标样本中使用很少的异常样本进行训练时也能获得最先进的结果,证明了FS-ADAPT在解决FS-UDA方面的有效性。
我们的框架假设训练数据集中所有实例标签的基本真理没有缺失值,因为我们的决斗三重网络是一个监督模型。然而,这种假设在某些应用程序中可能不成立。输入缺失值是一个很有前途的途径。因此,在未来的研究中,我们打算进一步研究各种插值方法对时间序列异常检测的影响。