导读: 本文主要介绍数美在风控领域的实践和在架构上的创新。主要从整个业务的背景和需要解决的具体问题,再到整个智能风控体系的建设和架构的选择,并给出具体的实践案例。总共分为四个部分:首先是风控领域的背景介绍,然后从整个业务逻辑的角度讨论如何解决目前风控领域遇到的问题,然后从架构的角度展开分享,最后讨论一些实践案例。
01背景介绍
1. 黑产无孔不入,损失触目惊心

随着这几年互联网的快速发展,在我们日常生活中会遇到很多与风控相关的问题,不论是短视频用户生产内容(UGC),或者是p2p金融,以及社区团购、电商等等。据《欺诈经济学》的一篇报道,在中国目前网络欺诈的损失已经占我们整个GDP的0.63%了。
对于各大B端的企业或者公司,经常会在运营活动或者实际工作过程中,遇到大量的黑产,导致自己的运营销售成本不断的增加,而且销售效果也无法提高。
2. 欺诈损失规模

这一份数据是源自中国信息通信研究院的一份报告。在2014年左右的时候,黑产灰产让市场损失达到了1000亿左右。到了去年,整个损失据统计已经有5150亿。预计到2022年,损失能达到7100亿元。也正是因为黑灰产业有巨大的利润,在国内黑产灰产的从业人员非常之高。甚至有些地域以黑产文明,有大量的黑产羊毛*党**,产业链已经非常丰富了。
3. 典型场景:黑产羊毛*党**疯狂套利

黑灰产是怎么介入这些产品或者这些公司的业务呢?因为我们在做互联网运营的过程中,会有大量的拉新活动,比如拼多多的砍一刀,以及其他产品上新时有优惠券或者是注册优惠等活动。黑灰产已经完成了一整条产业链,包括各大的优惠券的申领,甚至是倒卖一些优惠政策。大家如果去闲鱼上都有可能找到很多代购,可以利用新账号去购买的产品。这对于公司来说是极大的损失。
4. UGC生态百花齐放,黑产欺诈广告泛滥成灾

另外,在UGC产业蓬勃发展的当下,包括很多的广告信息、涉情、涉政的内容都需要做监管,这是国家监管比较重视的。但是在早期,这种内容识别或者风控管理,大部分都靠人工来做。现在,随着抖音、b站等UGC平台的发展,人审无法应对海量的审查需求。所以,我们目前也都会去使用AI的技术通过初步筛选一部分相关的风控内容,帮助人审团队以减少重复劳动,提升效率。
5. 事件分享

跟大家分享一下我近期看到的一个新闻。有个虚拟运营商在国家的净网行动中被抓捕了。净网行动在业内抓了大概四千余人,另外直接缴获了七十吨黑卡。我们可以发现,现在整个黑产的量级很大,整个产业链非常完整。该案件涉及作案设备三万余台(*池猫**、卡池),基本上所有的大厂或者运营平台都会受到这些黑产设备的影响。
6. 黑产链条完备,分工明确

我们也发现,随着近几年黑产的发展,整个黑产的模式向SaaS(软件即服务)或PaaS(平台即服务)的场景进化了。整个产业链,从上游的卡商,甚至一些的SaaS平台,到中游的号商,他们会做微信号的养号,或者是一些手游新号的养号行为,再到下游会有大量的不法分子或者是游走于黑色地带的人群,他们通过上游的账号,还有通过VPN等工具或者平台,从事黑灰产业的活动。据测算,目前国内的黑产从业人员已经超过了三百万人,整个市场规模已经达到了千亿的级别。
这里有一个挺挺有趣的现象,我们数美在跟客户对接风控的过程中,发现黑产的运行规律,有人是全职做黑产的。因为我们发现他们基本上周一到周五会出来工作,然后到周六周日可能就开始双休了。
为什么我们觉得这块儿特别重要呢?因为前一段时间,我的朋友,他主动找我们来咨询,他们的在线电商平台做新人活动的时候,会发现几乎所有的补贴,可能70%~90%的补贴,都被很少数的黑产薅走了。他们尝试从收货地址、地域信息或后期的发掘做了一定的努力,但还是很难避免黑产的活动。
7. 内容风控趋势

另一点是关于UGC内容风控方面。前一段时间发生业内知名的一些APP下架的事件。因为UGC的内容,比如腾讯课堂里面,大家可能会在里面去发布一些不太健康或者不太适合目前国内现状的一些信息。在国家监管严格的情况下,各个B端的公司对这方面都有一定需求。
8. 现有风控方案面临的挑战
① 黑产

针对以上的黑产问题,我们总结了目前面临的几个挑战。
- 第一点是防御能力单薄。因为我们传统的做法大部分都会依赖一些黑名单或者一些简单的人工规则来去单点防控。但是随着黑产的发展,包括号商、卡商发展,单一的黑名单已经难以解决黑产识别问题了。
- 第二点是防御时效性差。因为我们会后知后觉的发现,具体的羊毛团体,或者一个黑产团体,对我们进行的薅羊毛行为或者黑产行为。但是T+1的周期很有可能已经很难去避免我们一些损失了。
- 第三点是防御进化慢。我们的整个策略迭代很难有一个闭环的机制,或者是一个自学习的机制。
② 内容

第二点就是关于内容风控方面,我们也会有很多客户或者是弊端的痛点,包括产能低、成本高、时效性差、应急能力弱、标准很难统一。
标准很难统一方面:我们很多不同的客户对于涉政、敏感信息、色情性感的信息都会有不同的分级制度。比如说一款偏向于未成年人的在线学习系统,可能对于色情或者性感的评估的阈值会更高一些,但是一些在线的直播或者聊天平台,对于性感或者美女标签的标准会相对的低一些。整个客户接入如果只是依靠单纯的标签或者一些打分阈值系统,是很难满足大家的需求的。
9. 数美产品矩阵图

所以针对这些问题,我们数美主提供了两块产品:
- 第一块是天网产品,它主要解决的是黑产灰产的一些行为上的风控识别。
- 第二块是天净产品,它更多的是针对业务UGC的内容去做风控识别。
02全栈式风控体系
做风险控制,其实并不是为了找出每一个欺诈的活动,而是提前做好准备,为了在最恶劣的情况下,对全局的风险有控制。单一点的布控,其实很难完成我们的目标。因为实际上我们跟黑产每天做对抗和博弈,我们每上一个新的策略或模型,黑产都会尝试去破解。所以我们的整个风控体系是需要在攻防对中不断迭代的。
我们大概是从四个体系去解决问题,包括:布控体系、策略体系、画像体系、运营体系。
1. 布控体系

我们会在业务中的多个环节做布控。比如说在APP启动的时候,去识别当前的设备是否是比如说篡改农场,甚至是一些虚拟机、积分墙。第二点就是在我们整个注册的情况下,我们也会判断注册用户信息。采集如手机号的一些特殊信息,再到登录和业务行为等特征,目前在天网中会采集100余个特征。
黑产再想探测我们的整个策略或者特征体系,它需要的资源就会数以亿级或者十亿级,从而提高了黑产跟我们对抗的难度。
2. 策略体系

我们针对风险设备或者行为,主要从三个方向进行检测。
- 第一块是欺诈设备的识别。它包括一些软硬件特征,上网环境设备指纹和硬件信息在内,提取了大约是100多项特征。并且我们自己也拥有大概是十几亿的设备样本库。采用聚类分析、GBM模型、相似性算法去构建我们整个风险设备模型。我们可以有效的去识别这些的虚拟机、多开设备,甚至是篡改设备等高风险设备。
- 第二块是欺诈行为的检测。它更多的是基于客户、用户的持续行为的特征,包括聚类算法。
- 第三块是欺诈团伙的检测。
① 欺诈设备检测

举个例子。比如说我们会发现安装了积分墙的,或者是一些可能已经获取root信息的设备,它相对的风险性会更高一些。结合我们其他的策略体系或者是风险行为的识别,组合地识别实际的设备风险。
② 欺诈行为检测

关于欺诈行为,我们会收集大量的用户的注册登录和业务行为,其中就包括很多异常的,比如说IP异常或者是一些非正常的GPS信息。如果大家发现多开或者是一些设备农场的情况下,其实整个机型包括它的整个电量,或者机身的横竖屏信息,是具有一定的聚类特性。关于这些信息,我们通过T+1甚至实时地去识别出我们的整个设备黑库,帮助进行大量黑产的风险行为识别。
③ 欺诈团体检测

因为我们实际的工作中发现,其实好人其实是各式各样的好,或者说他是满足各种离散分布的形式。但是黑产的坏人都是相似的,就包括设备IP、WIFI等信息。我们会对其建立一个时域的关联网络,并利用社群发现、风险传播的无监督算法来发现这些黑产团伙,识别潜在或者新型的欺诈威胁。其中的风险传播算法,是我们会渐渐的识别出一些黑产的设备,因为跟这些羊毛*党**或者黑产设备相关联的大量设备,它也是有一定的风险的。当我们整个把这些网络挖掘出来的时候,其实就能识别黑产的农场设备或者画像。
3. 画像体系

从数美的角度来说,我们对单一企业其实能去识别大量的黑产的行为或者画像。我们也发现了很多羊毛*党**为了躲避各大厂商的风控识别,会定时定期的去薅不同APP的羊毛。比如说他每天在七到八点可能是薅第一个APP,到了中午去薅第二个APP。对于单公司来说,很难去识别出所有的黑产设备。我们会建立用户画像做风险识别的,不论是IP地址、WIFI信息,甚至是设备的信息去做加密的处理,并且放到一个全局的实时风险画像中。对于不同的企业,他们就能利用这些其他公司从我们数美识别到的一些已经加单向加密的风险信息去帮助他们识别出自己这边新来的一些高危账号,或者是有风险内容。
4. 运营体系

我们发现在风控领域,他并不是一个传统的SaaS软件。虽然我们提供的是一个SaaS服务,但是我们的整个策略或者产品上线,它不是一旦上线之后就工作结束的,因为我们后面会有大量的维护工作。我们整个运营体系其实是一个非常大的闭环。首先我们内部会有一个黑产情报院(一个和黑产对抗的团队),他们会研究业内的常见或新出的与黑产攻防的方法,然后提供给策略部门。运营同学会基于,不论是从黑产研究院,还是客户反馈的已经识别到的特征去更新策略。经过策略更新的模型完成验证之后,会上线部署,以此不断的去跟黑产对抗,不断地提升我们策略体系的黑产识别能力。
03实时风控架构
接下来就是我们整个实时风控的架构体系介绍。
1. 风控数据流架构

首先第一点就是从客户的角度来说,如何接入我们的风控引擎。我们的风控体系遵从一个非常低耦合的模式。客户在需要的情况下会,植入我们的设备SDK,去获取一些设备的ID或者是相关的一些设备信息,上报到我们的风控引擎之后,不断的把这些客户的用户行为,包括登录注册,甚至是一些风控内容的发布行为,发布到我们的接口侧。然后我们识别内容的风险行为之后,给客户做响应,给出相应的处置建议,包括直接拒绝行为,或者是对这些行为进行人审、人工核验,或者是短信码验证的操作。
客户有多样性的接入方式,包括他可以把我们的返回结果放到自己的平台里,帮助自己人审流程,降低工作量。也可以在转账的业务情况下,去做一个延时转账,或者是一个直接拒绝的操作。
2. 风控平台架构
我们在架构设计上主要解决三大问题,分别是通用性、时效性和性能。
① 通用性
通用性就是包括从风险行为识别,黑产设备,再到我们整个UGC内容,包括文本图片广告,甚至是一些音视频的内容识别。我们有各种非常不同的业务情况或者场景的,我们如何去构建一套通用的架构,去解决这些所有的问题。并且在我们整个运营体系的支持下,为其提供各种可扩展性的支持,把整个问题化繁为简。我们对黑产的研究或者是风险内容的识别,研究过程中会提出大量的新的策略需求,或者是一些新的模型需求。如何把这些新的模型策略都以最快的速度,接入到我们整个系统里,这是对我们架构设计一个巨大的挑战。
② 时效性
在跟黑产的对抗中,我们会发现整个黑产的对抗频率或者是迭代速度非常之快,可能是一天或是一周级别。并且我们的客户会经常临时遇到大量的黑产攻击,甚至是一些类似于T+0的攻击。另外,客户的广告或者内容也可能存在一些突发情况。从我们运营侧如何以最快的速度,比如在30分钟到2小时内,先解决当下的问题,然后又在1到5天内通过模型和具体的训练去彻底解决这些问题。
③ 性能
我们客户做风险行为或者是内容的识别,对性能,即响应速度有非常高的要求,要求有50毫秒以内的响应速度。如何在既要处理这么多复杂的规则或者策略的情况下,又能达到如此高的性能,以及保证我们相应的通用性和时效性,就是我们目前的一个最大的架构设计挑战。
3. 风控平台架构

我把整个架构中跟目前我们遇到的问题相关的这些模块拉出来做介绍。
① 主接口
首先从最上层来说,一定是我们的主接口。它负责我们的整个QPS的限制以及权限认证的相关的功能模块。
② 业务逻辑层
第二层就是我们的业务逻辑层。它是用来做入参的校验和数据的拼装,以及做初步的校验。
③ 核心服务层
接下来就是我们相对比较核心的这一块,叫做核心服务层。我们主要有一个专家的专家引擎,它叫做智能决策引擎。它是基于我们以下所有的基础服务相关的模块的特征,去做决策,告诉我们的客户究竟是应该拒绝,还是人审,或者是通过某些方式去处置当前的行为或者内容。
- 工作流引擎。虽然我们的整个架构是通用的,但是针对不论是图片文本还是一个风险行为,其实它具体需要用到的模块和引擎都是不同的。我们会通过倒推的模式去判断当前的请求它是否需要相应的用户画像设备画像或者是一些对应的深度学习引擎,包括究竟是通过图还是NLP的引擎去识别特征,供智能决策引擎去使用。这是我们的工作流引擎去做的一些操作。
- 画像引擎。画像引擎实际上是分为实时引擎和T+1的离线引擎的。实时引擎用到的技术其实就是Kafka和SparkStreaming。它更多的是基于当前模型和决策的结果的后处理,对设备IP或者是用户做一些画像的存储,比如说识别出它是一个高风险的账号,还是一个疑似的农场账号,这些画像都会不断的更新在我们的画像引擎中。第二块就是在运营策略中,我们会做很多大量离线的群聚效应的挖掘。对于这些非产设备的离线挖掘的结果,我们也会写到对应的画像引擎中。在后期,比如说其他客户或者是我们客户遇到设备又出现的情况下,我们就能对这些设备进行一些识别。画像引擎是基于Redis做的一个封装。它的整个吞吐量是非常巨大的。我们在做shading的时候也发现,即使基于Redis cluster,它也有巨大的性能的瓶颈。因为黑产有一个巨大的特点,就是群聚效应。所以我们不论如何做哈希和key,整个热点数据是非常热的。所以我们在内部做了一定的优化。比如说,在Rredis cluster的单节点上去做了一些热升级这方面的操作。因为一旦黑产进来,经常是会把单一节点的Redis打的压力非常之大,所以我们也做了内部的这些性能上的优化。
④ 策略调层
为了支持风控的业务决策系统,我们会有大量的策略调优和实验操作。在右侧能看到我们对于策略调优提供了很多相关的工具,比如说线上流量的A/B Test。因为在经常调策略的时候,我们会发现一个组合策略或者是甚至单一阈值的调整都能对我们的准召率产生大量的影响。数美有一个梦想,就是为客户达到一个几乎100%的准召率。虽然它是一个非常困难的事情,我们的策略运营同学会在上面做大量的深入的调优去尝试解决,找到一个更优的策略模式,或者是一个阈值。
我们也有大量的拨测引擎,在调整策略的时候,是会对客户现有的准召率,甚至是处置结果造成一定的影响。为了避免这方面的可能,我们对可用性和可靠性会有巨大的保障。大家实际在工作的过程中会发现,在训练模型的时候,模型的阈值也是很难控制的,所以我们会通过拨测引擎去保证整个系统的单一模块上线,都能保证整个系统的准确性和稳定性。
最后一块是查询聚合工具,不论是我们对于策略的调优做一些实验,甚至是我们的运营同学帮助客户,去解决查询一些问题,都是需要做很多大量的离线操作的。我们基于整个的架构做了大量的离线或者是准实时的一些查询工具,帮助运营同学的工作。
⑤ 基础服务层
其实整个架构都是基于微服务的形式,因为我们目前整个模块或者包括机器学习的模块,服务器的数量其实比较多,基本上都是在千台以上。基础服务层这边基本上大家都比较容易理解,其中比较可能比较特殊的一点是名单服务。名单服务经常是为了我们解决客户的一些临时问题,就比如说在文本的服务中,更多的是一些关键词或者是一些黑名单的设置,包括变体名单。因为从中文语义以及变体上来说,单一的黑名单已经很难解决相应的问题了。在图片的场景下,我们的名单服务提供的是图片的MD5或者pHash,在我们内部叫做泛化名单。它可以通过泛化图片的方式去解决图片黑名单问题。如果放在我们的天网中,它可能是一些设备IP用户账号的一些黑白名单。因为在实际的使用场景中,会有一些单一的账号拉黑或是测试白名单的加白的操作,都是在通过名单服务去实现的。
这是整体的内部服务逻辑的架构。其中最关键的是我们的智能决策引擎。它实际上是我们整个架构中的大脑模块。我接下来也会对它做稍微详细的介绍。
4. 风控平台架构——工作流引擎

第一块先提到的是工作流引擎。为了提高整体的效率和整个架构的通用性,我们会对客户的传参做预先处理,构建当前请求的工作流。
一个文本请求的举例。首先它会经过一个预处理的引擎,并行的去过我们的名单服务和上下文引擎。上下文引擎主要解决的是在聊天式的服务中,会有多行或者分批发送的一些情况。经过上下引擎之后,我们再通过联系方式,色情和广告模型分别去对文本内容去进行一个打分。再结合画像引擎和统计引擎,我们就能得到当前内容或者行为的特征得分。最终经过引擎进行特征打分,结合我们运营同学发布或者上线的各大策略,对当前的请求进行打分,得出处置结果的建议,即通过还是拒绝。最后再通过后处理,把这些实时的画像,最新的画像情况再写回画像引擎供我们下一次的请求调用去使用。
5. Rete算法

第二块就是规则引擎。AI领域分为两个分支,其一是基于统计学做的深度学习算法,其二是是早期的专家系统。专家系统更多是推过通过特征的推理判断来得出的。我们可以简单的认为它是人工配置的一个决策树的引擎。你给定具体的规则和决策,也就是知识,通过一个正向的演绎法来并结合事实驱动整个图的搜索。
我们目前是基于一个叫做Rete的专家网络系统去实现决策引擎。它更多的是基于当前的事实去做图搜索的算法。因为整个决策系统里的策略会非常多,可能是在几千上万个策略,普通的方式难以保证整体性能。Rete包含阿尔法net和贝塔net两部分的网络。这些网络会把我们所有策略中的共性的事实或者条件的部分抽出来,做一个并行的图搜索算法。并且在经过多次迭代之后,以最并行的方式整合所有的规则策略来得出最后的结果。并且通过实时配置的一些变量模板,或图的配置,在策略同学或运营同学更新策略的时候,我们会实时的更新这张网络,以保证专家系统处于最优的状态或者最新的状态。
目前在经过整个性能调优的情况下,我们的规则引擎可以在万级的策略情况下达到数十毫秒或者百毫秒以内的性能。
6. 风控模型架构

我们不会通过同一个模型去完成所有的风险识别。因为第一点是这样做的泛化性相对比较差一些,第二点是更容易被黑产灰产摸出我们的规则策略。所以我们风控模型包括三个部分。
- 首先是我们的专家系统。
- 第二部分是无监督的学习。它更多的是对社群的群聚效应,用一些高级群居特征,包括IP等去做特征学习。
- 第三部分是有监督的学习。我们自己内部有大量的模型算法以及特征标注来做模型的有监督训练。
我们最后把这三者的最终结果融合到一个上层模型中,通过最终的专家系统或者决策引擎,做出最终的风险决策。这个决策是能够非常好地解决客户的风险识别问题。
7. AI技术产品体系

我们整个AI产品的体系。我们整个系统的底层模型涵盖了大部分业内的需求,包括行为风险,行为识别、文本图像、音频识别等等。
具体来说,视觉方面的人脸识别、OCR文字识别,再包括语音方向的声纹和语音内容识别,以及我们目前其实在业内做的比较好交谈模型的识别,还有关系图谱以及风险传播的模型。
基于这些所有的AI模型,我们会把它统一归到专家系统里去做最终的决策。
8. 多集群部署架构

最后是我们整体部署架构。目前在国内我们服务了千余家客户,他们在国内国外都有相应的服务,所以我们的策略引擎是通过同步的方式,在百毫秒级别会把所有最新的策略画像同步到全球各地的机房。目前我们总共有九个服务器集群,每天拦截的行为就达到1.1亿次。并且我们会做高可用的部署,比如上海机房,遇到了云厂商的问题,我们会直接把它切换到广州、北京的一些机房,做到一个机房上的容灾高可用的情况,以提升我们服务的可靠性。
04实践案例
最后我分享两个我们实际的实践案例。
1. 银行营销反欺诈

第一个是针对银行的营销做的反欺诈识别。
因为银行会有拉新的业务,也会面临大量薅羊毛领红包的情况。我们实际客户在接入了我们的天网之后,发现它的线上有大量的欺诈账号。在他接入后做了第一次活动之后,就发现基本上99%的欺诈账号被我们拦截。并且测算了一下,每月可以减少约2500万的损失。我们在其中更多做的是设备的风险识别,包括关联农场设备的识别,帮助银行识别了大量的风险设备和行为。
2. 大型知名直播平台

目前有很多直播的平台,它里面有大量的广告导流的情况,以及很多虚拟刷榜刷单的行为。比如说,抖音里基本上会有大量刷点赞的黑产服务,50元刷1000个点赞以上,并且这还都是通过积分墙的人工去点赞的。所以直播平台自己去识别这些信息也是非常复杂的。
我们通过在他们的关键业务节点,比如整个用户账号登录注册以及点赞行为上,去做行为识别,结合全网的风险账号,因为积分墙的这些用户都有很大的风险画像行为,因为他们会在不同的APP去领任务,去做APP的注册和点赞的任务。结合这些风险画像,我们基本上也解决了百分之九十九的风险账号。另外结合我们的文本的广告模型或者图像二维码,也识别出了大量的广告导流的行为。在这个方面,我们问题的解决率也达到了99.6%。
05问答环节
Q:拨测引擎的作用是什么?
拨测引擎其实主要做两块作用。
第一方面,我们在对抗黑产的过程中,会有大量的模型训练或者策略调整,大家实际做AI训练就会发现,我们很难保证在不同的样本下,虽然我们能够在一个标签的体系下,保证一个准召率。但是在对于基于专家引擎或者阈值的调优的情况下,很难保证出分是有一个统一的范围的。基于我们的历史样本或者客户的历史数据,我们会随机的抽取一些样本和数据去判断当前发布或者测试的新模型,它是否会影响我们当前整体的准召率或者处置结果,以满足我们模型上线是没有问题的。
第二方面,它更多的是做一个客户这边的策略调优。因为我们在实际的运营过程中,会发现有一些客户实际使用过程中会希望我们调整一些策略标签或者是一些拦截效果。比如,不同的客户对于色情、性感或者是一些广告导流的判断都是不同的,我们也会基于客户提供的样本去不断的进行拨测,去找到一个最适合他们的审核体系或者风控体系的策略条件。其实我们内部构建了一个自动化的拨测平台。
Q:特征该如何定义,包括识别,然后有具体的方*论法**可以指导的,还是说靠一些专家经验?
这整体上与AI的训练和识别会比较类似,我们分两块来讲。
第一块,我们做广告信息模型训练的时候,会首先做主成分分析,或者是关联性分析,去找到所有跟我们最终模型相关的特征,这是第一种就是比较常见的。
第二种方式,是在策略调整中会有一定的专家经验,更多地还是通过不断的尝试去找到合适的策略。核心是需要保证每一条策略精准的识别某一部分的场景,或者是需要拦截的黑产风险行为。我们会有策略算法的同学去尝试,去找到或者是去调优这些算法,去保证我们的每一条策略达到一个很高的准确率。以此解决一个具体细节的问题,在我们数千上万条的整体策略的引擎下,我们就可以几乎解决或者以更高的准召率去解决所有的风险问题或者风险内容的识别。
简单总结一下。第一点是靠AI方向的主成分分析去寻找相关的特征值。第二块是靠运营同学通过专家系统和实验室系统去找到这些更有效的特征。
今天的分享就到这里,谢谢大家。
分享嘉宾:

分享嘉宾:李雪 数美科技
编辑整理:陈浩 北京航空航天大学
出品平台:DataFunTalk