暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

周伟鹏:如何用GNN来提升关系图谱的反欺诈效果?

DataFunSummit 2021-11-11
1404



分享嘉宾:周伟鹏 数禾科技 AI实验室

辑整理:董梅 天津科技大学

出品平台:DataFunTalk


导读:本文主要从以下四个模块,结合数禾科技具体的项目来探讨GNN在金融风控上探索和实践的过程:

  • 业务背景

  • 数据准备

  • 模型介绍

  • 项目总结

01
业务背景

知识图谱或者关系实体在金融领域并不是一个新的命题,其在很长时间内在一直受到金融领域的关注,并且被各大金融风控平台和同业公司广泛应用。对于传统金融风控,主要是通过手工特征提取的方式来实现的,但是手工特征提取存在许多的问题,比如说:成本高昂、效率低下等。基于这些固有问题,我们与公司风控反欺诈团队一起尝试做基于图神经网络模型在风控反欺诈场景的深度挖掘,试图通过深度学习方式提取更多的有效信息来提升关系网络在风控反欺诈场景的应用价值。

内部图数据:

从现有已经采集到的关联数据来看,关系图谱已经非常庞大,关联关系非常丰富,边数量已经达到70亿+、节点数量达到10亿以上、有标签节点数量也已达到百万级。所以对于这样一个大型的图谱来说,里面蕴含非常丰富的信息。但是由于数据量比较大,所以也给我们风控反欺诈团队的同学带来了一些困扰,比如分析成本过高,并且通过人工的方式直接获取信息的情况比较难,无法从中获取到更多的信息。

我们先来假设这样一个情况,在传统的方式中,通过人物关联关系来分析一个人的好坏的这样一个情况。通过人工的方式,通常我们会从一个人的一度关联关系中提取,比如图中这个例子中有三个好的一个坏的,此时,我们可以通过平均,加权等形式,给定这个人一个评级,以这个例子,坏样本占比低,我们认为这个人存在一定风险,但是风险不一定很高。但是,这样的视野在现实场景中就足够了吗?

接下来,我们将关联关系拉到二度关联关系中,很明显坏样本占比增高,风险增加。对比一度关联关系,结论截然相反。手工方式很难拉到二度关联关系。那么,如何通过二度关联关系找到目标节点是一个比较困难的问题。由此,我们发现如果想要获取更加复杂的关联关系,难度会更大。对于风控反欺诈团队来说,面临的问题就在于我们需要通过什么样的手段可以获取更多的信息来对目标节点的客户作更好的判断?

对比传统方式,GNN在这样的场景下更具优势。我们可以通过GNN很方便的提取节点/边上的特征,也可以通过GNN提取一个人的关系网络结构特征。提取特征之后,我们可以通过分类、回归等方式来使用前置网络完成特征提取的信息。因此,对于传统方式,GNN对于图这样的非结构化模型的特征提取更具效率和性能上的优势。

02
数据准备

在已知业务背景的情况下,我们为项目做了哪些准备呢?

术选型:根据现有市面上常用的GNN的开源开发框架,我们选择了以下四个:Deep Graph Learning ( DGL )、PyTorch Geometric ( PyG )、Peddle Graph Learning ( PGL )、Alibaba Graph ( AliGraph )。经对比分析,相对来说DGL和PyG是更好的选择。通过对几种开发框架权衡对比,我们发现DGL在工业应用度和开源活跃度上性能更好。因此,我们最终选择了DGL作为项目中GNN的开发框架。

DGL开发框架:DGL是一款面向图神经网络的深度学习框架,主要由AWS上海人工智能研究院开发维护。兼容PyTorch、MXNet、TensorFlow等常用深度学习框架。我们的项目中选择了DGL+PyTorch的技术模式。同时DGL也支持GPU、CPU、多机分布式训练,内置30多种常用GNN模块方便快速应用。速度和可扩展性更高,以及包括针对知识图谱嵌入的软件包DGL-KE、针对生物分子制药的软件包DGL-LifeSci等。

准备建模样本:70多亿的样本相对建模来说较为冗余,建模过程中并不需要全量的大样本上做建模,因此,我们通过切时间窗口的方式选取一部分样本作为建模样本。抽取2020年9月到12月的客户以及他们的关联关系作为建模样本。在截取建模样本之后,样本量中有7亿+节点和20亿+边。

剪枝处理:观察建模样本,我们发现在该关联关系网络中,出现金融领域比较常见的一个情况:有特征的节点过于稀疏。主要是因为客户的关联关系不一定都在此平台有业务往来,因此,在关系网络中用灰色点来表示,在图中也占有很大的比重。通过评估,有特征的节点占比不足1%,导致图中节点过于稀疏。在此情况下建模,会使得模型在训练过程中难以收敛。因此,基于该问题,我们对建模样本预先进行了剪枝处理。比如说,某个人并不是我们的客户,只是作为关联关系存在并且该关联关系只关联了一个客户,因此它在我们的图中并没有提供特别有效的信息,这部分节点我们会考虑剪掉。另外,有一部分节点的特征并没有提供过多的有用信息,但是这部分节点关联多个有用节点。对于这部分节点,我们将其进行了保留。最终,我们对单个没有特征的节点做了剪枝。

经过剪枝处理之后,我们会发现整个图结构的规模下降很多,同时稀疏性也在一定程度上得到了缓解。剪枝之后,带有特征的节点占比提高到5%以上。

提取节点特征:与风控反欺诈团队合作,筛选了在风控反欺诈场景中最有效的80+个特征作为节点特征。这些特征主要包含以下几类:用户属性、首借信息、借款行为、还款记录。这部分特征作为初始特征直接标记在图的节点初始特征之上。

样本不平衡:在风控反欺诈场景中,样本不平衡问题是一个很大的问题。以此次建模样本为例,标签样本中,正样本比例不足0.5%,样本不平衡性非常严重。传统方式中,针对样本不平衡问题,主要采用过采样和欠采样的方式来解决。而此次建模中,考虑到关系数据本身的稀疏性问题以及图结构的特殊性,采用过采样和欠采样的方式,会导致图结构发生改变。因此,我们采取相对简单暴力的在loss上添加weight的方式使模型可以正常学习收敛。

03
模型介绍

模型采用GraphSage+GAT的模式构成主要的模型结构。大概分为以下几步:

  • 通过GraphSage的方式对目标节点进行多层邻居采样,得到子图;

  • 在采样的子图上使用GAT网络作为聚合方法,对邻居节点进行多层聚合;

  • 最终得到目标节点embedding后送入FNN网络,输出最终结果。

模型详细介绍:

1. GraphSage模块

通过采样和聚合的方式分解任务,解决以往针对整图的计算方式,会导致效率低下,无法将算法用于巨图上使用的问题。第一步,通过先找到目标节点作为中心节点,开始对周围邻居进行采样。采样标准可以任意设置(1度或者2度等)邻居节点,获得关于目标节点的子图。拿到子图之后,通过设置聚合函数,对各个邻居的每一层做聚合。最终把邻居的特征聚合到目标节点上获得目标节点的embedding。然后通过获得的embedding就可以进行下一轮的预测任务。GraphSage本质上是图神经网络任务的一种学习框架,我们沿用此框架,在此基础上做了一定的改变。

2. 采样

使用DGL提供的MultiLayerNeighborSampler方法来实现GraphSage形式子图采样。社交网络中存在的6度理论,可以通过某个人的朋友最多六度的关系连接到世界上任何一个人,金融领域同样存在这样的问题,当我们采样的次数变高的时候,图的范围也在逐渐扩大,导致根据目标节点采样出来的子图的样本逐渐趋向于全图的样本,最终会导致embedding出来的子图极其相似,区分度降低。为了避免采样深度过深导致的出现over-smoothing的情况,我们经过反复测试,最终发现采用深度在2-3层是,在我们的样本上表现相对较好。

3. 聚合

将原来GraphSage聚合函数替换为Graph Attention Network,Attention思想很简单,就是通过一个Attention网络可以计算出两个节点或者n个节点之间的权重,通过权重计算出embedding。在我们的模型中,Attention可以计算出目标节点与邻居节点之间的权重,所有的权重计算出之后通过softmax函数进行了归一化,每个节点的表征通过乘以权重,以加权求和的方式汇集到目标节点,最终到的目标节点的embedding值。另外,引入multi-head的概念,在计算权重时计算多组权重的值,实现多头的形式,最终对模型效果的提升有很大的作用。

04
项目总结

项目结果:在本次风控反欺诈项目中,基于目前已有关联关系数据使用GNN模型对客户进行风险评估,在连续两个OOT测试集上均展示出有一定风险区分度并且表现稳定。将GNN模型与传统手工模型进行stacking融合后,模型AUC提升4个点左右,提升效果显著。所以,这也从另一个角度印证了GNN模型相对于原来传统手工特征提取的方式来说,可以获取到图中更多的信息。因此,我们的模型目前正在进一步的上线推进中。当下存在GNN模型上线过程中的一些问题,因为在上线过程中可能存在工程化问题,比如图的采样在线上怎样获取采样等。这些工程性的问题我们团队也在进一步的解决中,后续有较大的进展成果有机会便同大家一起分享。

通过本次项目,我们同时也发现了GNN图神经网络在应用上的一些不足之处。

目前基于已采集的关系图谱仍存在一些不足:

  • 图网络稀疏:有特征和标签的节点相对较少。这对于深度学习神经网络来说,在一个稀疏的网络上训练一个深度学习模型一直以来都是一个难以解决的问题。

  • 节点关系不稳定:用户间关联关系会随时间推移而发生变化。因此这个问题的原因主要在于采集数据时候的实效问题,不同于社交网络一样有实时更新的采集方式,数据更新慢,因此造成用户间关联关系会随着时间的推移逐渐变弱。

  • 边信息缺失:在图结构中,边的关系是比较重要的。就现实情况来看,我们采集到的数据只能表示用户与用户之间是否存在关系,但是并不能有效的采集到用户与另一个人之间的关系的亲密程度的数据,换句话说,用户间并没有一个很好的衡量指标存在。因此,用户间关联关系无法衡量亲密程度,导致边权重缺失。

综上所述,这些问题对于我们项目来说影响很大,由此也带来了很多问题。

针对上述问题,我们团队未来将进一步的在项目中进行优化。具体来说,我们未来的优化目标有以下几个方面:

  • 加入更多的关系数据,使数据更为丰富:比如加入设备信息、位置信息等这些数据,将这些数据统一放到更大的一个图中,丰富用户关系的信息;

  • 尝试使用更深入的挖掘方法,采用不同的方式处理不同信息的提取:比如从同构图变为异构图,我们可以采用R-GCN的方式、或者通过不同的特征提取方式来进行更好的挖掘,如HARP、SEAL等;

  • 未来我们将推动多元的应用场景:比如营销、推荐、失联修复等,目前来看,在推荐上的应用相对来说是比较成熟的,在其他领域的应用需要我们进一步努力探索。

今天的分享就到这里,谢谢大家。


在文末分享、点赞、在看,给个3连击呗~


分享嘉宾:



福利时刻



识别二维码,添加小助手微信,回复『智能金融典藏版合集』,即可下载。

关于我们:

DataFun:专注于大数据、人工智能技术应用的分享与交流。发起于2017年,在北京、上海、深圳、杭州等城市举办超过100+线下和100+线上沙龙、论坛及峰会,已邀请近1000位专家和学者参与分享。其公众号 DataFunTalk 累计生产原创文章500+,百万+阅读,12万+精准粉丝。

🧐分享、点赞、在看,给个3连击呗!👇

文章转载自DataFunSummit,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论