写点什么

蚂蚁金服有哪些金融特色的机器学习技术?

  • 2019-11-08
  • 本文字数:3448 字

    阅读完需:约 11 分钟

蚂蚁金服有哪些金融特色的机器学习技术?

面向海量图数据的深度学习系统

金融场景和互联网其它场景不一样的地方是,其数据是一个巨大的金融网络。在这个网络中资金在不同的个体之间流动。资金流动过程中涉及到各种各样类型的节点,有用户、商家、公司等角色节点,也有账号等虚拟节点,还有 WIFI 设施、终端等设备节点,以及地点等物理节点。同时,这些节点之间的关系和信息交互的类型也可以不同,从而形成巨大的图。如何对这个图进行机器学习建模,发现其中的有效信息,是非常复杂的过程。



懂机器学习的同学知道,机器学习要对图数据建模,首先需要把数据进行向量表征,例如类似逻辑回归、决策树等模型都需要先对数据进行向量表征。但图数据的输入并不是向量表征,它是异构且不规则的,每个节点的邻居个数不一样,连接的关系也不一样,这需要一个平台实现图数据到向量表征的转换过程,然后再基于向量表征实现各种各样的机器学习模型。下图展示了一种通用的图向量表征框架。



图数据进行表征学习之后,就可以做各种各样的应用,例如推荐和决策应用,也可以做一些生成模型。现在有一个在学界比较火的深度学习模型叫做卷积神经网络,其学习过程就是对每个节点和边用神经网络参数化传播的方式来实现深度神经网络的建模。


蚂蚁金服的图数据非常复杂庞大,可以涉及到上百亿的节点,上千亿的边。怎样把大体量的数据用起来,进行机器学习建模,需要很好的系统架构和平台建设支撑。其中包括,怎样存储这些图数据,从而能够支持快速查询,快速推理;以及在逻辑层怎样组织这些数据,是社交关系网络、资金转移网络还是媒介网络。有了这些数据的逻辑组织和图数据的存储以后,还要做通用的算子,包括对图进行采样、随机游走和消息传播。然后,基于这些算子的构件,我们就可以实现各种各样的图深度学习模型,其中既包括基于非监督学习的表征学习模型,也有基于监督学习的表征学习模型。进行表征学习以后,就可以通过机器学习对各种节点、边的类型进行预测,或者时序行为的预测,以及多重目标的预测。基于这些预测模型,我们可以通过离线学习打分或在线学习打分的方式来支持各种上层金融业务。



针对蚂蚁业务海量的数据,除了前面讲的平台的架构设计的思考,还有一些技术上的难点需要解决。我们可能面临百亿级节点、千亿级边,需要考虑怎么样在图上快速的查询节点,并把节点周围的子图抽取出来,这里会用到我们的图存储系统 GraphFlat 和 PHStore。有了这个以后,需要设计机器学习的算法,譬如随机采样的算法,然后把图数据变成一个稀疏的或者是稠密的矩阵运算,在 GPU 和 CPU 上进行分布式计算。



除此之外,为了支持各种各样的金融场景应用,还需要支持对不同结构的网络建模。通常金融场景涉及到的网络可能是没有属性的同构网络;也可能是在风控场景经常涉及的异构网络,例如用户和商家之间的资金转移关系;也有可能是带有属性的网络。我们需要用不同的算法模型来处理不同结构类型的网络关系,同时无论哪种类型网络,都可以用一套平台进行建模。目前,我们已经建设了面向多类型图数据的算法库。包括:


  • 面向无属性网络的 xGrep,可以针对十亿级节点,千亿级边,数千亿样本进行训练,并研发了分布式随机游走框架和分布式 word2vec 训练框架;

  • 面向属性网络的 GeniePath,这是自适应深度/广度的图神经网络,性能业内领先;

  • 面向异质网络的 HeGNN&IGNN,其层次注意力机制提供金融级可解释性,可以自动学习异质信息丰富的语义;

  • 面向知识图谱的 KGNN,可对知识图谱进行表达学习,包括图神经网络+图谱模型。



在金融场景很多时候需要具备可解释性,因而需要我们对训练出来的深度模型进行解释,找出具体是网络上的哪一条边或者哪一个节点影响了整个风控系统的决策。为此,我们定义了各种各样的模型,包括 GeniePath 可以在深度学习网络中自动搜寻节点的邻居,看哪个邻居对当前的信息节点的风控有影响;或者是基于 HeGNN、IGNN 考虑不同网络层次的影响,甚至是比较粗糙的高层次的网络影响,以及网络的不同维度的影响。


综上所述,一个可用性高的深度图学习平台需要对架构做逻辑的划分,同时中间的每个划分模块都会有很多技术点,包括系统工程的技术、高性能计算的技术,以及模型算法方面的技术。



上图是两个具体的落地实例。首先,我们把图深度学习应用到营销场景,通过用户和商家的历史购买行为来预测用户对红包金额的敏感程度,从而对商家红包实现个性化定价,帮助商家更好地分配红包金额,提升营销资金利用效率,这个方法把营销的成本降低了 8%。我们还把深度图学习和知识图谱结合起来应用在企业信贷,提高了授信额度,新增授信额度数百亿。此外,深度图学习平台还在支付、贷款、保险,财富管理等其他场景中均有各种各样的应用。


在互联网金融中,图神经网络是非常有用的新技术,也是蚂蚁金服大力发展的技术方向之一。

自动机器学习系统

除此之外,蚂蚁金服内部有各种各样的机器学习算法应用场景,每天都有成千上万的模型在训练中,但是算法人员投入在模型训练上的时间和精力是有限的,由于产品纷繁复杂,算法人员既要选择深度学习的网络结构又要选择算法的其他超参,这个过程可能还要加入业务知识;随着数据体量的增加,还需要在比较短的时间调好模型,对模型训练的时间要求也越来越高,而传统的单纯依靠人工调参很难满足我们对于模型更新迭代的效率要求。


为了解决这个问题,我们建立了自动化建模工具 AutoML 计算平台,能够支持让平台和算法人员一起协作,从而加速机器学习模型的建模和寻优过程。为此,我们在底层基础设施之上实现了很多的算法来实现特征自动化、超参搜索、网络结构搜索以及元学习,从而降低新模型开发的成本。



介绍一个具体的落地案例,叫做 autonet,这是针对公司推荐场景大量使用的深度神经网络算法,基本思想是我们通过将一些以前成功的小的深度神经网络子模块自动化拼装起来,组合构成一个新的网络结构并寻找更高效的模型:一方面将 DNN 的网络结构自动化的构建起来,另外一方面也对最终的建模效果进行提升。产出的模型在相同资源下,和对比的人工设计的模型基本耗时相当,同时在用户拉新的场景取得了很好的效果,动销率提升了 14%。



此外,AotuML 还有各种各样的落地场景,后面都应用了自动机器学习平台的网络结构搜索、超参搜索、元学习,以及一些端到端的解决方案能力。各种业务场景的机器学习模型,都可以通过这个平台进行优化,提升效率。甚至跨 BU 的一些业务场景也基于迁移学习来加速机器学习建模的过程。

多智体对抗强化学习系统

上面两点介绍的是我们的横向技术如何从底层支持各种场景的机器学习模型。接下来介绍的是多智能体强化学习系统在蚂蚁的应用和落地。在实际金融场景中,我们涉及到的节点不是静态的,例如人和商家的节点在交互过程有博弈、合作、对抗,因此我们要把对抗学习跟多智能体的强化学习结合起来应用在这些场景。例如反欺诈场景和金融支付的场景,都可以用多智体强化学习的方式来建模。


但是,很多传统的强化学习的方法都是先假设一个模拟器,然后与之不断进行交互来优化强化学习的策略,例如下围棋。但在金融场景,多智能体强化学习涉及到的模拟器并不是一个静态的,可能是一个人或者是一个机构,所以不存在一个明确好用的模拟器,我们也不知道多智体在行为中,其奖励函数或者是损失函数是什么。因此,使用传统强化学习硬套金融场景是行不通的,首先要根据现有的金融数据或者是用户行为数据学习到一个 simulator 及其奖励函数,这样才能在此基础上进行强化学习。



为此,我们建立了一个多智能体的强化学习平台,中间用 imitation learning 的方法来学习用户的行为特征,以及他的奖励函数,在此基础上做各种各样的机器学习。


这是一个具体的多智体的强化学习在推荐系统上的应用。很多情况下,用户登录到一个系统里面,系统会对这个用户进行长期的检查、分析和推荐。好的推荐系统的建模方式不是把用户每次来的行为作为独立的预测问题,而是把它看成强化学习的问题,这样的话,我们可以针对用户长期的奖励、喜好进行优化,而不是短期的推荐,从而让用户长期对推荐的内容感兴趣,产生价值。



这是我们在人工智能顶会 ICML(2019)上的论文,我们把强化学习这套理论引入到对抗学习里面,用这个方法来学习用户的点击行为,以及点击行为对应的奖励函数,有了用户的行为模型和奖励模型之后,就可以进行大规模的强化学习。



强化学习在蚂蚁金服还有各种各样的应用,我们还在不断探索和开辟,也欢迎学术界和业界进行更多的交流,共同创新和推动发展。


本文转载自公众号蚂蚁金服科技(ID:Ant-Techfin)


原文链接


https://mp.weixin.qq.com/s/HwGGOaIGysuPY404pRQ4-g


2019-11-08 08:002625

评论

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

四面美团开发岗,成功斩获offer,这份面经总结终结篇看完就是血赚

Java 程序员 后端

史上最全499道Java面试题:JVM+分布式,Kafka的精髓全写这本“限量笔记”里了

Java 程序员 后端

史上最全Spring教程,从零开始带你深入♂学习(二(1),深入实践springbootpdf百度云

Java 程序员 后端

吊打面试官!Java基础(面向对象,java入门自学书籍推荐

Java 程序员 后端

听我讲完redo log、binlog原理,面试官老脸一红,rabbitmq集群同步原理

Java 程序员 后端

和程序员谈恋爱的7种体验,linux多线程面试题

Java 程序员 后端

史上最全Java8日期时间工具类(1),mongodb索引原理

Java 程序员 后端

史上最全SpringBoot教程,从零开始带你深入♂学习(九,大厂Java面试真题精选

Java 程序员 后端

团灭LeetCode!Alibaba技术官甩出的大师级算法宝典真的太香了!

Java 程序员 后端

同程旅行基于 RocketMQ 高可用架构实践,mysql破解版百度云

Java 程序员 后端

史上最全SpringBoot教程,从零开始带你深入♂学习(十五

Java 后端

同事问我MySQL怎么递归查询,我懵逼了,java面试简历百度云

Java 程序员 后端

吹爆!阿里高工甩出内部强推Redis全栈笔记,Github已获赞78

Java 程序员 后端

太为难我了,阿里面试了7轮(5年经验,拿下P7岗offer)

Java 程序员 面试 后端

三面阿里被挂,竟获内推名额,历经5面拿下口碑offer(Java后台)

Java 编程 程序员 架构 面试

同事临走时,给了我这份多线程and高并发(面试题,小米java面试几轮

Java 程序员 后端

哟,我发现 Dubbo 这波优化好像不够彻底啊?,深入java虚拟机第四版百度网盘

Java 程序员 后端

上线直接霸榜!阿里内网流传P8大牛的“满级”分布式架构笔记

Java 编程 程序员 架构

同事问我MySQL怎么递归查询,我懵逼了(1),阿里java技术专家评级

Java 程序员 后端

史上最全Mybatis框架入门教程,从零开始带你深入♂学习(三

Java 程序员 后端

史上最全Redis数据库入门教程,从零开始带你深入♂学习(一

Java 程序员 后端

听音乐不过瘾?自制一个音乐播放器!,java程序设计基础知识点第七章

Java 程序员 后端

听说Lombok的@Builder不好使?快来试试这个,rocketmq原理面试题

Java 程序员 后端

哇塞!这是我见过的最牛逼的性能监控系统,集强大功能于一身

Java 程序员 后端

嘘,助你一臂之力,快来瞧瞧这份-Spring-面试小抄,百度语音识别接口java

Java 程序员 后端

史上最全Java8日期时间工具类,史上超级详细

Java 程序员 后端

史上最全Spring教程,从零开始带你深入♂学习(二,java快速排序原理

Java 程序员 后端

吃透阿里大佬整理的Java面试要点手册,成功五面进阿里(二本学历

Java 程序员 后端

同样是程序员,本科学历凭什么就比专科学历更吃香?,mybatis常见面试题

Java 程序员 后端

五面阿里、三面美团、四面字节跳动,最终拿offer入职字节!

程序员 数据结构 面试 算法

四年的开发经验只去面试了蚂蚁金服,无忧一次过,自学linux视频教程推荐

Java 程序员 后端

蚂蚁金服有哪些金融特色的机器学习技术?_AI&大模型_宋乐_InfoQ精选文章