试问:谁不想成为一个做出亿级体量的产品 or 研发呢?有目标才有前进的方向,有方向才有一步一个脚印的实现。亿级体量四个字,不仅意味着成就感与光环,更意味着压力与责任。
今天分享的内容,来自美团外卖的风控负责人蔡敏老师。蔡老师有互联网行业10 余年从业经验,先后任职于 58 到家、58 同城、百度等互联网顶级大厂,在大数据、风控、支付等领域有多年架构和技术管理经验。蔡老师将从自身项目经验出发,为大家解读亿级订单体量下的美团外卖风控架构是如何设计的。
关于美团风控设计,可以分为 3 个版块:
- 业务的流程;
- 技术的架构;
常用的策略。
一、概述
风控即风险控制。
一般来讲,风控分为两大方向:
1. 信用风控
信用风控广泛适用于日常生活中,例如银行贷款或者 P2P 贷款,机构会对借款人进行偿还能力评估,是否有逾期或者恶意欠款等情况。
2. 反舞弊风控
目前有许多黑产活跃在互联网上,我们的目标是魔高一尺道高一丈,与骗子之间不断攻防的过程,就是反舞弊风控。
财务的风险行为定义如图所示:
- 账户安全;这部分很好理解,就是日常生活中常见的盗卡、盗余额,一般公司应该都有这个模块。
- 商家刷单;由于美团是平台型,商家排名有严格的标准。有些商家为了排名前进,会有刷单的行为。商家刷单分为刷排名、刷销量、刷好评。
- 用户作弊;这个就是「羊毛党」啦,很多公司对羊毛党的态度是闻之色变,其实没有必要。我们在风控设计时对撸羊毛这一行为要进行适当的控制,主要控制规模不可以太大;不要太混乱影响普通用户的体验。
二、风控的特性
风控的特性,或者说是特征,总结了三条:
1. 高对抗性
即与上文中提到的黑产进行对抗。任何平台只要有利可图,黑产会不间断 24 小时兜圈子。打游戏的同学更容易理解一些,各种游戏都会出现有组织有规模的工作室去找游戏的 Bug ,刷金、刷装备、盗号来谋取钱财。这就需要我们不断去对抗,一直与黑产处于攻防阶段。
美团和 58 这种平台,黑产去发帖子刷排名,单价很可观的,所以黑产动力很足,需要我们有这个意识,对方是不会休息的。
2. 准确性
风控领域有两个要点,一个是准确性,另一个是召回率。准确率之所以在风控领域格外重要,是因为所有的策略、模型都无法保证百分百的成功与正确。策略和模型的准确率低一点,用户及商户的投诉就会随之上升。因此准确率要比召回率更中啊哟,一个策略的准确率应达到 99 % 才允许上线。
3. 灵活性
由于黑产打得都是持久战,我们通过人工进行全天对抗是不太可能的,所以策略应当保证能够随时监控、随时修改、及时更新,即灵活性强。
三、风控的整体架构
风控的整体架构可以分为三个大的系统:
- 实时风控;
- 准实时风控;
- 离线风控。
区分的标准是根据策略的速度:
- 实时风控:举个例子美团的实时风控要求必须为毫秒级同步返回,用户下单时必须要实时监控同步调用,每天亿级的调用量就要求每次调用不可以是秒级别。
- 准实时风控:一般来讲几秒甚至几分钟以内返回都可以,因为采用的是异步调用事后处理,这种方式计算的数据量和可利用的数据量资源比实时风控会多很多。
- 离线风控:一般通过 ETL 来做。
如图所示第二层是策略系统。策略系统时风控的核心系统,包含着规则、管理以及监控的功能。
策略系统在设计的过程中,最关键的是:
- 配置是否方便快捷,策略能不能够快速上线是决定性的要素。因为我们一般在上线之前,首先需要灰度测试→人工处理→机器处理,因此要去策略系统配置一定要方便快捷。
- 规则引擎性能要高。
最下面一层是特征库,具备黑白名单、统计数据以及特征数据等功能。特种库对于系统的性能应该是最重要的,因为亿级体量的数据量是十分庞大的,因此在设计时要用到一些大数据框架。
图中左侧的处理系统即统一的处罚系统,无论是对商家还是用户的处罚都会归到这个处罚系统中;右侧主要是一些公共组建,包含过载保护、报表、监控报警等等功能。这就是一个完整的风控架构。
四、风控关键流程
风控的流程可以分为六个关键性流程:
业务启动的初期,风控其实就随之开始了,但是没有必要做到上文中我们提到的那些具体动作。
- 从监控开始,针对业务的监控需要看看我们新上线的业务是否有黑产出现;
- 情报,情报指的是收集与我们业务相关的数据,需要到外部去收集,比如论坛、社群,了解黑产的手段、特征,了解商家的刷单行为模式等等,这些数据可以帮助评估风控工作的效果以及后续改进方向;
- 评估,评估工作是风控中比较重要的一环,需要产品和技术共同对收集的数据进行评估,完成之后对应的策略及模型也就自然而然地产生了;
- 策略和模型,策略和模型在实际工作过程中各有利弊,策略短平快,随着数据的收集对应的策略即可直接堵住最严重的漏洞,但策略的幻化能力(能够轻易被绕过的能力)相对于弱一些,毕竟策略只是简单、已知的规则,因此就需要模型进行填充,但模型的弊端在于开发需要周期;
- 处罚,这个就是字面意思;
- 建立知识库,处罚完成之后将信息积累到知识库,即可产生黑白名单、用户/商家的画像等等。
五、实时监控架构
随着业务量的增多,监控不能依靠简单的离线报表进行,离线一般来讲是 T+1 ,等发现的时候已经太晚了,因此要进行实时监控。
如图所示,实时监控分为:
- 实时数据源,例如 Binlog、Kafka 等等;
- 流计算,目前美团采用实时指标系统 Calcite + FlinkSQL,比较方便简单;
- 计算结果输出;
- 数据应用,用于预警和监控等等功能。
六、风控策略的难点
如图所示:风控的难点与风控的特性一一对应。
- 灵活性:与黑产的对抗无处不在、无时不刻,因此需要保证策略的灵活性;
- 可解释性:策略及模型无法保证百分之百的准确性,因此出现投诉时需要对用户进行解释;客服如何清晰地抓取到用户、用户被处罚的理由等等,需要强有力的解释;
- 更新速度:策略更新速度要快,也是为了及时止损。
七、风控模型策略
上图列出的其实是风控策略和模型中比较基础的:
- 异常检测;
- 知识图谱;
- 用户画像即风险评分。
这部分分为两大块,一种是有监督评分,一种是无监督评分。很多公司在前期没有足够的正负样本,可以采用无监督评分,只要有数据就可以采用这种方式,可解释性也足够强。
1. 异常检测
可以简单分为三种:
- 基于数据统计,例如同一个 IP 登陆成功率非常高,这是有风险的信号,背后可能意味着是同一伙人,100 个人不可能说一次性都能输对密码,违反常理;同样的,登录成功率非常低的,可能就是暴力破解、撞库。基于数据统计,可以找到异常特征。
- 聚类,聚类完成之后会有离群点,离群点即可判断为异常。
- 孤立森林,这个方法在异常检测领域效果最好,它的理论是将一个人的所有行为想象成一棵树,在某些分支上与其他分支出现了强不同,则该分支出现了问题。例如你同一台设备同一个 IP,导致你的行为都是类似的;但有的人同一个 IP 多台设备,很容易被这种方法捕捉到异常。
2. 知识图谱
如图所示,知识图谱即多对多的关系,举登录的例子,设备 ID 与 登录 ID 未必是一对一的关系,同一台设备可以有多个人登录,同一个登录 ID 又可以在多个设备上登录,但重要的是一个人无法同时登录 N 个设备,同样 N 个设备也不可能被 N 个人登录,因此很容易捉到异常。
3. 用户画像
用户画像就是通过采集到的基础特征,推测一些其他的特征然后给用户贴标签,例如风险评分、信用频评分。具体的方法每个公司略有不同,大家看图了解一下即可。
本文素材来自互联网