一种基于规则引擎的风险控制方法和装置与流程

文档序号:15830387发布日期:2018-11-07 07:14阅读:246来源:国知局
一种基于规则引擎的风险控制方法和装置与流程

本申请涉及计算机应用技术领域,具体而言,涉及一种基于规则引擎的风险控制方法和装置。

背景技术

规则引擎是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。其主要工作过程为:接受数据输入,解释业务规则,并根据规则做出业务决策。风险控制是指风险管理者采取各种措施和方法,消灭或减少风险事件发生的各种可能性,或风险控制者减少风险事件发生时造成的损失。

使用规则引擎实现风险控制是当前风险业务人员进行风险控制的一种重要手段;风险业务人员可以根据实际需要将特征组成至少一个逻辑表达式,以制定风险控制规则。将风险控制规则传入到规则引擎;规则引擎能够基于所制定的风险控制规则,以及风险控制目标的相关特征值,执行逻辑表达式,最终输出对该风险控制目标的风险控制结果。

例如,风险业务人员制定贷款规则;贷款规则由贷款人的当前欠款数量、贷款人的银行征信值、贷款人的借贷归户数据、贷款人的学历、贷款人的工作收入等特征组成的逻辑表达式构成;风险控制目标的相关特征值,为目标贷款人所具备的与贷款规则中各个特征对应的值;规则引擎能够基于贷款规则以及目标贷款人所具备的与贷款规则中各个特征对应的值,计算是否要向该贷款人贷款,以及贷款的数额限度。

规则引擎极大的提高了风险控制的方便程度,使得风险业务人员不需要再人工进行风险控制。但是当前的规则引擎需要风险业务人员传入风险控制规则中所包括的各个特征的值,使用不方便。



技术实现要素:

有鉴于此,本申请实施例的目的在于提供一种基于规则引擎的风险控制方法和装置,能够基于输入的第一数据和预先设置的规则依赖数据关系信息,自动从数据源获取与第一数据中携带的输入特征不同的输入特征的第二数据,根据这些特征和数据做规则计算,返回相应的决策结果,达到使用更加方便的效果。

第一方面,本申请实施例提供了一种基于规则引擎的风险控制方法,所述规则引擎部署有预设的风险控制规则;该方法包括:

获取第一数据;

基于所述第一数据和预先设置的规则依赖数据关系信息,从预设数据源获取第二数据;所述第一数据以及所述第二数据中携带有所述风险控制规则在执行时所需要的不同输入特征;

对所述第一数据以及所述第二数据进行特征抽取,获取所述风险控制规则在执行时需要的输入特征的值;

基于所述输入特征的值以及所述风险控制规则,得到风险控制结果。

第二方面,本申请实施例提供了一种基于规则引擎的风险控制装置,所述规则引擎部署有预设的风险控制规则;该装置包括:

第一获取模块,用于获取第一数据;

第二获取模块,用于基于所述第一数据和规则依赖数据关系信息,从预设数据源获取第二数据;所述第一数据以及所述第二数据中均携带有所述风险控制规则的所需要的输入特征;

特征抽取模块,用于对所述第一数据参数以及所述第二数据参数进行特征抽取,获取所述风险控制规则在执行时需要的输入特征的值;

风险控制模块,用于基于所述输入特征的值以及所述风险控制规则,得到风险控制结果。

本申请实施例在利用规则引擎进行风险控制的时候,在获取第一数据之后,能够基于第一数据和预先设置的规则依赖数据关系,从预设数据源获取第二数据,第一数据和第二数据中均携带有风险控制规则中所需要的不同的输入特征的值,然后对第一数据和第二数据进行特征抽取,获取风险控制规则在执行时需要的输入特征的值,然后基于输入特征的值以及风险控制规则,得到风险控制结果,因此风险业务人员不需要输入风险控制规则所需要的所有输入特征的值,而是只需要输入包括了部分输入特征的值的第一数据,就能够根据预先设置的规则依赖关系信息,获取第二数据,在第二数据中携带了第一数据中并未包括的输入特征的值,从而能够自动将所需要的输入特征补全,进而方便了风险业务人员的使用。

为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本申请实施例一所提供的一种基于规则引擎的风险控制方法的流程图;

图2示出了本申请实施例二所提供的另一种基于规则引擎的风险控制方法的流程图;

图3示出了本申请实施例三所提供的部署风险控制规则的方法流程图;

图4示出了本申请实施例四所提供的对规则集单元进行测试的方法流程图;

图5示出了本申请实施例所提供的一种基于规则引擎的风险控制装置的结构示意图;

图6示出了本申请实施例所提供的一种计算机设备的结构示意图;

图7示出了本申请实施例所提供的一种规则引擎系统架构的结构示意图;

图8示出了本申请实施例所提供的一种规则引擎系统架构中决策服务系统的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

为便于对本申请实施例进行理解,首先对本申请实施例所公开的一种基于规则引擎的风险控制方法进行详细介绍,该方法的执行主体为包含有规则引擎的计算机设备。本申请实施例中的规则引擎可以视为用于执行风险控制规则的计算机系统。

如图1所示,本申请实施例一提供的一种基于规则引擎的风险控制方法,包括如下步骤:

s101:获取第一数据。

在具体实现的时候,第一数据为风险业务人员当前能够输入的数据;该第一数据中至少要携带风险控制目标的身份信息,以使得规则引擎能够根据风险控制目标的身份信息,获得携带有该风险控制目标对应的其它输入特征的值。

例如,在贷款业务中,第一数据包括:目标贷款人(风险控制目标)的姓名以及身份证号码。

s102:基于所述第一数据和预先设置的规则依赖数据关系信息,从预设数据源获取第二数据;所述第一数据以及所述第二数据中携带有所述风险控制规则在执行时所需要的不同输入特征的值。

在具体实现的时候,规则依赖数据关系信息,实际上是风险控制规则在执行时所需要的输入特征的相关信息以及相关信息之前的相互依赖关系,该相关信息可以是输入特征的直接信息,也可以是输入特征的间接信息,例如,当风险控制目标的年龄作为输入特征;若相关信息是输入特征的直接信息,则该相关信息为输入特征:年龄的值;若相关信息是输入特征的间接信息,则该相关信息为依赖特征:当前年月日,和依赖特征:风险控制目标的出生年月日,相关信息的依赖关系,即通过两个依赖特征计算输入特征的关系。

例如:规则依赖数据关系信息中的相关信息包括输入特征的直接信息的情况下,设规则依赖数据关系信息包括:输入特征a、输入特征b、输入特征c、输入特征d以及输入特征e;如果第一数据中携带了输入特征a的值;则所要获取的第二数据就应当携带有输入特征b、输入特征c、输入特征d以及输入特征e的值。如果第一数据中携带了输入特征c、输入特征d的值,则第二数据携带了输入特征a、输入特征b以及输入特征e的值。

规则依赖数据关系信息中的相关信息包括输入特征的间接信息的情况下,设规则依赖数据依赖关系信息包括:输入特征a、输入特征b、特征c、特征d、输入特征e,以及输入特征f对特征c和特征d的依赖关系。如果第一数据中携带了输入特征a、特征c,则要获取的第二数据就应当携带有输入特征b、特征d和输入特征e。

另外,预设数据源是指能够获得第二数据的数据库或者系统,如银行系统、教育系统、房屋管理系统、公安治安系统、例如企业内部的数据库等。不同的输入特征,所对应的数据源可以相同也可以不同。

在从预设数据源获取第二数据的时候,规则引擎会向数据源发送数据请求;所述数据请求中携带了想要获取的数据的标识信息以及鉴权信息。

数据源在接收到数据请求后,首先基于鉴权信息对规则引擎进行鉴权;在鉴权通过后,才会数据请求中的标识信息,获取与标识信息对应的第二数据,并将第二数据反馈给规则引擎。

鉴权过程为数据源对规则引擎的身份认证过程。鉴权过程可以采用各种身份认证方法,在此不再赘述。

s103:对所述第一数据以及所述第二数据进行特征抽取,获取所述风险控制规则在执行时需要的输入特征的值。

在具体实现的时候,对第一数据以及第二数据进行特征抽取,可能包括如下两个过程:

(1)规则依赖数据关系信息中的相关信息包括输入特征的直接信息的情况下,则直接从第一数据和第二数据中获取输入特征的值。

(2)规则依赖数据关系信息中的相关信息包括输入特征的间接信息的情况下,从第一数据和第二数据中获取依赖特征的值,然后根据依赖特征的值计算输入特征的值。

在对所述第一数据以及所述第二数据进行特征抽取的时候,可以通过node.js的沙箱环境执行特征抽取过程。node.js是一个基于chromev8引擎的javascript运行环境,node.js使用了一个事件驱动、非阻塞式i/o的模型,使其轻量又高效,具有易于处理json字符串和快速编写的特点,能够对json字符串格式的第一数据和第二数据进行快速特征抽取。

s104:基于所述输入特征的值以及所述风险控制规则,得到风险控制结果。

在具体实现的时候,基于输入特征的值以及所述风险控制规则得到风险控制结果的过程,实际上是将输入特征的值代入风险控制规则所包括的逻辑表达式,计算逻辑表达式结果的过程,逻辑表达式结果即为风险控制结果。

本申请实施例在利用规则引擎进行风险控制的时候,在获取第一数据之后,能够基于第一数据和预先设置的规则依赖数据关系,从预设数据源获取第二数据,第一数据和第二数据中均携带有风险控制规则中所需要的不同的输入特征的值,然后对第一数据和第二数据进行特征抽取,获取风险控制规则在执行时需要的输入特征的值,然后基于输入特征的值以及风险控制规则,得到风险控制结果,因此风险业务人员不需要输入风险控制规则所需要的所有输入特征的值,而是只需要输入包括了部分输入特征的值的第一数据,就能够根据预先设置的规则依赖关系信息,获取第二数据,在第二数据中携带了第一数据中并未包括的输入特征的值,从而能够自动将所需要的输入特征补全,进而方便了风险业务人员的使用。

如图2所示,本申请实施例二还提供另外一种基于规则引擎的风险控制方法,该方法在基于所述输入特征的值以及所述风险控制规则,得到风险控制结果之前,还包括:

s201:获取第一数据;

s202:基于所述第一数据和预先设置的规则依赖数据关系信息,从预设数据源获取第二数据;所述第一数据以及所述第二数据中携带有所述风险控制规则在执行时所需要的不同输入特征;

s203:对所述第一数据以及所述第二数据进行特征抽取,获取所述风险控制规则在执行时需要的输入特征的值;

s201-s203同上述s101-s103,在此不再赘述。

s204:为所述风险控制规则加载规则元数据;所述规则元数据包括预先为所述风险控制规则配置的特征参数。

在具体实现的时候,规则元数据为风险控制规则在执行过程中所需要用到的除了输入特征之外的参数,规则元数据在对风险控制规则进行配置的时候生成,且能够在风险控制规则后续使用过程中根据实际的需要进行具体设定。

例如,在贷款业务的风险控制规则中,包括一条逻辑表达式,为:检测风险控制目标的还贷款的逾期天数是否达到预设的逾期天数阈值;则还贷款的逾期天数为特征信息的值;预设的逾期天数阈值即为规则元数据。

此处,需要注意的是,s201-s203具有执行的先后顺序,但s204和s201-s203并无执行先后顺序,其可以在s201之前执行,可以在s201和s202之间执行,也可以在s202和s203之间执行。

s205:将所述输入特征的值代入加载了所述规则元数据的所述风险控制规则,并对所述风险控制规则进行运算,得到所述风险控制结果。

通过本实施例,当规则引擎在基于输入特征的值执行风险控制规则之前,为风险控制规则加载当前规则元数据,使得风险业务人员能够风险控制规则加载规则元数据之前,根据实际的需要对规则元数据进行修改,满足风险业务人员的使用需求。

本申请实施例三还提供另外一种基于规则引擎的风险控制方法,该方法还包括:部署所述风险控制规则的步骤;

其中,如图3所示,所述部署所述风险控制规则的步骤包括:

s301:获取规则配置信息;所述规则配置信息包括:输入特征信息、规则依赖数据关系信息、规则元数据信息以及规则逻辑表达式信息;

s302:基于所述规则配置信息构成风险控制规则,并根据预先设定的与规则逻辑表达式对应的代码信息为所述风险控制规则生成逻辑代码;

s303:将所述逻辑代码保存为与其他风险控制规则隔离的规则集单元,并将规则元数据的值单独保存。

s304:将所述规则集单元作为风险控制规则进行部署。

在具体实现的时候,规则配置信息为风险业务人员对风险控制规则进行配置时所需要输入的相关信息。

其中,输入特征信息一般包括如下一种或者多种:输入特征的名称,与获取的数据源、连接数据源的相关鉴权信息、输入特征的依赖特征,以及基于依赖特征和输入特征之间的关系。

规则元数据信息一般包括如下一种或者多种:规则元数据的名称,规则元数据的值等。

规则逻辑表达式信息包括输入特征和规则元数据之间的关联关系构成的多条逻辑表达式,以及逻辑表达式之间的关联关系。

在获得规则配置信息后,要基于规则配置信息构成风险控制规则,并根据每条逻辑表达式,从代码数据库中抽取与逻辑表达式对应的代码信息,并将输入特征和规则元数据代入到代码信息中,生成风险控制规则的逻辑代码,之后将逻辑代码保存为规则集单元。该规则集单元对应一个风险控制规则,且该规则集单元与其他风险控制规则对应的规则集单元相互隔离。

在生成规则集单元之后,将所述规则集单元作为风险控制规则部署到需要部署的位置。

本申请实施例四还提供另外一种基于规则引擎的风险控制方法,在上述s303和s304之间,还包括:执行对所述规则集单元进行测试的过程。

如图4所示,所述对所述规则集单元进行测试的过程包括:

s401:获取携带有标签的测试数据。

此处,测试数据的标签为与该测试数据对应的正确的风险控制结果。测试数据中包括了逻辑代码中所需要输入的所有输入特征的值。

s402:基于所述测试数据运行所述规则集单元中的逻辑代码,获取与所述测试数据对应的输出结果。

此处,将测试数据中包括的所有输入特征的值输入至逻辑代码,并运行该逻辑代码;逻辑代码的运行结果可能有三种:第一,输出正确的风险控制结果;第二,输出错误的风险控制结果;第三,输出错误提示。

s403:检测所述测试数据的所述输出结果与所述测试数据的标签是否均一致;若是,则执行s304;若否,则执行s301。

此处,当逻辑代码的运行结果为错误的风险控制结果或者错误提示时,则认为测试数据的输出结果与其标签不一致。在不一致的情况下,要返回到获取规则配置信息的步骤,提示风险业务人员输入新的规则配置信息,并重新生成规则集单元,具体地,包括:重新获取规则配置信息,并基于重新获取的规则配置信息构成新的风险控制规则;根据预先设定的与规则逻辑表达式对应的代码信息为新的风险控制规则生成新的逻辑代码;将新的逻辑代码保存为新的规则集单元,并再次执行对规则集单元进行测试的过程,直到规则集单元的测试结果正确。

s304:将所述规则集单元作为风险控制规则进行部署。

该方法通过在将规则集单元作为风险控制规则进行部署之前,使用带有标签的测试数据对规则集单元进行测试,只有测试通过,才会将规则集单元作为风险控制规则部署到需要部署的位置,因此能够提高风险控制规则的可用性。

在该实施例中,测试数据可以为一组,也可以为多组。当测试数据为多组的时候,可以有如下两种对规则集单元进行测试的方法:

其一,依次使用每一组测试数据对规则集单元进行测试。若当前测试所使用的测试数据的测试结果错误,也即,当前测试数据的输出结果与当前测试数据所对应的标签不一致时,则重新获取规则配置信息,并基于重新获取的规则配置信息生成新的规则集单元,基于该组测试数据进行重新测试;若当前所使用的测试数据的测试结果正确,则使用下一组未使用的测试数据对规则集单元继续进行测试,直至使用所有测试数据对规则集单元进行测试的结果都正确。

例如,有a、b、c、d、e共五组测试数据,首先使用测试数据a对当前规则集单元进行测试;若测试数据a的输出结果与测试数据a所对应的标签不一致,则重新获取规则配置信息,并基于重新获取的规则配置信息生成新的规则集单元,基于测试数据a再次对新的规则集单元进行测试;若测试数据a的输出结果与测试数据a所对应的标签一致,则使用测试数据b对规则集单元进行测试。此时,使用测试数据b进行测试的规则集单元,是使用测试数据a进行测试时测试结果正确的规则集单元。

其二,使用所有测试数据对规则集单元进行测试。若其中任意一组测试数据的测试结果错误,也即,任意一组测试数据的输出结果与当前测试数据所对应的标签不一致,则重新获取规则配置信息,并基于重新获取的规则配置信息生成新的规则集单元,并再次使用所有测试数据对规则集单元进行测试,直至使用所有测试数据对规则集单元进行测试的结果都正确。

例如,有a、b、c、d、e共五组测试数据,依次使用a、b、c、d、e共五组测试数据对当前规则集单元进行测试。若测试数据a的输出结果与测试数据a所对应的标签不一致,b、c、d、e四组测试数据的输出结果分别与测试数据b、c、d、e所对应的标签一致,则重新获取规则配置信息,并基于重新获取的规则配置信息生成新的规则集单元,再次基于a、b、c、d、e五组测试数据对新的规则集单元进行测试,直至某次对规则集单元进行测试时,所有测试数据的测试结果均正确。

基于同一发明构思,本申请实施例还提供了与上述基于规则引擎的风险控制方法对应的基于规则引擎的风险控制装置,由于本申请实施例的基于规则引擎的风险控制装置解决问题的原理与本申请实施例的基于规则引擎的风险控制方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。

如图5所示,本申请实施例提供一种基于规则引擎的风险控制装置,该装置包括:

第一获取模块51,用于获取第一数据;

第二获取模块52,用于基于所述第一数据和规则依赖数据关系信息,从预设数据源获取第二数据;所述第一数据以及所述第二数据中均携带有所述风险控制规则的所需要的输入特征;

特征抽取模块53,用于对所述第一数据参数以及所述第二数据参数进行特征抽取,获取所述风险控制规则在执行时需要的输入特征的值;

风险控制模块54,用于基于所述输入特征的值以及所述风险控制规则,得到风险控制结果。

本申请实施例在利用规则引擎进行风险控制的时候,在获取第一数据之后,能够基于第一数据和预先设置的规则依赖数据关系,从预设数据源获取第二数据,第一数据和第二数据中均携带有风险控制规则中所需要的不同的输入特征的值,然后对第一数据和第二数据进行特征抽取,获取风险控制规则在执行时需要的输入特征的值,然后基于输入特征的值以及风险控制规则,得到风险控制结果,因此风险业务人员不需要输入风险控制规则所需要的所有输入特征的值,而是只需要输入包括了部分输入特征的值的第一数据,就能够根据预先设置的规则依赖关系信息,获取第二数据,在第二数据中携带了第一数据中并未包括的输入特征的值,从而能够自动将所需要的输入特征补全,进而方便了风险业务人员的使用。

可选地,包括:数据加载模块55,用于在基于所述输入特征的值以及所述风险控制规则,得到风险控制结果之前,为所述风险控制规则加载规则元数据;所述规则元数据包括预先为所述风险控制规则配置的特征参数。

可选地,所述风险控制模块54,具体用于:

将所述输入特征的值代入加载了所述规则元数据的所述风险控制规则,并对所述风险控制规则进行运算,得到所述风险控制结果。

可选地,还包括:部署模块56,用于执行部署所述风险控制规则的步骤;

其中,所述部署所述风险控制规则的步骤包括:

获取规则配置信息;所述规则配置信息包括:输入特征信息、规则元数据信息以及规则逻辑表达式信息;

基于所述规则配置信息构成风险控制规则,并根据预先设定的与规则逻辑表达式对应的代码信息为所述风险控制规则生成逻辑代码;

将所述逻辑代码保存为与其他风险控制规则隔离的规则集单元;

将所述规则集单元作为风险控制规则进行部署。

可选地,部署模块56,还用于在所述将所述规则集单元作为风险控制规则进行部署之前,执行对所述规则集单元进行测试的过程,直到所述规则集单元的测试结果正确;

其中,所述对所述规则集单元进行测试的过程包括:

获取携带有标签的测试数据;

基于所述测试数据运行所述规则集单元中的逻辑代码,获取与所述测试数据对应的输出结果;

将所述测试数据的输出结果与所述测试数据的标签进行比对;

若所述测试数据的所述输出结果与所述测试数据的标签不一致,则:

重新获取规则配置信息,并基于重新获取的规则配置信息构成新的风险控制规则;

根据预先设定的与规则逻辑表达式对应的代码信息为新的风险控制规则生成新的逻辑代码;

将新的逻辑代码保存为新的规则集单元,并再次执行对规则集单元进行测试的过程。

对应于图1中的基于规则引擎的风险控制方法,本申请实施例还提供了一种计算机设备600,如图6所示,计算机设备600包括存储器601、处理器602及存储在存储器601上并可在处理器602上运行的计算机程序,其中,处理器602运行上述计算机程序时实现上述基于规则引擎的风险控制方法。

具体地,存储器601和处理器602可以是通用存储器和处理器,这里不做具体限定,当处理器602运行存储器601存储的计算机程序时,能够实现上述基于规则引擎的风险控制方法,从而解决当前规则引擎需要风险业务人员传入风险控制规则中包括的各个特征的值导致的使用不方便的问题,进而能够基于输入的第一数据和预先设置的规则依赖数据关系信息,自动从数据源获取与第一数据中携带的输入特征不同的输入特征的第二数据,根据这些特征和数据做规则计算,返回相应的决策结果,达到使用更加方便的效果。

对应于图1中的基于规则引擎的风险控制方法,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时实现上述基于规则引擎的风险控制方法。

具体地,该存储介质可以是通用存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够实现上述基于规则引擎的风险控制方法,从而解决当前规则引擎需要风险业务人员传入风险控制规则中包括的各个特征的值导致的使用不方便的问题,进而能够基于输入的第一数据和预先设置的规则依赖数据关系信息,自动从数据源获取与第一数据中携带的输入特征不同的输入特征的第二数据,根据这些特征和数据做规则计算,返回相应的决策结果,达到使用更加方便的效果。

如图7所示,本申请还提供一种决策引擎架构,该决策引擎架构包括两个部分:第一,提供给风控人员进行规则管理的规则管理平台;第二,提供给业务系统实时决策的高效稳定的决策服务系统。

其中,决策服务系统包括:

(1)前端控制系统rulengine-web,主要用于提供可视化管理界面,包括规则配置、规则测试、规则发布、以及决策统计等界面功能。

其中,规则配置:主要用于业务规则的管理,也即,给用户提供一个直观易用的网页界面,可以在上面编写规则集、规则、特征代码抽取脚本等。系统可按不同的业务分别管理规则集,设定规则集的转发和规则的优先级。

规则测试:主要用于业务规则的测试,也即,提供了手工测试和批量测试功能,可以在不依赖业务系统开发的情况下,让风控人员自行测试风控政策的更新是否满足需求。

规则发布:主要用于业务规则的发布,也即,为了避免误操作导致的风控规则变更影响实际业务,在决策引擎上的所有修改,都需要经过审核才能发布到生产环境;而生产环境上的规则只能查看,无法修改,最大程度降低操作风险。

决策统计:主要用于数据统计与分析,也即风控规则经过发布,在生产环境生效后,决策引擎会实时统计决策执行的结果,包括批拒贷的分布、每条规则的触碰情况、批拒贷码的触碰情况,让风控人员可以及时了解风控的执行情况,便于分析规则有效性、及时发现问题。

(2)后端接口系统rulengine-backend,包括前端控制系统连接的curdrestful接口、管理规则的api等功能接口。

(3)存储系统,用于存储数据,例如可以包括用于存储决策历史数据的hbase数据库、用于存储所发布规则的消息队列mq、以及作为主备设备的mysql。

(4)决策引擎服务系统rulengine-decision,其主要负责规则引擎的主体流程,提供实时的决策服务。其中包括:引擎engine模块,主要负责决策平台主体业务的控制和对其他模块的调度;逻辑logic模块,主要负责计算规则中的特征逻辑表达式;特征feature模块,主要负责调用特征抽取服务系统rulengine-feature,获取特征值。决策引擎服务系统通过异步串行端口async与存储系统连接,将决策历史异步保存到hbase中。

(5)特征抽取服务系统rulengine-feature,主要负责运行特征代码,得到特征结果。其中,特征代码支持javascript(通过node.js的原生的vm包来执行)以及python、sas等语言。特征抽取服务系统还包括:知识图谱、第三方数据等外部数据源对接模块。

具体地,如图8所示,决策服务系统包括:决策接口、规则加载模块、数据校验模块、规则执行模块、组装结果模块、数据总线、数据获取模块以及特征抽取模块。进一步地,该决策服务系统的工作流程如下:

决策接口从位于决策服务系统外部的业务系统获取进件数据(本申请实施例所述第一数据),并将进件数据传输给规则加载模块;

规则加载模块根据决策接口传入的进件数据,进行规则加载;

数据校验模块根据加载的规则和进件数据进行数据校验,基于进件数据和预先设置的规则依赖数据关系信息,确定外部数据的种类,并通知给数据获取模块;

数据获取模块根据数据校验模块的校验结果,从外部数据服务(本申请实施例所述外部数据源)获取在规则执行过程中的外部数据(本申请实施例所述第二数据),其中,外部数据可能包括第三方数据、归户数据、爬虫数据以及风险名单中的至少一种;

特征抽取模块对获取的外部数据和进件数据进行数据加工及变量处理,抽取加载的规则在执行时需要的输入特征的值,并将抽取的输入特征的值通过数据总线传输给规则执行模块;

规则执行模块根据特征抽取模块抽取的输入特征的值,执行规则加载模块加载的规则,并将规则执行的输出数据传输给组装结果模块;

组装结果模块对规则执行的输出数据进行结果组装,并将结果数据输出给业务系统。

在上述过程中,所有进件数据、外部数据、特征变量和结果数据都会经由数据总线传输给数据库,作为决策历史进行存储。

本申请的有益效果:

(1)相比于其他规则引擎,本申请可以明显降低规则上线部署的时间,业务人员还可以自己随时在平台上操作部署规则并发布到线上使用,减少了对技术开发人员的依赖。业务人员还可以在平台上实时看到规则的执行效果并进行分析。而这些对业务系统开发都是无感知的,业务系统不需要为规则变更做任何修改,甚至都不需要知道有规则变化。

(2)提供了图形化的规则配置界面,业务人员的规则会转化为可以后台执行的逻辑代码,这些逻辑代码在执行过程中都是互相隔离的规则集单元,底层通过调度获取不同的数据源输入进行特征和规则的计算。

(3)本申请提供的规则引擎中,规则修改后,通过界面上的一个发布操作,底层实现了可以实时同步到引擎的各个集群节点,节点会自动加载规则生效。

(4)相比于其他规则引擎的规则执行,本申请在规则执行之前,提供了对数据的简单加工处理和统计的数据获取接口,极大地丰富了规则数据预处理功能。

本申请实施例所提供的基于规则引擎的风险控制方法及装置的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于实现前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,本领域技术人员在本申请揭露的技术范围内可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求书所记载的内容为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1