本文收拾自中国移动算法工程师——汪海涛在 NebulaGraph 2022 年度用户大会上的共享,现场视频见 B 站:www.bilibili.com/video/BV1Ae…
各位朋友上午好,我是来自中国移动的算法工程师汪海涛。接下来我首要聊一聊图数据库在中国移动,特别是金融风控场景的落地运用。
为什么中国移动要建造图渠道?
全国 9 亿用户,每天产生大量数据
中国移动有十分多的数据,全国的用户每天都会产生海量的数据。怎样从这么大数据量里边发掘出有用的信息,然后用到金融风控场景?这便是咱们需求做的工作。
之前,咱们是以手机号为维度去提取特征,然后去做一些模型或规矩判别一个手机号是否是有违约危险。但仅仅依据手机号很难概括去考虑危险状况,因此咱们就想选用图核算技能去概括看一个手机号以及周围的其他手机号的信息,然后一同评判它的危险。
最开始是依据消费金融的场景,从比如说像蚂蚁金服、微信以及京东白条这样一些产品切入,经过用户通话数据、短信数据、设备等多维度的一些信息,去判别用户危险。但中国移动数据量这么大,不管咱们要做什么,最大的诉求便是需求有一个十分高功能的渠道去支撑数据剖析。
为什么挑选 NebulaGraph 图数据库?
JanusGraph vs TigerGraph vs NebulaGraph
咱们最早是选用了 JanusGraph 加上 Spark 去建造咱们渠道,可是经过一些测验,咱们发现 JanusGraph 的查询功能以及导入功能都比较一般,然后 GraphX 的话,它的核算功能其实也比较一般,特别是它需求的内存量特别大,因此咱们后来又开始去调研了市场上许多的图产品,并且对一些图产品做了测验,包括国外的产品,像 TigerGraph 之类的等等,可是由于一些特殊原因,中国移动是在美国商务部的实体清单上,所以许多外国的产品咱们是没法去收购和运用的。
因此最终,咱们是挑选国内的几家厂商进行了一些测验和比较,最终挑选了以 NebulaGraph 作为图数据库,然后以 Plato 作为图核算引擎这样一个整体的架构。
中国移动是怎样搭建图渠道的?
图渠道建造概况
咱们整体的架构大概是这样的——
最底层是咱们的数据源,中国移动建造有一个全国大数据中心,首要包括通话数据、方位数据、消费数据、设备数据、用户数据和 APP 数据等等,咱们每月把这些数据抽取到 HDFS 里边,然后把其间有用的数据抽取到 NebulaGraph 数据库里边,那么这儿用的便是 Nebula 的一个导入东西,这是咱们图数据存储这一层。
再上一层是核算剖析层,这也是咱们建模和事务剖析人员首要运用的一些框架。首要第一个是 Plato,它是腾讯之前开源的一个图核算引擎,可是据我所知腾讯现在现已不保护这一套引擎了,因此咱们也是专门找一些工程师,然后去保护这儿边的一套框架,以及修正一些小 bug 之类的。
那么它包括的算法其实许多的,这儿我首要是列举了两个社区发现算法:Louvain 算法和 HANP 算法。它里边还包括一个 LPA 算法,由于 LPA 算法的话是 HANP 算法一个简化版,所以这儿我没有列出来。
然后里边还有一个咱们有或许后边会用到的关于随机游走类的算法,首要是依据随机游走得到一个节点序列,会为咱们后边用于图神经网络练习做一个前期数据预处理的工作。
第三个是 GNN,便是图神经网络。图神经网络是最近几年兴起的一个范畴,咱们现在首要是依据这些模型做一些简略的产品,看看能不能取得比以往的方法更好的一些效果。最终便是依据 NebulaGraph 查询语言,首要便是 GO 语句和 FETCH 语句做一些简略查询。
再上一层的话便是运用层。首要是相关危险分,相关危险分首要是依据配套的社区发现算法来做的。第二个号码危险分和最终一个催收剖析首要是依据 Nebula 的查询语句来做的,首要便是查询用户跟一度、二度联系人以及一些违约用户,或是催收专用号码进行一些自动或被迫的呼叫。第三个信誉评分卡是依据图神经网络来做的,首要是用逻辑回归或者决策树之类的模型,希望经过图神经网络做一些提高。
图数据结构介绍
- 点数据
点数据首要是有四类,第一个是手机号,手机号也是咱们最重要的点数据,首要是包括比如这手机号它是归于哪个市的,是否发生过停机等等,还有一些消费信息。第二个是地理方位,首要依据基站。第三个身份证,作为仅有身份证辨认,或许也会有年纪或学历之类的标志。最终是设备信息,一般手机会有一个设备值,有对应的型号、设备体系等。
- 边数据
现在边数据的话,一个是用户跟用户的通话数据,第二个是手机号和身份之间的对应联系,第三个是手机号和设备之间对应联系,第四个是手机号跟地理方位之间对应联系,那么这些是咱们在图数据库里边保存的一些数据。
图技能在中国移动有哪些运用?
运用1:号码危险分
首要是号码危险分模型,首要用在羊毛党辨认这个场景。咱们会依据用户的通话流量方位以及手机行为信息去判别一个号码有没有或许是个羊毛党,首要经过四个模块——
第一个是接码模块,咱们会跟一些外面数据公司协作,判别一个号码有没有或许是一个接码号码,如果是,咱们会以为这个号码是薅羊毛的或许性就很大。
第二个行为异常号码,比如说这个手机号是否当月一次通话都没有,然后是不是每月都根本只要固定的月租这样的消费。这种号码咱们以为它或许是一个小号,或者是专门用来去薅羊毛的号码。
第三个是方位异常,比如说这个手机是否一个月下来便是在一个方位从来没有动过,或许仅仅放在家里偶尔用一下,不会带出去这种。关于这种号码的话,咱们以为它的危险也是相对比较大的。
第四个是染灰模块,图技能首要便是用于这个模型。依据前三个模块的成果,咱们首要获得了一批现已确认的羊毛党用户,那么咱们可不可以发现他的一些一同特征?比如说或许有几个羊毛党(号码)是归于同一个用户的,那么咱们是不是可以看看这个用户下面其他手机号是不是也或许是羊毛党?
别的,如果发现有一堆手机号是之前在同一个设备上运用过,咱们或许也会以为这个设备上对应的其他手机号也或许会是一些羊毛党。专业的羊毛党会选用卡池这种设备专门去薅羊毛,用图技能就可以快速发现并辨认。
运用2 :相关危险分
然后是相关危险分,浅显来说便是「近朱者赤近墨者黑」。
在平常交际圈,如果你的违约或许性比较低,那么周围人或许违约性也会比较低。依据这样一种想法,咱们首要做法便是首要依据移动所有用户构建一个联系网络,然后选用一些社区发现类的算法去发掘这个社区中个人的评分以及个人之间的联系,经过对这个社区打分,去辨认出这个社区是否是诈骗或低信誉社区。
相关危险分的首要运用场景便是诈骗范畴,比如信贷诈骗、买卖诈骗、营销诈骗、支付诈骗以及账户诈骗等等多个方面。
运用3:图神经网络(GNN)
最终是关于图神经网络的一些运用,首要是用于金融风控信誉评分卡的场景。过去咱们用做信誉评分卡大部分都是先提取用户特征,再练习一个逻辑回归模型或者是人物数字类的模型。
那么现在,咱们想经过图神经网络做一些模型,经过用户之间通话数据,比如近三个月自动通话、被迫通话以总通话次数是否到达要求,去判别要不要保留这样一条边。
咱们大概提取 100 多个首要的特征去录模,这儿的模型相对来说比较简略,现在是尝试了一个双塔的模型,左面的是关于图神经网络聚合的这样一个模型,右边用户特征本身的一个全衔接网络做了这样 MLP 的模型。左面的神经网络聚合,是比较简略也是最常用的——GCN、GraphSAGE 和 GAT 这三个模型。
别的咱们现在选用的是一个同构图的网络建模,后边或许会考虑异构图,比如说考虑用 HAN 这样的一些异构图的模型去建模,把用户的身份证和设备以及方位信息这些点都概括进来,然后一同进行建模。
图数据运用的未来展望
1.数据血缘
中国移动大数据中心会提供给大概 30 多家客户的 50 多个项目进行一同的建模,建模工作里包括的数据维表会特别多,由于咱们会给每个用户都匹配数据,然后帮他们生成特征,最终会把成果表也保存在数据库里边,大概现在有 1000 多张数据表,平常根本靠人工办理,后边看看能不能经过数据血缘的方法去做一个概括。
2.图神经网络
中国移动除了大数据中心,还有人工智能中心,那里有许多的 GPU 资源进行人工神经网络的练习,可是现在模型练习功率比较低下,所以后边看看怎样用图数据技能去处理这个问题。
NebulaGraph Desktop,Windows 和 macOS 用户装置图数据库的绿色通道,10s 拉起搞定海量数据的图服务。通道传送门:c.nxw.so/blVC6
想看源码的小伙伴可以前往 GitHub 阅读、运用、(^^)-☆ star 它 -> GitHub;和其他的 NebulaGraph 用户一同沟通图数据库技能和运用技能,留下「你的手刺」一同游玩呢~