掌桥专利:专业的专利平台
掌桥专利
首页

异常诊断方法和装置

文献发布时间:2023-06-19 10:29:05


异常诊断方法和装置

技术领域

本公开涉及人工智能技术领域;更具体地,涉及一种异常诊断方法和装置、一种时间序列算法模型的训练方法、一种电子设备、以及一种计算机可读存储介质。

背景技术

随着信息技术应用的快速渗透,业务系统已广泛部署应用在各行各,例如,金融、医疗、大型企业、教育等。用户对业务系统的使用不断增加,依赖性越来越高

而当前对业务系统的问题诊断通常依赖于固定阈值的报警。即当业务指标超出固定阈值时判断业务系统出现异常。然而,固定阈值一方面容易引起误报和漏报,导致问题的诊断精度低下,另一方面可能造成报警风暴,使得真实报警信息掩盖在大量的虚假报警信息之下,严重影响问题分析定位的效率。

可见,基于固定阈值的异常交易检测和诊断方法效率较低。因此,如何实现灵活、高精度的异常交易诊断是本领域亟待解决的技术问题。

发明内容

有鉴于此,本公开实施例提供了一种借助于人工智能技术的异常诊断方法和装置、以及一种时间序列算法模型的训练方法和装置、一种电子设备、和一种计算机可读存储介质。

本公开实施例的第一方面,提供了一种异常诊断方法。所述方法包括:实时获取第一时刻业务运行产生的业务指标,得到第一业务指标;获取在N个时刻产生的所述业务指标,得到参考指标序列,其中,所述N个时刻分别与第一时刻具有周期性对应关系,其中,所述周期性包括天周期、周周期、月周期、季度周期或年度周期中的至少一个,其中,N为大于或等于1的整数;基于所述参考指标序列,利用时间序列算法模型预测所业务运行过程中所述业务指标的安全范围,其中,所述时间序列算法模型为用于预测所述业务指标的时序变化趋势的人工智能模型;以及在所述第一业务指标超出所述安全范围时,确定所述业务存在异常。

根据本公开的实施例,所述N个时刻包括从所述第一时刻起算的前一天同一时刻、上周同天同一时刻、以及上上周同天同一时刻。

根据本公开的实施例,所述业务指标包括以下至少之一:业务成功率、业务响应时间、或业务交易量。

根据本公开的实施例,所述在所述第一业务指标超出所述安全范围时,确定所述业务存在异常包括:当所述业务指标为业务成功率时,在所述第一业务指标小于所述安全范围的下限时,确定所述业务存在异常;和/或当所述业务指标为业务响应时间时,在所述第一业务指标大于所述安全范围上限时,确定所述业务存在异常;和/或当所述业务指标为业务交易量时,在所述第一业务指标小于所述安全范围的下限时,确定所述业务存在异常。

根据本公开的实施例,所述基于所述参考指标序列,利用时间序列算法模型预测所业务运行过程中所述业务指标的安全范围包括:获取所述时间序列算法模型的预测结果,所述预测结果包括表征所述业务指标的时序变化趋势的动态基线;在所述动态基线的基础上上溢和下浮所述业务指标的标准差的m倍,得到所述安全范围,其中,所述标准差为对在第一时间段产生的所述业务指标进行统计得到的,所述第一时间段为从第一时刻起、往前推一预设时长的时间段,其中m为大于等于1的整数。

根据本公开的实施例,按照如下方式训练所述时间序列算法模型,包括:获取在第一时间段内产生的所述业务指标,得到第一历史业务指标序列;获取在第二时间段内产生的所述业务指标,得到第二历史业务指标序列;获取所述第二历史业务指标序列中每个业务指标产生的时刻所述业务运行异常与否的信息,得到业务运行信息序列;循环执行如下操作以训练所述时间序列算法模型,直到所述时间序列算法模型的检测精度满足预设精度。循环执行的如下操作包括:利用所述第一历史业务指标序列,训练所述时间序列算法模型,以使所述时间序列模型输出所述动态基线;利用所述第二历史业务指标序列和所述业务运行信息序列测试所述时间序列模型的检测精度;在所述时间序列算法模型的检测精度不满足预设精度时,调整所述时间序列算法模型的参数。

根据本公开的实施例,所述时间序列算法模型为ARIMA模型和Prophet模型按照权重组合得到的集成算法模型;所述调整所述时间序列算法模型的参数包括:基于所述ARIMA模型的检测精度、以及所述Prophet模型的检测精度,确定所述ARIMA模型和所述Prophet模型各自的权重。

根据本公开的实施例,所述训练所述时间序列算法模型还包括:对所述第一历史业务指标序列和所述第二历史业务指标序列中的每一个所述业务指标进行预处理,提取每个所述业务指标的周期特征;其中,所述周期特征包括以下至少之一:天周期变化特征、周周期变化特征、或月周期变化特征;以及预处理后将每个所述业务指标以及对应的周期特征共同作为所述时间序列算法模型的输入数据。

根据本公开的实施例,所述方法还包括展示所述第一业务指标和所述安全范围。

本公开实施例的第二方面,提供了一种时间序列算法模型的训练方法,所述时间序列模型用于预测业务指标的时序变化趋势。所述训练方法包括:获取在第一时间段内产生的所述业务指标,得到第一历史业务指标序列;获取在第二时间段内产生的所述业务指标,得到第二历史业务指标序列;获取在第二时间段内产生的所述业务指标,得到第二历史业务指标序列;获取所述第二历史业务指标序列中每个业务指标产生的时刻所述业务运行异常与否的信息,得到业务运行信息序列;以及循环执行如下操作以训练所述时间序列算法模型,直到所述时间序列算法模型的检测精度满足预设精度。其中,循环执行的如下操作包括:利用所述第一历史业务指标序列,训练所述时间序列算法模型;利用所述第二历史业务指标序列和所述业务运行信息序列测试所述时间序列模型的检测精度;以及在所述时间序列算法模型的检测精度不满足预设精度时,调整所述时间序列算法模型的参数。

根据本公开的实施例,所述时间序列算法模型为ARIMA模型和Prophet模型按照权重组合得到的集成算法模型。所述调整所述时间序列算法模型的参数包括,基于所述ARIMA模型的检测精度、以及所述Prophet模型的检测精度,确定所述ARIMA模型和所述Prophet模型各自的权重。

根据本公开的实施例,所述训练所述时间序列算法模型还包括:对所述第一历史业务指标序列和所述第二历史业务指标序列中的每一个所述业务指标进行预处理,提取每个所述业务指标的周期特征;其中,所述周期特征包括以下至少之一:天周期变化特征、周周期变化特征、或月周期变化特征;以及预处理后将每个所述业务指标以及对应的周期特征共同作为所述时间序列算法模型的输入数据。

本公开实施例的第三方面,提供了一种异常诊断装置。所述异常诊断装置包括在线数据获取模块、历史数据获取模块、在线实时检测模块、以及异常报警模块。在线数据获取模块用于实时获取第一时刻业务运行产生的业务指标,得到第一业务指标。历史数据获取模块用于获取在N个时刻产生的所述业务指标,得到参考指标序列,其中,所述N个时刻分别与第一时刻具有周期性对应关系,其中,所述周期性包括天周期、周周期、月周期、季度周期或年度周期中的至少一个,其中,N为大于或等于1的整数。在线实时检测模块用于基于所述参考指标序列,利用时间序列算法模型预测所业务运行过程中所述业务指标的安全范围,其中,所述时间序列算法模型为用于预测所述业务指标的时序变化趋势的人工智能模型。异常报警模块用于在所述第一业务指标超出所述安全范围时,确定所述业务存在异常。

根据本公开的实施例,所述装置还包括平台展示模块。所述平台展示模块用于展示所述第一业务指标和所述安全范围。

本公开实施例的第四方面,提供了一种时间序列算法模型的训练装置。所述时间序列模型用于预测业务指标的时序变化趋势。其中,所述训练装置包括第一获取模块、第二获取模块、第三获取模块、训练模块。第一获取模块用于获取在第一时间段内产生的所述业务指标,得到第一历史业务指标序列。第二获取模块用于获取在第二时间段内产生的所述业务指标,得到第二历史业务指标序列。第三获取模块用于获取所述第二历史业务指标序列中每个业务指标产生的时刻所述业务运行异常与否的信息,得到业务运行信息序列。训练模块用于循环执行如下操作以训练所述时间序列算法模型,直到所述时间序列算法模型的检测精度满足预设精度,包括:利用所述第一历史业务指标序列,训练所述时间序列算法模型;利用所述第二历史业务指标序列和所述业务运行信息序列测试所述时间序列模型的检测精度;以及在所述时间序列算法模型的检测精度不满足预设精度时,调整所述时间序列算法模型的参数。

本公开实施例的第五方面,提供了一种电子设备。所述电子设备包括一个或多个存储器、以及一个或多个处理器。所述存储器存储有可执行指令。所述处理器执行所述可执行指令,以实现本公开实施例的第一方面所述的异常诊断方法、或本公开实施例的第二方面所述的训练方法。

本公开实施例的第六方面,提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行本公开实施例的第一方面所述的异常诊断方法、或本公开实施例的第二方面所述的训练方法。

本公开实施例的第七方面,提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现本公开实施例的第一方面所述的异常诊断方法、或本公开实施例的第二方面所述的训练方法。

上述一个或多个实施例具有如下优点或益效果:利用人工智能算法实时预测业务指标的安全范围,通过将实时获取的实际业务指标与预测的该业务指标的安全范围进行统级比较,从而实现基于动态基线的交易异常诊断。

附图说明

通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:

图1示意性示出了根据本公开实施例的异常诊断方法和装置的应用场景;

图2示意性示出了根据本公开一实施例的异常诊断装置的框图;

图3示意性示出了根据本公开一实施例的异常诊断方法的流程图;

图4示意性示出了根据本公开一实施例的利用时间序列算法模型得到业务指标的安全范围的示意图;;

图5示意性示出了根据本公开一实施例的时间序列算法模型的训练装置的框图;

图6示意性示出了根据本公开一实施例的时间序列算法模型的训练方法的流程图;

图7示意性示出了根据本公开另一实施例的异常诊断的系统架构;

图8示意性示出了根据本公开另一实施例的异常诊断的流程图;以及

图9示意性示出了适于实现根据本公开实施例的方法的计算机系统的方框图。

具体实施方式

以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。

本公开的实施例提供了一种异常诊断方法和装置。在该方法中,首先实时获取第一时刻的第一业务指标。然后获取在N个时刻产生的业务指标,得到参考指标序列,其中,N个时刻分别与第一时刻具有周期性对应关系,其中,该周期性包括天周期、周周期、月周期、季度周期或年度周期中的至少一个。接下来基于参考指标序列,利用时间序列算法模型预测业务指标的安全范围,其中,时间序列算法模型为用于预测业务指标的时序变化趋势的人工智能模型。之后在第一业务指标超出安全范围时,确定业务存在异常。

根据本公开的实施例,利用人工智能算法实时预测业务指标的安全范围,通过将实际的业务指标与预测的该业务指标的安全范围进行统级比较,从而实现基于动态基线的交易异常诊断。

相较固定阈值诊断方式,本公开实施例的方法可以基于与第一时刻具有周期性对应关系的N个时刻的业务指标数据,借助于人工智能模型预测在第一时刻该业务运行正常是业务指标的安全范围,可以将业务的异常诊断与业务的时序变化特征相关联,比基于固定阈值的判断更为灵活和智能,更适应业务在实际随环境或情境动态变化的特性,诊断精度更高。

需要说明的是,本公开实施例确定的异常诊断方法和装置可用于金融领域,也可用于除金融领域之外的任意领域(例如,医疗、教育、军工、物流等),本公开对应用领域不做限定。

图1示意性示出了根据本公开实施例的异常诊断方法和装置的应用场景100。

如图1所示,该应用场景100可以包括业务系统101、异常诊断装置102、以及时间序列算法模型的训练装置103。

异常诊断装置102可以从业务系统101采集业务指标,并执行本公开实施例的异常诊断方法,对业务系统101的运行状态进行实时诊断。当确定业务系统101中的业务运行出现异常时,向业务系统101上报该异常。

根据本公开的一个实施例,异常诊断装置102可以从业务系统101采集的业务指标例如可以是业务成功率、业务响应时间、或业务交易量。

在一个实施中,业务系统101可以是网络交易系统。例如,交易系统可以每一分钟内统计一次业务成功率、业务响应时间、和/或业务交易量。异常诊断装置102可以实时获取该网络交易系统中的业务指标,并与时间序列算法模型预测得到的该业务指标的在当前时刻应该所处的安全范围比较,来确定该网络交易系统是否存在异常。

根据本公开的实施了,时间序列算法模型预测得到该业务指标在当前时刻应该所处的安全范围时,是基于实时获取到的业务指标,以及该业务指标的周期性特征数据,来预测该业务指标的时序变化特征。例如,在获取到该业务指标的同时,相应获取与该业务指标的天周期、周周期、和/或月周期对应关系的历史业务指标。从而可以基于该些历史业务指标得到该业务指标的天周期、周周期、和/或月周期变化特征。其中,天周期变化特征可以通过相隔一天相同时刻该业务指标的相对差值或变化值来表征。类似的,周周期变化特征、和月周期变化特征亦然。

根据本公开的实施例,利用时间序列算法模型输出的是业务指标的动态基线,用于表征业务指标在预测时间段内的走势。在该动态基线的基础上上溢和下浮该业务指标在预测时间内的标准差的m倍(例如,m=3),可以得到该动态基线上限和动态基线下限。从而以该动态基线上限和动态基线下限之间的范围作为该业务指标当前的安全范围。

训练装置103可以用于训练时间序列算法模型。训练装置103可以利用从业务系统101采集的一段时间内的历史业务指标数据,来训练时间序列算法模型来学习该业务指标的时序变化趋势。

根据本公开的一个实施例,该时间序列算法模型是由ARIMA模型和Prophet模型按照权重组合得到的集成算法模型。

Prophet模型可以通过输入已知的时间序列的时间戳和相应的值,并输入需要预测的时间序列的长度,来输出未来的时间序列走势。并且输出结果可以提供必要的统计指标,包括拟合曲线,上界和下界等。

ARIMA模型(Autoregressive Integrated Moving Average model,差分整合移动平均自回归模型)可以通过描述当前值与历史值之间的关系,用变量自身的历史时间数据对自身进行预测。

在时间序列算法模型中,ARIMA模型和Prophet模型各自的权重,可以根据ARIMA模型的检测精度、以及Prophet模型的检测精度来确定。例如,在一个实施例中,可以基于一个月的业务指标数据作为训练数据,一周的业务指标数据作为测试数据分别检测两种算法的检测精度,并将检测精度作为两种算法的权重,利用算法各自权重组合为集成算法,以此提高诊断精度和模型的稳定性。

在对该时间序列算法模型进行训练时,可以对从业务系统101采集的历史业务指标数据进行预处理,提取每个业务指标的周期特征,然后将历史业务指标数据以及每个业务指标的周期特征共同作为时间序列算法模型的输入,来训练该时间序列算法模型学习每个业务指标的时序变化趋势。其中,周期特征例如可以是天周期变化特征、周周期变化特征、或月周期变化特征等。

可以理解,图1中训练装置103设置于异常诊断装置102中仅为一种示例性实施例。在另一些实施例中,训练装置103也可以独立于异常诊断装置102设置。

根据本公开的实施例,异常诊断装置102可以实现为下文的异常诊断装置200、或者计算机系统900、或者计算机可读存储介质、或者计算机程序,对此本公开不予限定。

根据本公开的实施例,训练装置103可以实现为下文的异常诊断装置500、或者计算机系统900、或者计算机可读存储介质、或者计算机程序,对此本公开不予限定。

需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。

图2示意性示出了根据本公开一实施例的异常诊断装置200的框图。异常诊断装置200为异常诊断装置102的一个具体实施例。

如图2所示,根据本公开一实施例的异常诊断装置200可以包括在线数据获取模块210、历史数据获取模块220、在线实时检测模块230、以及异常报警模块240。根据本公开另一实施例,该异常诊断装置200还可以进一步包括平台展示模块250。

在线数据获取模块210用于实时获取第一时刻业务运行产生的业务指标,得到第一业务指标。实时获取业务指标的频率与业务系统101产生业务指标的频率可以相同,也可以不同;可以同步或者也可以不同步。一般业务指标在产生时会有时间戳。本公开中第一业务指标指实时获取到时间戳为第一时刻的业务指标。

历史数据获取模块220用于获取在N个时刻产生的业务指标,得到参考指标序列,其中,N个时刻分别与第一时刻具有周期性对应关系,其中,周期性包括天周期、周周期、月周期、季度周期或年度周期中的至少一个,其中,N为大于或等于1的整数。

在线实时检测模块230用于基于参考指标序列,利用时间序列算法模型预测所业务运行过程中业务指标的安全范围,其中,时间序列算法模型为用于预测业务指标的时序变化趋势的人工智能模型。通过参考指标序列可以相应得到该业务指标的周期变化特征,例如天周期变化特征、周周期变化特征、月周期变化特征、季度周期变化特征、或年周期变化特征等。时间序列算法模型通过对该参考指标序列对应的业务指标的周期特征的学习,可以预测出该业务指标的周期变化趋势。

异常报警模块240用于在第一业务指标超出安全范围时,确定业务存在异常。

平台展示模块250用于展示第一业务指标和安全范围。

该异常诊断装置200可以用于实现根据本公开实施例的异常诊断方法,具体可以参考下文图3~图4的相关描述。

图3示意性示出了根据本公开一实施例的异常诊断方法的流程图。

如图3所示,根据本公开实施例的异常诊断方法可以包括操作S310~操作S360。

在操作S310,实时获取第一时刻业务运行产生的业务指标,得到第一业务指标。

在操作S320,获取在N个时刻产生的业务指标,得到参考指标序列,其中,N个时刻分别与第一时刻具有周期性对应关系,其中,周期性包括天周期、周周期、月周期、季度周期或年度周期中的至少一个,其中,N为大于或等于1的整数。

在操作S330,基于参考指标序列,利用时间序列算法模型预测所业务运行过程中业务指标的安全范围,其中,时间序列算法模型为用于预测业务指标的时序变化趋势的人工智能模型。

根据本公开一实施例,N个时刻包括:从第一时刻起算的前一天同一时刻、上周同天同一时刻、以及上上周同天同一时刻。从而可以得到业务指标距离第一时刻的天周期变化特征、近一周周期变化特征、以及近两周周期变化特征。

进而,时间序列算法模型可以基于距离第一时刻的前一天、上一周、以及上上周三个维度的数据,预测所业务运行过程中业务指标的安全范围。

在操作S340,判断第一业务指标是否超出安全范围。若是,则操作S350,确定业务存在异常。若否,则在操作S360,确定业务运行正常。

图4示意性示出了根据本公开一实施例的操作S330中利用时间序列算法模型得到业务指标的安全范围的示意图。

如图4所示,根据本公开实施例操作S330可以包括操作S431和操作S432。

在操作S431,获取时间序列算法模型的预测结果,预测结果包括表征业务指标的时序变化趋势的动态基线。

在操作S432,在动态基线的基础上上溢和下浮业务指标的标准差的m倍,得到安全范围,其中,标准差可以是对在第一时间段产生的业务指标进行统计得到的,第一时间段为从第一时刻起、往前推一预设时长的时间段,其中m为大于等于1的整数。在一个实施例中,该第一时间段可以是训练该时间序列算法模型的历史业务指标对应的时间段,或者该第一时间段也可以是预测征业务指标的时序变化趋势的时间段。

当第一业务指标处于该安全范围达到上下限以内时,确定业务运行安全。

而当业务指标为业务成功率时,在第一业务指标小于安全范围的下限时,确定业务存在异常。

或者当业务指标为业务响应时间时,在第一业务指标大于安全范围上限时,确定业务存在异常。

又或者当业务指标为业务交易量时,在第一业务指标小于安全范围的下限时,确定业务存在异常。

图5示意性示出了根据本公开一实施例的时间序列算法模型的训练装置500的框图。其中,时间序列模型用于预测业务指标的时序变化趋势。训练装置500为图1所示的训练装置103的一个具体实施例。

如图5所示,根据本公开实施例的时间序列算法模型的训练装置500可以包括第一获取模块510、第二获取模块520、第三获取模块530、以及训练模块540。

第一获取模块510用于获取在第一时间段(例如,距离当前时刻一个月)内产生的业务指标,得到第一历史业务指标序列。

第二获取模块520用于获取在第二时间段(例如,距离当前时刻一周)内产生的业务指标,得到第二历史业务指标序列。

第三获取模块530用于获取第二历史业务指标序列中每个业务指标产生的时刻业务运行异常与否的信息,得到业务运行信息序列。

训练模块540用于循环执行如下操作以训练时间序列算法模型,直到时间序列算法模型的检测精度满足预设精度。具体地,利用第一历史业务指标序列,训练时间序列算法模型;利用第二历史业务指标序列和业务运行信息序列测试时间序列模型的检测精度;以及在时间序列算法模型的检测精度不满足预设精度时,调整时间序列算法模型的参数。

该训练装置500可以用于实现本公开实施例的时间序列算法模型的训练方法,具体可以参考如下图6的描述。

图6示意性示出了根据本公开一实施例的时间序列算法模型的训练方法的流程图。

如图6所示,该时间序列算法模型的训练方法可以包括操作S610~操作S680。

在操作S610,获取在第一时间段(例如,距离当前时刻一个月)内产生的业务指标,得到第一历史业务指标序列。

在操作S620,获取在第二时间段(例如,距离当前时刻一周)内产生的业务指标,得到第二历史业务指标序列。

在操作S630,获取第二历史业务指标序列中每个业务指标产生的时刻业务运行异常与否的信息,得到业务运行信息序列。

在操作S640,利用第一历史业务指标序列,训练时间序列算法模型。

在操作S650,利用第二历史业务指标序列和业务运行信息序列测试时间序列模型的检测精度。

具体地,在对时间序列算法模型进行测试时,可以基于训练所得时间序列算法模型预测在第二时间段内各个时刻该第二业务指标的安全范围,通过与二历史业务指标序列进行比较,得到通过模型的预测得到业务系统101在该第二时间段内各个时刻异常与否的信息。将预测出的在该第二时间段内各个时刻异常与否的信息,与实际的业务运行信息序列对比,可以计算出该时间序列算法模型的检测精度。

根据本公开一个实施例,在对时间序列算法模型进行训练和测试的过程中,可以先对第一历史业务指标序列和第二历史业务指标序列中的每一个业务指标进行预处理,提取每个业务指标的周期特征。其中,周期特征包括以下至少之一:天周期变化特征、周周期变化特征、或月周期变化特征。然后,在预处理后将每个业务指标以及对应的周期特征共同作为时间序列算法模型的输入数据,以训练时间序列算法模型。

在操作S660,判断检测精度是否满足预设精度。

若满足则在操作S680中输出时间序列算法模型。

若不满足,则在操作S670,调整时间序列算法模型的参数,并返回操作S640,重新训练该时间序列算法模型。

根据本公开一实施例,时间序列算法模型为ARIMA模型和Prophet模型按照权重组合得到的集成算法模型。在操作S670中调整时间序列算法模型的参数例如可以是基于ARIMA模型的检测精度、以及Prophet模型的检测精度,确定ARIMA模型和Prophet模型各自的权重。

以下以图7和图8进一步示例性介绍本公开的示例性应用。可以理解,图7和图8的示例仅为示意性而非限制性的。

图7示意性示出了根据本公开另一实施例的异常诊断的系统架构700。

如图7所示,该系统架构700可以包括数据采集接口701、历史数据获取模块220、在线数据获取模块210、离线建模分析模块702、在线实时检测模块230、大数据与人工智能平台对接的模型接口703、预测结果存储模块704、平台展示模块250、以及异常报警模块240。其中,与名称和标记与上文相同的模块代表同一对象,在此处仅作简要说明。

数据采集接口701和在线数据获取模块210使用SpringBoot工程开发,制作成镜像部署在一个K8s集群实时运行,从Kafka每10秒钟采集一次统计数据(业务成功率、业务交易量、和/或业务响应时间),并通过历史数据获取模块220所在的ElasticSearch中获取当前一个月的数据,将新采集的数据替换到一个月的数据中组成最新一个月的元数据,然后将昨天、上周同天、上上周同天三天数据传给在线实时检测模块230,通过调用在线实时检测模块230完成无阈值监控和报警,并将返回的异常与否的检测结果和最新一个月的元数据存到预测结果存储模块704所在的ElasticSearch中。如果检测结果为异常,则通过异常报警模块240向业务系统发出报警。

离线建模分析模块702主要基于机器学习算法,利用一个月的存量数据进行时间序列算法模型的训练,构建业务指标的动态的安全范围。

从历史数据获取模块220所在的ElasticSearch中获取时间序列算法模型需要的训练数据(昨天、上周、上上周三天维度,业务成功率、业务交易量、响应时间三个指标的数据)和实时获取的业务指标(即,第一业务指标),将获取的数据经过预处理和特征处理后传到时间序列算法模型进行预测,并返回业务指标的动态的安全范围。

预测结果存储模块704实现无阈值监控元数据和检测结果的存储,包括业务成功率、业务交易量、业务响应时间的元数据和检测结果,按照应用和时间建立索引,元数据保留一个月,检测结果保留一周。

平台展示模块250主要是当应用进行前端展示时,在选取好查看的时间段,后台代码实时从ElasticSearch获取应用选择的时间段内的元数据和检测值以线状图的形式展示,展示动态基线的上限、下限和元数据。

图8示意性示出了根据本公开另一实施例的异常诊断的流程图。

如图8所示,该异常诊断包括步骤S801~步骤S805。

步骤S801:分析历史交易日志,选取具有表征意义的字段作为特征值。例如选取业务成功率、业务响应时间、以及业务交易量作为特征值。

步骤S802:分别提取业务成功率、业务响应时间、业务交易量的天周期和周周期、月周期特征。

步骤S803:基于一个月的数据作为训练数据,一周的数据作为测试数据,利用时间序列算法ARIMA和Prophet对交易状态进行预测,在预测结果基础上上溢和下浮业务指标的标准差的3倍作为动态基线上限和动态基线下限。

步骤S804:实际值在动态基线下限和动态基线上限之内的作为正常状态。业务成功率在动态基线下限之下的为异常状态。业务响应时间在动态基线上限之上的为异常状态。业务交易量在动态基线下限之下的为异常状态。

步骤S805:利用一周的测试数据分别检测两种算法的检测精度,并将检测精度作为两种算法的权重,利用算法各自权重组合为集成算法,以此提高诊断精度。

根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

例如,在线数据获取模块210、历史数据获取模块220、在线实时检测模块230、异常报警模块240、平台展示模块250、第一获取模块510、第二获取模块520、第三获取模块530、训练模块540、数据采集接口701、预测结果存储模块702中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,在线数据获取模块210、历史数据获取模块220、在线实时检测模块230、以及异常报警模块240、平台展示模块250、第一获取模块510、第二获取模块520、第三获取模块530、训练模块540、数据采集接口701、预测结果存储模块702中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,在线数据获取模块210、历史数据获取模块220、在线实时检测模块230、以及异常报警模块240、平台展示模块250、第一获取模块510、第二获取模块520、第三获取模块530、训练模块540、数据采集接口701、预测结果存储模块702中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

图9示意性示出了适于实现根据本公开实施例的方法的计算机系统900的方框图。图9示出的计算机系统900仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图9所示,根据本公开实施例的计算机系统900包括处理器901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。处理器901例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器901还可以包括用于缓存用途的板载存储器。处理器901可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。

在RAM 903中,存储有系统900操作所需的各种程序和数据。处理器901、ROM 902以及RAM 903通过总线904彼此相连。处理器901通过执行ROM 902和/或RAM 903中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 902和RAM 903以外的一个或多个存储器中。处理器901也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。

根据本公开的实施例,系统900还可以包括输入/输出(I/O)接口905,输入/输出(I/O)接口905也连接至总线904。系统900还可以包括连接至I/O接口905的以下部件中的一项或多项:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。

根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被处理器901执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。

本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。

根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 902和/或RAM 903和/或ROM 902和RAM 903以外的一个或多个存储器。

本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行本公开实施例所提供的方法的程序代码,当计算机程序产品在电子设备上运行时,该程序代码用于使电子设备实现本公开实施例所提供的图像识别方法。

在该计算机程序被处理器901执行时,执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。

在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分909被下载和安装,和/或从可拆卸介质911被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。

根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。

以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

相关技术
  • 异常声音诊断装置、异常声音诊断系统、异常声音诊断方法以及异常声音诊断程序
  • 异常诊断方法、异常诊断装置以及具有异常诊断装置的乘客传送设备
技术分类

06120112567310