写点什么

风控建模流程:以京东群体感知项目为例

  • 2019-08-28
  • 本文字数:3321 字

    阅读完需:约 11 分钟

风控建模流程:以京东群体感知项目为例

业务需求挖掘


任何项目的起源,都是从需求挖掘开始的,不可能一蹴而就,会经过多次循环。这体现了作为数据分析师和建模人员的功力,可能有的业务要 A,你就给他 A,而没有往下深入几个层次进行考虑,因为有的时候,可能业务的需求自己也没有想清楚需要的是什么,这和传统的软件工程是一样的,所以宁可在这里多花一点时间,也好过到后面踩坑之后,在回来重新挖掘需求


① 目标


  • 找出关键变量(与判断项目成功与否的指标相关,最好的方法就是定义几个场景,比如做风控,是坏账率下降,还是机注量下降了,或者其他指标),并把关键变量作为模型目标

  • 识别业务已经使用或者需要获取的数据源


② 实现方法


  • 定义目标,与用户以及其他利益相关方一起理解,识别业务问题,并构建多个问题(这些问题要能定义出业务目标同时也能作为建模的目标)

  • 识别数据源:基于问题找出能帮助回答的数据源,越多越好


③ 交付物


  • 项目需求文档(比如 A、B、C 三个场景,机注量下降 2%,或者坏账率下降 1%等等)

  • 数据源梳理,有几张宽表,有几个数据源,都需要弄清楚


④ 业务方的诉求与抱怨



业务方的诉求与抱怨,抽象来说就是多、快、准、省:


  • :在风控反欺诈领域,对于抓黑产,召回率越高越好。

  • :实时反应,不能等到 T+1 时间过去了才反应,比如拼多多的风控事件,不仅仅需要做到实时,最好做到事前,并且可以发出告警,提示哪个环节被攻击。

  • :准确率(auc,roc 曲线)大家都比较熟悉,尤其对于金融风控,准确率要求更高。

  • :省心,傻瓜式操作,不需要告诉具体指标的含义。对于模型,只需提供给业务方 0 或 1 即可。


所以,对于业务的诉求和抱怨,就在这四个字之中,当我们接到群体风险感知这个 Case 时,我们首先需要做的就是:定义群体风险感知(为什么叫群体而不叫团伙?),明确业务场景,找出业务痛点。


两个场景:


  • 一堆人来买我的货,我不会认为他们是坏的人;

  • iphone 新品首发,黄牛带货,对我的品牌或者收益造成损失,这时,我们需要进行控制打压。


所以我们交付的东西,需要是中性的,把模型看作一把刀,具体刀用来做什么,由业务来决定


⑤ 需求分析



风险未知可能出现的状态:


  • 少量交易造成巨大损失(例如:网络舆情事件,诈骗,网络攻击等)

  • 大量交易造成巨大损失(例如:拼多多事件,上万个账号薅优惠券,然后快速的变现)


黑灰产的主要特征:


  • 逐利性(不断升级,不断寻找漏洞):由于他们是在为自己牟利,没有 kpi 没有 996,甚至一天可以更新迭代 4 个版本,他们自己干的很起劲。

  • 群体性(短期,快速,大量获利)目前成熟的电商,基本上不会让一个账号短时间内下很多单了,现在的黑产为了达到短期快速大量获利,一般使用群控手机,即用软件控制几百台手机,尤其在 6·18 和 11·11 时,给我们造成的压力也是比较大的。


项目的定义:


以黑灰产群体作为特征指标,发现交易链条上可能存在的漏洞增强防控能力,提高黑产成本(黑产本质上是生意,风控人员不是为了消灭黑产,是为了让他们这门生意做不下去,明面上是技术的对抗,实际上是成本的对抗)。


⑥ 项目目标


监控指标体系与异常发现(输出结果形式):


  • 线索账号的线索:某个特定群体的行为(观察某个小白鼠在迷宫里的行为特征)

  • 群体维度线索:多个群体聚集情况(观察一群小白鼠在迷宫里的群体共同行为)


监控指标体系与异常发现(输出结果内容):


  • 聚集性指标,灵活制定规则(告诉业务方,商品、库存、优惠劵是不是被攻击了)

  • 提前发现风险点,预警后续环节(黑产领券之后,会不会有什么大动作,需要提前预警)

  • SKU,优惠券,订单,相关账号(我们有一个评分,一旦被群体模型识别,就打一个黑标签,让风险值变高)

  • 新的套利,作弊方式,交易漏洞(将黑产规律输出给分析师,分析黑产的作弊方式以及交易环节的漏洞)

数据获取与理解


数据获取与理解,主要分四个部分:数据源(在哪分布,可能需要做数据同步,也有可能需要买一些服务,定期做 API 的推送,需要把数据源定义清楚),数据管道(如何做清洗、加工,如何接入到模型中),开发环境(根据数据规模,选择开发环境),数据整理、探索、清理:结构化、非结构化,数据验证与清理,可视化等等。


① 目标


  • 产出一个干净、高质量的数据集,充分的理解数据集和项目目标变量的关系

  • 把数据集放置在一个适合开发环境以便进行后续建模

  • 开发数据管道的解决方案,定期对数据进行刷新


② 实现方法


  • 将数据导入目标分析环境

  • 研究数据以确定数据质量是否足以回答项目要解决的问题(PS:前段时间比较火的生物探针技术,可以获取一些黑灰产的特征,但这项技术落地的时候,回收的数据缺失率很高,很难得到应用)

  • 设置数据管道来抽取新的数据或者定期刷新数据


③ 交付物


  • 数据质量报告

  • 数据管道架构

  • 可行性评估


④ Tity Data(with Pandas)


具体地址:http://pandas.pydata.org 包含了语法的介绍,重塑,聚合,缺失数据处理,窗口函数,可视化等等。




⑤ 数据维度



我们从静态数据和动态行为数据俩个角度来构建立体多维群体行为画像:


  • 静态数据

  • 注册信息画像:时间,设备,ip,渠道

  • 登录信息画像:时间,设备,ip,版本

  • 动态行为数据


假设 A、B、C 三个账号由同一个人控制,那么每次有活动他们就一起来了,可知道他们是一伙的,如何把这三个人每次活动一起来这件事儿,通过数据来描述好加工出来,供后面的模型使用,这是我们当时研究的重点。


动态行为数据包括:


  • 浏览行为画像:时间,设备,ip,渠道(同静态相同,但是是账号之间的比较)

  • 下单行为画像:商品信息,时间信息,设备,ip,地址,优惠券, 支付

  • 领券行为画像:频率,使用周期

建模


建模的三个主要模块


  • 特征工程:特征处理,数值,文本,图片,特征选择

  • 模型训练:参数调优,模型管理

  • 模型评估:交叉验证,模型报告,A/B 测试


① 目标


  • 确定要输入模型的数据特征

  • 选择一个最能满足项目要求的模型(如果这个项目以准确率为最核心的 KPI,可能 A、B、C 三个模型都各有所长,有的效率高、有的速度快、有的召回率高,这时就需要按要求选择)

  • 模型参数调优,针对生产环境做优化(A/B TEST)


② 实现方法


  • 特征工程

  • 模型选择(分类、聚类、有监督、无监督、深度学习、强化学习)

  • 模型训练(如何调优)

  • 评估模型在生产环境的适应性


③ 交付物


  • 特征集

  • 模型报告


④ 算法模型路径选择


  • Sklearn 算法选择路径图(这是目前网上比较流行的模型选择路径,大家可以根据业务的具体需求来选择模型);



  • 微软的模型选择路径:



⑤ 群体风险识别建模



  • 用户类型:正常消费,新增疑似黄牛用户,黄牛 &众包用户

  • 行为轨迹:多种数据源,多种维度,寻找在时间,空间,行为的聚集性

  • 模型输出:发现时间,空间,行为上的聚集性


⑥ 静态特征识别



  • 关系图,聚类:Louvain,Fast Greedy,Markov Cluster,Info Map,Walktrap。

  • 图计算的社区发现(前人的一些经验):



  • 常用算法比较:




⑦ 动态特征识别



这是我们归结出来的数据底层形式,包括:时间,活动场景,下单账号几个维度。


群体划分(聚类问题):距离的选择对聚类的结果影响巨大


部署


部署的时候需要考虑的两个关键因素:评分和效果监控



  • 目标:把模型和配套的数据管道部署到生产环境

  • 实现方法:推荐 api 接口形式部署模型

  • 交付物:监控报表,模型说明文档(输出和部署细节),数据管道说明文档

用户应用

① 目标


  • 完成项目交付


② 实现方法


  • 验证部署好的系统的功能性和准确率,满足业务需求

  • 所有文档都要完成并进行审阅

  • 项目交接工作可能是交给 IT 运维部分或者是用户的数据团队甚至可能是业务团队


③ 交付物


  • 项目交付报告


④ 业务应用架构



用规则引擎(实时计算、多重规则、实时指标),模型引擎(模型管理、模型部署、模型运算),决策引擎(策略管理、策略可视化、策略路由)连接数据中心和用户行为。


⑤ 设计多层次风控场景策略



  • 标准策略:标配,黑白名单,评分

  • 定制策略:针对不同的经营周期动态调整策略

  • 场景策略:针对渠道,行为维度

  • 弹性策略:场景策略和定制策略中增加弹性指标,用于业务变化,紧急升级和降级


作者介绍


曾军崴,京东集团智能风险感知实验室架构师。北航博士,从事数据科学工作多年,有译著《 python 基础教程》。


本文来自 DataFun 社区


原文链接


https://mp.weixin.qq.com/s?__biz=MzU1NTMyOTI4Mw==&mid=2247493097&idx=1&sn=4fcd2a5f3efb9fb2850ebc506b2579b7&chksm=fbd75785cca0de93a93b3c301893a27aa62ffc2b05c2b9524d16fc3175e7cb493d278f878451&scene=27#wechat_redirect


2019-08-28 08:006773

评论

发布
暂无评论
发现更多内容

网络抓包实战06——灵异事件的始作俑者:Reset数据包

青春不可负,生活不可欺

Java内存模型

wzh

Java JVM happens-before 并发 Java内存模型

[译] R8 优化:方法的 Outlining 优化

Antway

6月日更

产业互联网时代的数字化转型与创新

CECBC

指挥中心情指勤一体化解决方案,河北公安情指勤一体化建设

ES6 迭代器简述

编程三昧

JavaScript 大前端 ES6 迭代器

dubbogo 社区负责人于雨说

apache/dubbo-go

dubbo dubbo-go dubbogo

Java的函数式接口

中原银行

Java 函数式接口 中原银行

英特尔宋继强:异构计算的关键一环,先进封装已经走向前台

E科讯

Redis入门五:主从复制

打工人!

redis 主从复制 6月日更

网络攻防学习笔记 Day53

穿过生命散发芬芳

网络攻防 6月日更

知乎上线1小时,5w浏览量被下架的JVM全解笔记,内容太强大

Java架构师迁哥

算法有救了!GitHub上神仙项目手把手带你刷算法,Star数已破110k

Java架构师迁哥

网络抓包实战04——深入浅出连接建立

青春不可负,生活不可欺

新华三商用终端新品全系入市,重塑办公极致体验

科技热闻

网络抓包实战03——TCP/IP协议栈:数据包如何穿越各层协议

青春不可负,生活不可欺

虚拟货币监管再加码:央行约谈部分金融机构 要求切断支付链路

CECBC

5分钟速读之Rust权威指南(二十八)RefCell<T>

wzx

rust

值得收藏的15个JavaScript语句

devpoint

JavaScript array 6月日更

一文带你了解什么是HTTP协议

网络安全学海

网络安全 安全 信息安全 HTTP 渗透测试

定点数与浮点数表示

若尘

浮点数 计算机组成原理 6月日更

“半监督”、“自监督”怎么用?| 算法深度剖析与实战分享

网易易盾技术团队

AI 算法 算法实践 实践案例 深度半监督

鉴释×CSDN丨国内外操作系统生态差异在哪?

鉴释

操作系统

区块链如何赋能智慧城市

CECBC

网络抓包实战05——深入浅出连接关闭

青春不可负,生活不可欺

【MindSpore有奖活动】资讯内容宝藏多,编译安装试一波!

Geek_6cdeb6

从渗透测试小白到网络安全大佬的成长之路

学神来啦

Linux 运维 网络安全 渗透测试

浅谈B端产品的表单元素设计

LigaAI

产品经理 UI 产品设计与思考

信息安全与网络安全的关系

网络安全学海

程序员 网络安全 安全 信息安全 渗透测试

Java线程状态与状态间的切换

wzh

Java 线程 JVM 操作系统 并发

Jenkins 如何与 Kubernetes 集群的 Tekton Pipeline 交互?

张晓辉

Kubernetes 云原生 jenkins Tekton CI/CD

风控建模流程:以京东群体感知项目为例_文化 & 方法_DataFunTalk_InfoQ精选文章