摘要
云计算技术不仅方便了人们的生活,也让互联网创业变得更加简单,越来越多的服务上云。例如,阿里云承载着支付宝、12306铁路票务等民生服务,其稳定运行、高效、快速的故障排除能力对于企业和用户来说都是至关重要的。在大规模集群中,传统的人工运维费时费力且效率低下,已经无法满足庞大集群的运维需求。大量的监测数据反映了系统的健康状态,如果有异常数据的出现,就意味着系统或者部署的服务出现了某些故障或者异常行为,这些都需要被及时地发现处理以避免积累发生更大的故障,造成重大经济损失。近年来,伴随着很多基于机器学习人工智能技术的成功落地应用,机器学习方法在时序数据异常检测领域也随之兴起,并取得了一系列的成果。 在智能运维领域,由于每台服务器的监测指标(CPU usage,QPS,etc.)之间通常是存在着复杂的空间关联性和时间关联性。同时,由于微服务部署的分布式部署,许多服务器上的时序数据还存在跨服务器的依赖关系。现有的深度异常检测模型存在以下两个不足:(1)仅从其中一个角度去研究时空相关性;(2)针对每台服务器训练一套特有参数。 这两个不足造成了模型的检测效率低下、模型维护成本高、难以实际部署应用等问题。针对上述提及的两个不足和基于对数据的观察分析,本文提出了两个相应的解决方案。 (1)基于预测性编码原理的异常检测模型(LPC-AD)。该模型是基于自编码器和预测性编码原理构造,利用自编码器学习指标间的相关性学习,利用预测器在隐空间显示刻画时序依赖性。在开源的四个公开数据集上和四个最优深度模型做了对比,该模型在训练速度和检测准确率上分别取得了38.2%和18.9%的提升。 (2)基于粗训和微调框架的异常检测模型(Lucky)。该模型通过合理构造正负样例和对比表示学习方法得到合理的时序表示向量,使用 K-means 就可以得到更好的聚类结果。最后只需要针对每个类别微调模型参数即可得到适配的模型参数,不仅仅保留了原始的异常检测准确率,同时还大幅度缩减的模型的训练时间提高了模型拓展性部署问题。