CN113468035A - 日志异常检测方法、装置、训练方法、装置及电子设备 - Google Patents

日志异常检测方法、装置、训练方法、装置及电子设备 Download PDF

Info

Publication number
CN113468035A
CN113468035A CN202110801242.0A CN202110801242A CN113468035A CN 113468035 A CN113468035 A CN 113468035A CN 202110801242 A CN202110801242 A CN 202110801242A CN 113468035 A CN113468035 A CN 113468035A
Authority
CN
China
Prior art keywords
log
vector sequence
long
network
vector
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.)
Granted
Application number
CN202110801242.0A
Other languages
English (en)
Other versions
CN113468035B (zh
Inventor
王建华
魏畅毅
王菲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ainnovation Chongqing Technology Co ltd
Original Assignee
Ainnovation Chongqing Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ainnovation Chongqing Technology Co ltd filed Critical Ainnovation Chongqing Technology Co ltd
Priority to CN202110801242.0A priority Critical patent/CN113468035B/zh
Publication of CN113468035A publication Critical patent/CN113468035A/zh
Application granted granted Critical
Publication of CN113468035B publication Critical patent/CN113468035B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及一种日志异常检测方法、装置、训练方法、装置及电子设备,属于检测领域。当需要对当前的日志RN进行异常检测时,是通过比较第一向量序列与第二向量序列来实现的。其中,第二向量序列是与当前实际所出现的日志RN对应的实际向量序列,第一向量序列是针对前一个日志RN‑1进行预测所得到的当前应该出现的日志对应的预测向量序列。通过上述方法可以检测日志的序列异常以及定量异常,有助于降低遗漏异常日志的概率。

Description

日志异常检测方法、装置、训练方法、装置及电子设备
技术领域
本申请属于检测领域,具体涉及一种日志异常检测方法、装置、训练方法、装置及电子设备。
背景技术
在运维过程中,需要涉及到电子设备所产生的日志的异常检测。
由于程序在执行过程中的一些逻辑顺序,那么与之对应的日志也具有序列特性以及定量特性。
其中,序列特性是指:一段程序在执行的过程中存在一定的逻辑顺序,与此对应的日志也具有先后顺序,如ABCD。若实际日志为ADCB,则为序列异常。
定量特性是指:一个正常的日志序列应该存在一种确定的关系。例如日志中存在打开文件的操作日志信息,则必然对应着关闭文件的操作日志信息,两者的数量大致应该对等,否则视为定量异常。
在现有技术中,一般基于已有的正常日志信息中的词频构造模板树,然后再结合深度学习的方式来对当前的日志进行异常检测。
但是上述日志异常检测方法只考虑了日志的词频类信息,而没有使用其他信息,因此,现有技术无法揭示日志之间的语义关系,进而不能对日志的序列异常以及定量异常进行检测,容易遗漏出现了异常的日志。
发明内容
有鉴于此,本申请的目的在于提供一种日志异常检测方法、装置、训练方法、装置及电子设备,可以检测日志的序列异常以及定量异常,有助于降低遗漏异常日志的概率。
本申请的实施例是这样实现的:
第一方面,本申请实施例提供一种日志异常检测方法,获取针对第N-1次检测所对应的日志RN-1进行预测后所得到的第一向量序列;所述第一向量序列用于表征所述日志RN-1之后最大概率产生的第一个日志的向量表示;获取第N次检测所对应的日志RN;生成与所述日志RN对应的第二向量序列;根据所述第一向量序列及所述第二向量序列,判断所述日志RN是否出现异常;其中,第N次检测的检测对象为第N-1次检测的检测对象的后一个日志,且N大于1。
在本申请实施例中,当在判断当前的日志RN是否异常时,不仅考虑到了当前日志RN的日志内容,还考虑到了当前日志RN与前一个日志RN-1之间的相关性,因此,通过本申请实施例中的日志异常检测方法,可以检测日志的序列异常以及定量异常,因此,本申请实施例所提供的日志异常检测方法,从整体上来说,有利于降低遗漏异常日志的概率。
结合第一方面实施例,在一种可能的实施方式中,所述获取针对第N-1次检测所对应的日志RN-1进行预测后所得到的第一向量序列,包括:获取针对第N-1次检测所对应的日志RN-1的日志模板进行预测后所得到的第一向量序列;
相应的,所述生成与所述日志RN对应的第二向量序列,包括:将所述日志RN与日志模板库进行匹配,得到所述日志RN的日志模板;生成与所述日志RN的日志模板对应的第二向量序列。
在本申请实施例中,向量序列是针对日志的日志模板所得到的向量序列。由于日志模板将容易产生变动的字段用统一的字符进行表示,因此,可以降低提取特征得到向量序列的复杂程度以及繁琐程度,可以在保证准确率的前提下,极大地减少工作量。
结合第一方面实施例,在一种可能的实施方式中,所述获取针对第N-1次检测所对应的日志RN-1的日志模板进行预测后所得到的第一向量序列,包括:通过将所述日志RN-1的日志模板对应的第三向量序列输入至日志预测模型进行预测,获取所述日志预测模型所输出的预测结果;所述预测结果即为所述第一向量序列。
结合第一方面实施例,在一种可能的实施方式中,所述生成与所述日志RN的日志模板对应的第二向量序列,包括:通过将所述日志RN的日志模板输入至特征提取模型进行特征提取,获取所述特征提取模型所输出的特征提取结果,所述特征提取结果为所述日志RN的日志模板所包括的各个词的词向量;将所述各个词的词向量加权求平均,得到所述第二向量序列。
结合第一方面实施例,在一种可能的实施方式中,所述根据所述第一向量序列及所述第二向量序列,判断所述日志RN是否出现异常,包括:计算所述第一向量序列与所述第二向量序列的相似度值;判断所述相似度值与相似度阈值之间的大小关系;若所述相似度值大于或等于所述相似度阈值,则确定所述日志RN未出现异常;若所述相似度值小于所述相似度阈值,则确定所述日志RN出现异常。
第二方面,本申请实施例提供一种训练方法,用于训练日志预测模型,所述方法包括:获取包括多个样本的训练集,其中,所述样本为与正常日志对应的日志模板的向量序列;将所述样本输入至基础网络模型进行训练,得到所述日志预测模型;
其中,所述基础网络模型包括第一长短记忆网络、第二长短记忆网络以及监督网络;所述第一长短记忆网络的输入为所述样本,且在所述第一长短记忆网络内设置有针对所述第一长短记忆网络的输入进行向量拆分的滑动窗口;所述第二长短记忆网络的输入为,针对输入至所述第一长短记忆网络的样本数量的计数向量;所述监督网络的输入为所述第二长短记忆网络的输出;所述基础网络模型的输出为所述监督网络与所述第一长短记忆网络的共同输出。
第三方面,本申请实施例提供一种日志异常检测装置,所述装置包括:获取模块、生成模块以及判断模块。
获取模块,用于获取针对第N-1次检测所对应的日志RN-1进行预测后所得到的第一向量序列;所述第一向量序列用于表征所述日志RN-1之后最大概率产生的第一个日志的向量表示;
所述获取模块,还用于获取第N次检测所对应的日志RN
生成模块,用于生成与所述日志RN对应的第二向量序列;
判断模块,用于根据所述第一向量序列及所述第二向量序列,判断所述日志RN是否出现异常;
其中,第N次检测的检测对象为第N-1次检测的检测对象的后一个日志,且N大于1。
结合第三方面实施例,在一种可能的实施方式中,所述获取模块,用于获取针对第N-1次检测所对应的日志RN-1的日志模板进行预测后所得到的第一向量序列;
相应的,所述生成模块,用于:将所述日志RN与日志模板库进行匹配,得到所述日志RN的日志模板;生成与所述日志RN的日志模板对应的第二向量序列。
结合第三方面实施例,在一种可能的实施方式中,所述获取模块,用于通过将所述日志RN-1的日志模板对应的第三向量序列输入至日志预测模型进行预测,获取所述日志预测模型所输出的预测结果;所述预测结果即为所述第一向量序列。
结合第三方面实施例,在一种可能的实施方式中,所述生成模块,用于通过将所述日志RN的日志模板输入至特征提取模型进行特征提取,获取所述特征提取模型所输出的特征提取结果,所述特征提取结果为所述日志RN的日志模板所包括的各个词的词向量;将所述各个词的词向量加权求平均,得到所述第二向量序列。
结合第三方面实施例,在一种可能的实施方式中,所述判断模块,用于计算所述第一向量序列与所述第二向量序列的相似度值;判断所述相似度值与相似度阈值之间的大小关系;若所述相似度值大于或等于所述相似度阈值,则确定所述日志RN未出现异常;若所述相似度值小于所述相似度阈值,则确定所述日志RN出现异常。
第四方面,本申请实施例提供一种训练装置,用于训练日志预测模型,所述装置包括:获取模块、训练模块。
获取模块,用于获取包括多个样本的训练集,其中,所述样本为与正常日志对应的日志模板的向量序列;
训练模块,用于将所述样本输入至基础网络模型进行训练,得到所述日志预测模型;
其中,所述基础网络模型包括第一长短记忆网络、第二长短记忆网络以及监督网络;
所述第一长短记忆网络的输入为所述样本,且在所述第一长短记忆网络内设置有针对所述第一长短记忆网络的输入进行向量拆分的滑动窗口;
所述第二长短记忆网络的输入为,针对输入至所述第一长短记忆网络的样本数量的计数向量;
所述监督网络的输入为所述第二长短记忆网络的输出;
所述基础网络模型的输出为所述监督网络与所述第一长短记忆网络的共同输出。
第五方面,本申请实施例还提供一种电子设备,包括:存储器和处理器,所述存储器和所述处理器连接;所述存储器用于存储程序;所述处理器调用存储于所述存储器中的程序,以执行上述第一方面实施例和/或结合第一方面实施例的任一种可能的实施方式提供的方法。
第六方面,本申请实施例还提供一种非易失性计算机可读取存储介质(以下简称计算机可读存储介质),其上存储有计算机程序,所述计算机程序被计算机运行时执行上述第一方面实施例和/或结合第一方面实施例的任一种可能的实施方式提供的方法。
本申请的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例而了解。本申请的目的和其他优点可通过在所写的说明书以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。通过附图所示,本申请的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的部分。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本申请的主旨。
图1示出本申请实施例提供的一种日志异常检测方法的流程图。
图2示出本申请实施例提供的一种训练方法的流程图。
图3示出本申请实施例提供的一种日志预测模型的结构示意图。
图4示出本申请实施例提供的一种日志异常检测装置的结构框图。
图5示出本申请实施例提供的一种训练装置的结构框图。
图6示出本申请实施例提供的一种电子设备的结构示意图。
图标:100-电子设备;110-处理器;120-存储器;200-日志预测模型;210-第一长短记忆网络;220-第二长短记忆网络;230-监督网络;400-日志异常检测装置;410-获取模块;420-生成模块;430-判断模块;500-训练装置;510-获取模块;520-训练模块。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中诸如“第一”、“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
再者,本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
此外,针对现有技术中的日志异常检测方法所存在的缺陷(不能对日志的序列异常以及定量异常进行检测,容易遗漏出现了异常的日志)均是申请人在经过实践并仔细研究后得出的结果,因此,上述缺陷的发现过程以及在下文中本申请实施例针对上述缺陷所提出的解决方案,都应该被认定为是申请人对本申请做出的贡献。
为了解决上述问题,本申请实施例提供一种日志异常检测方法、装置、训练方法、装置及电子设备,可以检测日志的序列异常以及定量异常,有助于降低遗漏异常日志的概率。
该技术可采用相应的软件、硬件以及软硬结合的方式实现。以下对本申请实施例进行详细介绍。
下面将针对本申请所提供的日志异常检测方法进行介绍。
请参照图1,本申请实施例提供一种日志异常检测方法,可以包括以下步骤。
步骤S110:获取针对第N-1次检测所对应的日志RN-1进行预测后所得到的第一向量序列。
其中,第一向量序列并不是与日志RN-1对应的向量序列,而是针对日志RN-1进行预测后所得到的,紧邻日志RN-1之后所出现的下一个日志RN的向量序列。即针对日志RN-1进行预测后所得到的第一向量序列用于表征位于日志RN-1之后最大概率产生的第一个日志的向量表示。
步骤S120:获取第N次检测所对应的日志RN
其中,第N次检测的检测对象为第N-1次检测的检测对象的后一个日志,且N大于1。
也就是说,本申请实施例所涉及到的日志异常检测,在本次的检测对象(即待检测日志)之前,存在与之对应的前一个日志。相应的,本申请实施例所涉及到的日志异常检测并不涉及到针对第一个日志的异常检测,因为第一个日志不存在前一个日志。
至于第一个日志,可以采用其他已有的方式(例如根据词频构建词频树)进行异常检测,或者默认第一个日志为正常日志。
此外,值得指出的是,上述步骤S110与步骤S120之间并不存在严格的先后顺序。
例如在一些实施方式中,本申请所涉及到的日志异常检测可以针对既往所产生的日志信息进行异常检测。此时,可以先执行步骤S120,再执行步骤S110,也可以先执行步骤S110,再执行步骤S120。
例如在一些实施方式中,本申请所涉及到的日志异常检测可以针对实时产生的日志信息进行异常检测。此时,需要先针对日志RN-1执行步骤S110,且待位于日志RN-1之后的下一个日志RN产生之后,再执行步骤S120。
步骤S130:生成与所述日志RN对应的第二向量序列。
步骤S140:根据所述第一向量序列及所述第二向量序列,判断所述日志RN是否出现异常。
可以理解,第一向量序列为根据前一个真实存在的日志RN-1所预测的,下一个日志最大概率应该呈现出的向量序列,第二向量序列为位于前一个真实存在的日志RN-1之后的下一个真实出现的日志RN的向量序列。
假设前一个真实存在的日志RN-1为正常日志,那么根据日志RN-1进行预测后所得到的第一向量序列即为位于日志RN-1之后的下一个日志RN’本应该呈现出的向量序列。
当后续位于日志RN-1之后的下一个日志RN真实出现后,即可通过比较位于日志RN-1之后的下一个日志RN’本应该呈现出的向量序列(第一向量序列)与位于日志RN-1之后的真实出现的下一个日志RN真实呈现出的向量序列(第二向量序列)之间的相似度,确定位于日志RN-1之后的真实出现的下一个日志RN是否出现异常。
在一实施例中,可以预先设置相似度阈值。在得到第一向量序列以及第二向量序列后,可以计算第一向量序列与第二向量序列的相似度值,然后判断相似度值与相似度阈值之间的大小关系。
其中,若相似度值大于或等于相似度阈值,则确定日志RN未出现异常。
若相似度值小于相似度阈值,则确定日志RN出现异常。
可选的,在确定RN出现异常时,可以对其进行标记,以便后续由后台管理者进行人工核查。
当然,假设前一个真实存在的日志RN-1为异常日志,那么根据日志RN-1进行预测后所得到的第一向量序列本身就不具有参考性。
此时,无论在日志RN-1之后真实出现的下一个日志RN是否出现异常,根据其所得到的第二向量序列与第一向量序列之间可能均会出现较大的差异性。在这种情况,根据上述判定异常与否的规则,若RN不是异常日志,也会将RN判定为出现了异常。当然,被误判的日志可由后台管理者进行人工排除。
根据上述内容可知,当需要对当前的日志RN进行异常检测时,是通过比较第一向量序列与第二向量序列来实现的。其中,第二向量序列是与当前实际所出现的日志RN对应的实际向量序列,第一向量序列是针对前一个日志RN-1进行预测所得到的当前应该出现的日志对应的预测向量序列。
也就是说,在本申请实施例中,当在判断当前的日志RN是否异常时,不仅考虑到了当前日志RN的日志内容,还考虑到了当前日志RN与前一个日志RN-1之间的相关性,因此,通过本申请实施例中的日志异常检测方法,可以检测日志的序列异常以及定量异常。此外,即使出现了上述将正常日志误判为异常日志的情况,也可以通过人工的方式进行排除,而不至于出现漏判的情况,因此,本申请实施例所提供的日志异常检测方法,从整体上来说,有利于降低遗漏异常日志的概率。
在一些实施方式中,上述所涉及到的第二向量序列,可以是在获取到日志RN后,直接针对日志RN进行特征提取而得到的向量序列。相应的,第一向量序列,是在针对日志RN-1进行特征提取而得到的向量序列的基础上进行预测所得到的向量序列。
也就是说,在这种实施方式中,上述所涉及到的向量序列,是针对日志本身的向量序列。
在另一些实施方式中,上述所涉及到的第二向量序列,还可以是在获取到日志RN后,先将日志RN与当前存在的日志模板库内的各种日志模板进行匹配,得到日志RN的日志模板,然后再针对日志RN的日志模板进行特征提取而得到的向量序列。相应的,第一向量序列,也是在针对日志RN-1的日志模板进行特征提取而得到的向量序列的基础上进行预测所得到的向量序列。
也就是说,在这种实施方式中,会涉及到匹配日志的日志模板的过程,上述所涉及到的向量序列,是针对日志的日志模板的向量序列。
其中,在日志模板库内保存有针对历史日志进行解析后所构造的多种日志模板。日志所包括的详细信息字段通常是频繁出现的单词的最长组合,在本申请实施例中,构造日志模板的过程,等同于从历史日志中识别出频繁出现单词的最长组合,并保留频繁出现单词的最长组合,且将容易产生变动的字段用统一的字符进行表示的过程。
可选的,日志模板可以以FT-tree(frequent-pattern tree,频繁模式树)的形式出现,且此部分内容为较为成熟的现有技术,此处不再赘述。
当然,值得指出的是,当出现新类型的日志时,若未匹配到与之对应的日志模板,则会根据该新类型的日志生成新的日志模板,并更新日志模板库。
可以理解,当向量序列是针对日志的日志模板所得到的向量序列时,由于日志模板将容易产生变动的字段用统一的字符进行表示,因此,可以降低提取特征得到向量序列的复杂程度以及繁琐程度,可以在保证准确率的前提下,极大地减少工作量。
下面将以根据日志模板得到的向量序列为例,对图1中的各个步骤进行详细介绍。
可以理解,当向量序列是针对日志本身而得到时,该实施例的其他部分的实施过程与根据日志模板得到向量序列的其他部分的实施过程相似,为避免重复,不再赘述。
步骤S110:获取针对第N-1次检测所对应的日志RN-1进行预测后所得到的第一向量序列。
在一种可选的实施方式中,在上述步骤S110中,获取第一向量序列的过程,可以是获取从具备日志预测功能的第三方应用程序、软件、日志预测模型或者其他设备的预测结果的过程。其中,具备日志预测功能的第三方应用程序、软件、日志预测模型或者其他设备针对第N-1次检测所对应的日志RN-1的日志模板所对应的第三向量序列进行预测后,得到该预测结果。第三向量序列即为针对日志RN-1的日志模板进行特征提取后所得到的向量序列。
在另一种可选的实施方式中,本申请实施例所提供的日志异常检测方法自身也包括对第N-1次检测所对应的日志RN-1的日志模板所对应的第三向量序列进行预测的流程。也就是说,执行日志异常检测方法的电子设备获取到第N-1次检测所对应的日志RN-1的日志模板所对应的第三向量序列后,然后将第三向量序列输入至具备日志预测功能的日志预测模型进行预测,以得到针对日志RN-1进行预测所得到的预测结果,即为第一向量序列。
在这种实施方式下,为了使得日志预测模型具备日志预测功能,需要预先对其进行训练。
具体的,可以在采用本申请实施例所提供的日志异常检测方法之前,训练上述日志预测模型,训练过程可以如图2所示的,包括以下步骤。
步骤S210:获取包括多个样本的训练集,其中,所述样本为与正常日志对应的日志模板的向量序列。
步骤S220:将所述样本输入至基础网络模型进行训练,得到所述日志预测模型。
其中,训练过程中的损失函数为交叉熵。
请参照图3,日志预测模型200在被训练前的基础网络模型可以包括第一长短记忆网络210、第二长短记忆网络220以及监督网络230。
第一长短记忆网络210的输入为训练集中的各个样本,即与正常日志对应的日志模板的向量序列。此外,在第一长短记忆网络210内设置有针对第一长短记忆网络210的输入进行向量拆分的滑动窗口。假设该滑动窗口的长度为X,那么第一长短记忆网络210在获取到每个输入后,会将其拆分成X个子输入,即将每个向量序列拆分成X个子向量序列。
具体的,当滑动窗口的长度为5时,对于第一长短记忆网络210而言,针对其所获取到的每个向量序列,会从该向量序列的初始位置开始向后滑动,保证窗口内的词向量个数每达到5个后即进行截断形成一个子向量序列。
第二长短记忆网络220的输入为针对输入至第一长短记忆网络210的样本数量的计数向量。监督网络230的输入为第二长短记忆网络220的输出。整个日志预测模型200的输出为监督网络230与第一长短记忆网络210的共同输出。
步骤S120:获取第N次检测所对应的日志RN
步骤S130:生成与所述日志RN对应的第二向量序列。
前文提及,生成第二向量序列的过程,即为针对日志RN或者日志RN的日志模板进行特征提取的过程。
以针对日志RN的日志模板进行特征提取为例,通过将日志RN的日志模板或者根据该日志模板生成的词集合输入至特征提取模型进行特征提取,可以获取到特征提取模型所输出的特征提取结果。该特征提取结果包括多个词向量。通过将各个词的词向量加权求平均,即可得到第二向量序列。
其中,根据该日志模板生成的词集合,可以是针对该日志模板中的每个词,生成与之对应的正义词以及反义词所构成的集合。
其中,特征提取模型,可以是BERT(Bidirectional Encoder Representationfrom Transformers,基于转换器的双向编码表征)模型或者其他可以进行词向量特征提取的模型。
步骤S140:根据所述第一向量序列及所述第二向量序列,判断所述日志RN是否出现异常。
此外,请参照图4,本申请实施例还提供一种日志异常检测装置400,日志异常检测装置400可以包括:获取模块410、生成模块420以及判断模块430。
获取模块410,用于获取针对第N-1次检测所对应的日志RN-1进行预测后所得到的第一向量序列;所述第一向量序列用于表征所述日志RN-1之后最大概率产生的第一个日志的向量表示;
所述获取模块410,还用于获取第N次检测所对应的日志RN
生成模块420,用于生成与所述日志RN对应的第二向量序列;
判断模块430,用于根据所述第一向量序列及所述第二向量序列,判断所述日志RN是否出现异常;
其中,第N次检测的检测对象为第N-1次检测的检测对象的后一个日志,且N大于1。
在一种可能的实施方式中,所述获取模块410,用于获取针对第N-1次检测所对应的日志RN-1的日志模板进行预测后所得到的第一向量序列;
相应的,所述生成模块420,用于:将所述日志RN与日志模板库进行匹配,得到所述日志RN的日志模板;生成与所述日志RN的日志模板对应的第二向量序列。
在一种可能的实施方式中,所述获取模块410,用于通过将所述日志RN-1的日志模板对应的第三向量序列输入至日志预测模型进行预测,获取所述日志预测模型所输出的预测结果;所述预测结果即为所述第一向量序列。
在一种可能的实施方式中,所述生成模块420,用于通过将所述日志RN的日志模板输入至特征提取模型进行特征提取,获取所述特征提取模型所输出的特征提取结果,所述特征提取结果为所述日志RN的日志模板所包括的各个词的词向量;将所述各个词的词向量加权求平均,得到所述第二向量序列。
在一种可能的实施方式中,所述判断模块430,用于计算所述第一向量序列与所述第二向量序列的相似度值;判断所述相似度值与相似度阈值之间的大小关系;若所述相似度值大于或等于所述相似度阈值,则确定所述日志RN未出现异常;若所述相似度值小于所述相似度阈值,则确定所述日志RN出现异常。
本申请实施例所提供的日志异常检测装置400,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
此外,请参照图5,本申请实施例还提供一种训练装置500,用于训练日志预测模型,训练装置500可以包括:获取模块510、训练模块520。
获取模块,用于获取包括多个样本的训练集,其中,所述样本为与正常日志对应的日志模板的向量序列;
训练模块,用于将所述样本输入至基础网络模型进行训练,得到所述日志预测模型;
其中,所述基础网络模型包括第一长短记忆网络、第二长短记忆网络以及监督网络;
所述第一长短记忆网络的输入为所述样本,且在所述第一长短记忆网络内设置有针对所述第一长短记忆网络的输入进行向量拆分的滑动窗口;
所述第二长短记忆网络的输入为,针对输入至所述第一长短记忆网络的样本数量的计数向量;
所述监督网络的输入为所述第二长短记忆网络的输出;
所述基础网络模型的输出为所述监督网络与所述第一长短记忆网络的共同输出。
本申请实施例所提供的训练装置500,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
此外,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被计算机运行时,执行如上述的日志异常检测方法所包含的步骤。
此外,请参照图6,本申请实施例还提供一种用于实现本申请实施例的日志异常检测方法、装置、训练方法、装置的电子设备100。
可选的,电子设备100,可以是,但不限于个人电脑(Personal computer,PC)、平板电脑、移动上网设备(Mobile Internet Device,MID)、服务器等设备。其中,服务器可以是,但不限于网络服务器、数据库服务器、云端服务器等。
其中,电子设备100可以包括:处理器110、存储器120。
应当注意,图6所示的电子设备100的组件和结构只是示例性的,而非限制性的,根据需要,电子设备100也可以具有其他组件和结构。
处理器110、存储器120以及其他可能出现于电子设备100的组件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,处理器110、存储器120以及其他可能出现的组件相互之间可通过一条或多条通讯总线或信号线实现电性连接。
存储器120用于存储程序,例如存储有前文出现的日志异常检测方法对应的程序或者前文出现的日志异常检测装置或者前文出现的训练方法对应的程序或者前文出现的训练装置。
可选的,当存储器120内存储有日志异常检测装置或训练装置时,日志异常检测装置或训练装置包括至少一个可以以软件或固件(firmware)的形式存储于存储器120中的软件功能模块。
可选的,日志异常检测装置或训练装置所包括软件功能模块也可以固化在电子设备100的操作系统(operating system,OS)中。
处理器110用于执行存储器120中存储的可执行模块,例如日志异常检测装置或训练装置包括的软件功能模块或计算机程序。当处理器110在接收到执行指令后,可以执行计算机程序,例如执行:获取针对第N-1次检测所对应的日志RN-1进行预测后所得到的第一向量序列;所述第一向量序列用于表征所述日志RN-1之后最大概率产生的第一个日志的向量表示;获取第N次检测所对应的日志RN;生成与所述日志RN对应的第二向量序列;根据所述第一向量序列及所述第二向量序列,判断所述日志RN是否出现异常;其中,第N次检测的检测对象为第N-1次检测的检测对象的后一个日志,且N大于1。
此外,当处理器110在接收到执行指令后,可以执行计算机程序,例如执行:获取包括多个样本的训练集,其中,所述样本为与正常日志对应的日志模板的向量序列;将所述样本输入至基础网络模型进行训练,得到所述日志预测模型;其中,所述基础网络模型包括第一长短记忆网络、第二长短记忆网络以及监督网络;所述第一长短记忆网络的输入为所述样本,且在所述第一长短记忆网络内设置有针对所述第一长短记忆网络的输入进行向量拆分的滑动窗口;所述第二长短记忆网络的输入为,针对输入至所述第一长短记忆网络的样本数量的计数向量;所述监督网络的输入为所述第二长短记忆网络的输出;所述基础网络模型的输出为所述监督网络与所述第一长短记忆网络的共同输出。
当然,本申请任一实施例所揭示的方法都可以应用于处理器110中,或者由处理器110实现。
综上所述,本发明实施例提出的日志异常检测方法、装置、训练方法、装置及电子设备,当需要对当前的日志RN进行异常检测时,是通过比较第一向量序列与第二向量序列来实现的。其中,第二向量序列是与当前实际所出现的日志RN对应的实际向量序列,第一向量序列是针对前一个日志RN-1进行预测所得到的当前应该出现的日志对应的预测向量序列。
也就是说,在本申请实施例中,当在判断当前的日志RN是否异常时,不仅考虑到了当前日志RN的日志内容,还考虑到了当前日志RN与前一个日志RN-1之间的相关性,因此,通过本申请实施例中的日志异常检测方法,可以检测日志的序列异常以及定量异常。此外,即使出现了上述将正常日志误判为异常日志的情况,也可以通过人工的方式进行排除,而不至于出现漏判的情况,因此,本申请实施例所提供的日志异常检测方法,从整体上来说,有利于降低遗漏异常日志的概率。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,笔记本电脑,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。

Claims (10)

1.一种日志异常检测方法,其特征在于,所述方法包括:
获取针对第N-1次检测所对应的日志RN-1进行预测后所得到的第一向量序列;所述第一向量序列用于表征所述日志RN-1之后最大概率产生的第一个日志的向量表示;
获取第N次检测所对应的日志RN
生成与所述日志RN对应的第二向量序列;
根据所述第一向量序列及所述第二向量序列,判断所述日志RN是否出现异常;
其中,第N次检测的检测对象为第N-1次检测的检测对象的后一个日志,且N大于1。
2.根据权利要求1所述的方法,其特征在于,所述获取针对第N-1次检测所对应的日志RN-1进行预测后所得到的第一向量序列,包括:
获取针对第N-1次检测所对应的日志RN-1的日志模板进行预测后所得到的第一向量序列;
相应的,所述生成与所述日志RN对应的第二向量序列,包括:
将所述日志RN与日志模板库进行匹配,得到所述日志RN的日志模板;
生成与所述日志RN的日志模板对应的第二向量序列。
3.根据权利要求2所述的方法,其特征在于,所述获取针对第N-1次检测所对应的日志RN-1的日志模板进行预测后所得到的第一向量序列,包括:
通过将所述日志RN-1的日志模板对应的第三向量序列输入至日志预测模型进行预测,获取所述日志预测模型所输出的预测结果;
所述预测结果即为所述第一向量序列。
4.根据权利要求2所述的方法,其特征在于,所述生成与所述日志RN的日志模板对应的第二向量序列,包括:
通过将所述日志RN的日志模板输入至特征提取模型进行特征提取,获取所述特征提取模型所输出的特征提取结果,所述特征提取结果为所述日志RN的日志模板所包括的各个词的词向量;
将所述各个词的词向量加权求平均,得到所述第二向量序列。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述根据所述第一向量序列及所述第二向量序列,判断所述日志RN是否出现异常,包括:
计算所述第一向量序列与所述第二向量序列的相似度值;
判断所述相似度值与相似度阈值之间的大小关系;
若所述相似度值大于或等于所述相似度阈值,则确定所述日志RN未出现异常;
若所述相似度值小于所述相似度阈值,则确定所述日志RN出现异常。
6.一种训练方法,其特征在于,用于训练日志预测模型,所述方法包括:
获取包括多个样本的训练集,其中,所述样本为与正常日志对应的日志模板的向量序列;
将所述样本输入至基础网络模型进行训练,得到所述日志预测模型;
其中,所述基础网络模型包括第一长短记忆网络、第二长短记忆网络以及监督网络;
所述第一长短记忆网络的输入为所述样本,且在所述第一长短记忆网络内设置有针对所述第一长短记忆网络的输入进行向量拆分的滑动窗口;
所述第二长短记忆网络的输入为,针对输入至所述第一长短记忆网络的样本数量的计数向量;
所述监督网络的输入为所述第二长短记忆网络的输出;
所述基础网络模型的输出为所述监督网络与所述第一长短记忆网络的共同输出。
7.一种日志异常检测装置,其特征在于,所述装置包括:
获取模块,用于获取针对第N-1次检测所对应的日志RN-1进行预测后所得到的第一向量序列;所述第一向量序列用于表征所述日志RN-1之后最大概率产生的第一个日志的向量表示;
所述获取模块,还用于获取第N次检测所对应的日志RN
生成模块,用于生成与所述日志RN对应的第二向量序列;
判断模块,用于根据所述第一向量序列及所述第二向量序列,判断所述日志RN是否出现异常;
其中,第N次检测的检测对象为第N-1次检测的检测对象的后一个日志,且N大于1。
8.一种训练装置,其特征在于,用于训练日志预测模型,所述装置包括:
获取模块,用于获取包括多个样本的训练集,其中,所述样本为与正常日志对应的日志模板的向量序列;
训练模块,用于将所述样本输入至基础网络模型进行训练,得到所述日志预测模型;
其中,所述基础网络模型包括第一长短记忆网络、第二长短记忆网络以及监督网络;
所述第一长短记忆网络的输入为所述样本,且在所述第一长短记忆网络内设置有针对所述第一长短记忆网络的输入进行向量拆分的滑动窗口;
所述第二长短记忆网络的输入为,针对输入至所述第一长短记忆网络的样本数量的计数向量;
所述监督网络的输入为所述第二长短记忆网络的输出;
所述基础网络模型的输出为所述监督网络与所述第一长短记忆网络的共同输出。
9.一种电子设备,其特征在于,包括:存储器和处理器,所述存储器和所述处理器连接;
所述存储器用于存储程序;
所述处理器调用存储于所述存储器中的程序,以执行如权利要求1-6中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被计算机运行时执行如权利要求1-6中任一项所述的方法。
CN202110801242.0A 2021-07-15 2021-07-15 日志异常检测方法、装置、训练方法、装置及电子设备 Active CN113468035B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110801242.0A CN113468035B (zh) 2021-07-15 2021-07-15 日志异常检测方法、装置、训练方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110801242.0A CN113468035B (zh) 2021-07-15 2021-07-15 日志异常检测方法、装置、训练方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN113468035A true CN113468035A (zh) 2021-10-01
CN113468035B CN113468035B (zh) 2023-09-29

Family

ID=77880693

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110801242.0A Active CN113468035B (zh) 2021-07-15 2021-07-15 日志异常检测方法、装置、训练方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN113468035B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113792820A (zh) * 2021-11-15 2021-12-14 航天宏康智能科技(北京)有限公司 用户行为日志异常检测模型的对抗训练方法和装置
WO2023111742A1 (en) * 2021-12-13 2023-06-22 International Business Machines Corporation Revealing rare and anomalous events in system automation logs

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105024877A (zh) * 2015-06-01 2015-11-04 北京理工大学 一种基于网络行为分析的Hadoop恶意节点检测系统
US20160078361A1 (en) * 2014-09-11 2016-03-17 Amazon Technologies, Inc. Optimized training of linear machine learning models
US20160217022A1 (en) * 2015-01-23 2016-07-28 Opsclarity, Inc. Anomaly detection using circumstance-specific detectors
WO2019060327A1 (en) * 2017-09-20 2019-03-28 University Of Utah Research Foundation ONLINE DETECTION OF ANOMALIES IN A NEWSPAPER USING AUTOMATIC APPRENTICESHIP
US20190243743A1 (en) * 2018-02-07 2019-08-08 Apple Inc. Unsupervised anomaly detection
CN110321371A (zh) * 2019-07-01 2019-10-11 腾讯科技(深圳)有限公司 日志数据异常检测方法、装置、终端及介质
CN111611218A (zh) * 2020-04-24 2020-09-01 武汉大学 一种基于深度学习的分布式异常日志自动识别方法
CN111858242A (zh) * 2020-07-10 2020-10-30 苏州浪潮智能科技有限公司 一种系统日志异常检测方法、装置及电子设备和存储介质
CN112069787A (zh) * 2020-08-27 2020-12-11 西安交通大学 一种基于词嵌入的日志参数异常检测方法
CN112235327A (zh) * 2020-12-16 2021-01-15 中移(苏州)软件技术有限公司 异常日志检测方法、装置、设备和计算机可读存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160078361A1 (en) * 2014-09-11 2016-03-17 Amazon Technologies, Inc. Optimized training of linear machine learning models
US20160217022A1 (en) * 2015-01-23 2016-07-28 Opsclarity, Inc. Anomaly detection using circumstance-specific detectors
CN105024877A (zh) * 2015-06-01 2015-11-04 北京理工大学 一种基于网络行为分析的Hadoop恶意节点检测系统
WO2019060327A1 (en) * 2017-09-20 2019-03-28 University Of Utah Research Foundation ONLINE DETECTION OF ANOMALIES IN A NEWSPAPER USING AUTOMATIC APPRENTICESHIP
US20190243743A1 (en) * 2018-02-07 2019-08-08 Apple Inc. Unsupervised anomaly detection
CN110321371A (zh) * 2019-07-01 2019-10-11 腾讯科技(深圳)有限公司 日志数据异常检测方法、装置、终端及介质
CN111611218A (zh) * 2020-04-24 2020-09-01 武汉大学 一种基于深度学习的分布式异常日志自动识别方法
CN111858242A (zh) * 2020-07-10 2020-10-30 苏州浪潮智能科技有限公司 一种系统日志异常检测方法、装置及电子设备和存储介质
CN112069787A (zh) * 2020-08-27 2020-12-11 西安交通大学 一种基于词嵌入的日志参数异常检测方法
CN112235327A (zh) * 2020-12-16 2021-01-15 中移(苏州)软件技术有限公司 异常日志检测方法、装置、设备和计算机可读存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113792820A (zh) * 2021-11-15 2021-12-14 航天宏康智能科技(北京)有限公司 用户行为日志异常检测模型的对抗训练方法和装置
CN113792820B (zh) * 2021-11-15 2022-02-08 航天宏康智能科技(北京)有限公司 用户行为日志异常检测模型的对抗训练方法和装置
WO2023111742A1 (en) * 2021-12-13 2023-06-22 International Business Machines Corporation Revealing rare and anomalous events in system automation logs

Also Published As

Publication number Publication date
CN113468035B (zh) 2023-09-29

Similar Documents

Publication Publication Date Title
Zhang et al. Robust log-based anomaly detection on unstable log data
CN110321371B (zh) 日志数据异常检测方法、装置、终端及介质
CN112436968B (zh) 一种网络流量的监测方法、装置、设备及存储介质
US10679135B2 (en) Periodicity analysis on heterogeneous logs
CN111813960B (zh) 基于知识图谱的数据安全审计模型装置、方法及终端设备
CN113468035B (zh) 日志异常检测方法、装置、训练方法、装置及电子设备
CN109361648B (zh) 工控系统的隐蔽攻击的检测方法及装置
CN111190804A (zh) 一种云原生系统的多层次的深度学习日志故障检测方法
CN111600919A (zh) 基于人工智能的web检测方法和装置
CN110222513B (zh) 一种线上活动的异常监测方法、装置及存储介质
CN110716868A (zh) 异常程序行为检测方法、装置
CN114579380A (zh) 一种计算机系统故障的人工智能检测系统及方法
CN110941827B (zh) 应用程序异常行为检测方法及装置
CN114169604A (zh) 性能指标的异常检测方法、异常检测装置、电子设备和存储介质
CN112131249A (zh) 一种攻击意图识别方法及装置
CN114741369A (zh) 一种基于自注意力机制的图网络的系统日志检测方法
CN113704201A (zh) 一种日志异常检测方法、装置及服务器
CN112052453A (zh) 基于Relief算法的webshell检测方法及装置
Vahedi et al. Cloud based malware detection through behavioral entropy
CN112163217B (zh) 恶意软件变种识别方法、装置、设备及计算机存储介质
Lijun et al. An intuitionistic calculus to complex abnormal event recognition on data streams
CN112597498A (zh) 一种webshell的检测方法、系统、装置及可读存储介质
Liu et al. The runtime system problem identification method based on log analysis
CN111651753A (zh) 用户行为分析系统及方法
CN112733015B (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