1.一种面向云环境下大规模多元时间序列数据异常检测方法,其特征在于,包括如下步骤:
(1)离线模块训练多元时间序列异常检测模型:将检测系统收集的少部分有标签数据和大部分无标签数据作为离线训练的数据集,对数据进行预处理,经预处理后的数据用于训练多元时间序列异常检测模型;在模型训练中,首先通过长短期记忆网络(LSTM:Long Short‑Term Memory)学习多元时间序列的依赖关系,然后将输入的多元时间序列通过变分自编码器(VAE:Variational Auto‑Encoder)来降维映射到随机变量Z空间并获取隐藏变量,再次经分类器获取数据标签与从随机变量Z空间先验分布中抽取的随机变量z进行拼接,最后拼接得到的数据经解码器后重建输入序列;其中,多元时间序列异常检测模型的参数训练目标是让改进的损失函数最大化,并在其收敛时停止训练;
(2)在线模块计算重建概率分数判断实体状态:在线监测的数据通过离线训练模型计(t) (t
算重建概率能判断t时刻输入的监控值x 是否正常,采用长度为w的多元子时间序列x‑w+1:t) (t‑w+1:t)作为输入数据来重建 由于是在x 的分布参数μ、σ和π上重建出 而非窗口本身,则可以使用概率来表示异常分数,其中t表示多元时间序列的监控时间;在线模块对在线检测采集的数据进行预处理,预处理后的数据经与离线模块相同的变分自编码器处理,然后使用多元时间序列异常检测模型得到的参数计算随机变量Z空间的先验对角高斯分布的参数,将从分类器获取的数据标签与从随机变量Z空间先验分布中抽取的随机变量z进行拼接,最后将拼接得到的数据用于重建;在线模块计算所有点的重概率分数,并根据窗口内最后一点的概率分数与阈值进行判断实体状态。
2.如权利要求1所述的面向云环境下大规模多元时间序列数据异常检测方法,其特征在于,所述步骤(1)具体包括:
(1.1)数据的预处理:首先将形如式(1)所示的训练数据进行Z‑Normalization标准化处理,使其每个指标都符合标准正态分布;用滑动窗口将x划分为子序列,移动步长为1个单位,并选择序列的最佳窗口长度,定义窗口的标签由这个窗(t) M
口内是否有异常数据决定;其中,N为多元时间序列x与数据标签yl的监控时间;x ∈R 是一个取值范围为R的M维的向量,M表示监控的指标数;yl表示数据的标签,0表示正常,1表示异常,若为NULL表示无标签数据;经过预处理后,得到形如 长度为w的子时间序列和相应的窗口标签,输入的训练数据可以包含异常数据;
(1.2)编码降维并获取隐藏状态:通过编码器将多元子时间序列降维映射到随机变量Z空间,将Z空间上的分布pθ(Z)约束为多元正态分布N(0,I),随机变量Z空间的先验分布qφ(Z2
|X)为对角高斯分布N(μ,σI);在编码过程中用LSTM的门控机制改善原生VAE的前馈神经网(t)
络,将预处理后的数据经LSTM‑Encoder进行编码,当输入t时刻监控值x 时,使用LSTM结合t‑1时刻的隐藏状态来获取t时刻更深层次的表达;然后,使用批标准化(Batch Norm:Batch Normalization)对LSTM编码获取的隐藏状态进行处理,使训练数据与在线数据编码获得的隐藏状态有相同的分布,保障训练数据得到的模型能够用于在线数据,并且使其分布更均匀,增加模型收敛速度,再使用如式(2)的tanh激活函数对每个数据点的特征进行非线性变换,得到最终的编码状态;
(1.3)训练分类器:为了提高重建的精确度,在解码时引入标签数据,设计了一个名为qφ(y|x)的分类网络Classifier,由线性层和tanh激活层、Softmax层组成,输出是一个概率向量,即预测的数据标签 如果输入数据带有标签,则不需要通过分类网络进行训练,直接将标签yl与抽取的随机变量z进行拼接,即(z,yl),如果输入数据x是无标签的,则要经过分类网络对标签进行预测,然后将预测的标签 与抽取的随机变量z进行拼接得到 之后再用于解码器进行重建;在分类过程中,将y视为一个未知变量,而qφ(y|x)可近似为Cat(πφ(x)),即qφ(y|x)=Cat(πφ(x)),服从级联多项分布,而πφ(x)的计算由带参数 的神经网络定义;
因为采用少数标签数据带动大部分无标签数据训练分类器,因此在训练分类器时考虑两种情况优化训练目标函数,即优化训练证据下界(ELBO:Evidence Lower Bound)损失函数;
(1.4)解码重建输入序列:将获得的(z,yl)或者 输入LSTM‑Decoder进行解码,得到隐藏状态 经过线性层处理可以将隐藏状态转为输入状态,得到重建的 然后更新参数。
3.如权利要求2所述的面向云环境下大规模多元时间序列数据异常检测方法,其特征在于,在所述步骤(1.3)中:
第一种情况是针对有标签的数据,改进的ELBO如式(3):(t)
其中,at=0,t∈{1,2,…,w}表示t时刻监控值x 异常,否则at=1, 表示x中正常点的比例;pθ(z)和pθ(y)的贡献可与k的乘积计算得到,而qφ(z|x,y)仅是(x,y)到z的映射;
第二种情况是对于无标签输入数据,则无标签数据的证据下界可由公式(4)表示:此时消减异常点带来的干扰的方法仍可用,则能够同时满足上面两种情况的ELBO可表示为:
在此时的ELBO中,标签预测分布qφ(y|x)只与无标签的 相关,为了让分类器能够在有标签情况下学习,则在目标函数中添加一个分类损失,扩展的ELBO如式(6):其中超参数λ用来平衡使用直接的标签数据和预测的标签数据,使用这个目标函数,可以正确评估带有标签和未带标签的数据,最后使用梯度下降方法来更新编码网络和解码网络中的参数。
4.如权利要求1或2所述的面向云环境下大规模多元时间序列数据异常检测方法,其特征在于,所述步骤(2)中对在线模块监控采集的数据使用离线模块训练的异常检测模型对实体进行检测,包括:
(2.1)计算重建概率:首先在线读取数据;然后,对读取的数据经与离线模块相同的预处理,对每一个滑动窗口的多元时间序列通过编码器获得隐藏状态;然后,计算随机变量Z空间的先验对角高斯分布的参数,从先验对角高斯分布抽取的随机变量z;最后,将随机变量z与预测标签拼接的数据用于重建 并通过重建的 计算重建概率;
(2.2)通过重建概率分数判断实体状态:用重建概率 作为异常检测器,
(t)
由于重建概率是负数,便用Sigmoid转化到[0,1]的范围,则在t时刻的重建分数r 可‑x (t)
表示为 其中f(x)=1/(1+e );若r 越高,表示重建的效果越(t)
好,x 越有可能判定为正常,根据设定的阈值来决定实体的状态。