联邦学习助力金融行业风控

举报
齐月太白 发表于 2021/07/23 14:19:50 2021/07/23
【摘要】 利用海量数据对个人进行风控画像,已成为银行等金融机构在拓展面向个人类业务的常见做法。无论是在前期营销、贷前授信、贷中评估和贷后信用评估,精准个人风控画像都具备突出的业务价值。金融机构拥有的个人数据,一般都是发生过业务往来的历史用户数据,普遍存在覆盖面不广、维度偏少和更新不及时等问题,在支撑个人画像方面往往有所欠缺。面向个人消费者的互联网企业,拥有维度全面的个人画像数据,但受限于个人数据隐私安全。

1 业务场景

利用海量数据对个人进行风控画像,已成为银行等金融机构在拓展面向个人类业务的常见做法。无论是在前期营销、贷前授信、贷中评估和贷后信用评估,精准个人风控画像都具备突出的业务价值。

金融机构拥有的个人数据,一般都是发生过业务往来的历史用户数据,普遍存在覆盖面不广、维度偏少和更新不及时等问题,在支撑个人画像方面往往有所欠缺。面向个人消费者的互联网企业,拥有维度全面的个人画像数据,但受限于个人数据隐私安全保护的要求,金融机构和互联网企业的数据均无法共享给对方,无法进行联合风控建模。

以往的做法,是将两边的数据通过移动硬盘拷贝到隔离沙箱环境,共同训练得到评估模型,再将隔离沙箱环境中的数据删除,但存在效率低、数据和模型更新不及时的问题。联邦学习技术能较好的解决该问题,本案例介绍 TICS 纵向联邦学习技术应用,支持业界知名互联网金融公司和传统银行合作,在互相不泄露个人隐私数据的前提下,使用分布式存储在各自数据中心的多方数据,完成个人风控建模。

2 方案架构

互联网金融公司 xx钱包和银行训练数据源,均通过边缘侧的安全智能代理 TICS Agent 接入,前者数据是多维特征值,即机器学习中的 X 值(特征),后者数据是银行记录的个人履约情况,即机器学习中的 Y 值(标签),银行侧也可以提供特征值,是典型的纵向联邦训练场景,每个参与方本地生成同态公私钥对,私钥本地保存,公钥共享给其他参与方。训练任务由 xx钱包侧发起,TICS AGG 负责传递密文状态的中间参数,解决 xx钱包和银行的边缘侧各自部署在内网,网络无法直连的问题。训练后的模型每个参与方各自存储部分模型,经过两方的离线批量或在线联邦推理后,生成的信用评估分发布到云测的信用分服务中,该分值封装为外部可直接调用的风控评估服务接口,满足银行侧新增用户的风控检测需求。

方案实施前置条件:

  • 联盟参与方均已加入数据联盟,完成 TICS Agent 代理部署,参考 跨内网代理部署 TICS Agent
  • 数据提供方(xx钱包、银行)已准备联邦学习训练数据资源,且已导入边缘代理节点目录

3 数据接入

联邦学习场景,边缘代理数据接入有两种方式:代理本地路径接入或华为云对象存储服务 OBS 接入,本案例采用前者,包括以下步骤:

  1. 登录 TICS Agent 代理:登录华为云控制台 TICS 服务,选择 代理管理,点击代理名进入代理管理页面,点击代理登录地址 “前往代理 Agent”,打开代理登录界面,输入代理用户名 Admin 与代理登录密码,完成代理登录
  2. 查看本地连接器状态:点击连接器管理,查看名字为 localConnector 的本地连接器状态是否显示为 “正常”;本地连接器在代理创建时即自动新建,无须手动创建
  3. 创建数据:登录代理页面,点击 数据管理 > 创建,输入数据名称,选择连接器 localConnector,点击按钮 “选择数据文件”,选择训练数据集(须提前导入到代理服务器本地路径,默认为 /home/service/tics/data,或通过代理页面 > 算法管理 > 创建 手工导入),对字段进行配置,设置字段类型和字段类别,字段类别包括下面几种
    • 唯一标识(ID):具备唯一性,用于关联联邦学习多个参与方的数据
    • 特征(Feature):X 值,一般会有多个特征值,在本案例中即个人的多个维度的分析数据
    • 标签(Label):Y 值,如分类问题中图片是猫还是狗都属于标签值,是机器学习分析模型的预测目标

准备数据配置参考内容

本案例中 xx钱包提供 ID 和特征数据,字段结构如下:第 1 列是 ID 值,第 2~37 列是特征值。
银行提供 ID、特征数据和标签数据,字段结构如下:第 1 列式 ID 值,第 2~3 列是 特征值,第 4 列是标签值。

4 联邦训练

联邦训练由 xx钱包侧发起,包括以下步骤:

  1. 登录 xx钱包代理页面,选择 作业管理 > 联邦机器学习 > 创建,输入以下配置项,单击 “确定” 按钮,完成创建作业
    配置项 配置内容
    作业名称 英文字母和数字组合
    作业类型 纵向联邦
    算法类型 XGBoost
    任务类型 分类方法
  2. 在 作业管理 > 联邦机器学习 页面,可查看到刚刚创建的作业,点击按钮 “开发”,进入作业开发设置页面,依次完成操作
    • 数据选择:勾选 xx钱包和银行侧上传的训练数据集,点击右下角红色按钮 “下一步”
    • 样本对齐:由于本次测试数据集已提前完成样本对齐工作,直接点击下一步即可;若两侧的训练数据未进行样本对齐,须选择两侧训练数据的样本对齐字段,执行对齐操作
    • 特征选择:默认采用等频分箱策略,可以选择参与联邦学习训练的特征,若跳过该步骤,则默认将使用所有特征
    • 模型训练:点击右下角红色按钮 “启动训练”,发起联邦训练任务,在历史作业中科查看训练任务执行状态
    • 模型评估:训练任务完成后生成预测模型,可选择使用模型对测试数据集进行评估作业,点击 “评估作业”按钮,输入测试样本数据集,发起模型评估操作

创建纵向联邦训练作业配置指南参考

5 数据安全

本案例采用纵向联邦学习技术,使用同态加密计算支持 XGBoost 训练业务场景,xx钱包和银行侧在作业开始前,各生成公私钥对,并将公钥同步给对方。

联邦学习训练的全过程参考上图,包括以下步骤:

  1. 交行启动训练,触发 XGBoost 算法,本地 XGBoost 算法基于用户标签,生成每个样本的一阶梯度 g 和二阶梯度 h
  2. 调用同态加密模块, 将每个样本的一阶梯度 g 和二阶梯度 h 用自身公钥加密
  3. 将加密的每个样本的 [[g]] 和 [[h]] 发送给 xx钱包
  4. xx钱包方共有36个特征,假设每个特征有10个候选的分割点,则使用同态计算每个候选分割点(36*10=360个点)的左子树,右子树的加密的 [[g]] 和 [[h]]的累加和,生成密文 [[G]] [[H]]
  5. xx钱包侧返回加密的累积和 [[G]] [[H]]
  6. 银行用本地同态私钥,解密获得明文 G H,共 720 个值(360 个分割点,左右子树,即 360 * 2 )
  7. 银行侧计算每个分割点的分数 Gain,并将分数返回给 xx钱包
  8. xx钱包选择分数最高的分割点,优先作为树模型的分割节点

注:以上步骤中涉及的证书,统一由华为云 TICS 服务发放

重复执行以上 1 - 8 步骤,直到选出所有树模型的最优分割点 ,完成树模型的构建

6 应用价值

各参与方在不泄露各自数据前提下,基于 TICS 的联邦学习方案完成了基于多方数据的联合建模,有助于提升用户风控模型准确度。经实测验证,在信用卡发放审批场景,联邦学习风控建模可帮助提升批复率 5~10 个点,对于提升终端用户体验很有帮助。

从技术上分析,本方案以下几个功能特性获得用户高度认可:

  1. 高性能联邦学习加密算法:在本方案中,实现联邦训练和同态加密的协同优化,支持基于矩阵的密态数据计算,实现树节点选择的批量计算,大幅提升联邦学习训练效率
  2. 云边协同技术架构:支持用户数据云侧或边侧部署,满足银行侧数据本地化存储要求
  3. 开箱即用的联邦学习框架:简单易用、所见即所得,用户通过简单配置即可完成联邦学习建模操作,复杂的数据加密处理等过程封装在后台,大幅降低业务用户使用联邦学习的技术门槛
  4. 场景丰富:支持 XGBoost(包括分类和线性回归模型)、逻辑回归、决策树模型和神经网络模型,支持纵向和横向联邦学习建模,满足多样化的用户业务场景需求
  5. 联邦协同:支持多厂商异构联邦学习框架互联互通,建立跨厂商联邦学习技术生态体系,协同训练

7 FAQ

Q1 模型训练由哪一侧发起

参与联邦学习的任意一方,均可作为模型训练的发起方

Q2 联邦学习的训练效率怎么样

TICS 测试联邦学习运行 XGBoost 5 课树 5 层大概要 10 分钟,纯本地运行同样的模型,预计在1分钟左右。因此联邦学习对训练效率会有 10 倍左右的影响,主要是加解密操作和密文计算带来的额外时延等影响比较大。
相比业界其他联邦学习平台,TICS 联邦学习训练效率有 2~3 倍左右的提升,TICS 的联邦训练和同态加密操作做了协同优化,支持基于矩阵的密态数据计算,实现树节点选择的批量计算,借助并行计算方式大幅提升联邦学习训练效率。

作者声明:以上文档原创编制完成,转载请注明出处。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。