CN113228006A - 检测连续事件中的异常的装置和方法及其计算机程序产品 - Google Patents

检测连续事件中的异常的装置和方法及其计算机程序产品 Download PDF

Info

Publication number
CN113228006A
CN113228006A CN201880100295.6A CN201880100295A CN113228006A CN 113228006 A CN113228006 A CN 113228006A CN 201880100295 A CN201880100295 A CN 201880100295A CN 113228006 A CN113228006 A CN 113228006A
Authority
CN
China
Prior art keywords
time series
pattern
current time
anomaly
ranked
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.)
Pending
Application number
CN201880100295.6A
Other languages
English (en)
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.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN113228006A publication Critical patent/CN113228006A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • 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
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • 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/048Activation functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Operations Research (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Testing And Monitoring For Control Systems (AREA)

Abstract

本发明涉及数据处理领域,更具体地,涉及一种用于通过使用深度学习技术检测连续事件中的异常的装置和方法,并且涉及一种对应的计算机程序产品。本发明可以实现在时间序列中快速和自动地检测所述异常,即使所述时间序列具有以下特征:非平稳性、多重季节性频率、多个潜在分布以及高噪声信号比。为此,本发明建议从所述时间序列中检索不同的显著特征,然后将这些不同的显著特征组合在特征向量中。进一步分析所述特征向量与表征正常类的预先存储的基线模型的对应关系。如果所述时间序列的所述特征向量与所述基线模型之间没有对应关系,则所述时间序列与所述异常关联。

Description

检测连续事件中的异常的装置和方法及其计算机程序产品
技术领域
本发明涉及数据处理领域,更具体地,涉及一种用于通过使用深度学习技术检测连续事件中的异常的装置和方法,并且涉及一种对应的计算机程序产品。
背景技术
异常检测算法经常用于识别人类活动的各种领域中使用的不同系统的不稳定或异常行为。为此,随着时间的推移,监测和分析表征感兴趣的系统的一个或多个参数的值,并在此基础上为感兴趣的系统生成正常行为模型。当发现相同的一个或多个参数的时间上紧接的值偏离正常行为模型时,可以得出结论,即感兴趣的系统变得不稳定。然后,系统操作员可以使用该信息对感兴趣的系统采取必要措施。这种感兴趣的系统的示例可以包括待检测故障的软件或硬件系统、待检测股票报价价格异常的股票市场、待检测异常数据通信的通信系统,等等。
传统上,使用自动回归集成移动平均(autoregressive integrated movingaverage,ARIMA)、Holt-Winters以及使用Loess的季节和趋势分解(Seasonal and Trenddecomposition using Loess,STL)等线性统计方法来分析系统参数的时间序列,以检测异常。但是,已经发现这些方法只适用于相对平稳、具有单一季节性频率、具有单一的潜在分布且具有低噪声信号比的相当简单的时间序列(例如,股票报价价格的演变或人口出生率)。此外,这些方法通常通过设置几个方法参数来手动应用。
因此,当要分析的时间序列具有非平稳性、多重季节性频率、多个潜在分布和高噪声信号比的特征时,线性统计方法就会出现问题。这种时间序列是复杂的、分布式和不可预测的系统(例如微服务应用相互通信以执行特定任务的微服务应用平台)所特有的。
因此,仍然需要一种能够减少甚至消除现有技术特有的上述缺点的新方案。
发明内容
本发明内容简单介绍了一系列概念,在具体实施方式中会进一步描述这些概念。本发明内容的目的不在于识别权利要求书保护的主题的关键特征或必要特征,也不在于限制权利要求书保护的主题的范围。
本发明的一个目的是提供一种技术方案,用于检测任何时间序列中的异常,包括由复杂的、分布式和不可预测的系统产生的异常,同时最大程度减少用户参与。
上述目的通过所附权利要求中的独立权利要求的特征来实现。其它实施例和示例在从属权利要求、具体实施方式和附图中是显而易见的。
根据第一方面,提供了一种用于检测连续事件中的异常的方法。该方法执行如下。首先,通过生成事件属性和关联的属性值的对来记录每个新事件。之后,具有相同事件属性的对被分组到当前时间序列中。接下来,从所述当前时间序列中检索以下特征:指示所述属性值的变化模式的信号特征、指示所述相同事件属性中的每个事件属性已经发生的上下文的上下文特征,以及指示所述属性值之间的时间相关性的时间特征。将所述信号特征、所述上下文特征和所述时间特征组合成特征向量。此外,检查所述当前时间序列的所述特征向量是否对应于预先存储的基线模型。所述基线模型是根据非监督式机器学习算法使用多个过去时间序列的特征向量获得的,所述多个过去时间序列包括与所述当前时间序列相同的事件属性。最后,如果所述特征向量与所述基线模型之间没有对应关系,则将所述当前时间序列与所述异常关联。这可以实现在时间序列中快速和自动地检测所述异常,即使所述时间序列具有以下特征:非平稳性、多重季节性频率、多个潜在分布以及高噪声信号比。
在所述第一方面的一种实现方式中,所述事件与微服务应用相关。这增加了使用所述第一方面所述的方法的灵活性。
在所述第一方面的一种实现方式中,通过执行以下动作来检索所述信号特征:从所述当前时间序列中删除离群值;将所述当前时间序列转换为正态分布且归一化的数据集;向所述数据集应用降噪操作,以检索所述属性值的所述变化模式。这样可以提高异常检测的准确性。
在所述第一方面的一种实现方式中,所述非监督式机器学习算法通过使用至少一个递归神经网络执行。通过这样做,异常检测的准确性进一步提高,因为这种类型的神经网络可以在分析所述当前时间序列的所述异常时考虑多个不同的过去时间序列。
在所述第一方面的一种实现方式中,检查所述当前时间序列与所述基线模型的对应关系,如下所示。首先,根据所述基线模型生成恢复的特征向量。然后,估计所述恢复的所述特征向量与所述当前时间序列的所述特征向量之间的距离。最后,如果所述距离大于预定义阈值,则确定所述当前时间序列的所述特征向量与所述基线模型之间没有对应关系。这可以额外提高异常检测的准确性。
在所述第一方面的一种实现方式中,所述方法还包括:接收用户输入,所述用户输入包括预定义异常模式,每个异常模式表征特定异常类型;根据监督式机器学习算法使用所述预定义异常模式和所述预定义异常模式的不同变化来获得识别模型,所述识别模型定义所述异常模式与关联的时间序列之间的映射;根据所述识别模型识别与所述当前时间序列关联的所述异常类型。这提供了识别所述当前时间序列特有的异常类型的可能性。
在所述第一方面的一种实现方式中,所述监督式机器学习算法通过使用至少一个卷积神经网络执行。这样可以增加识别所述当前时间序列特有的异常类型的可能性。
在所述第一方面的一种实现方式中,与所述当前时间序列关联的所述异常类型识别如下。首先,通过使用具有预定义大小的滑动窗口将所述当前时间序列划分为多个时间段。之后,通过使用所述识别模型检测时间段中的至少一个异常模式。所述至少一个异常模式中的每个异常模式具有信任度。接下来,所述至少一个异常模式是通过信任度排序。最后,为所述当前时间序列选择排序第一的异常模式。这可以将最可能的异常模式与所述当前时间序列关联。
在所述第一方面的一种实现方式中,所述方法还包括:(i)如果所述排序第一的异常模式被正确地选择,则为所述排序第一的异常模式提供正标签;或(ii)如果所述排序第一的异常模式被错误地选择,并且所述排序的异常模式中的其余排序的异常模式被错误地检测到,则为所述排序第一的异常模式提供负标签;或(iii)如果所述排序第一的异常模式被错误地选择,则重新选择所述当前时间序列的所述排序的异常模式中的其余排序的异常模式中的任何一个。这向用户提供反馈,该反馈可用于更新所述识别模型。
在所述第一方面的一种实现方式中,所述方法还包括:如果上述步骤(i)至(iii)中的任何一个或多个步骤发生的次数超过预定义阈值,则根据所述监督式机器学习算法使用所述选择的排序第一的异常模式修改所述识别模型。这样可以细化所述识别模型。
根据第二方面,提供了一种用于检测连续事件中的异常的装置。所述装置包括至少一个处理器和耦合到所述至少一个处理器的存储器。所述存储器存储处理器可执行指令,当所述至少一个处理器执行所述处理器可执行指令时,使所述至少一个处理器:通过生成事件属性和关联的属性值的对来记录每个新事件;将具有相同事件属性的所述对分组到当前时间序列中;从所述当前时间序列中检索指示所述属性值的变化模式的信号特征、指示所述相同事件属性中的每个事件属性已经发生的上下文的上下文特征,以及指示所述属性值之间的时间相关性的时间特征;将所述信号特征、所述上下文特征和所述时间特征组合成特征向量;检查所述当前时间序列的特征向量是否对应于预先存储的基线模型,所述基线模型是根据非监督式机器学习算法使用多个过去时间序列的特征向量获得的,所述多个过去时间序列包括与所述当前时间序列相同的事件属性;如果所述特征向量与所述基线模型之间没有对应关系,则将所述当前时间序列与所述异常关联。这可以实现在时间序列中快速和自动地检测所述异常,即使所述时间序列具有以下特征:非平稳性、多重季节性频率、多个潜在分布以及高噪声信号比。
在所述第二方面的一种实现方式中,所述事件与微服务应用相关。这增加了使用所述第二方面所述的装置的灵活性。
在所述第二方面的一种实现方式中,所述至少一个处理器用于通过以下步骤检索所述信号特征:从所述当前时间序列中删除离群值;将所述当前时间序列转换为正态分布且归一化的数据集;向所述数据集应用降噪操作,以检索所述属性值的所述变化模式。这样可以提高异常检测的准确性。
在所述第二方面的一种实现方式中,所述至少一个处理器还用于通过在所述非监督式机器学习算法中使用至少一个递归神经网络来初步获得所述基线模型。通过这样做,异常检测的准确性进一步提高,因为这种类型的神经网络可以在分析所述当前时间序列的所述异常时考虑多个不同的过去时间序列。
在所述第二方面的一种实现方式中,所述至少一个处理器用于通过以下步骤检查所述当前时间序列的所述特征向量是否对应于预先存储的基线模型:根据所述基线模型生成恢复的特征向量;估计所述恢复的特征向量与所述当前时间序列的所述特征向量之间的距离;如果所述距离大于预定义阈值,则确定所述当前时间序列的所述特征向量与所述基线模型之间没有对应关系。这可以额外提高异常检测的准确性。
在所述第二方面的一种实现方式中,所述至少一个处理器用于:接收用户输入,所述用户输入包括预定义异常模式,每个预定义异常模式表征特定异常类型;根据监督式机器学习算法使用所述预定义异常模式和所述预定义异常模式的不同变化来获得识别模型,所述识别模型定义所述异常模式与关联的时间序列之间的映射;根据所述识别模型识别与所述当前时间序列关联的所述异常类型。这提供了识别所述当前时间序列特有的异常类型的可能性。
在所述第二方面的一种实现方式中,所述至少一个处理器用于在所述监督式机器学习算法中使用至少一个卷积神经网络。这样可以增加识别所述当前时间序列特有的异常类型的可能性。
在所述第二方面的一种实现方式中,所述至少一个处理器用于通过以下步骤识别所述异常类型:通过使用具有预定义大小的滑动窗口将所述当前时间序列划分为多个时间段;通过使用所述识别模型检测时间段中的至少一个异常模式,所述至少一个异常模式中的每个异常模式具有信任度;根据所述信任度对所述至少一个异常模式进行排序;为所述当前时间序列选择所述排序第一的异常模式。这可以将最可能的异常模式与所述当前时间序列关联。
在所述第二方面的一种实现方式中,所述至少一个处理器还用于:(i)如果所述排序第一的异常模式被正确地选择,则为所述排序第一的异常模式提供正标签;或(ii)如果所述排序第一的异常模式被错误地选择,并且其它异常模式未被检测到,则为所述排序第一的异常模式提供负标签;或(iii)如果所述排序第一的异常模式被错误地选择,则重新选择所述当前时间序列的排在下一个的异常模式。这向用户提供反馈,该反馈可用于更新所述识别模型。
在所述第二方面的一种实现方式中,所述至少一个处理器还用于:如果操作(i)至(iii)中的任何一个或多个操作发生的次数超过预定义阈值,则根据所述监督式机器学习算法使用所述选择的排序第一的异常模式修改所述识别模型。这样可以细化所述识别模型。
根据第三方面,提供了一种计算机程序产品,包括存储有计算机程序的计算机可读存储介质。当至少一个处理器执行所述计算机程序时,使所述至少一个处理器执行根据所述第一方面所述的方法。因此,根据所述第一方面所述的方法可以以所述计算机程序的形式实现,从而增加了使用所述第一方面所述的方法的灵活性。
在阅读以下详细描述并查看附图后,本发明的其它特征和优点将显而易见。
附图说明
下面结合附图阐明本发明的本质,其中:
图1示出了本发明的一个方面提供的用于检测连续事件中的异常的装置的示例性框图;
图2示出了本发明的另一方面提供的用于检测连续事件中的异常的方法的示例性框图;
图3示出了示例性微服务应用平台,图1中的装置与该微服务应用平台连接以执行图2的方法;
图4示出了包含多个字段的跨度的一个示例;
图5示出了一个时间序列的跨度持续时间对跨度时间戳的依赖性;
图6示出了用于实现图2的方法的步骤S206和S208的流水线流程图;
图7A至图7D示出了跨度的隐式分组如何提高异常检测的准确性;
图8示出了将滑动窗口应用于时间序列的一个示例;
图9示出了用于获得基线模型的递归神经网络的示例性架构;
图10示出了用于实现图2的方法的步骤S210的流程图;
图11示出了用于根据用户定义的异常模式及其变化获得识别模型的示例性流程图;
图12示出了用户定义的异常模式的一些示例;
图13示出了用于识别与时间序列关联的异常的示例性流程图。
具体实施方式
结合附图进一步详细地描述了本发明的各种实施例。但是,本发明可以以许多其它形式体现,并且不应解释为限于以下描述中提供的任何特定结构或功能。相反,提供这些实施例是为了详细且完整地描述本发明。
根据详细描述,对本领域技术人员显而易见的是,本发明的范围包括本文公开的任何实施例,无论该实施例是独立实现的还是与本发明的任何其它实施例共同实现的。例如,本文公开的装置和方法实际上可以通过使用任意数量的所公开的实施例来实现。此外,应当理解,任何所公开的实施例都可以使用所附权利要求中提出的一个或多个元件或步骤来实现。
如本文所使用,术语“异常(anomaly)”及其派生词,如“异常的(anomalous)”、“反常的(abnormal)”等是指偏离标准或正常的情况。更具体地,本发明的目的是检测时间序列中的异常,该时间序列由表征感兴趣的系统的一个或多个参数的值组成。尽管本发明还参考微服务应用平台提供,但它不应被解释为对本发明的任何限制,并且微服务应用平台仅选择作为这种感兴趣的系统的一个示例。感兴趣的系统的其它示例可以包括照明系统,在该照明系统中,分析每个照明装置的操作数据(例如,消耗的功率)以检测异常,或者包括股票市场,在该股票市场中,异常检测例如涉及检测欺诈性股票炒作等。换句话说,本发明的方面可以同样地应用于需要异常检测的人类活动的不同领域。
如本文所使用,术语“微服务应用”,简称“微服务”,是指一种将大型应用构建为一组模块化组件或服务的应用开发方法。每个模块化组件或服务都支持特定的任务或业务目标,并使用简单、定义良好的接口,如应用编程接口(application programminginterface,API),以与其它服务集通信。
时间序列通常通过众所周知的线性统计方法分析异常,如ARIMA、Holt-Winters以及使用Loess的季节和趋势分解(Seasonal and Trend decomposition using Loess,STL)。但是,线性统计方法需要手动设置几个参数,即需要用户参与。此外,线性统计方法对可分析的时间序列类型有具体要求。例如,ARIMA方法要求时间序列在微分后是平稳的和遍历的(即平均值、其矩和方差不会随着时间的推移而改变)。Holt-Winters方法也很难实现自动化,因为该方法包括一个预测方程和几个信号水平、趋势、季节性分量的平滑方程。STL方法又需要设置趋势周期和季节性窗口,这对于具有高噪声信号比的时间序列来说是复杂的。因此,现有的线性统计方法通常适用于相对平稳、具有单一季节性频率、具有单一潜在分布且具有低噪声信号比的相当简单的时间序列。这使得这些方法不适合自动分析复杂的、分布式且不可预测的系统,例如,微服务应用平台。
为了解决上述缺点,研究人员试图开发替代的优化方法,使得能够自动分析数千个时间序列(即,没有复杂的手动参数化)。但是,ARIMA方法的优化方法,如最大似然估计(maximum likelihood estimation,MLE)或条件平方和(conditional sum-of-squares,CSS)最小化,是不准确的,并且对方法估计的质量以及方法可以从估计中得到有用预测的程度没有任何提及。因此,仍然需要手动干预。虽然已经提出了ARIMA方法的自动参数化,但当趋势在截止期附近发生变化时,很容易出现大的趋势误差,而且这种自动参数化通常无法捕获季节性。
鉴于上述情况,开发用于检测和识别微服务应用平台的不稳定行为的方案并非是无关紧要的,不能通过利用现有的方法轻易解决。主要的困难来源是高噪声信号比、存在多重季节性频率和多个潜在分布,以及微服务应用产生的大量不同的时间序列。噪声信号比通常非常高,这是因为许多不同的组件会影响微服务应用的响应时间,如交换机、路由器、内存容量、CPU性能、编程语言、线程和进程并发、漏洞、用户请求量等。多重季节性频率与系统和用户行为相关,因为请求模式不同,例如,按小时(由于业务操作时间)、按日(由于系统维护任务)以及按月(由于循环模式)。
本发明的各方面是在考虑到上述挑战的情况下制定的。具体地,本发明的各方面涉及在实时系统架构下使用深度学习模型,以便检测和识别时间序列中的异常。该深度学习模型使用时间序列的显著特征作为输入,并捕获在微服务应用运行期间通常发生的多重季节性、趋势和分布。当检测到异常时,根据预定义的异常模式及其变化识别该异常的类型。
图1示出了本发明的一个方面提供的用于检测例如由微服务应用生成的连续事件中的异常的装置100的示例性框图。如图1所示,装置100包括存储器102和耦合到存储器102的处理器104。存储器102存储待由处理器104执行以检测事件中的异常的可执行指令106。
存储器102可以实现为现代电子计算机中使用的易失性或非易失性存储器。非易失性存储器的示例包括只读存储器(read-only memory,ROM)、闪存、铁电式随机存取存储器(random-access memory,RAM)、可编程ROM(programmable ROM,PROM)、电可擦除PROM(electrically erasable PROM,EEPROM)、固态驱动器(solid state drive,SSD)、磁盘存储器(如硬盘和磁带)、光盘存储器(如CD、DVD和蓝光光盘)等。易失性存储器的示例包括动态RAM、同步DRAM(synchronous DRAM,SDRAM)、双数据速率SDRAM(double data rateSDRAM,DDR SDRAM)、静态RAM等。
处理器104可以实现为中央处理单元(central processing unit,CPU)、通用处理器、单用途处理器、微控制器、微处理器、专用集成电路(application specificintegrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)、数字信号处理器(digital signal processor,DSP)、复杂可编程逻辑器件等。还需要说明的是,处理器104可以实现为上述一个或多个的任何组合。例如,处理器104可以是两个或更多个微处理器的组合。
存储在存储器102中的可执行指令106可以被配置为使处理器104执行本发明的各方面的计算机可执行代码。用于执行本发明各方面的操作或步骤的计算机可执行代码可以用Java、C++等一种或多种编程语言的任何组合编写。在一些示例中,计算机可执行代码可以是高级语言的形式或预编译的形式,并由解释器(也预先存储在存储器102中)动态生成。
图2示出了本发明的另一方面提供的用于检测连续事件中的异常的方法200的示例性框图。预期在装置100的处理器104执行可执行指令106时由处理器104执行方法200。方法200包括步骤S202-S212。在步骤S202中,首先指示处理器104通过生成事件属性和关联的属性值的对来记录每个新事件。之后,在步骤S204中,指示处理器104将具有相同事件属性的对分组到当前时间序列中。接下来,在步骤S206中,处理器104从当前时间序列中检索以下特征:指示属性值的变化模式的信号特征、指示相同事件属性中的每个事件属性已经发生的上下文的上下文特征,以及指示属性值之间的时间相关性的时间特征。在步骤S208中,处理器104将信号特征、上下文特征和时间特征组合成特征向量。此外,在步骤S210中,处理器104检查当前时间序列的特征向量是否对应于预先存储的基线模型。所述基线模型是根据非监督式机器学习算法使用多个过去时间序列的特征向量获得的,所述多个过去时间序列包括与所述当前时间序列相同的事件属性。最后,在步骤S212中,如果特征向量与基线模型之间没有对应关系,则指示处理器104将当前时间序列与异常关联。现在将关于微服务应用更详细地描述步骤S202-S212中的每个步骤。
具体地,图3示出了示例性微服务应用平台300,装置100与该微服务应用平台300连接以执行关于微服务应用的方法200。微服务应用平台300用于向终端用户或客户端302提供特定服务。这需要在网络计算机304-308中实现的多个微服务之间进行数据或消息通信和交互(如图3中的双头箭头所示)。在该示例中,两个微服务应用304a和304b在网络计算机304中实现,三个微服务应用306a-306c在网络计算机306中实现,三个微服务应用308a-308c在网络计算机308中实现。每个计算机网络中的每个微服务应用执行特定的且有价值的功能。此外,微服务应用用于通过使用跟踪库客户端生成跟踪数据(如图3中的黑框所示)。跟踪数据由所谓的跨度组成。这些跨度包含大量信息,这些信息正好可以用于检测微服务应用运行中发生的异常。通常,每个跨度都表征了由微服务应用生成的特定事件,并且是描述微服务应用在给定时间ti的状态、性能和其它特征的属性值对(pi,vi)。例如,如果属性是表征微服务内调用的持续时间(即响应时间),并且其值在时间ti、ti+1、ti+2突然增加,则这可能指示微服务应用存在问题。这些跨度由跟踪库客户端发送到跟踪服务器310(参见图3中的虚线箭头),跟踪服务器310又将这些跨度转发到装置100,以供进一步使用。在一个实施例中,可以通过使用高级消息队列协议(advanced message queuing protocol,AMQP)标准作为异步通信模型将跨度从跟踪服务器310传输到装置100。
图4示出了包含多个字段的跨度的一个示例,例如:span_name、span_ID、Trace_ID、Parent_ID、端点、时间戳、持续时间、host_IP、http_url、microservice_name、service_name等。这些字段中的每个字段都可以被装置100的处理器104另外使用,以提高异常检测的准确性,如将进一步示出。如下图4所示,示例性跨度还具有注释,这些注释由微服务应用添加到跨度中,以描述微服务应用已经完成的处理。每个注释都可以与时间戳关联,以标识执行处理或动作的时间。注释的示例包括例外、错误、传递给远程函数的参数、数据库中的结构化查询语言(structured query language,SQL)语句问题、租户数据等。
回到方法200,步骤S202基本上表示上述分布式跟踪操作,该操作旨在生成表征由微服务应用生成的每个新事件的跨度。在步骤S204中,相同类型的跨度,或者换句话说,具有相同属性的对被分组在一起,以形成集群或时间序列{X1,X2,...,XT},其中,下标表示时间,Xi是关联的跨度(pi,vi)。同时,在步骤S210中,通过考虑例如图4的字段中示出的跨度的其它特征(即时间戳、持续时间、host_IP、http_url、microservice_name、service_name等)来进一步高效地细化所述分组,如稍后描述。这种细化的分组具有几个好处:将同一时间序列下的彼此更相似的跨度分组,而不是将其它时间序列中的彼此更相似的跨度分组;减少了需要分析的不同时间序列的数量;增加了时间序列的长度,使时间序列在分析异常存在方面的内容更加丰富。在步骤S204中进行分组之后,为跨度提供其cluster_ID,以供进一步处理。
在一个实施例中,可以另外根据跨度的端点(即跨度的http_url)对跨度进行分组。例如,以下端点:
–/v2/07fbe5487fd54345b37e3106098f9595/servers/3b5add0a-7d1c-4440-bb7f-158cc38c1e4f,
–/v2/830058a3dc53414d85e2daf23853b91b/servers/54b431c8-18c7-462c-8bac-55b1d9f94498,
–/v2/ed43d1006b5044a499431fa9284791ae/servers/4aad6b4e-e870-4c2c-a69a-e088aa20c29e,
可以通过使用以下正则表达式分配给cluster_id:‘/v2/{tenant_id}/servers/{server_id}’:
‘/v2/[0-9a-f]{32}/servers/[0-9a-f]{8}\-[0-9a-f]{4}\-[0-9a-f]{4}\-[0-9a-f]{4}\-[0-9a-f]{12}\Z’。
对其它的跨度组执行相同的程序,例如:
{host}/v1.0/{project_id}/groups/{group_id}/logs。
例如,图5示出了以下cluster_id的由x轴上的跨度时间戳和y轴上的跨度持续时间形成的跨度时间序列:{host}/v2/{tenant_id}/servers/{server_id}。为清楚起见,图5中还示出了同一时间序列的一个跨度的示例性附加字段(参见箭头指示的插入)。需要说明的是,在图5中持续时间值的单位为毫秒,后面的数字说明了类似的依赖关系。
在方法200的步骤S204中获得的跨度的时间序列进一步用于研究微服务应用的动态。具体地,该研究在步骤S206中实现,现在将参考图6结合步骤S208更详细地描述。
更具体地,图6示出了用于实现方法200的步骤S206和S208的流水线流程图600。流水线流程图600从步骤S602开始,其中,装置100的处理器104接收在方法200的步骤S204中获得的跨度的时间序列。之后,流水线流程图600划分成三个流水线P1-P3,每个流水线P1-P3旨在从时间序列中检索一种类型的特征。具体地,流水线P1用于检索信号特征,流水线P2用于检索上下文特征,流水线P3用于检索时间特征。步骤S602和流水线P1-P3构成方法200的步骤S206,如图6中虚线大括号示意性示出。
流水线P1又包括三个步骤S604-S608。步骤S604是从时间序列中删除离群值所需的清理步骤。删除离群值是必不可少的,因为离群值对异常检测的准确性产生负面影响。清理步骤可以通过使用广义极端学生偏差(extreme studentized deviate,ESD)测试来执行。但是,广义ESD测试不应被解释为对本发明的任何限制,并且可以根据特定的应用被任何其它清理技术取代。
需要说明的是,在这种情况下,跨度的持续时间被选择作为事件属性的一个示例,通常形成具有正偏斜度的分布:右尾部更长;分布的质量在左侧;不对称且值不能为负。由于本发明的各方面涉及的深度学习模型的内部工作,需要对输入数据进行标准化以实现收敛。因此需要流水线P1中的下一步骤S606,该步骤是转换和归一化步骤。根据步骤S606,首先通过对数转换来转换跨度的持续时间。这种转换减少了正偏斜度,并将时间序列转换为高斯分布,这对归一化非常重要。归一化最好通过对区间[0,1]使用最小-最大缩放(min-max scaling)来执行,因为其它归一化方法(如N(0,1)标准化)可能会产生在处理时间序列时没有自然意义的负值。最小-最大缩放定义如下:
Figure BDA0003119804050000081
值min(X)和max(X)可以保存在数据库DB1中,该数据库DB1例如驻留在装置100的存储器102中。这样可以在向时间序列添加新跨度的情况下节省计算值min(X)和max(X)所需的计算资源。换句话说,只需检查新跨度的持续时间值是否在min(X)至max(X)的范围内,如果是这种情况,则预先存储的值min(X)和max(X)可用于再次执行所述最小-最大缩放。
但是,转换和归一化,即步骤S606,具有一个显著的缺点:关于持续时间范围的信息丢失。因此,必须使用具有鲁棒度量的滑动窗口提取时间序列的中心性(即median(X)),以捕获持续时间的范围。这应在应用日志转换之前完成。将捕获介数中心性的变量称为md_duration。
在归一化之后,需要降低微服务应用生成的跨度中存在的噪声,以提高异常检测的准确性。这在流水线P1的步骤S608中完成。步骤S608包括将具有窗口大小W的汉明平滑滤波器应用于持续时间值:
Figure BDA0003119804050000082
窗口大小W最好设置为12,因为已发现该值适用于大多数类型的微服务应用。尽管如此,在高易失性应用的情况下,窗口大小W应增加到范围12-30内的值。将捕获转换后的信号的变量称为tn_duration。因此,流水线P1的结果由变量md_duration和tn_duration表示。
流水线P2由单个步骤S610表示,该步骤S610包括从时间序列中检索上下文特征。虽然方法200的步骤S204提供所谓的基于同一属性的跨度的显式分组,但上下文特征可以使非监督式机器学习算法在方法的步骤S210中额外执行所谓的跨度的隐式分组。这最终可以提高异常检测的准确性。为了更容易理解,考虑以下示例。假设运行微服务应用的一台主机的性能会影响生成的跨度中记录的持续时间。因此,使属性host_IP与属性持续时间相关。如果仅执行显式分组,并且如果具有IPi的主机发生故障,则不稳定或异常行为的检测和识别变得困难,因为时间序列包含来自不同主机……,IPi–2、IPi–1、IPi+1、IPi+2,……的不同重叠信号。
跨度可以具有除属性持续时间以外的几个属性,如图4所示。例如,可以提取以下属性,以使用非监督式机器学习算法进一步对跨度进行隐式分组:
–microservice_name是生成跨度的微服务应用的名称;
–service_name是微服务应用所属的服务的名称;
–host_IP是微服务应用生成跨度时运行的主机/服务器的IP;
–cluster_ID是方法200的步骤S204中分配给跨度的标识符。
这些属性可以检索为上下文特征,这些上下文特征可以使非监督式机器学习算法额外执行跨度的隐式分组,从而提高异常检测的准确性。隐式分组的动机是:跨度的显式分组(即步骤S204)提供了更通用方法来对跨度进行分组,但仍可以隐藏细粒度的、有意义的信息。
例如,图7A至图7D示出了跨度的隐式分组如何提高异常检测的准确性。更具体地,图7A示出了表示持续时间值对的跨度的时间序列,该时间序列仅通过使用跨度的显式分组获得。时间序列具有以下cluster_id:{host}/v2/{tenant_id}/servers/{server_id}。很难在视觉上找到图7A所示的时间序列中的异常。但是,如果使用host_IP进一步对跨度进行隐式分组,则情况会得到改善。具体地,图7C示出host_IP为192.144.71.37的主机是不稳定的,而图7B和图7D示出host_IP分别为192.144.71.6和192.144.71.9的另外两台主机是正常的。
再次参考图6,流水线P3由单个步骤S612表示,该步骤S612包括从时间序列中检索时间特征。时间特征指定属性值如何与时间方面(如季节性)相关。例如,如果周末存在过去较低的持续时间值,则可能意味着周末的未来持续时间值较低。一般来说,由于微服务应用随着时间的推移迅速变化,因此它们可以包含双重或三重季节性。术语“季节性”是指在特定的定期时间间隔(如每小时、每天、每周、每月或每季度)发生的变化。时间序列中也可以存在多重季节性。例如,微服务应用的特征可以是每周季节性(例如,微服务应用在一周内更频繁使用)和每日季节性(例如,微服务应用在清晨和傍晚更频繁使用)。时间特征可以按以下格式从跨度的属性时间戳中检索:DD-MM-YYYY HH:MM:SS.MILISECONDS。
此格式可以使非监督式机器学习算法额外提取:
–一周中的日(从1到7),捕获每周季节性。
–一天中的小时(从1到24),捕获每日季节性。
度相关性(从1到12),捕获每月季节性。
提取的值可以使用单热编码转换,并在方法200的步骤S208中与流水线P1和P2的结果一起用作输入,以便组合到时间序列的特征向量中。然后,特征向量可以存储在数据库DB1中,以供进一步处理。
回到方法200,现在将参考图8更详细地描述步骤S210。如上所述,步骤S210涉及检查时间序列的特征向量与基线模型的对应关系。基线模型实现了一类分类,以对感兴趣的系统的正常行为进行建模,从而假设感兴趣的系统大部分时间都是稳定的。如果与基线模型存在任何偏差,则得出结论,感兴趣的系统变得不稳定或异常。一般来说,基线模型是根据对数千甚至数百万个不同的跨度的过去时间序列的正态性分析获得的,这些时间序列通常是噪声的、季节性的和非平稳的。因此,本发明的方面涉及使用非监督式机器学习算法来捕获多个过去时间序列之间的不同相似性。机器学习算法是非监督的,这一点非常重要,因为在这种情况下,机器学习算法可以最大程度减少用户参与,从而使异常检测几乎自动化。
图8示出了如何通过使用滑动窗口与非监督式机器学习算法协同获得基线模型。再次假设图8中所示的时间序列与微服务应用相关。基线模型是根据从滑动窗口W–40到W1生成的跨度学习获得的。当分析下一个滑动窗口W2的异常时,将该滑动窗口W2与滑动窗口W–40、W39、……、W0和W1进行比较。结果是,滑动窗口W2是稳定的,因为在过去(即在滑动窗口W–40中)观察到类似的行为(例如,类似的尖峰)。相比之下,现有方案(如ARIMA和ESD方法)将只能存储和比较滑动窗口W2与有限数量的先前滑动窗口,以检测异常或正常。这将导致误报的产生,因为当例如使用滑动窗口W1作为参考点时,滑动窗口W2似乎是不稳定的或异常的。
根据本发明的各方面,非监督式机器学习算法通过使用作为一种深度学习技术的至少一个递归神经网络来执行。图9示出了用于获得基线模型的递归神经网络的示例性架构900。架构900包括以下构建块:重塑块902、输入层904、第一隐藏层906、采样层908、重复层910、第二隐藏层912和输出层914。本领域技术人员应当清楚,架构900的每个构建块可以实现为由装置100的处理器104执行的软件组件或模块。此外,这些软件组件或模块然后可以存储在装置100的存储器102中,使得处理器104可以访问存储器102以在更新基线模型的情况下检索这些软件组件或模块。
重塑块902负责定义参数window_size以设置滑动窗口所包含的跨度的数量。建议window_size为32,但可以针对更易失的微服务应用进行调整。由于递归神经网络不适用于超过100-300个跨度的时间序列(在较长的时间序列中仍然有效,但可以逐渐忘记来自最旧跨度的信息),因此时间序列被分为更小的子序列。例如,包括3000个跨度的时间序列被分为多个重叠的子序列,每个子序列包括32个跨度。这还可以加快学习速度,减少信息丢失。
因此,将具有给定window_size且步长等于1的滑动窗口应用于时间序列,从而得到以下跨度的子序列集Q:
Figure BDA0003119804050000101
显然,每个子序列的大小等于window_size。对于具有N个跨度的时间序列,该程序之后的数据结构尺寸被定义为:
D=(N–windowsize,window_size,n_features),
其中,n_features是每个过去时间序列的特征向量中包括的特征。如图6所示,这些特征可以包含:tn_duration、md_duration、服务名称、微服务名称、host_IP、一周中的天数、一天中的小时、月度相关性和cluster_ID。所有特征向量都被分为两部分,一部分用于学习,另一部分(占20%)用于学习操作期间的验证。然后,针对每个过去时间序列呈现为D的数据结构被馈送到由层904-914形成的递归神经网络的输入层904中。
第一隐藏层906可以使基线方法从过去学习。为此目的,第一隐藏层906包括门控递归单元(gated recurrent unit,GRU)单元,每个时间步数被设置为window_size/2。一般来说,GRU单元基本上表示实现“存储”扩展时间步数的信息的机制。每个window_size输入被馈送到第一隐藏层906。在第一时间步T=0,馈送第一特征集。对于window_size=32个跨度,在16个GRU单元中学习的抽象表示传播到下一个时间步T=1,在该时间步中,馈送窗口的特征。这导致在给定过去跨度的情况下调节下一个跨度的重构。以这种方式,跨度窗口的抽象表示在最后一个时间步提供。该表示保存时间序列的该部分的显著信息。
采样层908由window_size/4个单元组成,所述window_size/4个单元从具有给定平均值和方差的多元正态分布中执行采样。计算验证数据的每个样本的均方误差(meansquared error,MSE),并使用下式估计MSE评分的平均值和方差:μ,δ=fit_normal(MSE)然后,将使用这些参数来检查预测分布与看不见的跨度的拟合程度,即它将检查以下条件的成立情况:
Figure BDA0003119804050000112
重复层910将采样层908重复window_size次,该window_size被馈送到由第二隐藏层910表示的下一层中。第二隐藏层910具有与第一隐藏层906相同的目标。更具体地,第二个隐藏层学习抽象表示,其输出具有相同的window_size输入时间步数,但仅以跨度持续时间作为特征。然后,输出层914用于编码输入的抽象表示。
上面讨论的递归神经网络的建议学习参数如下:最大1000个周期,和学习率为0.001的Adam优化器。还建议在学习操作期间使用模型检查点保存验证数据上的最佳基线模型。最后,当学习操作完成时,将基线模型存储在装置100的存储器102中的专用数据库中。
图10示出了用于实现方法200的步骤S210的流程图1000。流程图1000从以下操作开始:当微服务应用生成新的跨度(即新事件)(这显然会产生新的时间序列)时,读取保存在装置100的内存缓冲区中用于快速处理的先前window_size个跨度:{Xi–ws,Xi–ws–1,…,Xi–1},其中,ws表示参数window_size。总共读取(ws+1)个跨度。给定在时间ti生成的新跨度,检查新跨度是否在前面的跨度中呈现。如果不是这种情况,则流程图进行到步骤S1002,其中,基线模型从专用数据库(在图10中表示为“DB2”)下载,并用于生成恢复的特征向量。
当生成恢复的特征向量时,流程图1000进行到步骤S1004,其中,计算恢复的特征向量与新时间序列的特征向量之间的距离。例如,可以使用通过以下公式定义的均方误差(mean squared error,MSE)计算该距离:
Figure BDA0003119804050000111
其中,xi是新时间序列中跨度的持续时间,yi是重构的持续时间。此外,步骤S1004涉及计算概率密度函数p=1–P(x>MSE)或累积分布函数CDF(x,μ,δ2),其中,p(x)是高斯分布或学生-t分布。两个概率密度函数的参数是先前计算并存储在数据库DB2中的μ和δ2。最好使用具有1自由度的学生-t分布,因为与高斯分布相比,其更长的尾部实际上会增加有效的可能阈值的范围。
在大规模微服务应用中,在短时间内记录了数千个跨度。与正常行为相比,执行微服务调用需要更多时间的情况是可能的。这些情况通常是表示离群值,并不表示微服务应用的运行异常。根本原因可能是物理磁盘(所谓的磁盘IO)上输入/输出操作出现短暂瓶颈。如果没有合适的技术,则离群值就会错误地触发异常检测。因此,为了消除这种类型的误报,流程图1000包括步骤S1006和S1008,要求在指示持续异常之前,将多个跨度单独分类为时间序列中的异常。具体地,步骤S1006包括接收公差和误差阈值参数。公差是允许在时间序列中存在的异常跨度的数量,以便考虑时间序列仍然正常。实际上,该数字的范围为1到100,但可以根据微服务应用的动态进行调整。将在前一步骤S1004中计算的概率密度函数的输出Ptest保存在大小等于公差的高速缓存(队列)中。每次分析时间序列中的新跨度时,在步骤S1008中检查队列中所有点的平均概率
Figure BDA0003119804050000121
是否大于误差阈值。如果是这种情况,则在方法200的步骤S212中,时间序列被认为是异常的,并且由表征异常的第一窗口的时间戳和最后一个窗口的时间戳构成的元组(即[t1–tn])可以进一步用于识别异常类型,如下文将讨论。
更具体地,所述识别异常类型可以被视为方法200的附加步骤,该步骤在步骤S212中将异常与时间序列关联之后由处理器104执行。但是,在识别异常类型之前,需要获得识别模型。图11示出了用于根据用户定义的异常模式及其变化获得识别模型的示例性流程图1100。流程图1100从步骤S1102开始,该步骤S1102包括接收用户定义的异常模式,并根据用户定义的异常模式的变化生成其它异常模式。用户定义的异常模式的变化意味着用从数据库DB3下载的多个过去时间序列来扩充用户定义的异常模式,该数据库DB3也可以包括在装置100的存储器102中。具体地,扩充是一种用于人为扩展感兴趣的数据集的技术。例如,可以通过使用平移和添加少量可控制的噪声来执行扩充。用户定义的异常模式的一些示例如图12所示,包括不同的阶梯变化、尖峰变化、逐渐变化等。在一个实施例中,用户定义的异常模式最初可以由用户302使用任何图形工具(例如,触控笔、鼠标指针等)绘制。在这种情况下,用户定义的异常模式应简单地转换为(ti,vi)形式的特定时间序列,其中,ti是时间,vi是属性值,如持续时间值。由用户302预定义并在步骤S1102中生成的每个异常模式对应于单独的异常类,此外,还对应于正常类。类由pattern_ID标识,该pattern_ID可以表示从0到异常模式数量的数字。
当生成所有可能的异常模式时,流程图1100进行到步骤S1104,该步骤S1104包括根据监督式机器学习算法使用来自步骤S1102的异常模式生成识别模型。识别模型应定义不同异常模式与关联的时间序列之间的映射。在步骤S1104中使用的机器学习算法是监督式的,因为它需要包括上述用户定义的异常模式的用户输入。在一个实施例中,监督式机器学习算法通过使用至少一个卷积神经网络执行。在这种情况下,卷积神经网络是优选的,因为这种类型的神经网络可以通过将隐藏层中神经元之间的连接数量限制为仅一些输入神经元(称为局部感受野)来减少待学习的参数的数量,同时能够学习输入数据的显著特征。
卷积神经网络的一个合适的架构可以通过使用两个主要构建块来实现,这些构建块可以重复应用以提供更深入的机器学习。卷积神经网络的第一个构建块由卷积层表示,卷积层由若干神经元组组成。这些神经元组被称为滤波器或核,这对于本领域技术人员来说应该是已知的。神经元组充当自动滤波器。每个滤波器都有在学习操作期间调整的权重。将输入数据与滤波器卷积来生成特征映射。当时间序列具有局部属性时,这尤其有益,这些局部属性例如峰点、水平或垂直边缘、强度等,可以通过卷积神经网络的下一个更深层次学习。
卷积神经网络的第二个构建块是池化层,池化层通常应用于所述卷积之后的特征映射。池化层可以实现学习特征的一些平移不变性。最大池化通常被应用于输入特征映射的非重叠集,可以解释为自动特征提取。卷积神经网络中的卷积或池化层越多,从待分析的时间序列中检索特征就越复杂。
在一个实施例中,步骤S1104中使用的卷积神经网络可以设计如下:
–输入层(长度=window_size,维度=1,即只考虑属性值,如关于微服务应用的持续时间值);
–第1卷积层(包括16个使用激活函数=“ReLu”的滤波器);
–第1最大池化层;
–第2卷积层(包括32个使用激活函数=“ReLu”的滤波器);
–第2最大池化层;
–第3卷积层(包括64个使用激活函数=“ReLu”的滤波器);
–第1密集层(神经元的激活函数=“Tanh”);
–第2密集层(神经元的激活函数=“softmax”)。
该卷积神经网络结合了卷积层和最大池化层,然后是为给定的异常模式分配概率的tanh和soft-max密集层。tanh激活函数能够明确区分类预测。soft-max函数是一个广义逻辑激活函数,用于多类分类。一旦准备好,识别模型应存储在数据库DB3中,以供进一步使用。
图13示出了用于识别与时间序列关联的异常的示例性流程图1300。流程图1300从以下步骤开始:接收在方法200的步骤S212中检测为异常的时间序列S={X1,X2…XT}。时间序列包括同一属性的多个跨度,例如微服务应用的持续时间或响应时间。此外,流程图1300进行到步骤S1302,该步骤S1302包括通过使用具有预定义大小的滑动窗口将接收到的时间序列分为多个时间段,并通过使用识别模型检测时间段中的至少一个异常模式。滑动窗口的大小可以等于上面参考图6讨论的一个相同值。步骤S1302的结果是:为每个时间段提供对应的pattern_ID,用于指示正常类或不同异常类中的任何一个,如上所述。此外,流程图1300前进到步骤S1304,该步骤S1304包括通过在步骤S1302中检测到的异常模式的信任度对这些异常模式进行排序。尽管信任度在图13中由排序表示,但这不应被视为对本发明的任何限制,并且可以根据特定的应用使用任何其它类型的信任度。步骤S1304用于指示整个时间序列中最可能存在的异常。例如,对于异常时间序列,只可以选择排序第一的异常模式。
此外,流程图1300涉及向用户示出所选异常模式的描述。这种描述可以包括指示pattern_ID、所选异常模式的开始和结束跨度等的信息。在一个实施例中,用户可以使用这种描述来检查它是否对应于地面真值,因为在时间序列中检测到的异常模式可能构成误报。因此,流程图1300包括步骤S1306,其中,用户可以指示识别是否正确。如果需要,该反馈可接着用于更新识别模型。一般来说,可能出现以下三个结果:
(1)如果排序第一的异常模式被正确地识别,则在步骤S1308中为该排序第一的异常模式提供正标记;
(2)如果排序第一的异常模式被错误地识别,并且其余的排序的异常模式被错误地检测到(参见步骤S1310中的“否”),则在步骤S1312中为该排序第一的异常模式提供负标签;
(3)如果排序第一的异常模式被错误地识别,但存在至少一个其它异常模式(参见步骤S1310中的“是”),即发生了错误分类,则在步骤S1314中用正确的pattern_ID重新标记时间序列,并将该时间序列存储在数据库DB3中,以供重用。换句话说,针对时间序列重新选择所述至少一个其它异常模式,而不是排序第一的异常模式。
此外,流程图1300还包括步骤S1316,其中,检查结果(1)至(3)中的任何一个或多个发生的次数是否超过预定义阈值k。当该数字超过阈值k时,应该根据图11中所示的流程图1100再次学习或细化识别模型,但现在根据监督式机器学习算法使用选择的排序第一的异常模式再次学习或细化识别模型。
本领域技术人员应该理解,本文描述的方法或流程图的每个块或步骤,或这些块或步骤的任何组合,可以通过硬件、固件和/或软件等各种手段实现。例如,上述块或步骤中的一个或多个可以由计算机可执行指令、数据结构、程序模块和其它合适的数据表示来体现。此外,体现上述块或步骤的计算机可执行指令可以存储在对应的数据载体上,并由至少一个处理器(如装置100的处理器104)执行。该数据载体可以实现为用于可由所述至少一个处理器读取以执行计算机可执行指令的任何计算机可读存储介质。这种计算机可读存储介质可以包括易失性介质和非易失性介质、可移动介质和不可移动介质。作为示例而非限制,计算机可读介质包括以任何适合存储信息的方法或技术实现的介质。更详细地,计算机可读介质的实际示例包括但不限于信息传递介质、RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能光盘(digital versatile disc,DVD)、全息介质或其它光盘存储器、磁带、磁带盒、磁盘存储器和其它磁存储设备。
尽管本文描述了本发明的示例性实施例,但需要说明的是,在不偏离由所附权利要求书所定义的法律保护范围的情况下,可以在本发明的实施例中进行任何各种更改和修改。在所附权利要求书中,词语“包括”不排除其它元件或步骤,术语“一”或者“一个”不排除多个。在互不相同的从属权利要求中列举某些措施并不表示这些措施的组合不能被有效地使用。

Claims (21)

1.一种用于检测连续事件中的异常的方法,其特征在于,包括:
通过生成事件属性和关联的属性值的对来记录每个新事件;
将具有相同事件属性的对分组到当前时间序列中;
从所述当前时间序列中检索指示所述属性值的变化模式的信号特征、指示所述相同事件属性中的每个事件属性已经发生的上下文的上下文特征,以及指示所述属性值之间的时间相关性的时间特征,
将所述信号特征、所述上下文特征和所述时间特征组合成特征向量,
检查所述当前时间序列的特征向量是否对应于预先存储的基线模型,所述基线模型是根据非监督式机器学习算法使用多个过去时间序列的特征向量获得的,所述多个过去时间序列包括与所述当前时间序列相同的事件属性;
如果所述特征向量与所述基线模型之间没有对应关系,则将所述当前时间序列与所述异常关联。
2.根据权利要求1所述的方法,其特征在于,所述事件与微服务应用相关。
3.根据权利要求1或2所述的方法,其特征在于,所述检索所述信号特征包括:
从所述当前时间序列中删除离群值;
将所述当前时间序列转换为正态分布且归一化的数据集;
向所述数据集应用降噪操作,以检索所述属性值的所述变化模式。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述非监督式机器学习算法通过使用至少一个递归神经网络执行。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述检查包括:
根据所述基线模型生成恢复的特征向量;
估计所述恢复的特征向量与所述当前时间序列的所述特征向量之间的距离;
如果所述距离大于预定义阈值,则确定所述当前时间序列的所述特征向量与所述基线模型之间没有对应关系。
6.根据权利要求1至5中任一项所述的方法,其特征在于,还包括:
接收用户输入,所述用户输入包括预定义异常模式,每个异常模式表征特定异常类型;
根据监督式机器学习算法使用所述预定义异常模式和所述预定义异常模式的不同变化来获得识别模型,所述识别模型定义所述异常模式与关联的时间序列之间的映射;
根据所述识别模型识别与所述当前时间序列关联的所述异常类型。
7.根据权利要求6所述的方法,其特征在于,所述监督式机器学习算法通过使用至少一个卷积神经网络执行。
8.根据权利要求6或7所述的方法,其特征在于,所述识别包括:
通过使用具有预定义大小的滑动窗口将所述当前时间序列划分为多个时间段;
通过使用所述识别模型检测所述时间段中的至少一个异常模式,所述至少一个异常模式中的每个异常模式具有信任度;
根据所述信任度对所述至少一个异常模式进行排序;
为所述当前时间序列选择排序第一的异常模式。
9.根据权利要求8所述的方法,其特征在于,还包括:
i).如果所述排序第一的异常模式被正确地选择,则为所述排序第一的异常模式提供正标签;或
ii).如果所述排序第一的异常模式被错误地选择,并且所述排序的异常模式中的其余排序的异常模式被错误地检测到,则为所述排序第一的异常模式提供负标签;或
iii).如果所述排序第一的异常模式被错误地选择,则重新选择所述当前时间序列的所述排序的异常模式中的其余排序的异常模式中的任何一个。
10.根据权利要求9所述的方法,其特征在于,还包括:如果步骤(i)至(iii)中的任何一个或多个步骤发生的次数超过预定义阈值,则根据所述监督式机器学习算法使用所述选择的排序第一的异常模式修改所述识别模型。
11.一种用于检测连续事件中的异常的装置,其特征在于,包括:
至少一个处理器;
存储器,耦合到所述至少一个处理器,并存储处理器可执行指令,当所述至少一个处理器执行所述处理器可执行指令时,使所述至少一个处理器:
通过生成事件属性和关联的属性值的对来记录每个新事件;
将具有相同事件属性的所述对分组到当前时间序列中;
从所述当前时间序列中检索指示所述属性值的变化模式的信号特征、指示所述相同事件属性中的每个事件属性已经发生的上下文的上下文特征以及指示所述属性值之间的时间相关性的时间特征,
将所述信号特征、所述上下文特征和所述时间特征组合成特征向量,
检查所述当前时间序列的特征向量是否对应于预先存储的基线模型,所述基线模型是根据非监督式机器学习算法使用多个过去时间序列的特征向量获得的,所述多个过去时间序列包括与所述当前时间序列相同的事件属性;
如果所述特征向量与所述基线模型之间没有对应关系,则将所述当前时间序列与所述异常关联。
12.根据权利要求11所述的装置,其特征在于,所述事件与微服务应用相关。
13.根据权利要求11或12所述的装置,其特征在于,所述至少一个处理器用于通过以下步骤检索所述信号特征:
从所述当前时间序列中删除离群值;
将所述当前时间序列转换为正态分布且归一化的数据集;
向所述数据集应用降噪操作,以检索所述属性值的所述变化模式。
14.根据权利要求11至13中任一项所述的装置,其特征在于,所述至少一个处理器还用于通过在所述非监督式机器学习算法中使用至少一个递归神经网络来初步获得所述基线模型。
15.根据权利要求11至14中任一项所述的装置,其特征在于,所述至少一个处理器用于通过以下步骤检查所述当前时间序列的所述特征向量是否对应于预先存储的基线模型:
根据所述基线模型生成恢复的特征向量;
估计所述恢复的特征向量与所述当前时间序列的所述特征向量之间的距离;
如果所述距离大于预定义阈值,则确定所述当前时间序列的所述特征向量与所述基线模型之间没有对应关系。
16.根据权利要求11至15中任一项所述的装置,其特征在于,所述至少一个处理器用于:
接收用户输入,所述用户输入包括预定义异常模式,每个预定义异常模式表征特定异常类型;
根据监督式机器学习算法使用所述预定义异常模式和所述预定义异常模式的不同变化来获得识别模型,所述识别模型定义所述异常模式与关联的时间序列之间的映射;
根据所述识别模型识别与所述当前时间序列关联的所述异常类型。
17.根据权利要求16所述的装置,其特征在于,所述至少一个处理器用于在所述监督式机器学习算法中使用至少一个卷积神经网络。
18.根据权利要求16或17所述的装置,其特征在于,所述至少一个处理器用于通过以下步骤识别所述异常类型:
通过使用具有预定义大小的滑动窗口将所述当前时间序列划分为多个时间段;
通过使用所述识别模型检测所述时间段中的至少一个异常模式,所述至少一个异常模式中的每个异常模式具有信任度;
根据所述信任度对所述至少一个异常模式进行排序;
为所述当前时间序列选择所述排序第一的异常模式。
19.根据权利要求18所述的装置,其特征在于,所述至少一个处理器还用于:
i).如果所述排序第一的异常模式被正确地选择,则为所述排序第一的异常模式提供正标签;或
ii).如果所述排序第一的异常模式被错误地选择,且其它异常模式未被检测到,则为所述排序第一的异常模式提供负标签;或
iii).如果所述排序第一的异常模式被错误地选择,则重新选择所述当前时间序列的排在下一个异常模式。
20.根据权利要求19所述的装置,其特征在于,所述至少一个处理器还用于:如果操作(i)至(iii)中的任何一个或多个操作发生的次数超过预定义阈值,则根据所述监督式机器学习算法使用所述选择的排序第一的异常模式修改所述识别模型。
21.一种计算机程序产品,其特征在于,包括存储有计算机程序的计算机可读存储介质,其中,当至少一个处理器执行所述计算机程序时,使所述至少一个处理器执行权利要求1至10中任一项所述的方法。
CN201880100295.6A 2018-12-17 2018-12-17 检测连续事件中的异常的装置和方法及其计算机程序产品 Pending CN113228006A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2018/085257 WO2020125929A1 (en) 2018-12-17 2018-12-17 Apparatus and method for detecting an anomaly among successive events and computer program product therefor

Publications (1)

Publication Number Publication Date
CN113228006A true CN113228006A (zh) 2021-08-06

Family

ID=65009699

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880100295.6A Pending CN113228006A (zh) 2018-12-17 2018-12-17 检测连续事件中的异常的装置和方法及其计算机程序产品

Country Status (3)

Country Link
EP (1) EP3871120A1 (zh)
CN (1) CN113228006A (zh)
WO (1) WO2020125929A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114881112A (zh) * 2022-03-31 2022-08-09 北京优特捷信息技术有限公司 一种系统异常检测方法、装置、设备及介质
CN115080555A (zh) * 2022-08-18 2022-09-20 北京融信数联科技有限公司 一种基于信令获取人口数据判别离群点的方法、系统和介质
CN116341016A (zh) * 2023-05-31 2023-06-27 济南大陆机电股份有限公司 一种大数据安全存储方法及系统

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022053163A1 (en) * 2020-09-14 2022-03-17 Huawei Cloud Computing Technologies Co., Ltd. Distributed trace anomaly detection with self-attention based deep learning
US11947439B2 (en) * 2020-11-30 2024-04-02 International Business Machines Corporation Learning from distributed traces for anomaly detection and root cause analysis
CN113360899B (zh) * 2021-07-06 2023-11-21 上海观安信息技术股份有限公司 一种机器行为的识别方法及系统
CN114095241A (zh) * 2021-11-18 2022-02-25 中国电信股份有限公司 检测方法、装置及计算机可读存储介质
US11983093B2 (en) 2022-03-24 2024-05-14 Amazon Technologies, Inc. Tracking status of managed time series processing tasks
CN116306937B (zh) * 2023-03-22 2023-11-10 中航信移动科技有限公司 一种基于时间序列离线数据的规则提取方法、介质及设备

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120290879A1 (en) * 2009-08-28 2012-11-15 Hisae Shibuya Method and device for monitoring the state of a facility
CN104615911A (zh) * 2015-01-12 2015-05-13 上海交通大学 基于稀疏编码及链学习预测膜蛋白beta-barrel跨膜区域的方法
US20150363925A1 (en) * 2013-01-22 2015-12-17 Hitachi, Ltd. Anomaly Diagnosis Method and Apparatus
CN105764162A (zh) * 2016-05-10 2016-07-13 江苏大学 一种基于多属性关联的无线传感器网络异常事件检测方法
US20160217022A1 (en) * 2015-01-23 2016-07-28 Opsclarity, Inc. Anomaly detection using circumstance-specific detectors
US20160219067A1 (en) * 2015-01-28 2016-07-28 Korea Internet & Security Agency Method of detecting anomalies suspected of attack, based on time series statistics
CN106104496A (zh) * 2014-03-18 2016-11-09 微软技术许可有限责任公司 用于任意时序的不受监督的异常检测
US20170076217A1 (en) * 2015-09-16 2017-03-16 Microsoft Technology Licensing, Llc Localized anomaly detection using contextual signals
CN106796157A (zh) * 2014-07-25 2017-05-31 苏伊士集团 检测配送网络、特别是饮用水配送网络中的异常的方法
US20180039555A1 (en) * 2016-08-04 2018-02-08 Oracle International Corporation Unsupervised method for baselining and anomaly detection in time-series data for enterprise systems
CN108584592A (zh) * 2018-05-11 2018-09-28 浙江工业大学 一种基于时间序列预测模型的电梯轿厢振动异常预警方法
US20180349790A1 (en) * 2017-05-31 2018-12-06 Microsoft Technology Licensing, Llc Time-Based Features and Moving Windows Sampling For Machine Learning

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120290879A1 (en) * 2009-08-28 2012-11-15 Hisae Shibuya Method and device for monitoring the state of a facility
US20150363925A1 (en) * 2013-01-22 2015-12-17 Hitachi, Ltd. Anomaly Diagnosis Method and Apparatus
CN106104496A (zh) * 2014-03-18 2016-11-09 微软技术许可有限责任公司 用于任意时序的不受监督的异常检测
CN106796157A (zh) * 2014-07-25 2017-05-31 苏伊士集团 检测配送网络、特别是饮用水配送网络中的异常的方法
CN104615911A (zh) * 2015-01-12 2015-05-13 上海交通大学 基于稀疏编码及链学习预测膜蛋白beta-barrel跨膜区域的方法
US20160217022A1 (en) * 2015-01-23 2016-07-28 Opsclarity, Inc. Anomaly detection using circumstance-specific detectors
US20160219067A1 (en) * 2015-01-28 2016-07-28 Korea Internet & Security Agency Method of detecting anomalies suspected of attack, based on time series statistics
US20170076217A1 (en) * 2015-09-16 2017-03-16 Microsoft Technology Licensing, Llc Localized anomaly detection using contextual signals
CN105764162A (zh) * 2016-05-10 2016-07-13 江苏大学 一种基于多属性关联的无线传感器网络异常事件检测方法
US20180039555A1 (en) * 2016-08-04 2018-02-08 Oracle International Corporation Unsupervised method for baselining and anomaly detection in time-series data for enterprise systems
US20180349790A1 (en) * 2017-05-31 2018-12-06 Microsoft Technology Licensing, Llc Time-Based Features and Moving Windows Sampling For Machine Learning
CN108584592A (zh) * 2018-05-11 2018-09-28 浙江工业大学 一种基于时间序列预测模型的电梯轿厢振动异常预警方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114881112A (zh) * 2022-03-31 2022-08-09 北京优特捷信息技术有限公司 一种系统异常检测方法、装置、设备及介质
CN115080555A (zh) * 2022-08-18 2022-09-20 北京融信数联科技有限公司 一种基于信令获取人口数据判别离群点的方法、系统和介质
CN116341016A (zh) * 2023-05-31 2023-06-27 济南大陆机电股份有限公司 一种大数据安全存储方法及系统
CN116341016B (zh) * 2023-05-31 2023-08-11 济南大陆机电股份有限公司 一种大数据安全存储方法及系统

Also Published As

Publication number Publication date
EP3871120A1 (en) 2021-09-01
WO2020125929A1 (en) 2020-06-25

Similar Documents

Publication Publication Date Title
CN113228006A (zh) 检测连续事件中的异常的装置和方法及其计算机程序产品
JP6952719B2 (ja) ヒープをため込んでいるスタックトレースを特定するための、スレッド強度とヒープ使用量との相関
Bodik et al. Fingerprinting the datacenter: automated classification of performance crises
JP3832281B2 (ja) 外れ値ルール生成装置と外れ値検出装置、その外れ値ルール生成方法と外れ値検出方法及びそのプログラム
CN111652290B (zh) 一种对抗样本的检测方法及装置
CN111258593B (zh) 应用程序预测模型的建立方法、装置、存储介质及终端
CN105071983A (zh) 一种面向云计算在线业务的异常负载检测方法
US20210097431A1 (en) Debugging and profiling of machine learning model training
CN110471945B (zh) 活跃数据的处理方法、系统、计算机设备和存储介质
CN111552633A (zh) 接口的异常调用测试方法、装置、计算机设备及存储介质
US20160255109A1 (en) Detection method and apparatus
CN113992340B (zh) 用户异常行为识别方法、装置、设备和存储介质
CN109684320B (zh) 监测数据在线清洗的方法和设备
CN113538154A (zh) 风险对象的识别方法、装置、存储介质和电子设备
US11468365B2 (en) GPU code injection to summarize machine learning training data
CN104580109A (zh) 生成点选验证码的方法及装置
US8831763B1 (en) Intelligent interest point pruning for audio matching
WO2021067385A1 (en) Debugging and profiling of machine learning model training
CN111368864A (zh) 识别方法、可用性评估方法及装置、电子设备、存储介质
CN113408730B (zh) 因果关系生成方法、装置及电子设备
CN113312619A (zh) 基于小样本学习的恶意进程检测方法、装置、电子设备及存储介质
CN113723436A (zh) 数据的处理方法、装置、计算机设备和存储介质
EP3671467A1 (en) Gui application testing using bots
CN111291186A (zh) 一种基于聚类算法的上下文挖掘方法、装置和电子设备
CN114756401B (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20220223

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Applicant after: Huawei Cloud Computing Technology Co.,Ltd.

Address before: 518129 Huawei headquarters office building, Bantian, Longgang District, Shenzhen City, Guangdong Province

Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd.