本文分享自华为云社区《【AIOps】一种全新的日志异常检测评估框架:LightAD,相关成果已被软工顶会ICSE 2024录用》,作者: DevAI。

深度学习(DL)虽然在日志异常检测中得到了不少应用,但在实际轻量级运维模型选择中,必须仔细考虑异常检测方法与计算成本的关系。具体来说,尽管深度学习方法在日志异常检测方面取得了出色的性能,但它们通常需要更长的时间来进行日志预处理、模型训练和模型推断,从而阻碍了它们在需要快速部署日志异常检测服务的在线分布式云系统中的采用。本文对现有的基于经典机器学习和深度学习方法的日志异常检测方法进行了实证研究,并提出了一种自动化日志异常检测评估框架LightAD。

1. 日志异常检测介绍

日志是AIOps领域需要处理的常见数据,是程序运行过程中由代码打印出的一些非结构化的文本信息,日志通常由时间戳和文本信息组成。日志实时记录了系统的运行状态,包括正常运行状态和故障发生时的状态。因此通过收集和分析日志,可以快速检测和定位出系统中存在的异常。本文研究了深度学习方法在日志异常检测中与更简单技术相比的优越性,在五个公共的日志异常检测数据集上对轻量级传统机器学习方法(如KNN、SLFN)和深度学习方法(如CNN、NeuralLog)进行了全面的评估。本文的研究结果表明,通过合适的数据处理方式,轻量级机器学习方法能够在时间效率和准确性方面都优于深度学习方法。为了评估深度学习方法的必要性,本文提出了一种自动化的日志异常检测模型评估框架LightAD。LightAD是一种基于贝叶斯优化器的优化训练时间、推断时间和性能得分的评估框架。通过自动化超参数调优,LightAD可以实现在日志异常检测模型之间进行公正的比较,使运维工程师能够针对不同的在线异常检测目标来选择合适的异常检测模型。

2. 对现有方法的全面评估

本文主要选用了当前效果最好的深度学习算法(包括CNN/LogRobust/NeuralLog)与常用的轻量级传统机器学习算法(包括KNN/DT/SLFN)在HDFS,BGL,Thunderbird,Spirit,Liberty等五个公开数据集上进行异常检测准确性的比较,图中展示了这些方法在不同指标上的评估结果。从图中可以看出,从F1-Score得分来看,在五个公开的日志异常检测数据集上,轻量级传统机器学习方法都比深度学习方法取得了更好的效果(黑体标出)。

深度学习方法除了本身拥有更多的参数量外,其使用的数据处理方式通常也比较耗时。例如,CNN方法需要使用日志解析工具对日志进行解析,NeuralLog需要用深度语言模型BERT来对日志进行处理。本文对轻量级传统机器学习方法采用了更高效的日志处理方式。具体而言,本文在处理以日志块来聚合的数据集(如HDFS)时,从每个文本日志消息中提取标记,以空格分隔,并删除包含数字的标记。本文使用每个块的ID将日志消息分组成日志序列,并用事件频率对其进行编码。整个预处理工作流程如下图所示。

对于按消息组织的数据集(如BGL、Thunderbird、Spirit和Liberty),本文使用的异常检测方法更加轻便。下图说明了这种方法,本文首先使用与HDFS数据集相同的预处理方式对日志消息进行标记化处理,唯一的区别是,本文不将标记化的日志消息转换为数值向量,而是通过计算Jaccard距离来衡量日志消息之间的距离。

由下图可以看出,本文所使用的处理方法在五个数据集中都只需要最少的执行时间。相比于基于神经网络的表示方法,本文使用的预处理策略运行速度快4倍到12倍;相比于带语义提取的日志解析方法,则快了13.6倍到19.3倍。

除数据处理时间外,在训练时间和推理时间评估中,深度学习方法的效率也有较大程度差于轻量级传统机器学习方法。如下图所示,在HDFS数据集上,KNN方法具有最少的训练时间(例如,比NeuralLog快3,225倍),而DT方法具有最少的推断时间(例如,比NeuralLog快185倍)。对于其他四个数据集而言,轻量级的机器学习方法在训练和推断阶段也都有着显著的效率优势。例如,对于BGL数据集而言,KNN的训练时间比NeuralLog快1,278倍,KNN的推断时间比NeuralLog快23倍。

3. 全新的日志异常检测评估框架:LightAD

为全面综合评估日志异常检测算法,本文提出了基于贝叶斯优化起的自动化算法优化和评估框架LightAD,LightAD结构如下图所示。本文首先准备了一组简单的基准模型及其初始的超参数空间,对于每个模型,本文会自动化的优化模型的超参数。通过综合考虑三个维度的模型收益打分:(1)准确性,(2)每个日志序列的训练时间,以及(3)每个日志序列的推断时间,最终抉择出模型收益分数最高的异常检测算法。

模型收益的多目标优化公式如下:

下图是在去除重复数据的HDFS数据集上使用LightAD进行异常检测方法优化和评估的结果,最高模型收益的分数由黑色加粗标识。从图中可以看出,LightAD挑选出的模型都是轻量级的机器学习方法。

4. 总结

本文来自华为云PaaS技术创新Lab和香港中文大学(深圳)贺品嘉助理教授团队合作项目成果产出,相关研究成果已被软件工程领域顶会ICSE 2024(CCF A类)正式录用,文章详细内容即将公开,敬请关注。

文章来自:PaaS技术创新Lab,PaaS技术创新Lab隶属于华为云,致力于综合利用软件分析、数据挖掘、机器学习等技术,为软件研发人员提供下一代智能研发工具服务的核心引擎和智慧大脑。我们将聚焦软件工程领域硬核能力,不断构筑研发利器,持续交付高价值商业特性!加入我们,一起开创研发新“境界”!

PaaS技术创新Lab主页链接:https://www.huaweicloud.com/lab/paas/home.html

点击关注,第一时间了解华为云新鲜技术~

一种全新的日志异常检测评估框架:LightAD的更多相关文章

  1. Abnormal Detection(异常检测)和 Supervised Learning(有监督训练)在异常检测上的应用初探

    1. 异常检测 VS 监督学习 0x1:异常检测算法和监督学习算法的对比 总结来讲: . 在异常检测中,异常点是少之又少,大部分是正常样本,异常只是相对小概率事件 . 异常点的特征表现非常不集中,即异 ...

  2. LSTM UEBA异常检测——deeplog里其实提到了,就是多分类LSTM算法,结合LSTM预测误差来检测异常参数

    结合CNN的可以参考:http://fcst.ceaj.org/CN/article/downloadArticleFile.do?attachType=PDF&id=1497 除了行为,其他 ...

  3. 基于变分自编码器(VAE)利用重建概率的异常检测

    本文为博主翻译自:Jinwon的Variational Autoencoder based Anomaly Detection using Reconstruction Probability,如侵立 ...

  4. 异常检测-基于孤立森林算法Isolation-based Anomaly Detection-1-论文学习

    论文http://202.119.32.195/cache/10/03/cs.nju.edu.cn/da2d9bef3c4fd7d2d8c33947231d9708/tkdd11.pdf 1. INT ...

  5. week_9(异常检测)

    Andrew Ng 机器学习笔记 ---By Orangestar Week_9 This week, we will be covering anomaly detection which is w ...

  6. 基于PySpark的网络服务异常检测系统 阶段总结(二)

    在上篇博文中介绍了网络服务异常检测的大概,本篇将详细介绍SVDD和Isolation Forest这两种算法 1. SVDD算法 SVDD的英文全称是Support Vector Data Descr ...

  7. 异常检测LOF

    局部异常因子算法-Local Outlier Factor(LOF)在数据挖掘方面,经常需要在做特征工程和模型训练之前对数据进行清洗,剔除无效数据和异常数据.异常检测也是数据挖掘的一个方向,用于反作弊 ...

  8. 杜伦大学提出GANomaly:无需负例样本实现异常检测

    杜伦大学提出GANomaly:无需负例样本实现异常检测 本期推荐的论文笔记来自 PaperWeekly 社区用户 @TwistedW.在异常检测模块下,如果没有异常(负例样本)来训练模型,应该如何实现 ...

  9. IBM Security AppScan Glass Box:一种全新的漏洞扫描思想

    IBM Security AppScan Glass Box:一种全新的漏洞扫描思想 Glass Box 是 IBM Security AppScan Standard Edition(以下简称 Ap ...

  10. 思科安全:加密流量威胁检测、加密流量威胁和恶意软件检测、识别无线干扰或威胁、Talos 情报源可加强对已知和新型威胁的防御、分布式安全异常检测

    思科DNA竞品比较工具 您的网络能够驱动数字化转型吗? 根据IDC调查,45%的受调研公司计划在未来两年内做好网络数字化的准备.查看数字化网络带来的结果和商业价值. 下载报告 思科 HPE 华为 Ar ...

随机推荐

  1. NOIP2022 题解

    终于有机会补NOIP的题了 T1 考虑枚举 C 与 F 的纵列 考虑预处理出每个点最左边和最下边可以延伸到哪 之后枚举列,然后对行做类似于扫描线的操作,统计有多少可行的 "第一横行" ...

  2. 开源流量检测引擎Dalton安装记录

    几个月之前照着官方文档安装过,一次性就成功,昨天重装了服务器再安装Dalton,怎么都安装不了 一直报错 ERROR: Service 'agent-suricata-current' failed ...

  3. 部署安装maven和mvnd

    前言 maven是常见的java构建工具,优点是稳定可靠,缺点是构建太慢,maven-mvnd是maven的强化版,致力于提高构建速度,默认情况下,mvnd 使用多核CPU并行构建. 常见的java构 ...

  4. 发现了一个可以免费下载jar包的网站,所有jar包都有

    苦苦找不到项目所需要的jar包?发现了一个可以免费下载jar包的网站: https://jar-download.com/ 非常好用. 每个JAR文件都将从官方Maven存储库下载.通过下载所有Mav ...

  5. Vue源码学习(二):<templete>渲染第一步,模板解析

    好家伙, 1.<template>去哪了 在正式内容之前,我们来思考一个问题, 当我们使用vue开发页面时,<tamplete>中的内容是如何变成我们网页中的内容的? 它会经历 ...

  6. VisionPro学习笔记(3)——BeadInspectTool

    如果需要了解其他图像处理的文章,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPractice ...

  7. Llama2-Chinese项目:2.1-Atom-7B预训练

      虽然Llama2的预训练数据相对于第一代LLaMA扩大了一倍,但是中文预训练数据的比例依然非常少,仅占0.13%,这也导致了原始Llama2的中文能力较弱.为了能够提升模型的中文能力,可以采用微调 ...

  8. linux中的sar命令

    linux中的sar命令 sar命令的安装 [root@localhost test]# yum install sysstat 安装成功! sar命令说明 语法格式 sar [ 选项 ] [ < ...

  9. 最快速搭建个人服务器图床siuuuuu

    @ 目录 1.服务器准备 2.docker 安装 (1)通过命令行的方式 (2)宝塔面板上安装 3.开启端口访问 什么是docker 4.docker安装minio 什么是minio 5.配置mini ...

  10. 堆的原理以及实现O(lgn)

    大家好,我是蓝胖子,我一直相信编程是一门实践性的技术,其中算法也不例外,初学者可能往往对它可望而不可及,觉得很难,学了又忘,忘其实是由于没有真正搞懂算法的应用场景,所以我准备出一个系列,囊括我们在日常 ...