计算机论文哪里有?本文只是从acc,precision,recall,F1这几个性能指标来评估TimeTransformerE模型性能,关于模型最终从数据集学习到怎样的异常模式是不清楚的(模型内部依据什么判断时间点是否为异常)。这涉及TimeTransformerE模型的可解释性或可视化,也是未来努力的方向。
第1章 绪论
1.3 研究现状
本小节主要介绍一下KPI异常检测的研究现状和实际工程的解决办法。 首先是基于规则的方法:如果运维工程师对业务足够了解并且对异常也有足够的清晰认识,那么运维工程师完全可以自定义一系列规则,也就是构建一个专家系统。这显然不切实际,在大部分情形下运维人员没有一个明确的规则。
无论是KPI还是时间序列异常检测,学术界和工业界主要将目光聚焦于异常检测的无监督学习任务上。分析认为,就如同之前1.2节讨论的,异常数据鲜少发生,所以要构建一个有效的,可以供模型学习的训练资料集,需要耗费大量的时间和人力,所以在现实中几乎找不到打上标签的有监督异常检测数据集。而相对而言,无监督异常检测数据的收集就十分简单。但是训练无监督模型,一个最大的问题就不可避免,无监督模型学习到的异常模式往往不是真实所期望的,这在4.1节实验结果也印证了此结论。
在无监督学习中,首先介绍一下两阶段方法,见4.1.1节。顾名思义,此方法需要构建两个模型:时间序列预测模型和异常检测模型。预测模型需要根据前面时间点的KPI值预测当前时间点的KPI值。异常检测模型则根据这个预测值与当前得到的真实值判断是否发生异常。在机器学习之前,人们一般采用AR/MA/ARMA/ARIMA等这些传统时间序列算法构建预测模型。而在机器学习和深度学习火起来之后,预测模型基本上采用线性回归、多项式回归、岭回归[4]、RNN,LSTM[5]等方法构建。而对于异常检测模型,以前一般使用静态阈值,动态阈值或统计法等检测异常。现在基本上均采用Robust covariance、One Class SVM、Isolation Forest、Local Outlier Factor等无监督异常检测算法构建。
第3章 TimeTransformerE训练
3.1 优化器
本小节是TimeTransformerE训练的核心部分。TimeTransformerE模型使用Learning Rate Warm Up结合Adam[23]构造参数优化器。
Stochastic Gradient Descent(随机梯度下降)是神经网络最基础的参数优化算法。模型随机选择一个初始的参数𝜃0,计算Gradient,在计算完Gradient后,模型往Gradient的反方向更新参数,得到新的参数𝜃1,再计算Gradient,再往Gradient的反方向更新参数,以此类推。
随机梯度下降法不能保证参数一定会走到全局最优值。神经网络的损失函数是高维的,而且往往崎岖不平,所以会存在Saddle Point(鞍点)和Local Minima Point(局部最小点)。随机梯度下降算法容易陷入其中。
因此引进Momentum(动量),它借鉴物理学中Momentum的概念。将损失函数想象成一个斜坡(如图3-1),参数是一个球。把球从斜坡上滚下来,如果是随机梯度下降,它走到Local Minima Point和Saddle Point就停住。而在物理学中,一个球如果从高处滚下来,当滚到Local Minima Point和Saddle Point,只要有惯性,因为惯性的关系它还是会继续往右走。如果动量够大,球甚至可以翻过右边的小坡继续往右走(跳过Local Minima Point和Saddle Point)。
将随机梯度下降与Momentum结合在一起,Gradient Descent变成图3-2。每一次模型在更新参数时,不是只往梯度的反方向去移动,而是梯度的反方向加上前一步移动的方向,两者加起来的结果去调整参数。
第4章 实验与结果分析
4.1 基于无监督的时间序列异常检测
本节探讨无监督异常检测方法的性能。1.3节提到,时间序列无监督异常大概有2种方法:两阶段方法(基于预测)和基于特征工程的异常检测。这里,又添加直接使用原始数据进行异常检测的实验以便与前2种进行对比。
4.1.1 基于预测的无监督异常检测
1.3和2.3.2小节提到可以先构建一个预测模型,也就是关于时间序列的回归模型。这个回归模型数据集均来自于原始数据集的𝛸。回归模型训练完成后在每个时间戳输出一个期望值,随后无监督异常检测模型将回归模型输出的期望值和当前的真实值作为输入,训练并判断是否发生异常。共实验7种回归算法以构建时间序列预测模型,见表4-1。Linear Regression,Ridge Regression,Lasso,Elastic-Net均属于线性回归模型。Linear Regression是最原始的线性回归模型,Ridge Regression,Lasso和Elastic-Net是Linear Regression的改良版本。Ridge Regression在Linear Regression的基础上对回归系数施加L2正则化,Lasso在Linear Regression的基础上对回归系数施加L1正则化,Elastic-Net在Linear Regression的基础上同时对回归系数施加了L1与L2正则化。之所以要对回归系数施加正则化,目的是防止回归模型过拟合。Polynomial Regression同样是Linear Regression的扩展,但它的输入和输出不是线性关系,而是多项式映射。这里使用的Polynomial Regression同样对回归系数施加了L1与L2正则化。
4.2 基于有监督的时间序列异常检测
本节利用标签信息检验机器学习中各种有监督异常检测算法的性能。与4.1节类似分别使用原始时间序列和特征工程数据。每种有监督算法又尝试不同的类别不平衡策略检验这些方法是否有效。
4.2.1 基于原始数据的有监督异常检测
使用5种经典的有监督算法,KNN(K近邻)、SVM(支持向量机)、LogisticRegression(逻辑回归)、GaussianNB(高斯朴素贝叶斯)、RandomForest(随机森林)来作为异常检测算法,见表4-5和图4-4。GaussianNB是朴素贝叶斯的一种,适用于连续型数据。
从表4-5和图4-4看到,在利用标签信息后,异常检测模型的性能大大提升。但是有些模型,SVM和LogisticRegression,即使在利用标签信息后,也没有学习到异常模式。它们只是将所有的样本归类为正常样本。值得注意的是KNN和RandomForest模型,它们在这些模型中表现得最好。但在实际应用中更倾向于使用RandomForest。因为KNN在预测时需要对训练集中的每一个样本查询,在数据特别大时,需要耗费大量时间。
第5章 总结与展望
Transformer是当下非常流行的神经网络模型。不同于Transformer已经广泛应用在各个研究领域,Time2Vec是一种非常新颖的Time Embedding方法。本文证明在时间序列异常检测任务上,Time2Vec与Transformer相结合可以发挥出卓越的性能。TimeTransformerE将预测和异常检测模型合并在一起构成端对端系统。针对时间序列异常检测中的类别不平衡和模型训练难题,Focal Loss和2个损失函数可以给模型带来较大的性能提升。
受限于本文使用的庞大数据集与硬件环境,TimeTransformerE模型依旧有非常多可供扩展延申的方向。TimeTransformerE在本文训练集上跑完1000个Epoch约计耗费3天,如何以不牺牲模型性能为代价同时提高训练速度是未来本文研究方向之一。TimeTransformerE可以接受不定长时间序列作为输入,并非一定要让输入时间序列等长,所以接下来探讨TimeTransformerE以不定长时间序列作为输入是否可以表现出与本文一样同等的性能。
本文只是从acc,precision,recall,F1这几个性能指标来评估TimeTransformerE模型性能,关于模型最终从数据集学习到怎样的异常模式是不清楚的(模型内部依据什么判断时间点是否为异常)。这涉及TimeTransformerE模型的可解释性或可视化,也是未来努力的方向。
最后在运维领域,AIOPs已是大势所趋。但AIOPs还没有像计算机视觉或自然语言处理等研究领域那样,有公认的评测基准及诸多数据集以供研究者评估各模型的性能。本文希望能够有越来越多的学者来深入研究智能运维这个新兴领域并贡献出一份心力。
参考文献(略)