微信号:infoqchina

介绍:有内容的技术社区媒体

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

2014-07-30 18:30 InfoQ

如何利用大数据训练风险控制的数学模型一直以来都是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的另一个方向,支持超大规模的深度神经网络模型。


One More Thing

更正声明:昨天发送的《ArchSummit深圳2014大会圆满结束,幻灯片开放下载》中的赞助商名称误写为晨星科技,现更正为晨星资讯(深圳)有限公司,特此声明,为相关企业和读者带来的不便表示歉意。


 
InfoQ 更多文章 Facebook如何实现PB级别数据库自动化备份 学术派Google软件工程师Matt Welsh谈移动开发趋势 Spotify为什么要使用一些“无聊”的技术? 妹纸们放假了,汉纸们做啥? 大多数重构可以避免
猜您喜欢 多线程 CreateThread 函数的用法及注意事项 如何利用多核CPU来加速你的Linux命令 — awk, sed, bzip2, grep, wc等 【粉丝福利】第1弹:学React?速戳领书! 程序员听过最多的谎言:需求再也不改了 【思辨】如果相关不意味着因果,那么意味着什么? ——大数据时代的“因果关系”思辨