风控架构简单分享

231 阅读3分钟

最近读了一些风控相关架构的文章,尝试做一些总结。原始文章来自 zhuanlan.zhihu.com/p/107975044

相关paper总结在 github.com/linpingta/A…

网易

sq.sf.163.com/blog/articl…

这是18年网易的一篇文章,首先对架构分层:

  1. 存储层:事件的原始数据,模型样本
  2. 计算层:指标计算,模型训练
  3. 引擎层:查询,规则,模型
  4. 服务层:对外提供的数据查询,风险监测,业务决策

规则引擎应用:举个例子,比如内审场景下,一个用户单日导出操作超过一定次数需要告警;登陆地不是正常登录地。这里会用到drools或者groovy。

事件接入中心:提供统一的对外接口,使得新业务很容易接入风控

指标计算模块:类似特征抽取,举个例子,100分钟内同一账户下单次数,这里会用到leveldb或者redis

蚂蚁

www.docin.com/p-222278609…

这个感觉是从业务角度划分风控的业务,并不太涉及技术架构。当然风控业务本身也非常复杂,或者说,相比搜广推更复杂,类似套现,捋羊毛,刷单,恶意占用库存或者点击,感觉需要比较深的业务理解。

携程

mp.weixin.qq.com/s/muufqznNN…

使用的也是主流的风控系统结构:

包含了决策引擎、Counter、名单库、用户画像、离线处理、离线分析和监控各主要模块。

  1. Counter类似pqm或者metric server这样提供一段时间内的时序数据,TSDB服务 == 时序数据库
  2. 数据层面提供比如用户画像的输入,订单的画像(用户等级、用户行为标签、订单资源标签等)
  3. 名单库服务,支持多个独立的名单库,优化了名单判断逻辑,使得单次查询(10个维度)的响应小于10ms

京东

www.infoq.cn/article/gr8…

也是分层角度看架构:数据层,模型层/工具层(应该是想说计算层),核心层(实际就是引擎层),最上面是服务层。

业务部分负责前台,然后风控中心提供中台服务(不过中台这个概念不知道现在还是不是在用,这似乎是20年左右的文章)。

规则引擎已经实现完全可视化配置。

美团

tech.meituan.com/2017/01/13/…

风控需要关注:谁、在什么时候、通过什么方式、对什么对象、做了什么。

风控和业务的解耦:让风控只和用户中心对接,因为它一定是对用户做的,业务本身只和用户中心对接,引入中间件。

架构看也是分层的:

总结

如果和搜广推对比,感觉风控场景是一个重离线(数据),轻在线(检索)的过程,或者说,风控更像是user profile这样的服务,或者user age/gender判断这样的服务。

风控场景也有高并发和低时延要求,但不会存在单个user + 众多物料(文章或者广告)场景,更像是user获取某个或者某些特征的服务,来进行决策的过程,所以也不存在类似搜广推的召回挑战,挑战更多在数据处理和准备上面。