CN111930597B - 基于迁移学习的日志异常检测方法 - Google Patents
基于迁移学习的日志异常检测方法 Download PDFInfo
- Publication number
- CN111930597B CN111930597B CN202010813538.XA CN202010813538A CN111930597B CN 111930597 B CN111930597 B CN 111930597B CN 202010813538 A CN202010813538 A CN 202010813538A CN 111930597 B CN111930597 B CN 111930597B
- Authority
- CN
- China
- Prior art keywords
- data
- log
- transfer learning
- input
- model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/216—Parsing using statistical methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Quality & Reliability (AREA)
- Probability & Statistics with Applications (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及网络通信,为能够及时、主动发现服务异常以及时采取应对措施,提高网络中心的稳定性,本发明,基于迁移学习的日志异常检测方法,处理对象为源数据、目标数据:具体包括三部分:1)特征构建部分;形成日志数据的向量序列,作为迁移学习部分的输入;2)迁移学习部分;首先将源数据形成的向量序列输入长短期记忆LSTM网络,对模型参数进行训练;然后将目标数据形成的向量序列输入上一阶段初步训练好参数的模型,并对模型参数进行再次调整3)主动学习部分:迭代地更新数据和模型。本发明主要应用于网络通信日志数据处理场合。
Description
技术领域
本异常检测机制适用于网络中心(数据中心及各种云服务中心)网络设备异常检测领域,是基于日志的异常检测解决方案。
背景技术
网络中心对服务的可靠性和稳定性有很高的要求,服务的稳定运行对于保证国家行政、金融、电力、电信、互联网等方面的安全与稳定至关重要,因此如何准确有效的检测出系统中的异常引起了广泛关注。过去基于统计的异常检测方法在很大程度上依赖于系统规则和领域知识,大量耗费人力且通用性较差。因此基于日志的异常检测任务多采用抽取异常模式或从中学习系统正常工作时的工作流的方式,然而无监督学习效果通常不是很好;有监督的方法训练模型时又需要大量的标注数据。实际情景中,许多新部署的服务并没有足够的标注数据来训练出性能较好的模型,因此通常效果较差。此外,与通常有明确特征的的故障不同,异常更难被定位,系统发生故障时,运维人员后期会对故障日志进行标记,然而由于异常不一定会导致系统异常,这种标记方式通常会忽略一些潜在的异常,即使已经部署了很长时间并且进行了标记的日志文件可能中仍然存在一些潜在异常未被标注,这部分异常也应该被异常检测获取到。
发明内容
为克服现有技术的不足,本发明旨在提出有监督的异常检测机制以在仅有少量标注数据且标注数据不完善的情况下也能训练效果较好的异常检测模型,从而能够及时、主动发现服务异常以及时采取应对措施,提高网络中心的稳定性。为此,本发明采取的技术方案是,基于迁移学习的日志异常检测方法,处理对象为:
A:部署时间较长的、具有大量异常标注的日志数据即源数据;
B:部署时间较短的、具有具有部分标注或未标注的日志数据即目标数据;
具体包括三部分:
1)特征构建部分:首先利用FT-tree抽取出日志模板,也就是去除掉日志中参数部分只保留固定部分,这些固定部分包含日志反映系统行为的部分,且相似日志消息可以用相同的模板表示,接着利用特征构建部分中的Glove抽取词向量,对日志模板中包含的所有单词进行处理,得到单词的向量表示,从而进一步形成日志数据的向量序列,作为迁移学习部分的输入;
2)迁移学习部分:迁移学习部分分为两个阶段,首先将源数据形成的向量序列输入长短期记忆LSTM网络,来找到输入的向量序列中的关系,后接全连接层输出计算日志的异常分数,在这个阶段初步对模型参数进行训练;第二个阶段将目标数据形成的向量序列输入上一阶段初步训练好参数的模型,并对模型参数进行再次调整;
3)主动学习部分:若数据标注存在不完整或不准确情况时,将该数据输入特征构建部分获得向量表示并输入迁移学习部分获得异常分数,得到的分数是[0,1]之间的数值,取出分数值0.5±α的日志序列交由该数据所在领域的专家进行数据标注,α取0.01-0.03,更新后的数据再次用于迁移学习组件的训练,迭代地更新数据和模型。
日志数据为服务器日志数据、银行服务记录数据、电力供应网络工作情况数据、网络服务数据。
本发明的特点及有益效果是:
1.在仅有部分标记数据集上也能获得较好异常检测精度。
2.跨数据(从源数据到目标数据)的数据集上准确度也远远高于现有的其他异常检测方法。
3.新部署的、仅有少量标记的服务的数据上也能取得较好的结果。
附图说明:
图1基于迁移学习的日志异常检测机制框架图。
图2实验结果图。
具体实施方式
基本思想是从利用现有的大量标注数据(源数据)初步训练异常检测模型,然后利用模型预测新部署的具有部分标注或未标注的数据(目标数据),预测结果利用主动学习进行修正,并将修正过的数据对初步训练得到的异常检测模型进行微调。主要由以下三个部分组成:
1)特征构建部分:利用原始日志构建模板向量并进行匹配。通过特征构建组件,生成包含语法和语义信息的模型输入。在特征构建组件中,首先利用FT-tree从源数据和目标数据中提取模板。然后采用结合全局统计信息及单词上下文信息训练单词低维表示的方法Glove(Global Vectors for Word Representation,是一种抽取词向量方法的名称)来训练模板中单词的表示,模板向量采用模板中所有单词的向量和的平均值表示。
2)迁移学习部分:将从现有大量标注日志数据中学习到的异常特征迁移到新部署的服务的目标日志数据。通过迁移学习组件,跨服务的特征可以被利用,减少了针对目标数据的标记工作。在迁移学习组件中,我们利用长短期记忆(LSTM)网络来找到模板序列中的关系。LSTM后接全连接层以计算日志的异常概率。
3)主动学习部分:利用主动学习仅需手动标记少量选定数据即可一步提高检测的准确度。通过主动学习,可以定位出更多数潜在的异常。在主动学习组件中,我们利用最不确定策略找出一定数量的日志由领域专家进行确定的标注。更新后的数据再次用于迁移学习组件的训练。通过迭代地更新数据和模型,仅需少量的人工工作模型的性能即可得到显著改善。
实验验证
1.数据介绍及环境准备
为了全面、客观的评估基于迁移学习的日志异常检测机制的性能,实验使用了公开数据集HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)和Hadoop(一种分布式系统基础架构)数据集。其中Hadoop数据集包含两种应用如下:
1)WordCount(单词计数):统计输入文件中每个单词的出现次数。
2)PageRank(网页排名):应用于搜索引擎,对全部查询结果进行评分排名。
根据Hadoop数据集的说明文档,我们手工注入了部分异常以模拟真实生产环境中可能出现的的故障,主要有以下几种类型:
1)Machine Down(机器停止运行):应用程序运行时,手动关闭服务器来模拟机器故障。
2)Network Disconnection(网络连接断开):断开服务器与网络的连接,以模拟网络连接故障。
3)Disk Full(硬盘占满):应用程序运行时,手动利用其它程序或数据占满服务器硬盘,以模拟磁盘容量不足故障。
2.评估指标
查准率、召回率以及查准率和召回率的调和平均是评估分类问题性能的常用指标。本实验也采用这三种评价指标,计算公式如下:
查准率=检测到并且实际为异常的数量/检测到的异常数量
召回率=检测到并且实际为异常的数量/实际为异常的数量
查准率和召回率的调和平均=2(查准率*召回率)/(查准率+召回率)
查准率计算检测出的真实异常数量与检测出的异常的百分比,召回率计算检测出的真实异常数量与所有异常的百分比。在我们的实验中,我们更加注重查准率和召回率的调和平均分数,因为它综合考虑了查准率和召回率。
实验使用以下默认参数设置:α=128,L=2,S=3和W=15。α和L分别表示LSTM网络中每层的单元数和LSTM的层数,S表示滑动窗口单步的大小,W表示滑动窗口的大小。在我们的实验中只有目标参数的值根据实际情况动态修改,其他参数均使用默认值。
3.实验环境
实验是在配有Intel Xeon E5 12核CPU和128GB内存的使用Ubuntu 16.04的设备上进行。
4.实验结果及评价
图2(其中横坐标表示进行迁移的目标数据的天数,纵坐标表示查准率和召回率的调和平均分数)可以看出利用基于迁移学习的日志异常检测机制可以获得更好的性能,并证明了异常的特征已经成功地从源数据集利用到了目标数据集。
应用场景
在信息技术快速发展的背景下,数据中心成为各行各业的关键基础设施。当前,数据中心已广泛应用于互联网、电信、金融、政府、电力等多个行业。数据中心的稳定运行对于保证国家行政、金融、电力、电信、互联网等方面的安全与稳定至关重要。本文提出的本项目提出的基于迁移学习的日志异常检测机制相对现有方法可以有效保证数据中心稳定性。
下面结合具体实例,进一步详细说明本发明。
整体思想是从利用具有大量异常标注数据(源数据)训练基础异常检测模型,然后利用模型预测部署时间较短的、具有部分标注或未标注的数据(目标数据)对基础异常检测模型进行调整。
异常检测框架的输入(也是特征构建部分的输入)共由两部分组成:
1.部署时间较长的、具有大量异常标注的日志数据(源数据)
2.部署时间较短的、具有部分标注或未标注的日志数据(目标数据)
日志数据是由单条日志组成的序列,例如“L1:Interface te-1/1/18,changedstate to up;L2:Sent xrl got response 211Reply timed out;L3:read error 104;L4:Interface te-1/1/32,changed state to down;L5:Interface te-1/1/32,changedstate to up;L6:Interface te-1/1/32,changed state to down;L7:Interface te-1/1/32,changed state to up;L8:Vlan-interface vlan22,changed state to down;L9:Vlan-interface vlan20,changed state to down”是一个序列长度为9的日志数据。在特征构建部分,首先利用FT-tree抽取出日志模板,也就是去除掉日志中参数部分只保留固定部分,这些固定部分包含日志反映系统行为的部分,且相似日志消息可以用相同的模板表示,上文例子中的日志序列经FT-tree处理后得到“T2:Interface*changed state to up;T1:Sent*got response*Reply timed out;T4:read error*;T3:Interface*changedstate to down;T2:Interface*changed state to up;T3:Interface*changed state todown;T2:Interface*changed state to up;T5:Vlan-interface*,changed state todown;T5:Vlan-interface*,changed state to down”的日志模板序列。接着利用特征构建部分中的Glove对日志模板中包含的所有单词进行处理,得到单词的向量表示,以“Interface changed state to up”为例,各个单词对应向量关系如下表所示(其中向量实际维度为150):
单词 | 向量 |
Interface | [0.0387,-0.0779,…-0.0420,-0.0389] |
changed | [0.0485,-0.0936,…-0.0877,0.0484] |
state | [-0.1070,-0.0838,…0.0388,-0.0856] |
to | [0.1092,-0.0638,…0.0150,0.0179] |
up | [-0.0217,-0.1054,…-0.0870,0.0002] |
则模板对应的向量采用模板中所有单词的向量和的平均值表示,为([0.0387,-0.0779,…-0.0420,-0.0389]+[0.0485,-0.0936,…-0.0877,0.0484]+[-0.1070,-0.083,8…0.0388,-0.0856]+[0.1092,-0.0638,…0.0150,0.0179]+[-0.0217,-0.1054,…-0.0870,0.0002])/5=[0.0135,-0.0849…-0.0326,-0.0116])/5=[0.01354,-0.0849,...,-0.03258,-0.0116]。按照这种方法可以得到日志序列的向量表示,将向量构成的序列作为下一个部分(迁移学习部分)的输入。
在迁移学习部分,利用长短期记忆(LSTM)网络来找到输入序列中的关系,后接全连接层可以输出计算日志的异常分数。首先利用源数据的向量序列作为输入,训练由LSTM和全连接层构成的异常检测模型,LSTM可以很好的学习到输入序列的时序(时间顺序)依赖关系特征,也就是不同的输入序列具有不同的特征,例如(为了便于理解,此处以日志模板序列举例,实际为日志模板向量序列):“2:Interface*changed state to up;T1:Sent*gotresponse*Reply timed out;L3:read error 104;L4:Interface te-1/1/32,changedstate to down;”表示接口状态变更-接收消息失败-读取信息失败-接口状态变更;“T3:Interface*changed state to down;T2:Interface*changed state to up;T3:Interface*changed state to down;T2:Interface*changed state to up;T5:Vlan-interface*,changed state to down;T5:Vlan-interface*,changed state to down”表示频繁的接口状态变更。第一种情况实际情况下是有可能发生且正常的,第二种情况表示可能机器硬件或者软件服务可能出现故障,是一种异常情况,两种情况下LSTM学习到的序列特征是不同的且有较大差异,将序列特征输入全连接层可以计算出异常分数。由于源数据与目标数据并不是完全相同的(指两种数据集包含的模板及模板序列),因此利用源数据训练出的基础异常检测模型参数并不能很好的检验目标数据里的异常,因此在迁移学习部分还需利用目标数据的向量序列对模型进行参数修正,同样是将向量序列作为输入,输入到基础异常检测模型中对模型中包含的参数进行调整。
主动学习部分独立于特征构建部分和迁移学习部分使用,但需要借助特征构建部分和迁移学习部分构建,可以用于对数据集中的标注(对于一个给定的日志序列,需要给出一个标签说明该序列为“正常”或“异常”)进行修正。主动学习部分根据数据的实际标注情况灵活使用(可以使用也可以不使用),若数据标注存在不完整或不准确情况时,将该数据输入特征构建部分获得向量表示并输入迁移学习部分获得异常分数,得到的分数是[0,1]之间的数值,主动学习部分取出分数值0.5±α(α可变且为一个较小的值,一般小于0.02)的日志序列交由该数据所在领域的专家进行数据标注,这是因为该日志序列的的异常分数表示该日志序列可能是正常的也可能是异常的,需要由专家再次确认标注。
Claims (2)
1.一种基于迁移学习的日志异常检测方法,其特征是,处理对象为:
A:部署时间长的、具有大量异常标注的日志数据即源数据;
B:部署时间短的、具有具有部分标注或未标注的日志数据即目标数据;
具体包括三部分:
1)特征构建部分:首先利用FT-tree抽取出日志模板,也就是去除掉日志中参数部分只保留固定部分,这些固定部分包含日志反映系统行为的部分,且相似日志消息可以用相同的模板表示,接着利用特征构建部分中的Glove抽取词向量,对日志模板中包含的所有单词进行处理,得到单词的向量表示,从而进一步形成日志数据的向量序列,作为迁移学习部分的输入;
2)迁移学习部分:迁移学习部分分为两个阶段,首先将源数据形成的向量序列输入长短期记忆LSTM网络,来找到输入的向量序列中的关系,后接全连接层输出计算日志的异常分数,在这个阶段初步对模型参数进行训练;第二个阶段将目标数据形成的向量序列输入上一阶段初步训练好参数的模型,并对模型参数进行再次调整;
3)主动学习部分:若数据标注存在不完整或不准确情况时,将该数据输入特征构建部分获得向量表示并输入迁移学习部分获得异常分数,得到的分数是[0,1]之间的数值,取出分数值0.5±α的日志序列交由该数据所在领域的专家进行数据标注,α取0.01-0.03,更新后的数据再次用于迁移学习组件的训练,迭代地更新数据和模型。
2.如权利要求1所述的基于迁移学习的日志异常检测方法,其特征是,日志数据为服务器日志数据、银行服务记录数据、电力供应网络工作情况数据或网络服务数据中的一种。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010813538.XA CN111930597B (zh) | 2020-08-13 | 2020-08-13 | 基于迁移学习的日志异常检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010813538.XA CN111930597B (zh) | 2020-08-13 | 2020-08-13 | 基于迁移学习的日志异常检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111930597A CN111930597A (zh) | 2020-11-13 |
CN111930597B true CN111930597B (zh) | 2023-09-22 |
Family
ID=73311684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010813538.XA Active CN111930597B (zh) | 2020-08-13 | 2020-08-13 | 基于迁移学习的日志异常检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111930597B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115269304A (zh) * | 2021-04-29 | 2022-11-01 | 超聚变数字技术有限公司 | 日志异常检测模型训练方法、装置及设备 |
CN113259398B (zh) * | 2021-07-07 | 2021-10-15 | 杭州大乘智能科技有限公司 | 一种基于邮件日志数据的账号安全检测方法 |
CN116798521B (zh) * | 2023-07-19 | 2024-02-23 | 广东美赛尔细胞生物科技有限公司 | 免疫细胞培养控制系统的异常监测方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108536123A (zh) * | 2018-03-26 | 2018-09-14 | 北京交通大学 | 长短时记忆网络结合神经网络的列控车载设备的故障诊断方法 |
CN110928718A (zh) * | 2019-11-18 | 2020-03-27 | 上海维谛信息科技有限公司 | 一种基于关联分析的异常处理方法、系统、终端及介质 |
CN111209168A (zh) * | 2020-01-14 | 2020-05-29 | 中国人民解放军陆军炮兵防空兵学院郑州校区 | 一种基于nLSTM-self attention的日志序列异常检测框架 |
CN111371806A (zh) * | 2020-03-18 | 2020-07-03 | 北京邮电大学 | 一种Web攻击检测方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7017861B2 (ja) * | 2017-03-23 | 2022-02-09 | 株式会社日立製作所 | 異常検知システムおよび異常検知方法 |
-
2020
- 2020-08-13 CN CN202010813538.XA patent/CN111930597B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108536123A (zh) * | 2018-03-26 | 2018-09-14 | 北京交通大学 | 长短时记忆网络结合神经网络的列控车载设备的故障诊断方法 |
CN110928718A (zh) * | 2019-11-18 | 2020-03-27 | 上海维谛信息科技有限公司 | 一种基于关联分析的异常处理方法、系统、终端及介质 |
CN111209168A (zh) * | 2020-01-14 | 2020-05-29 | 中国人民解放军陆军炮兵防空兵学院郑州校区 | 一种基于nLSTM-self attention的日志序列异常检测框架 |
CN111371806A (zh) * | 2020-03-18 | 2020-07-03 | 北京邮电大学 | 一种Web攻击检测方法及装置 |
Non-Patent Citations (1)
Title |
---|
面向云数据中心多语法日志通用异常检测机制;张圣林等;《计算机研究与发展》;778-790页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111930597A (zh) | 2020-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111930597B (zh) | 基于迁移学习的日志异常检测方法 | |
CN110008288B (zh) | 用于网络故障分析的知识图谱库的构建方法及其应用 | |
CN105824718A (zh) | 基于问答网站知识的软件配置故障自动修复方法和系统 | |
CN111435366A (zh) | 设备故障诊断方法、装置和电子设备 | |
CN113094200A (zh) | 一种应用程序的故障预测方法和装置 | |
CN103761173A (zh) | 一种基于日志的计算机系统故障诊断方法及装置 | |
CN109471793A (zh) | 一种基于深度学习的网页自动化测试缺陷定位方法 | |
CN111427775B (zh) | 一种基于Bert模型的方法层次缺陷定位方法 | |
US9270749B2 (en) | Leveraging social media to assist in troubleshooting | |
Zhang et al. | Log sequence anomaly detection based on local information extraction and globally sparse transformer model | |
CN114968727B (zh) | 基于人工智能运维的数据库贯穿基础设施的故障定位方法 | |
CN115455429A (zh) | 基于大数据的漏洞分析方法及系统 | |
Stephen et al. | Extracting distribution network fault semantic labels from free text incident tickets | |
CN113065580A (zh) | 一种基于多信息融合的电厂设备管理方法及系统 | |
CN112417852A (zh) | 一种代码片段重要性的判断方法和装置 | |
CN116302984A (zh) | 一种测试任务的根因分析方法、装置及相关设备 | |
CN114969334B (zh) | 异常日志检测方法、装置、电子设备及可读存储介质 | |
CN115617689A (zh) | 一种基于cnn模型和领域特征的软件缺陷定位方法 | |
CN113821418B (zh) | 故障根因分析方法及装置、存储介质和电子设备 | |
CN116414587A (zh) | 故障数据获取方法、故障处理方法、电子设备及存储介质 | |
CN110727538B (zh) | 一种基于模型命中概率分布的故障定位系统及方法 | |
CN111737107B (zh) | 一种基于异质信息网络的重复缺陷报告检测方法 | |
Tang et al. | Constructing Aircraft Fault Knowledge Graph for Intelligent Aided Diagnosis | |
CN114168373A (zh) | 一种基于nlp的容灾系统异常点检测方法 | |
CN117873839B (zh) | 复杂算力系统的故障检测方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |