业务规则普遍存在于企业运营的各个方面,目前企业普遍采用了规则引擎对规则进行存储、执行和监控。但是随着公司业务的迅速发展,业务人员很快会发现规则的管理和优化是非常困难的,主要原因有以下三点。
首先,规则非常多,人工了解全部的规则几乎不可能。大数据的普及使得企业不断引入新的数据源,在此基础上产生了成千上万的规则,要了解所有规则的内容和作用非常困难,如果要维持一个团队用人工对规则分类管理,不仅成本非常高,其效率也很低。
其次,业务的变化很快,规则的失效、冲突会越来越多。当前的社会发展非常快,商机转瞬即逝,客群特征迁移速度也非常快,这些现状会导致频繁加入新规则,旧规则生命周期缩短。新旧规则的有效性确认、修改是非常耗时耗力的,而且一旦某些核心员工流失,许多规则就变成了“死规则”。
最后,规则的优化困难。规则的形成通常可分为数据录入、逻辑定义和结果确认三方面,这三方面是存在较大的独立性的。数据录入通常是由技术人员完成的,逻辑定义可以由业务人员完成(至少是由业务人员确定需求),结果确认则是业务运行一段时间由管理人员或者业务人员完成的。这种分工通常不能充分利用公司拥有过的数据资源(业务人员可能不清楚有什么样的数据),而结果确认通常要经过较长的时间,每次关注的KPI可能还不相同,这样使得某些规则的持续优化也存在问题。
考虑到人工管理和优化规则的困难,本文从算法优化的角度探讨一种可行的人工+机器学习的方案。使用了规则引擎的企业,其规则已经以结构化的形式存在于数据库中,这使得算法优化成为一种可能。本文仍然以信贷审批的场景为例,假设数据库中所有的数据已经整合成了一张数据表(可能是一张维度非常多的表),表中的每一行代表一个人(或一次申请),每一列代表一个判别属性(变量),其中有一些特殊的列(标签列)包含了人工决策,逾期表现,损失等与决策和业务KPI相关的指标。我们希望算法优化的结果总是好于人工决策的,这样用算法优化的结果就可以直接导入业务系统执行。
图1 随机森林优化规则原理图
Fig1. Schematic diagram of rules optimization by random forest
优化算法的基本原理类似于随机森林算法:通过随机抽取行和列构造许多弱的决策树,以多棵树的投票结果作为最终的预测结果。如果仅从最终结果来看,完全的使用随机森林或许也是一种可行方案,但是从业务的管理考虑,直接使用随机森林算法存在一些问题。随机森林生成的弱决策树带有随机性,其结果有时是无法理解的(或者是明显错误的),这会给业务部门的理解和推广造成障碍。另外每次运行随机森林,即使数据不变其生成的弱决策树也可能不相同,因此需要考虑一种折中的方法:以现有的规则作为“种子”,适度生长,通过增加或减少变量,以及调整变量切分的阈值,找到效果最好的决策树。这样相当于对现有的临散规则进行了整合和优化,不存在难易解释的问题。从算法的角度看,通过随机选取行保证了生成的决策树的泛化性,通过列的随机增加或减少达到了探索/利用更多数据的目的。
以下进一步分析这种算法对管理和优化规则可以起到的作用。为了讨论的方便,首先需要从集合论的角度分析规则管理可能存在的问题。
每条规则可以分为LHS(Left Hand Side)和RHS(Right Hand Side)两部分,其中LHS相当于规则的条件或者说前件,LHS相关的变量组成了一个变量集合,而RHS则是满足LHS规则所采取的行为。如果规则间的变量集合是不相交,那么规则是互相独立的,可以视为两颗决策树;如果是相交的,则可以整合为一颗决策树。
图2 规则森林
Fig2. Rules Forest
图2中所示为一个规则系统中的规则,实心圆代表变量,空心圆代表满足规则所采取的行动。规则被整合为了一棵棵没有交集的决策树。当新加入的规则与某棵决策树变量集合相交,除了规则重复和规则矛盾这两种简单的问题外,主要还存在三种问题:分歧、增强、弱化。
如图3,分歧是指新加入的规则变量集合与某棵树的变量集合相交,不同的变量元素(蓝点和红点)称为分歧。其本质是加入额外的判别信息后,决策结果可能会不同,从知识的角度理解,也可以视为是一种细化的差异。
图3 规则分歧
Fig3. Discrimination of Rules
增强是指新加入的规则完全包含某棵已有的决策树。如图4,左边规则变量集合包含了右边已有的变量集合,并且新增了一个变量(红点),因此新规则相当于对老规则进行了扩充和细化。
图4 规则增强
Fig4. Enhancement of Rules
规则弱化则是指新增的规则变量集合完全包含于已有的某个变量集合,即新规则定义的条件弱于已有的规则,可以认为是一种增强泛化性的调整。
图5 规则弱化
Fig5. Reduce of Rules
通过人工在对规则进行管理时,有时会因为信息不全,而设定矛盾的规则;或者当新的规则与已有规则存在分歧、增强或者削弱时要花费大量时间进行取舍;最后规则LHS的顺序以及变量的划分很可能是不一致的,要将其“对齐”比较是人工难以完成的。
通过优化算法可以解决这些困难,并做到持续优化。首先优化算法可以将新的规则(决策树)与已有的决策树进行对齐,从而可以进行比较。其次优化算法主动的进行分歧、增强和减弱的探索,将效果更好的改变(增加、减少变量或者调整阈值)交给人工进行确认,既保证了规则的质量,也不花费过多的人力。最后是树的优化。类似于决策树的生成,优化算法可以重新优化变量节点的顺序,使得决策路径更短。
可以看出,优化算法持续地根据数据对规则进行调整,在确保“结果更佳”的基础上不会增加无效的劳动,新生成的规则可以由算法批量写入规则引擎,而不需要人工录入,业务人员的注意力主要集中在优化算法的建议是否合理上。
文章作者
余锴
曾在华为、惠普、SAP合作伙伴从事市场、咨询和数据科学领域工作,并在互联网金融行业有丰富的大数据建模、智能算法研发以及决策引擎设计经验。
领取专属 10元无门槛券
私享最新 技术干货