作为大众熟知的电商应用,京东是如何构建坚挺的风控体系架构?如何优化数据的计算和存储?如何基于设备做智能识别的?本文由京东技术专家王美青对以上问题进行解读。
风控技术体系介绍
风控技术架构
上图是风控技术架构图,包括安全模块、风险决策平台、风险数据洞察模块、风险运营平台。其中,安全模块跟用户的接触是最紧密的,其包含设备指纹、移动端加固、设备证书、虚拟机识别以及代理检测。
风险决策平台根据场景进行管控和实时决策,同时支持策略计算和模型计算。指标库中囊括了所有的指标、策略、模型数据。下层是实时计算、流计算和图计算。另外,风险决策平台还包括机器学习训练模块和准实时模型训练场。
风险数据洞察模块对风险进行实时监控,统计分析,并形成报告。
风险运营平台相对来说是比较滞后的一个平台,实时场景生成后,提供一个运营审核的平台;在案件处理平台,通过人工介入为线上模型提供真实案例;风险搜索平台,提供成功交易之后的风险分析详情。
风险管控方案架构
风险管控包括三个方面:事前准备、事中处理、事后打击。
1、事前准备
搜集设备端的环境信息,包括指纹、行为序列和业务上的事件通知,不包含用户的敏感信息。
2、事中处理
实时决策引擎部署了很多策略和模型,通过实时分析、实时计算、图计算进行处理。
3、事后打击
发现风险后对案件进行还原,此时会介入人工审核,经过比对历史案件、分析行为特征等,确认后再回流到数据集市中。下层是一些计算工具,设置了几层向上的数据推送,包括T加一个月、T加一周、T加一天。
数据计算与存储技术
数据处理架构--Lambda架构
上图是数据处理架构Lambda,在输入数据后,数据流一部分进入不变数据仓,经过批处理进入存储视图中,供对外的查询服务使用。另一部分进行实时计算,计算完后数据便废弃了。
数据计算架构
公司内部大多使用JMQ消息模式,将JMQ 消息集中收集后分发,通过Kafka进入计算平台,使用JSTORM进入存储,分别存入Hbase和Cache。其中供线上毫秒级响应时所做的存储全部放入Cache中。
实时计算框架
1、特点
- 响应式架构
- 时间滑动窗口
- 定义了类SQL的特定领域语言
- 内置多种函数
- Java+scala
2、Flink应用
使用多个流相互链接,这些流都不是同时的,但他们互相间有线索,可以将多个流串联起来。
数据可靠性保障
如上图中的数据集,数据集包含三个数据中心。将每一份数据分别在多个机房进行存储,然后将每一组机器划分到一个机房。当某个机房出现问题后,可获取到DataSet。
数据治理方案
1、原始数据层
原始数据层数据是未经加工、杂乱无章的。
2、数据原子化层
通过数据加工将数据分门别类,例如分为帐户级别、交易级别、订单,使数据原子化。
3、数据的抽象层
将原子层的数据拼装,为数据建模准备。
4、数据模型层
将数据抽象层归纳好的数据,再抽象出一层,供业务场景使用。
*数据纵向层级越高,数据的复用度就越大,横向越多,覆盖度就越高
移动安全及应用
在安全链路方面集成FIDO协议,链路安全由软实现和FIDO共同支撑。FIDO包括:指纹、免密、人脸和一些数据的采集。采集的数据并非用户敏感数据,而是用户使用手机时在传感器方面的表现。
流程步骤
用户使用时首先有一个签约认证的Server。第二步是,证书服务,生成一个证书;第三步是Key工厂,在其中缓冲了很多序列,可以直接拿到公钥、私钥,然后通过指纹免密Server做认证。
风控指纹设备
如图通过SSL实现CDN与客户端的交互作为前提,将客户端收集的浏览器环境软信息放到Fingerprint Server中,并将所有搜集过来的设备数据在后台进行设备画像的制作。
智能化风控建设
怎样进行人机识别?
1、基于设备的智能识别
通过设备状态识别:设备状态的运动包含几个维度,不同的运动在传感器和陀螺仪的表现是不一样,通过设备运动状态可以进行人机识别。
通过充放电识别:机器和普通用户在使用设备时的充放电状态是不一样的,普通用户的手机不会一直处于充电状态中。
通过借贷软件识别:经过用户授权,获取用户使用的借款软件相关数据。
通过这几个识别指征,输出识别安全指数评测,可通过后台或服务器检测出使用设备的信息。
2、通过生物识别
用户进行同一操作时的使用习惯也是不一样的,通过传感器和陀螺仪的感应数据,可以判断使用设备的是否是本人。
智能化风控建设
无监督学习——社区发现
如图确定IP、手机号、地址、坐标、设备、wifi等多维权重计算;通过多维计算出“度”—[0-1],通过模型确定阈值;A-B达到阈值即产生边,顶点是账户。
社区发现对团伙作案、突发事件、潜在风险都能够有效识别。
机器学习平台
机器学习平台包括指标自动加工平台、模型智能训练平台、模型智能评估平台、模型管理运行平台。通过四大平台的协作,能有效地提高数据处理的效率、降低复杂度、增加产出,有利于统一进行管理。
指标自动加工平台:通过指标自动加工平台,实现对线上数据、线下数据的统一管理。
模型智能训练平台:实现模型的并行化训练,配置化训练。
模型智能评估平台:实现对样本数据的实时加工,配置化管理。
模型管理运行平台:实现对模型的生命周期管理,支持Python、Spark-MLIB、SCIKIT-learn、Tensorflow等算法库
数据迁移特征
支持断点续传、流量的调节、多数据源、容灾、弹性、多活。
分布调度中心
1、Job生命周期
Job生命周期包括:Open—Load——Lock——Execute——Finish——End——Reset。
Open:每次调度被触发都生成唯一的一次作业,在调度方保存该作业的每个状态并更新至ZK。进行事件通知。
Execute:执行任务是异步化的。open阶段和lock阶段都是同步执行,lock和Execute都是在集群上完成分片。
Finish:本次作业完成后等待下次调度被触发,生命周期重新开始。进行事件本地通知。
2、核心角色
借鉴JT的思路,由Master将这些任务分配到不同的JT中去。
3、通讯实现
4、内部设计
机器学习平台
在数据层中,实时数据和批量处理数据进行指标配置后,通过数据处理框架进入到向量库中,然后进入到向量集中,通过WOE统一转化将数据全部放入到模型计算引擎中,最后通过决策引擎直接产生结果。
计算机视觉——人脸识别
人脸检测
基于深度学习算法模型,模型能准确检测人脸,精确定位人脸框,并且准确标记人脸轮廓、眼、口、鼻、眉毛等关键点。
活体检测
动作活体通过唇语、摇头、眨眼等动作识别活体;静默活体基于人脸特征、双目立体视觉等方式实现活体检测。
人脸比对
基于深度学习算法模型,通过提取人脸特征,计算两张人脸相似度,从而判断是否同一个人,并给出相似度评分。
人脸检索
基于深度学习算法模型,算法模型对给定的一张照片,与指定人脸库中的N个人脸进行检索,找出最相似的一张脸或多张人脸,即1:N人脸检索。
人脸防伪
有效防止照片、仿生脸、视频等攻击行为,并且对复杂背景的攻击和真人能进行有效识别,实现安全可靠的人脸识别应用。
本文根据安卓绿色联盟讲师王美青在技术沙龙上的分享整理而成。首发于安卓绿色联盟微信公众号。