日志内容审核优化方法及装置
技术领域
本发明涉及一种日志内容审核优化方法及装置,尤其涉及一种应用于监控平台的日志内容审核优化方法及装置。
背景技术
在监控平台、用户行为分析等众多领域中都会大量使用日志分析技术,然而日志并不是一种严谨可靠的数据源,它只是松散易变的文本字符串。这种字符串拼接的代码没有任何约束而言,在这种松散的场景里,可能导致日志解析不符合预期的原因非常多,例如:对所述约定格式做了修改;在所述日志中输入了错误的分隔符号;其中一个代码被其他的代码逻辑共享,混杂输出了其他种类的日志;代码到日志的某个环节编码配置异常,导致中文乱码等,然而,现有地,对于松散随意的字符串拼接,很难找到强硬的约束。相应的,这些隐患却给日志分析带来了巨大的灾难。在我们实际的平台化进程中,分析过程中会不可避免产生大量非法无效数据,完全交给用户自助配置的分析规则产出的垃圾非法数据占到了总量的40%以上。
为了解决上述问题,传统的解决方案中,一般采用人工审核的方法对日志内容进行审核:用人力来每天定点审核所有新产生的日志维度内容,遇到非法的还可以及时联系用户进行调整,从源头解决问题。然而,在监控系统中,日志模型达到几千个,每个模型平均5个维度,每个维度下面少则几十个值,多则成千上万个值。不难看出,对这样规模的维度值,人工审核的方法,需要花费高昂的人力资源和成本,而且并不能保障其审核效果,同时,大量的非法数据会浪费了大量的计算和存储资源,同时也严重影响用户体验和数据可靠性。
发明内容
本发明的目的之一在于提供一种日志内容审核优化方法及装置。
为实现上述发明目的之一,本发明一实施方式提供了一种日志内容审核优化方法,其包括:
将日志中多个维度下的内容抽象出与其分别对应的多组输入向量;
根据所述多组输入向量和每一组输入向量对应维度所匹配的预设矩阵,计算得到与所述多组输入向量对应的多个输出向量;
输入预期输出向量,并通过神经网络训练,根据输出向量和与其对应的预期输出向量的异同,修正与该输出向量相应维度所匹配的预设矩阵。
作为本发明一实施方式的进一步改进,所述内容包括多个词,每一个词对应一组输入向量;每一组输入向量对应一个输出向量。
作为本发明一实施方式的进一步改进,一组输入向量包括以下因子:
总长度、大写字母个数、小写字母个数、数字个数、常规符号个数、中文个数、转换次数、未知个数、最大连续数字个数、最大连续中文个数、最大连续字母个数、最大连续符号个数、是否包含非常用中文。
作为本发明一实施方式的进一步改进,所述预设矩阵通过JAVA实现。
作为本发明一实施方式的进一步改进,所述“输入预期输出向量”步骤具体为:
通过人工判断所述输出向量的准确性;
根据判断结果得到预期输出向量。
为实现上述发明目的之一,本发明一实施方式提供了一种日志内容审核优化装置,其包括:获取模块,用于将日志中多个维度下的内容抽象出与其分别对应的多组输入向量;
比对计算模块,用于根据所述多组输入向量和每一组输入向量对应维度所匹配的预设矩阵,计算得到与所述多组输入向量对应的多个输出向量;
修订模块,用于输入预期输出向量,并通过神经网络训练,根据输出向量和与其对应的预期输出向量的异同,修正与该输出向量相应维度所匹配的预设矩阵。
作为本发明一实施方式的进一步改进,所述内容包括多个词,每一个词对应一组输入向量;每一组输入向量对应一个输出向量。
作为本发明一实施方式的进一步改进,一组输入向量包括以下因子:
总长度、大写字母个数、小写字母个数、数字个数、常规符号个数、中文个数、转换次数、未知个数、最大连续数字个数、最大连续中文个数、最大连续字母个数、最大连续符号个数、是否包含非常用中文。
作为本发明一实施方式的进一步改进,所述预设矩阵通过JAVA实现。
作为本发明一实施方式的进一步改进,通过人工判断所述输出向量的准确性;
所述修订模块还用于,根据判断结果得到预期输出向量。
与现有技术相比,本发明的有益效果是:利用神经网络技术,实现了一套审核训练机制,达到了审核越来越准确、人力成本越来越低的目标;如此,不仅大大降低了审核人员的工作量,而且显著提高了审核效率和准确度,节约审核成本以及存储成本。
附图说明
图1A、1B是本发明一实施方式中监控场景中日志内容采样结果的实例图。
图2是本发明一实施方式的日志内容审核优化方法的流程图。
图3A、图3B是本发明一实施方式中通过神经网络训练修正预设矩阵的实例图。
图4是本发明一实施方式的日志内容审核优化装置的模块图。
具体实施方式
以下将结合附图所示的各实施方式对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所轻易做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。
如图1A、1B所示,在本发明一示例中,监控场景中日志内容采样结果包括多个维度,本实施方式中的图1A为“平台”维度,图1B为“版本”维度。
相应的,“平台”维度中方框内的词为合法数值,“版本”维度中方框内的词为非法数值。通过人的经验可以很容易判断相应维度中哪些输入向量为合法或非法,然而,现有的监控平台却不能自动判断相应维度中哪些输入向量为合法或非法。
结合图2所示,在本发明一实施方式中,日志内容审核优化方法包括以下步骤:
S1、将日志中多个维度下的内容抽象出与其分别对应的多组输入向量;
日志的单个维度下所示内容中包括若干行字符串,定义一行字符串为一个词,相应的,每一个词对应一组输入向量;每一组输入向量对应一个输出向量。
例如,图1A所示的“平台”维度下,定义一行字符串为一个词。
具体的,抽象出与每个词对应的各个因子。
一组输入向量包括下述因子:所述词的总长度、大写字母个数、小写字母个数、数字个数、常规符号个数、中文个数、转换次数、未知个数、最大连续数字个数、最大连续中文个数、最大连续字母个数、最大连续符号个数、是否包含非常用中文、是否先出现字母后出现数字、是否先出现数字后出现字母、字母和数字是否均为连续出现、字母和数字是否出现交叉等。
当然,所述因子的数量还可以增加或减少。然而,可以理解的是,因子数量越多,其最终获取的结果更加精准,在此不做详细赘述。
下述内容以日志的某一维度中包含的一个词“abc1234”为例做具体说明。
抽象出与词“abc1234”对应的各个因子。词“abc1234”对应的因子为,总长度为7个字符、大写字母个数为0个、小写字母个数为3个、数字个数为4个、常规符号个数为0个、中文个数为0个、转换次数为0次、未知个数为0个、最大连续数字个数为4个、最大连续中文个数为0个、最大连续字母个数为3个、最大连续符号个数为0个、未包含非常用中文。
S2、根据所述多组输入向量和每一组输入向量对应维度所匹配的预设矩阵,计算得到与所述多组输入向量对应的多个输出向量。
具体的,所述预设矩阵通过Java实现;如此,可独立的进行编辑和管理,并且能够跨网络与线上生产系统整合。
相应的,所述预设矩阵存储于预设矩阵库中,因为各个日志中的每个维度都可能有自己独特的风格,比如银行渠道维度偏爱字母+数字,交易订单日志里的来源维度偏爱纯中文等,该预设矩阵对应不同维度的输入向量可以有所不同,以满足不同维度的输入向量根据其匹配的预设矩阵计算得到输出向量。
预设矩阵可包括对所述词所在的日志维度、词所对应的因子取值范围及其因子之间相应的逻辑关系等判断条件,以根据所在的日志维度、因子取值范围及其因子之间相应的逻辑关系获取的输出向量。
例如,对应词“abc1234”出现在银行信息的日志维度中,其对应的预设矩阵的判断条件包括:总长度是否在5‐15之间、字母个数是否在0‐7之间、数字个数是否在0‐8之间、是否有特殊符号、是否有中文、是否先出现一串字母后出现一串数字、字母和数字是否均连续出现。若所述词“abc1234”满足预设矩阵的判断条件,对应的输出向量为『合法』;若该词对应的输入向量不满足所匹配的预设矩阵的判断条件,则对应的输出向量为『非法』。
S3、输入预期输出向量,并通过神经网络训练,根据输出向量和与其对应的预期输出向量的异同,修正与该输出向量相应维度所匹配的预设矩阵。
由于与输入向量匹配的预设矩阵在刚开始运行时,其输出向量的准确性得不到保障,为了进一步的提高对应所述输入向量的输出向量的准确性,需要通过神经网络训练对匹配输入向量的预设矩阵做相应的调整。即是需要通过人工判断所述输出向量的准确性,以根据判断结果得到预期输出向量,神经网络训练可根据该预期输出向量修正与输出向量相应维度所匹配的预设矩阵。
在本发明一实施方式中,首先,定时捞取维度值中对应的输入向量,并使其与预设矩阵匹配,输出对应的输出向量。在此过程中,所述输出向量并没有通过严格的人工审核,即所述输出向量的结果无论合法还是非法都直接被存储;
随后,通过人工对维度下输出向量的审核结果进行评判,即是输入预期输出向量。如果同意当前输出向量的结果,则对当前输出向量表示认可,例如,经过预设矩阵计算后,认为『abc1234』在银行信息维度下,是『合法』的字符串,且人工根据其经验值,也认为该『abc1234』在银行信息维度下是『合法』的,则可通过输入『合法』或选择同意选项,来表示对所述输出向量的认可,当前输出向量所对应的预设矩阵可不做修改。
如果不同意当前输出向量的结果,则对当前输出向量表示否定,例如,经过预设矩阵计算后,认为『abc1234』在银行信息维度下,是『非法』的字符串,且人工根据其经验值,认为该『abc1234』在银行信息维度下是『合法』的,则可通过输入『非法』或选择不认可选项,来表示对所述输出向量的否定,当前输出向量所对应预设矩阵需要进行修改。本领域普通技术人员可根据神经网络训练的模式对预设矩阵进行修改,在此不再赘述。
之后,如循环上述步骤以进一步修订预设矩阵,逐步提高预设矩阵的准确性。
下述内容中将举一示例做详细说明。
如图3A所示,表格中包括3列14行,第一列是对所述输入向量准确性的判断,其通过人工进行输入预期输出向量(为提高输入预期输出向量的效率,在本示例中,采用选择方式),在表格中标识为“AI训练”;第二列表示相应的输入向量,在表格中标识为“维度值”;第三列表示对应所述输入向量计算后得到的输出向量,在表格中标识为“审核结果”。
分析表格可知,其『维度值』中既包含了合法的字符串,也包含了非法的字符串,例如:最后一个字符串里面充斥了随机的数字、奇怪的字母和符号组合。
此时,可通过人工输入预期输出向量,若认可输出向量,则对其进行表扬,将其标识为“做得好”,例如第一行字符串;若否定输出向量,则对其进行批评,将其标识为“责令改正”,例如最后一行字符串。
如图3B所示,在下一次的自动审核中,在同一维度中,与之前通过人工标识为“责令改正”的相似输出向量被判断为“非法”,此时,可进一步认可该输出向量。
可以理解的是,虽然上述过程看似要投入不少人工训练成本,但是它有一个巨大的优势就是成本递减,随着训练的增多,审核的结果会越来越准确,人为的纠正就会越来越少,理想的情况下训练的成本会逐渐降低到忽略不计除非有新的日志模型和维度。
如图4所示,本发明一实施方式的日志内容审核优化装置包括:获取模块100,比对计算模块200,修订模块300。
获取模块100用于将日志中多个维度下的内容抽象出与其分别对应的多组输入向量;
日志的单个维度下所示内容中包括若干行字符串,定义一行字符串为一个词,相应的,每一个词对应一组输入向量;每一组输入向量对应一个输出向量。
例如,图1A所示的“平台”维度下,定义一行字符串为一个词。
具体的,所述获取模块100可用于抽象出与每个词对应的各个因子。
一组输入向量包括下述因子:所述词的总长度、大写字母个数、小写字母个数、数字个数、常规符号个数、中文个数、转换次数、未知个数、最大连续数字个数、最大连续中文个数、最大连续字母个数、最大连续符号个数、是否包含非常用中文、是否先出现字母后出现数字、是否先出现数字后出现字母、字母和数字是否均为连续出现、字母和数字是否出现交叉等。
当然,所述因子的数量还可以增加或减少。然而,可以理解的是,因子数量越多,其最终获取的结果更加精准,在此不做详细赘述。
下述内容以日志的某一维度中包含的一个词“abc1234”为例做具体说明。
抽象出与词“abc1234”对应的各个因子。词“abc1234”对应的因子为,总长度为7个字符、大写字母个数为0个、小写字母个数为3个、数字个数为4个、常规符号个数为0个、中文个数为0个、转换次数为0次、未知个数为0个、最大连续数字个数为4个、最大连续中文个数为0个、最大连续字母个数为3个、最大连续符号个数为0个、未包含非常用中文。
比对计算模块200用于根据所述多组输入向量和每一组输入向量对应维度所匹配的预设矩阵,计算得到与所述多组输入向量对应的多个输出向量。
具体的,所述预设矩阵通过Java实现;如此,可独立的进行编辑和管理,并且能够跨网络与线上生产系统整合。
相应的,所述预设矩阵存储于预设矩阵库中,因为各个日志中的每个维度都可能有自己独特的风格,比如银行渠道维度偏爱字母+数字,交易订单日志里的来源维度偏爱纯中文等,该预设矩阵对应不同维度的输入向量可以有所不同,以满足不同维度的输入向量根据其匹配的预设矩阵计算得到输出向量。
预设矩阵可包括对所述词所在的日志维度、词所对应的因子取值范围及其因子之间相应的逻辑关系等判断条件,以根据所在的日志维度、因子取值范围及其因子之间相应的逻辑关系获取的输出向量。
例如,对应词“abc1234”出现在银行信息的日志维度中,其对应的预设矩阵的判断条件包括:总长度是否在5‐15之间、字母个数是否在0‐7之间、数字个数是否在0‐8之间、是否有特殊符号、是否有中文、是否先出现一串字母后出现一串数字、字母和数字是否均连续出现。若所述词“abc1234”满足预设矩阵的判断条件,对应的输出向量为『合法』;若该词对应的输入向量不满足所匹配的预设矩阵的判断条件,则对应的输出向量为『非法』。
所述修订模块300用于输入预期输出向量,并通过神经网络训练,根据输出向量和与其对应的预期输出向量的异同,修正与该输出向量相应维度所匹配的预设矩阵。
由于与输入向量匹配的预设矩阵在刚开始运行时,其输出向量的准确性得不到保障,为了进一步的提高对应所述输入向量的输出向量的准确性,需要通过神经网络训练对匹配输入向量的预设矩阵做相应的调整。即是需要通过人工判断所述输出向量的准确性,以根据判断结果得到预期输出向量,神经网络训练可根据该预期输出向量修正与输出向量相应维度所匹配的预设矩阵。
在本发明一实施方式中,首先,定时捞取维度值中对应的输入向量,并使其与预设矩阵匹配,输出对应的输出向量。在此过程中,所述输出向量并没有通过严格的人工审核,即所述输出向量的结果无论合法还是非法都直接被存储;
随后,通过人工对维度下输出向量的审核结果进行评判,即是输入预期输出向量。如果同意当前输出向量的结果,则对当前输出向量表示认可,例如,经过预设矩阵计算后,认为『abc1234』在银行信息维度下,是『合法』的字符串,且人工根据其经验值,也认为该『abc1234』在银行信息维度下是『合法』的,则可通过输入『合法』或选择同意选项,来表示对所述输出向量的认可,当前输出向量所对应的预设矩阵可不做修改。
如果不同意当前输出向量的结果,则对当前输出向量表示否定,例如,经过预设矩阵计算后,认为『abc1234』在银行信息维度下,是『非法』的字符串,且人工根据其经验值,认为该『abc1234』在银行信息维度下是『合法』的,则可通过输入『非法』或选择不认可选项,来表示对所述输出向量的否定,当前输出向量所对应预设矩阵需要进行修改。本领域普通技术人员可根据神经网络训练的模式对预设矩阵进行修改,在此不再赘述。
之后,如循环上述步骤以进一步修订预设矩阵,逐步提高预设矩阵的准确性。
下述内容中将举一示例做详细说明。
如图3A所示,表格中包括3列14行,第一列是对所述输入向量准确性的判断,其通过人工进行输入预期输出向量(为提高输入预期输出向量的效率,在本示例中,采用选择方式),在表格中标识为“AI训练”;第二列表示相应的输入向量,在表格中标识为“维度值”;第三列表示对应所述输入向量计算后得到的输出向量,在表格中标识为“审核结果”。
分析表格可知,其『维度值』中既包含了合法的字符串,也包含了非法的字符串,例如:最后一个字符串里面充斥了随机的数字、奇怪的字母和符号组合。
此时,可通过人工输入预期输出向量,若认可输出向量,则对其进行表扬,将其标识为“做得好”,例如第一行字符串;若否定输出向量,则对其进行批评,将其标识为“责令改正”,例如最后一行字符串。
如图3B所示,在下一次的自动审核中,在同一维度中,与之前通过人工标识为“责令改正”的相似输出向量被判断为“非法”,此时,可进一步认可该输出向量。
可以理解的是,虽然上述过程看似要投入不少人工训练成本,但是它有一个巨大的优势就是成本递减,随着训练的增多,审核的结果会越来越准确,人为的纠正就会越来越少,理想的情况下训练的成本会逐渐降低到忽略不计除非有新的日志模型和维度。
综上所述,本发明的日志内容审核优化方法及装置,利用神经网络技术,实现了一套审核训练机制,达到了审核越来越准确、人力成本越来越低的目标;如此,不仅大大降低了审核人员的工作量,而且显著提高了审核效率和准确度,节约审核成本以及存储成本。
在本发明所提供的几个实施方式中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本发明各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以2个或2个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(processor)执行本发明各个实施方式所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read‐Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施方式仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施方式对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施方式技术方案的精神和范围。