风控系统架构
风控系统主要由以下几个部分构成:风控实时引擎、风控准实时引擎、风控定时引擎、惩罚中心、规则中心等,下面分别进行介绍。(见图1)
图1
1.风控实时引擎
支付系统会把当前交易部分信息同步传递给风控实时引擎以获取当前交易的风险评分和处理建议。风险评分总分为100,分数越高风险越大,-1代表风控系统不能对当前交易进行评估风险,一般是指风控系统没能获取到当前交易正面或负面的信息。风控实时引擎最大的挑战是性能,实时引擎对支付交易进行风险评估必须在100ms内完成,否则会影响用户体验。
风控实时引擎依据公司积累的风控数据以及第三方风控数据对进行风险评估。公司风控数据主要来自风控准实时引擎和风控定时引擎。
风控实时引擎建立在规则引擎Drools基础上,目的是为了提高系统的灵活性和可配置性。
图2是风控报告的域模型。
图2
规则引擎优点
风控系统中风控规则变动比较频繁,其它部分相对稳定,通过引入规则引擎可以解耦系统与规则、提高复杂逻辑的可维护性、提高规则的可读性以及可理解性。
2.风控准实时引擎
交易欺诈行为具备一定的隐蔽性,不是所有风险都能实时的作出正确的评估,某些情况下需要通过对最近一段时间的数据进行分析才能确定欺诈行为,例如:对最近一个月的用户行为进行分析。风控准实时引擎从消息服务器获取交易数据,对交易数据流作异步分析,分析的结果通过风控服务存入风控数据库,供实时风控引擎评估交易风险。风控准实时引擎从发现异常到风控数据生效的时间在100ms以内,可以有效防止交易风险扩大。
风控系统初始建设时中风控准实时引擎往往是通过消息监听器消费交易消息,把中间数据存储在Redis缓存上,对数据进行多维度分析。由于需要针对每项指标开发相应程序,风控规则开发成本较高、上线周期长,为了解决这个问题以及提高系统的灵活性、可配置性,在风控系统2.0版本引入了CEP引擎Esper以及规则引擎Drools。
风控准实时引擎需要使用Drools、Esper、Esper IO AMQP、Esper Extension、Spring等组件,其中Esper Extension是我们对Esper的扩展,主要用来提高Esper可配置性以及丰富Esper IO功能以及弥补Esper缺陷。
图3是风控准实时引擎架构。
图3
· 什么是CEP
事件驱动是一种监测、分析信息流从中得出推论的方法。CEP(Complex Event Processing)也就是复杂事件驱动,是结合多种数据源的数据对信息流进行监测、分析从推理出一些复杂的事件或模式,CEP的目的是识别出一些有意义的事件,例如:机遇、威胁,并且尽可能快的作出反应。
CEP引擎已经被一些公司开发出来,用来满足那些需要分析事件并对其作出反应的的需求,下面是一些典型的应用示例:
· 业务流程管理和自动化(流程监控、商业活动监控、报告异常)
· 金融(自动化交易、欺诈检测、风险管理)
· 网络以及应用监控(入侵检测、SLA监测)
· 传感器网络应用(读取RFID、生产线调度与控制)
· CEP技术选型
下面列出一些CEP产品,大家可以根据自己的情况选用。
开源CEP产品:
· JBoss Drools Fusion
· EsperTech Esper
· Triceps
商业CEP产品:
· EsperTech Esper Enterprise Edition
· EsperTech EsperHA
· IBM Operational Decision Manager (IBM ODM)
· Oracle Stream Explorer platform
· TIBCO BusinessEvents
· TIBCO StreamBase
表1
Time Window
Length Window
Time Batch Window
· Esper优点
数据窗口机制完善
Esper目前支持大约30种数据窗口,深入理解窗口是应用Esper的关键,表1列出常用的几种。
EPL语句的语法与SQL相似降低学习成本
事件处理语言(EPL)是SQL标准语言并做了扩展,提供了SELECT、FROM、 WHERE、 GROUP BY、HAVING和ORDER BY等子句。
使用方式灵活
Esper提供了丰富的API,可以独立部署也可以集成进任何应用。
支持多种获取结果方式
见表2。
表2
· Esper缺点
Esper统计分析的中间数据全部是存储在内存中,不能跨服务器,只能单机部署,内存有限,存在单点故障,由于全内存操作,系统重启后中间数据就会丢失无法恢复。Esper的这些缺点风控系统都可以接受,对风控系统没有实质的影响。
3.风控定时引擎
某些非常隐蔽的交易欺诈通过实时或准实时风控引擎很难发现,这些风险需要通过分析用户跨月或跨年的数据才能识别。定时风控引擎主要用来定时对支付相关等数据进行深度挖掘,建立对应的风控模型,典型应用场景是用户的信用等级模型以及用户行为分析。
定时风控引擎构建在Hadoop集群上。
4.惩罚中心
惩罚中心负责积累风控数据并提供奖励和惩罚的相关服务,风控实时引擎、风控准实时引擎、风控定时引擎会调用惩罚中心的服务查询或保存风控数据。惩罚中心针对不同维度提供多种惩罚策略以及多种奖励策略。风控实时引擎在识别交易风险时根据规则综合考虑奖励以及惩罚相关数据以提高风险识别准确率。
图4是处罚中心域模型。
图4
风控系统的建设往往是分阶段实施的,一般分为以下三个阶段:
第一阶段:核心任务:
· 搭建基础架构
· 网上应用接入
· 手机应用接入
· 建立起有效的监控团队和工作机制
第二阶段:提升性任务:
· 交易监控能力
· 风控模型提炼
· 监控团队能力和工作机制
第三阶段:后续发展
· 持续优化
· 新应用接入
团队技能是逐步积累的,对风控系统以及风控模型的理解也需要时日,如果初始建设阶段求大求全会使建设工作增加不确定性,一旦出现技术或业务方向上的偏差会给公司带来巨大的损失。循序渐进逐步建设,在前一阶段的工作产生效益时再去进行下一阶段的工作阻力会小很多,任何时候保持团队对项目的控制力都是相当重要的,这是我们在建设风控系统的过程中的一点感悟。