本文总结了博主从事风控系统研发三个月来的经验。从小白到现阶段的知识总结,不足之处还请不吝赐教。
规则引擎
提到风控系统就不得不提规则引擎,那么规则引擎是什么呢?
最简单的答案:规则引擎是动态脚本解析工具。常用的规则引擎有阿里开源的QLExpress, Google家的Aviator.
长一点的答案:顾名思义规则引擎是用来跑规则的,规则则是定义好的一组布尔表达式,规则引擎的作用就是运行这组表达式,获得结果,而表达式又是用动态语言编写的,因此可以说规则引擎是用来解析动态脚本的。
风控系统
风控系统是用来干什么的?
风控系统是用来给业务风控定义风控规则的,风控规则经过规则引擎的解析得到结果,表示规则是否命中,如果命中需要触发什么样的处置。
例如,业务风控定义了一个风控规则a+b>5,在规则引擎上执行的时候需要知道a,b的值,这两个值的获取一般需要通过大数据获得,然后在规则引擎上执行,从而得到结果是否命中,以及执行命中后的操作。
具体说来风控系统由以下部分组成:
- 规则:风控规则定义,是由因子和操作符组成的布尔表达式,例如a+b>5
- 因子:风控规则的最小组成部分,例如规则a+b>5中的a,b为因子
- 检查点:定义外部系统和风控系统的对接关系,例如用户中心在用户注册的时候需要调用风控系统,检查点定义了外部系统的调用参数,以及需要运行哪些规则。
- 数据源:提供因子数据,例如规则a>5表示的业务含义为用户连续登录失败次数大于5次,用户连续登录失败次数作为因子a,a的数据来源通过数据源来提供。数据源是对因子来源的抽象。
- 处置:用来表示规则命中后要触发的动作,例如冻结用户金额,冻结用户账号。