引言
本篇主要聚焦介绍风控决策引擎中决策树编排能力的构建。决策引擎是风控的大脑,而决策树的编排能力和体验是构建大脑的手段,如何构建高效、丝滑、稳定可靠的决策树编排能力,是对风控决策引擎的一大挑战,本篇文章和大家分享一下过往构建心得。
背景
任何系统在初期构建肯定不是往“一步到位”的方向去构建的,只是架构设计者尽量向后期可扩展、可维护的方向去搭建。好的底层设计,不怕产品后期疯狂迭代,且改动调整方便。糟糕的“填鸭式”代码,可能在当时为了尽快实现了功能,最终也会逐步发展成“屎山”,维护成本越来越高,要么跑路,要么只能另起炉灶。
MVP 小步迭代 1.0
此阶段目标:最小化可行产品(MVP);小布迭代,快速上线;一人分饰多角色。
风控部门成立初期,人员少,缺少 UED 和 前端,毕竟风控本身对视觉设计和前端不是刚需,主要是后端研发和策略运营对抗黑产即可。此时为了能尽快上线决策树功能,研发人员本着小步快跑的思想,直接在代码层资源目录 resource
下放置决策树静态配置文件(具体实现在下文分解),每次更改都需要发版。本身引擎的构建也是不完善的,需要添加的功能很多,一周发个几版也是家常便饭的事,此阶段大家也是能接受的。
“由静转动”2.0
此阶段目标:无需发版,生产快速变更;稳定性相关考虑。
随着部门队伍的逐步壮大,以及研发流程的规范,风控策略运营人员对于决策编排的响应时效和可视化能力需求越来越迫切,对于研发需要发版才能部署新的决策能力现状不满,黑产是高效的,但是研发发版又是需要编排和时间的,大家都要发版,且集中在一个发版周期,策略周一提出的修改,待到周三和大家的需求一起上,此时黑产早撸完跑路了。同时发版是有一定的风险的,出错了需要立即回滚,此时又延误了策略上线的时间。
基于上述,我们考虑到是时候开放生产环境直接可视化的编排决策树能力了,但是我们没有前端的同学,找别的部门借可能又不熟悉决策引擎这一套流程规范,沟通成本还高。那折中了一个方案:将静态配置文件挪到 DB 存储中去,且配置以文本字符的形式展现在前端即可,不需要复杂的前端设计,只需要简单的表单文本框填充即可满足研发修改决策流的诉求。这样让原本静态的配置“动”起来,直接在生产可配置,大大提高了生产部署的效率。
可视化决策流编排 3.0
此阶段目标:高效、稳定、智能的可视化决策树编排能力产品构建
接入风控的业务线越来越多,研发人员忙于风险场景对应的变量开发迭代,此时还需要分出一部分精力负责修改决策树。2.0 版本的决策树对运营来说就是一段字符串,不是一棵树,策略运营是没办法修改,也不敢修改,出错的风险太大。考虑到整个风控的体量和模式已经非常稳定了,也有一定的时间去考虑将决策编排做成一个可视化的产品交付策略人员使用了,毕竟决策树的调整本身也是策略的职责之一,需要将此沉淀为一个高可用的产品