一种编译及运行时优化的智能知识决策与推理引擎方法及系统与流程
未命名
08-02
阅读:107
评论:0

1.本发明涉及知识决策与推理领域,尤其涉及一种编译及运行时优化的智能知识决策与推理引擎方法及系统。
背景技术:
2.在金融风控、实时反欺诈等领域,经常会涉及如“某用户当前的操作是否应该被允许”和“某用户是否有可能涉及一个涉黑团体”等决策和推理问题。现有的深度学习方法因为基本不具备可解释性,无法将其给出的推理结果当作做出决策的依据,只能作为参考,更通用的方法还是使用基于各种知识所构建的决策与推理引擎。
3.决策与推理引擎是计算机技术的核心之一,它能够支持大量业务的自动化,打破人工处理的效率和瓶颈。它使用一系列通过归纳总结得到的知识来自动确定当前产生的事件中,是否有事件能够满足预定义的知识,或使用这些知识来推断出其它的结果,并根据判断和推理的结果做出进一步处理。决策与推理引擎包含以下的价值,一是允许业务部门快速地定义、更新和维护当前知识,提高运维效率;二是允许非技术人员能够快速地上手使用该工具;三是企业能够通过使用决策与推理引擎来支持大量业务的自动化处理,以此加快业务更新迭代的速度。
4.一个优秀的决策与推理引擎要具有以下特性:灵活,即不但可以自由地配置知识,还可以配置各个知识的权重等详细属性,保证对业务的友好;通用性,即整个企业中应该存在一套通用的决策与推理系统,任何部门都可以部署使用它,所有跟决策与推理相关的任务都可以分配给它,避免了企业同时管理多个不同类型的决策与推理系统会造成的混乱情况;快速部署,即配置好的知识可以实时生效,如果涉及一般知识修改时,可以做一个灰度部署;高并发下的实时响应,即在大量数据并发的情况下,决策与推理引擎也要保证能够实时响应。
5.当前的决策与推理引擎通常包含多条知识,在执行时,对于一条到来的事件,决策与推理引擎需要执行用户订阅的所有知识。在实际应用中,决策与推理引擎中知识的数量往往会非常庞大。此外,某些知识在执行时不仅需要使用当前到来的数据,还需要使用到一些历史数据。一般为了保存历史数据,都会将其持久化存储到硬盘上,在实际使用时再将其加载到内存中,该过程往往会非常耗时。最终,对于实时性要求较高的场景,一般的决策与推理系统无法实时地给出用户期望的结果。此外,一般的决策与推理系统在使用时往往需要再花费时间去学习复杂的知识定义语言,不存在一种简单易用的知识定义语言,对于一些非技术的业务人员并不友好。
技术实现要素:
6.本发明的目的在于针对现有技术的不足,提供了一种编译及运行时优化的智能知识决策与推理引擎方法及系统,可以极大地加快决策与推理引擎的运行速度。
7.本发明的目的是通过以下技术方案来实现的:一种编译及运行时优化的智能知识决策与推理引擎方法,该方法包括以下几个步骤:
8.(1)获取用户定义的知识并进行相应的预处理操作
9.决策与推理引擎中的知识库初始为空;用户通过决策与推理引擎包含的知识构建语言定义一系列知识;此时用户将业务逻辑相关的知识定义打包为一个知识包,然后将知识包发往决策与推理引擎的知识库中供后续用户订阅使用;
10.用户订阅决策与推理引擎的知识库中已有的知识包;在确定好需要订阅的知识包后,决策与推理引擎从知识库中将选择的知识包加载到本地,并编译包中所有知识;在编译过程中,决策与推理引擎将所有知识拆分为单独的条件,从中移除每条知识的重复条件;
11.(2)将知识保存在知识库中后,在需要进行判断时,进行编译和运行时优化
12.在得到了经过预处理的知识后,决策与推理引擎首先基于局部性原理进行优化,合并不同知识中的相同条件;然后基于全局性原理进行优化,将所有的条件按相关的权重进行拓扑排序,并按拓扑排序的结果优化执行顺序;决策与推理引擎根据构建出一颗优化后的知识树,并使用当前优化后的知识树来执行决策;
13.使用当前优化后的知识树来处理到来的事件;知识中的每一个条件为一个表达式或一个key,对于一个key,从决策与推理引擎的缓存中取出对应的结果,因此通过估算每个条件的执行时间来得到当前知识的执行时间;在决策与推理引擎运行时,将估计得到的知识执行时间作为执行每一个知识花费的代价,选择代价最小的执行顺序;
14.(3)最后,根据执行后各知识的结果,将决策与推理引擎给出的判断返回给用户;根据这一结果,用户可以根据自身需要执行后续操作。
15.进一步地,知识中的每一个条件会包含一个权重属性,用于表示当前条件在整个结果中的重要程度;在计算每一个条件的执行顺序时,使用权重属性作为参考。
16.进一步地,在编译的过程中,决策与推理引擎根据优化后的知识来构建一种索引index,用于判断当一个条件的结果发生变化后会影响到哪些知识的结果;在运行过程中,决策与推理引擎通过这种索引来快速定位哪些知识的结果会受到影响,并通过仅执行受到影响的知识来加快决策与推理的速度。
17.进一步地,对每一条知识,在运行过程中,决策与推理引擎包含以下三种优化手段:
18.a)根据结果为false的概率进行优化;
19.b)根据其中条件执行的时间复杂度来估计整个知识的运行时间;
20.c)使用机器学习的相关模型来预测当前知识的运行时间;
21.根据以上三种手段来进行综合的优化,得到最优的知识执行顺序。
22.进一步地,步骤(1)中,在编译过程中,对于知识中包含已知为false的条件,则直接丢弃该知识。
23.另一方面,本发明还提供了一种编译及运行时优化的智能知识决策与推理引擎系统,该系统包括用户知识定义模块、知识管理模块、决策模块以及结果输出模块;
24.所述知识定义模块,用于获取用户定义的知识并进行相应的预处理操作,用户通过决策与推理引擎包含的知识构建语言定义一系列知识;此时用户将业务逻辑相关的知识定义打包为一个知识包,然后将知识包发往知识管理模块供后续用户订阅使用;
25.所述知识管理模块,用于保存用户定义的所有知识包,其它用户订阅知识定义模块中已定义打包的知识包;在确定好需要订阅的知识包后,将选择的知识包加载并编译包中所有知识;在编译过程中,决策与推理引擎将所有知识拆分为单独的条件,从中移除每条知识的重复条件;
26.所述决策模块,用于判断当前新的事件是否能够满足用户订阅的某些知识;在得到了经过预处理的知识后,决策与推理引擎首先基于局部性原理进行优化,合并不同知识中的相同条件;然后基于全局性原理进行优化,将所有的条件按相关的权重进行拓扑排序,并按拓扑排序的结果优化执行顺序;决策与推理引擎根据构建出一颗优化后的知识树,并使用当前优化后的知识树来执行决策;使用当前优化后的知识树来处理到来的事件;知识中的每一个条件为一个表达式或一个key,对于一个key,从决策与推理引擎的缓存中取出对应的结果,因此通过估算每个条件的执行时间来得到当前知识的执行时间;在决策与推理引擎运行时,将估计得到的知识执行时间作为执行每一个知识花费的代价,选择代价最小的执行顺序;
27.所述结果输出模块,用于输出当前决策与推理引擎执行后各知识的结果,将决策与推理引擎给出的判断返回给用户;根据这一结果,用户可以根据自身需要执行后续操作。
28.进一步地,该系统还包括运行时旁路优化模块,用于对每一条知识,在运行过程中通过以下三种手段进行综合的优化,得到最优的知识执行顺序:
29.a)根据结果为false的概率进行优化;
30.b)根据其中条件执行的时间复杂度来估计整个知识的运行时间;
31.c)使用机器学习的相关模型来预测当前知识的运行时间。
32.本发明的有益效果:
33.(1)提供一种通用的知识定义和构建方式
34.提供了一种统一的知识定义和构建方式,不仅可以用于构建最简单的由多个条件组成的简单知识,还可以轻易的扩展为由图表示的知识或者扩展为由不同的机器学习模型所表示的复杂知识。使用了类似于java lambda语言的表达方式,逻辑清晰,方便用户学习掌握。
35.(2)优化知识的执行方法
36.知识的编译优化:首先舍弃一定为false的条件,然后将每条知识拆分为单个条件,然后合并重复的条件,使得每个条件在判断中最多只执行一次。在重复条件较多的情况下,决策与推理的速度能够有很大的提升。
37.知识的运行优化:运行时优化的核心是,对于最终结果为false的知识,要能够尽早地找到结果为false的条件,这样就能够趁早结束当前知识的执行。在运行过程中,通过决策与推理引擎内置的算法来估算知识的执行时间,并根据此来对知识的执行顺序进行优化。
38.知识的查询优化:在知识的执行过程中,通过一种高效的缓存来优化部分条件中的复杂指标查询。
附图说明
39.图1为本发明提供的编译及运行时优化的智能知识决策与推理引擎方法流程图。
40.图2为本发明提供的编译及运行时优化的智能知识决策与推理引擎系统架构图。
41.图3为本发明的多知识决策的优化过程图。
42.图4为本发明提供的编译及运行时优化的智能知识决策与推理引擎的业务流程图。
具体实施方式
43.下面结合附图对本发明具体实施方式作进一步详细说明。
44.如图1所示,本发明提供了一种编译及运行时优化的智能知识决策与推理引擎方法,该方法通过将知识拆解为一个个单独的条件,然后再对每一个条件进行聚合和排序操作,一次来加快所有知识的推理与决策过程;
45.所述知识由若干个条件组成,这些条件使用“且”和“或”关系相连;可以通过对知识进行预处理操作,拆分每条知识的所有条件,并且对知识中的所有条件重新进行排序;在编译时,首先对知识进行预处理操作,然后将不同知识中相同的条件进行合并,使得不同知识中的相同条件仅执行一次;在实际执行时,引擎通过计算条件的运行代价来实时地调整条件和知识的执行顺序,使得决策与推理的时间最短。
46.假设定义了n条知识,每条知识的格式为knowledgei=(facti,relationi),其中fact表示规则中的一系列条件,relation表示条件之间的关系,一般为“and”和“or”。假设一条新到达的事件为event。
47.本发明方法包括以下几个步骤:
48.(1)获取用户定义的知识并进行相应的预处理操作
49.决策与推理引擎中的知识库初始为空;用户通过决策与推理引擎包含的知识构建语言定义一系列知识;此时用户将业务逻辑相关的知识定义打包为一个知识包,然后将知识包发往决策与推理引擎的知识库中供后续用户订阅使用。
50.用户订阅决策与推理引擎的知识库中已有的知识包;在确定好需要订阅的知识包后,决策与推理引擎从知识库中将选择的知识包加载到本地,并编译包中所有知识。在编译过程中,决策与推理引擎将所有知识拆分为单独的条件,从中移除每条知识的重复条件;对于知识中包含已知为false的条件,则直接丢弃该知识;
51.(2)将知识保存在知识库中后,在需要进行判断时,进行编译和运行时优化
52.在得到了经过预处理的知识后,决策与推理引擎首先基于局部性原理进行优化,合并不同知识中的相同条件;然后基于全局性原理进行优化,将所有的条件按相关的权重进行拓扑排序,并按拓扑排序的结果优化执行顺序;知识中的每一个条件会包含一个权重属性,用于表示当前条件在整个结果中的重要程度;在计算每一个条件的执行顺序时,使用权重属性作为参考。决策与推理引擎根据构建出一颗优化后的知识树,并使用当前优化后的知识树来执行决策;
53.使用当前优化后的知识树来处理到来的事件;知识中的每一个条件为一个表达式或一个key,对于一个key,从决策与推理引擎的缓存中取出对应的结果,因此通过估算每个条件的执行时间来得到当前知识的执行时间;在决策与推理引擎运行时,将估计得到的知识执行时间作为执行每一个知识花费的代价,选择代价最小的执行顺序;
54.在编译的过程中,决策与推理引擎根据优化后的知识来构建一种索引index,用于
判断当一个条件的结果发生变化后会影响到哪些知识的结果;在运行过程中,决策与推理引擎通过这种索引来快速定位哪些知识的结果会受到影响,并通过仅执行受到影响的知识来加快决策与推理的速度。
55.对每一条知识,在运行过程中,决策与推理引擎包含以下三种优化手段:
56.a)根据结果为false的概率进行优化;
57.b)根据其中条件执行的时间复杂度来估计整个知识的运行时间;
58.c)使用机器学习的相关模型来预测当前知识的运行时间;
59.根据以上三种手段来进行综合的优化,得到最优的知识执行顺序。
60.(3)最后,根据执行后各知识的结果,将决策与推理引擎给出的判断返回给用户;根据这一结果,用户可以根据自身需要执行后续操作。本发明包括了在海量数据中对于事件建模、实时知识应用、编译时优化技术、运行时优化技术。通过一种类java lambda的dsl语言来构建和表示知识,包含最基本的and、or、not和when等基本操作,能够判断到来的事件时是否够满足现有的规则。主要适用于金融风控、销售、交通以及实时反欺诈等对于知识应用实时性要求较高的领域,对海量数据中包含的事件针对预定义好的知识进行快速地识别和决策。
61.另一方面,本发明还提供了一种编译及运行时优化的智能知识决策与推理引擎系统,包括用户知识定义模块、知识管理模块、决策模块、运行时旁路优化模块以及结果输出模块。该系统中各模块之间的关系如图2所示。
62.所述知识定义模块,用于获取用户定义的知识并进行相应的预处理操作,用户通过决策与推理引擎包含的知识构建语言定义一系列知识;此时用户将业务逻辑相关的知识定义打包为一个知识包,然后将知识包发往知识管理模块供后续用户订阅使用;
63.所述知识管理模块,用于保存用户定义的所有知识包,其它用户订阅知识定义模块中已定义打包的知识包;订阅完成后,当有事件能够触发订阅的知识,用户就会收到相应的通知。在确定好需要订阅的知识包后,将选择的知识包加载并编译包中所有知识;在编译过程中,决策与推理引擎将所有知识拆分为单独的条件,从中移除每条知识的重复条件;
64.所述决策模块,用于判断当前新的事件是否能够满足用户订阅的某些知识;在初次进行判断前,会编译所有知识,并将各个知识中重复的条件进行合并,然后得到去重后的条件。之后再使用这些条件去构建决策树,具体为:在得到了经过预处理的知识后,决策与推理引擎首先基于局部性原理进行优化,合并不同知识中的相同条件;然后基于全局性原理进行优化,将所有的条件按相关的权重进行拓扑排序,并按拓扑排序的结果优化执行顺序;决策与推理引擎根据构建出一颗优化后的知识树,并使用当前优化后的知识树来执行决策;使用当前优化后的知识树来处理到来的事件,将到来的事件从决策树的根节点开始遍历,判断当前事件能否满足决策树上的条件,对于不能满足的,即时停止当前知识的匹配。知识中的每一个条件为一个表达式或一个key,对于一个key,从决策与推理引擎的缓存中取出对应的结果,因此通过估算每个条件的执行时间来得到当前知识的执行时间;在决策与推理引擎运行时,将估计得到的知识执行时间作为执行每一个知识花费的代价,选择代价最小的执行顺序;
65.所述运行时旁路优化模块,用于对每一条知识,在运行过程中通过以下三种手段进行综合的优化,得到最优的知识执行顺序:
66.a)根据结果为false的概率进行优化;
67.b)根据其中条件执行的时间复杂度来估计整个知识的运行时间;
68.c)使用机器学习的相关模型来预测当前知识的运行时间;
69.根据以上的优化手段,在决策与推理引擎运行期间,根据当前知识的执行情况,动态地调整决策树,以最小化遍历决策树的时间。
70.所述结果输出模块,用于输出当前决策与推理引擎执行后各知识的结果,将决策与推理引擎给出的判断返回给用户;当新到达的事件能够满足某些知识时,结果输出模块会即时将能够匹配的知识返回给订阅过该规则的用户。根据这一结果,用户可以根据自身需要执行后续操作。
71.本发明提供的决策与推理引擎的整体业务流程如图3所示。
72.假设用户在知识定义模块中定义的知识如表1所示:
73.表1构建知识示例
[0074][0075]
使用上述规则构建的初始决策树和优化后的决策树如图4所示。
[0076]
实施例:
[0077]
本实施例对上述一种编译及运行时优化的智能知识决策与推理引擎系统进行进一步的说明。
[0078]
用户希望构建出一个反欺诈的知识包,定义出的知识如表2所示:
[0079]
表2
[0080]
[0081]
[0082][0083]
系统获取到上述通过用户知识定义模块进行定义的知识后会将其发往知识管理模块,知识管理模块会将这些知识存储起来,供其它的用户进行订阅使用。
[0084]
假设有用户订阅了上述几条知识,当一条事件到来后,会进入决策模块,由于是第一次进行决策,因此需要编译并优化当前知识。规则中存在一些以key为条件的节点,系统在遇到这种类型的节点后,会使用一种高效的缓存来快速获取条件的结果。
[0085]
当决策完毕后,系统会通过结果输出模块将各知识的决策结果返回给向订阅过这些知识的用户,然后用户会根据这些结果执行相关的操作。
[0086]
分别使用当前常见的开源决策引擎和本发明中提出的决策与推理引擎进行知识匹配,在构建了不同数量的规则,并发送了一亿条测试数据到两个决策引擎后,两个系统的性能对比如表3所示,平均值时间单位为毫秒,其它时间单位均为秒,下表中将开源决策引擎redhat drools 6.5缩写为“drools”,将一种编译及运行时优化的智能知识决策与推理引擎缩写为“本引擎”。
[0087]
表3
[0088][0089][0090]
上述实施例用来解释说明本发明,而不是对本发明进行限制,在本发明的精神和
权利要求的保护范围内,对本发明做出的任何修改和改变,都落入本发明的保护范围。
技术特征:
1.一种编译及运行时优化的智能知识决策与推理引擎方法,其特征在于,该方法包括以下几个步骤:(1)获取用户定义的知识并进行相应的预处理操作决策与推理引擎中的知识库初始为空;用户通过决策与推理引擎包含的知识构建语言定义一系列知识;此时用户将业务逻辑相关的知识定义打包为一个知识包,然后将知识包发往决策与推理引擎的知识库中供后续用户订阅使用;用户订阅决策与推理引擎的知识库中已有的知识包;在确定好需要订阅的知识包后,决策与推理引擎从知识库中将选择的知识包加载到本地,并编译包中所有知识;在编译过程中,决策与推理引擎将所有知识拆分为单独的条件,从中移除每条知识的重复条件;(2)将知识保存在知识库中后,在需要进行判断时,进行编译和运行时优化在得到了经过预处理的知识后,决策与推理引擎首先基于局部性原理进行优化,合并不同知识中的相同条件;然后基于全局性原理进行优化,将所有的条件按相关的权重进行拓扑排序,并按拓扑排序的结果优化执行顺序;决策与推理引擎根据构建出一颗优化后的知识树,并使用当前优化后的知识树来执行决策;使用当前优化后的知识树来处理到来的事件;知识中的每一个条件为一个表达式或一个key,对于一个key,从决策与推理引擎的缓存中取出对应的结果,因此通过估算每个条件的执行时间来得到当前知识的执行时间;在决策与推理引擎运行时,将估计得到的知识执行时间作为执行每一个知识花费的代价,选择代价最小的执行顺序;(3)最后,根据执行后各知识的结果,将决策与推理引擎给出的判断返回给用户;根据这一结果,用户可以根据自身需要执行后续操作。2.根据权利要求1所述的一种编译及运行时优化的智能知识决策与推理引擎方法,其特征在于,知识中的每一个条件会包含一个权重属性,用于表示当前条件在整个结果中的重要程度;在计算每一个条件的执行顺序时,使用权重属性作为参考。3.根据权利要求1所述的一种编译及运行时优化的智能知识决策与推理引擎方法,其特征在于,在编译的过程中,决策与推理引擎根据优化后的知识来构建一种索引index,用于判断当一个条件的结果发生变化后会影响到哪些知识的结果;在运行过程中,决策与推理引擎通过这种索引来快速定位哪些知识的结果会受到影响,并通过仅执行受到影响的知识来加快决策与推理的速度。4.根据权利要求1所述的一种编译及运行时优化的智能知识决策与推理引擎方法,其特征在于,对每一条知识,在运行过程中,决策与推理引擎包含以下三种优化手段:a)根据结果为false的概率进行优化;b)根据其中条件执行的时间复杂度来估计整个知识的运行时间;c)使用机器学习的相关模型来预测当前知识的运行时间;根据以上三种手段来进行综合的优化,得到最优的知识执行顺序。5.根据权利要求1所述的一种编译及运行时优化的智能知识决策与推理引擎方法,其特征在于,步骤(1)中,在编译过程中,对于知识中包含已知为false的条件,则直接丢弃该知识。6.一种实现权利要求1-5任一项所述编译及运行时优化的智能知识决策与推理引擎方法的编译及运行时优化的智能知识决策与推理引擎系统,其特征在于,该系统包括用户知
识定义模块、知识管理模块、决策模块以及结果输出模块;所述知识定义模块,用于获取用户定义的知识并进行相应的预处理操作,用户通过决策与推理引擎包含的知识构建语言定义一系列知识;此时用户将业务逻辑相关的知识定义打包为一个知识包,然后将知识包发往知识管理模块供后续用户订阅使用;所述知识管理模块,用于保存用户定义的所有知识包,其它用户订阅知识定义模块中已定义打包的知识包;在确定好需要订阅的知识包后,将选择的知识包加载并编译包中所有知识;在编译过程中,决策与推理引擎将所有知识拆分为单独的条件,从中移除每条知识的重复条件;所述决策模块,用于判断当前新的事件是否能够满足用户订阅的某些知识;在得到了经过预处理的知识后,决策与推理引擎首先基于局部性原理进行优化,合并不同知识中的相同条件;然后基于全局性原理进行优化,将所有的条件按相关的权重进行拓扑排序,并按拓扑排序的结果优化执行顺序;决策与推理引擎根据构建出一颗优化后的知识树,并使用当前优化后的知识树来执行决策;使用当前优化后的知识树来处理到来的事件;知识中的每一个条件为一个表达式或一个key,对于一个key,从决策与推理引擎的缓存中取出对应的结果,因此通过估算每个条件的执行时间来得到当前知识的执行时间;在决策与推理引擎运行时,将估计得到的知识执行时间作为执行每一个知识花费的代价,选择代价最小的执行顺序;所述结果输出模块,用于输出当前决策与推理引擎执行后各知识的结果,将决策与推理引擎给出的判断返回给用户;根据这一结果,用户可以根据自身需要执行后续操作。7.根据权利要求6所述的编译及运行时优化的智能知识决策与推理引擎系统,其特征在于,该系统还包括运行时旁路优化模块,用于对每一条知识,在运行过程中通过以下三种手段进行综合的优化,得到最优的知识执行顺序:a)根据结果为false的概率进行优化;b)根据其中条件执行的时间复杂度来估计整个知识的运行时间;c)使用机器学习的相关模型来预测当前知识的运行时间。
技术总结
本发明公开了一种编译及运行时优化的智能知识决策与推理引擎方法及系统,通过将知识拆解为一个个单独的条件,然后再对每一个条件进行聚合和排序操作,一次来加快所有知识的推理与决策过程。在编译时,首先对知识进行预处理操作,然后将不同知识中相同的条件进行合并,使得不同知识中的相同条件仅执行一次;在实际执行时,引擎通过计算条件的运行代价来实时地调整条件和知识的执行顺序,使得决策与推理的时间最短。本发明不仅能够极大地加快复杂知识下对于每一条事件的决策速度,同时还能够减少大量的内存占用。本发明尤其适用于包含海量数据的实时营销和实时风控等领域,具有良好的实时性和高度可扩展能力。的实时性和高度可扩展能力。的实时性和高度可扩展能力。
技术研发人员:王新根 陈伟 王新宇 杨运平 王刚 黄宏 邓静
受保护的技术使用者:浙江邦盛科技股份有限公司
技术研发日:2022.12.13
技术公布日:2023/7/31
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/