Guagua:PayPal 的 Hadoop 迭代式计算框架

  • 杨赛

2014 年 7 月 29 日

话题:大数据语言 & 开发算法机器学习AI

如何利用大数据训练风险控制的数学模型一直以来都是 PayPal 在欺诈交易检测的挑战。PayPal 在风险控制模型训练上大致经历过四个阶段:

  1. 决策树:早期 PayPal 使用简单的决策树模型,主要是由于早期的模型训练的数据量比较小,决策树模型的结果易于解释。
  2. 逻辑回归:当 PayPal 的业务越来越复杂,分控模型也随之越来越复杂,使用逻辑回归可以很容易的处理更大的数据量以及更多的特征;而且 PayPal 的线上风控服务可以快速实现这些逻辑回归的数学模型。
  3. 神经网络:为了弥补逻辑回归特征数量的限制,PayPal 使用了神经网络来训练特征值达到上千个的数学模型,但是由于没有分布式的训练框架和产品,训练数据一直受到单机的限制。
  4. 分布式的神经网络和逻辑回归:Hadoop 迭代式计算框架 Guagua 出现,解决了大数据的分布式训练问题,这样 PayPal 的所有风控数学模型不再有单机的数据限制,而且目前支持的最大模型的特征数量已经超过了 2500 个。

其中,Hadoop 迭代式计算框架 Guagua 是 PayPal 的一个开源机器学习框架Shifu的子项目,已经于今年四月开源

张彭善是 PayPal Risk Data Science 部门的研发工程师,在 PayPal 一直致力于使用 Hadoop 解决风险控制数学模型的特征提取、训练及验证等工作,是 Shifu 和 Guagua 的主要开发人员。InfoQ 中文站编辑近日对张彭善进行了采访,了解这个框架的开发背景和应用状况。

InfoQ:首先问一下,这个框架为什么取了 Guagua 这个名字?

张彭善:这个名字的得来其实很随意。去年公司装修期间,我在家开发 Guagua 的时候,苦于没有一个合适的名字,我随手翻了本我儿子平时比较喜欢的一本故事书,看到上面一只小鸭子叫“呱呱”,我当时随手就用了这个名字。后来等到 Guagua 成型,一直想换一个名字,但是那时 Guagua 在公司内部已经有了很大的知名度,而且我的同事帮我设计了一个非常漂亮的 Logo,Guagua 就一直沿用至今了。

InfoQ:风险控制训练的业务特点是什么?

张彭善:风险控制数学模型的主要特点是训练数据量大、模型特征多、模型通用性低等等。

InfoQ:其训练的算法有什么样的特点?业内都有哪些公开的或者你了解的方法,各自有什么特点和不同?

张彭善:它的训练方法和其它的分类问题并没有太多不同,唯一比较大的不同是如何利用大数据来训练数学模型。业内有很多相关的算法,决策树、逻辑回归、神经网络、SVM 等等,但是主要都是单机实现。即便是Apache Mahout也并没有把分类模型的分布式做好(Mahout 中逻辑回归和神经网络均为单机算法)。

InfoQ:为什么要开发 Guagua?换句话说,Guagua 为什么是更适合你们业务特点的框架?

张彭善:在 PayPal,Guagua 主要解决的是机器学习分类模型的分布式训练问题,以往我们并没有分布式模型的训练框架或者产品,我们只能通过抽样来把我们的训练数据限定在单机规模。此外,由于单机计算资源和内存的限制,我们以前训练一个风控模型需要 10 小时左右的时间。使用 Guagua,数据和计算都在 Hadoop 之上实现了分布式,不仅训练数据达到了我们之前不敢想象的 TB 级别,而且训练时间也由 10 小时左右减少到 1 小时左右,且最终的模型没有比单机有任何的性能损失。

InfoQ:Guagua 现在哪些地方满足了你的要求,哪些方面还不完善,计划做哪些工作改进它?

张彭善:Guagua 主要解决了模型训练的分布式问题,现在 PayPal 可以利用大数据快速训练风控数学模型。同时 Guagua 并没有将自己局限在分类模型,Guagua 是一个基于 Hadoop 的迭代式计算框架,几乎任何基于迭代的算法都可以利用 Guagua 为其添加分布式功能。此外由于 Guagua 对分布式的良好支持,我们以前许多想做又不能做的工作比如模型特征自动选取都可以得以进行。

Guagua 目前主要支持的是同步的 Master-Workers 结构的迭代式计算框架,今后我们希望能够支持异步方式的迭代计算框架,2012 年 Google MapReduce 之父 Jeff Dean发表了一篇论文,上面提到了对神经网络深度模型的支持,文章介绍他们的 DistBelief 框架训练的神经网络的数学模型可以支持 10 亿级别的参数。这也是 Guagua 的另一个方向,支持超大规模的深度神经网络模型。

大数据语言 & 开发算法机器学习AI