大家好,又见面了,我是你们的朋友全栈君。
决策引擎对很多风控从业者来说都是绕不开的必学知识点,每一个与金融业务相关的技术框架,都需要一个成熟稳定的决策引擎组件来支持,而目前,只有15%左右的互联网产品配置了这一工具。
本文旨在帮助大家认识决策引擎,包括前台规则配置与后台技术搭建,另外提供几个比较不错的轻量级开源引擎供大家进一步学习。
全文总计1.7w字,因内容较长,可分四部分进行阅读:
-
1.决策引擎介绍(适用人员:还没使用决策引擎的老板)
-
2. 前台规则管理(适用人员:业务、分析、模型、决策)
-
3. 后台引擎框架(适用人员:模型、开发、架构)
-
4. 决策引擎调研(适用人员:有开发需求或者学习需求)
?下面是第一部分的内容?
1. 决策引擎介绍
1.1 什么是决策
决策,指做决定时所用的策略或方法,是人们为各种事件出主意、做决定的过程。它是一个复杂的思操作过程,是信息搜集、加工、整合最后作出判断、得出结论的过程。在消费金融业务场景中,决策主要指技术人员、业务人员、管理人员共同参与制定的面向整个用户信贷生命周期各环节的策略规则。
1.2 什么是决策引擎
决策引擎是指企业针对其客户提供个性化的服务决策的平台,这些个性化服务决策包括:风险决策、精确营销决策等。决策引擎是一个工具,利用决策引擎可以支撑企业在客户管理(CRM)的各种决策,在决策引擎之上可以开发出各种不同的解决方案。
1.2.1 早期规则模型
传统的风控规则模型,主要内嵌在后台代码中,直接用硬编码的方式实现数据的获取、规则的定义、风险的判断。
伪代码如下:
if (StringUtil.isBlank(fieldA) || StringUtil.isBlank(fieldB) || StringUtil.isBlank(fieldC) || StringUtil.isBlank(fieldD)) { return ResultDOFactory.createResultDO(Code.PARAM_ERROR, "门店参数缺少必填项");}if (fieldA.length() < 10) { return ResultDOFactory.createResultDO(Code.PARAM_ERROR, "门店名称长度不能少于10个字符");}if (!isConsistent(fieldB, fieldC, fieldD)) { return ResultDOFactory.createResultDO(Code.PARAM_ERROR, "门店xxx地址、行政区和经纬度不一致");}
-
优点
-
当规则较少、变动不频繁时,开发效率最高。
-
稳定性较佳:语法级别错误不会出现,由编译系统保证。
-
-
缺点
-
规则迭代成本高:对规则的少量改动就需要走全流程(开发、测试、部署)。
-
当存量规则较多时,可维护性差。
-
规则开发和维护门槛高:规则对业务分析人员不可见。业务分析人员有规则变更需求后无法自助完成开发,需要由开发人员介入开发。
-
1.2.2 业务定制引擎
基于特定业务场景开发的定制引擎,可视为一种推理引擎。
-
优点
-
规则配置门槛低:视图和引擎内部数据模型完全贴合绩效业务模型,因此业务分析师很容易上手。
-
系统支持规则热部署。
-
-
缺点
-
适用范围有限:因为视图和引擎的设计完全基于特定业务模型,因此很难低成本修改后推广到别的业务。
-
1.2.3 通用决策引擎
通用决策引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件。实现的功能包括:将业务决策从应用程序代码中分离出来,使用预定义的语义模块编写业务决策,接收数据输入,解释业务规则,并根据业务决策做出业务规则。
简单点,可以理解为:
1.2.3.1 决策引擎特点
-
决策引擎将复杂的业务逻辑从代码中剥离出来,可以显著降低业务逻辑实现的难度,*降低实现复杂业务逻辑的组件的*复杂性,降低应用程序的维护和可扩展性成本,;
-
剥离的业务规则使用决策引擎实现,可以使多变的业务规则变的可维护、易维护;
-
配合决策引擎提供的良好的业务规则设计器,不用编码就可以快速编辑复杂的业务规则;
-
即使是完全不懂编程的业务人员,也可以使用决策引擎来定义复杂的业务规则;
-
业务系统运行过程中难免会发生业务规则变化的情形,有了决策引擎,业务规则部分采用决策引擎实现,这样在系统正常运行的情况就可以利用决策引擎对业务规则进行修改,从而实现业务规则的随需应便。
1.2.3.2 决策引擎功能
可以看到,常用决策引擎在传统风控决策的基础上,提供更加丰富的功能,包括:
-
层次更加丰富的逻辑运算
-
包含规则、评分卡、模型、表达式、决策流等
-
-
个性化业务场景事件管理
-
资源包
-
规则配置
-
阈值管理
-
标签管理
-
-
可视化编排
-
决策结果分析
-
规则监控
-
模型分析
-
模型报告
-
-
复杂决策
-
决策流
-
-
丰富的特征变量与场景识别
1.2.3.3 核心技术与挑战
在目前围绕大数据、大数据决策为核心的风控技术体系中,整体的数据量达到一定水平,存在的挑战将会是数据的稀疏化。随着风控业务覆盖的行业越来越多,平台间的数据稀疏问题就越明显。
此外,对于大数据来说,具有数据和大数据决策,却没很稳定的落地平台也不行。大数据应用要做到完整,还需要符合以下要求的平台:
-
容纳量:能容纳特别多的数据;
-
响应:任何决策都能实时响应;
-
并发:在大量数据并发时也能保持调用。
1.2.4 未来发展趋势
更高阶的风控决策引擎,在现有的风控决策引擎上融入了自言语言处理平台、流计算平台、实时预警、深度学习、可视化科学计算等,提升了现有决策引擎的算力和处理时效。
随着技术的革新,未来的决策引擎,会向着功能更加丰富,性能更加优良的风控实时决策系统演进。
1.3 应用场景
1.3.1 互联网金融风险决策
互联网金融行业是近期发展最为迅速的一个金融业务领域,而其中的风险控制更是整体业务体系的核心环节。互联网金融的门槛核心在于风控系统,面向C端客群的线上产品线,如消费分期、现金贷及信用卡代偿等业务方向,需实时支持大量业务的自动化处理,风控系统将承担贷前、贷中和贷后的风控评估、处理及预警的角色,极大地解放人工处理的瓶颈与效率。
-
根据设计好的风险模型和业务规则,实现商户和客户评分、评级;
-
根据不同渠道、不同产品的用户的申请信息、第三方数据、存量数据等,并结合设计好的业务规则,实现实时自动审批规则(拒绝、通过)的系统落地;
-
根据已有模型和规则,实现商户和客户的额度测算;
-
实现不同的催收策略配置,实现催收客户风险排序以及高危客户检测;
-
根据业务规则,实现贷后预警指标的落地。
业务规则的制定和变更,是贯穿于金融行业的各项业务环节中的重要任务之一。如:
-
资格审查
-
额度费率计算
-
信用评分评级
-
风险发现
-
积分管理
-
市场营销
-
渠道收费
这些业务中都有大量的规则,规则的来源包括:
-
政策法规
-
市场营销策略
-
产品合同
-
专家经验
1.4 功能要求
好的决策引擎产品甚至无需 IT 人员的参与 就可以实现规则的变更, 减少了维护的成本。同时决策引擎响应规则变更的速度相当快,1-3 天就可以完成,大幅度减少业务人员与技术人员的沟通成本,花更少的时间处理数据,加速业务扩展。
一个优秀的决策系统,应该具备以下几个条件:
1.4.1 灵活可配
-
易用性:改善用户体验,使业务用户能轻松编写规则,降低进入门槛。零基础简易便捷的配置多种复杂规则,实时高效管控用户异常行为;
-
安全性:风控规则完全由风控部门知晓和负责演进
-
高效性:实现快速实施,开发人员能够快速建模,与其他系统集成,提高工作效率;
-
兼容性:可以在各主流操作系统,中间件,浏览器,数据库上运行和使用;
-
平台化:与业务场景分离的通用规则引擎平台,一个平台可快速的应用在各个业务系统中;
-
可视化:规则设计器、打包测试工具,全部基于浏览器实现,所有的规则设计器皆为可视化、图形化设计器,通过鼠标点击即可实现复杂的业务规则定义,多条件组合也可以用图形方式展现。
1.4.2 快速启动
-
决策引擎目前已广泛的应用于金融行业的 IT 系统。配置好的规则模型可实时生效,如果涉及一般规则修改时,可做灰度部署。
-
简单的使用方式
1.4.3 高性能可用
-
应对海量业务申请,实现毫秒级审批
-
借鉴Rete等算法的优势,结合中式规则引擎的特点,开发一套自己的规则模式匹配算法,从根本上保证规则运行的效率,实现大量复杂业务规则计算时的毫秒级响应。
1.4.4 部署模式多样化
-
本地部署
-
(VA虚拟镜像/Docker容器)
-
-
嵌入式部署
-
JAVA/.NET,API调用
-
-
云端部署
-
Saas云
-
1.4.5 支持外部多方数据源调用
-
支持各种数据源,可自定义增加删减
-
引擎按需动态调用外部数据
-
支持RPC远程函数,由决策节点按需动态调用数据
-
动态调用外部黑名单数据
-
远程函数配置简单
1.4.6 高效能规则管理
-
支持全中文编写,高可用性
-
支持多样化的编写方式
-
支持零代码规则开发
-
拉拖拽即可搭建决策流
-
可以直接调用决策库中的决策
-
支持外部规则导入
1.4.7 支持模型评分的部署与维护
支持模型的部署——线性回归、决策树等简单模型容易将其变成规则来部署,但支持向量机、深度学习等对模型支持的功能有更高的要求。
-
不仅支持业务规则,还全面支持AI模型
-
支持外部PMML模型导入决策引擎中
-
兼容python模型,支持动态调用外部python模型
-
支持多种统计指标度量模型效果
-
支持多算法选择
-
自动生成数据规则,快速迭代算法模型
1.4.8 严谨、便捷的版本控制机制
无论是单个规则文件、或是用户调用的规则包,都可以提供完善的版本控制机制。对于规则文件来说只要有需要,就可以回退到任何一个历史版本;对于给用户调用的规则包,可以在不同的历史版本之间灵活切换。
满足以下条件:
-
版本发布:快速高效的热部署,不影响线上业务的运行,可直接实时切换。
-
回滚机制:当新版本线上突发事故,可直接一键回滚切换原有策略版本,后再进行事故排查,降低事故带来的损失。
得以解决一下问题:
-
逐步迭代分离商业决策者的商业决策逻辑和应用开发者的技术决策;
-
能有效的提高实现复杂逻辑的代码的可维护性;
-
在开发期间或部署后修复代码缺陷;
-
应付特殊状况,即客户一开始没有提到要将业务逻辑考虑在内;
-
符合组织对敏捷或迭代开发过程的使用;
1.4.9 技术对接成本低
-
决策引擎和其他系统基于Http/Https的通用接口API进行调用
-
交互数据文件为json格式数据文件
-
提供标准的SDK接口文档
-
系统参数配置
-
报文
-
1.4.10 系统监控及状态检查
-
状态检测
-
心跳检查
-
工作台状态
-
系统日志
至此,与大家一起完成决策引擎的初步了解及梳理。
下一篇文章,我们再一起了解前台规则的管理。
关注DataPlanet,回复关键词“风控”,获取更多技术干货。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/150095.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...