写点什么

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

  • 2014-07-29
  • 本文字数:1648 字

    阅读完需:约 5 分钟

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

2014-07-29 03:313082

评论

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

HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第7章定位

Geek_8dbdc1

HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第8章FlexBox布局

Geek_8dbdc1

肯耐珂萨D1轮融资资方阵营揭晓,跟投方为中南资本、青发集团

人称T客

React TypeScript 项目基本构建2

JackWangGeek

React

有限数据量如何最大化提升模型效果?百度工程师构建数据增强服务

百度大脑

人工智能 数据 模型训练 百度大脑

拼多多员工曝离职黑幕:要走可以,要离职证明,没有!

程序员生活志

职场 互联网公司

怎么写一个超棒的 README 文档

程序员生活志

经验总结 文档

智能汽车安全风险及防护技术分析

几维安全

移动应用安全

巴黎世家土味病毒营销,B端创业初期,如何用营销壮大种子用户?

北柯

创业 营销 tob

libuv 异步网络编程之 TCP 源码分析

Huayra

网络编程 libuv libuv 源码分析

云图说丨手把手教你为容器应用配置弹性伸缩策略

华为云开发者联盟

Docker 云计算 Kubernetes 容器

HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第11章有路网移动端主页实战

Geek_8dbdc1

《深度工作》学习笔记(6)

石云升

读书笔记 专注 深度工作

HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第9章FlexBox实战有路网

Geek_8dbdc1

神经网络的学习为何要设定损失函数?

王坤祥

神经网络 学习 损失函数

超市趣味游戏关卡设计

孙志平

工业互联网网络安全渗透测试技术研究

几维安全

网络安全 数据安全;工业互联网 移动应用安全 渗透测试

HTML5CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第10章有路网PC端主页实战整合

Geek_8dbdc1

微软看上的Rust 语言,安全性真的很可靠吗

华为云开发者联盟

数据库 开源 rust 安全 代码

微服务框架 Dubbo

莫莫大人

极客大学架构师训练营

安卓移动应用代码安全加固系统设计及实现

几维安全

android 安全评估 移动应用安全

架构师训练营 第 10 周 作业&总结

Jam

致远互联A6+Cloud C位出道 赋能中小企业乘风破浪

爱极客侠

Windows AD日志分析告警平台—WatchAD安装教程

BigYoung

监控 windows 日志 AD 告警

SpringBoot 系列(一):SpringBoot项目搭建

xcbeyond

Java 微服务 springboot

Spark优化之小文件是否需要合并?

华为云开发者联盟

spark 数据 cpu 内存 Spark调优

面经手册 · 第4篇《HashMap数据插入、查找、删除、遍历,源码分析》

小傅哥

Java 小傅哥 hashmap 面经 红黑树

Week10作业1

熊威

Week10总结

熊威

看前谷歌工程师是如何副业赚钱的?

非著名程序员

程序员 个人成长 副业赚钱 提升认知

核心稳定、易扩展——开放关闭原则(The Open-Closed Principle)

晃来晃去的萨麦尔

编程习惯 架构分析 软件设计原则

Guagua:PayPal的Hadoop迭代式计算框架_大数据_sai_InfoQ精选文章