写点什么

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

  • 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:006178

评论

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

重磅发布.NET 7!更快、更强、更统一

Azure云科技

.NET 7

内存数据库如何发挥内存优势?

C++后台开发

算法 内存数据库 后端开发 linux开发 C++开发

KeeWiDB的高性能修炼之路:架构篇

腾讯云数据库

数据库 nosql redis 腾讯云数据库 KeeWiDB

云原生系列五:Kafka 集群数据迁移基于Kubernetes的内部

叶秋学长

kafka\ kurbernetes 11月月更

Oracle 表空间创建标准(二)

默默的成长

oracle 前端 11月月更

SQL编写规范

默默的成长

前端 sql 11月月更

链表只有面试有用?Redis 之父说:我不同意!

图灵教育

算法 链表 Redis 数据结构

开源遇上华为云——DataX for HuaweiCloud OBS

华为云开发者联盟

开源 后端 华为云 企业号十月 PK 榜

Databend 在 MinIO 环境使用copy 命令 | 新手篇(3)

Databend

豆瓣评分8.0!深入理解Java虚拟机,把GC算法与实现讲得明明白白!

Java永远的神

程序员 面试 JVM GC Java虚拟机

阿里这份Java程序性能优化指南,让你的程序快上200%

小小怪下士

Java 程序员 性能优化

颠覆传统BOM检查!用这个方法既​简单、快速又准确

华秋PCB

工具 PCB BOM PCB设计

CSS 如何实现五彩斑斓的“呼吸字”?速度拿去装杯!

掘金安东尼

CSS 11月月更

双11niubility的数据恢复软件,获得更专业的数据恢复服务

淋雨

数据恢复 文件恢复

云BI,如何成为了企业的“贴身管家”?

夏日星河

链表只有面试有用?Redis 之父说:我不同意!

图灵社区

算法 链表 Redis 数据结构

双十一剁手快,ERP系统不能慢

力软低代码开发平台

华为云发布三大生态举措,携手伙伴及开发者共创新价值

华为云开发者联盟

云计算 华为云 企业号十月 PK 榜

用火山引擎DataTester,这家企业开始了“数据驱动增长”

字节跳动数据平台

五大模型揭秘深度学习用于时序预测的最新进展

云智慧AIOps社区

人工智能 机器学习 深度学习 算法 模型

MindStudio模型训练场景精度比对全流程和结果分析

华为云开发者联盟

人工智能 华为云 企业号十月 PK 榜

火山引擎钜惠双11开启,云服务器0.71折起

Geek_2d6073

HummerRisk 快速入门教程

HummerCloud

云安全 云原生安全 11月月更 HummerRisk

数据可视化分析之新技能——魔数图

葡萄城技术团队

数据分析 前端 可视化 商业智能

七层模型

初学者

网络 服务器 11月月更

【C语言】do 关键字

謓泽

11月月更

重磅发布!星汉未来全国开发者悬赏计划

星汉未来

云计算 开发者 运维 云原生 星汉未来

LED显示屏设计和安装比例有什么联系

Dylan

LED显示屏 户外LED显示屏 led显示屏厂家

应用现代化产业联盟,正式成立

华为云开发者联盟

云计算 华为云 企业号十月 PK 榜

为什么电脑主板晶振多采用14.318MHz和32.768KHz ?

元器件秋姐

晶振 元器件 元器件电商平台 元器件采购

开源密码管理器更安全吗?(2)

神锁离线版

开源 网络安全 信息安全 数据安全 密码管理器

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