写点什么

如何利用 Analytic Zoo 优化 MasterCard 推荐 AI 服务?

  • 2019-04-16
  • 本文字数:4217 字

    阅读完需:约 14 分钟

如何利用Analytic Zoo优化MasterCard推荐AI服务?

Analytics Zoo 是 Intel 开源的一个统一的 Analytics + AI 平台,它无缝地将 Spark、TensorFlow、Keras 和 BigDL 程序集成到一个整合的流水线中,可以透明地扩展到大型 Apache Hadoop/Spark 集群中,用于分布式训练或预测,而无需额外的 GPU 基础设施。本文将详细介绍 MasterCard 基于 Analytics Zoo 构建通用推荐人工智能服务的用户商品倾向模型的技术实践。


在金融行业中,用户商品倾向模型可以用来计算消费者在特定行业内从商家或零售商处购买的概率。该模型可以用于展示市场研究前景,或为相关金融产品或商业交易提供个性化建议。利用建立在 Spark 基础上的基于深度学习的神经推荐模型,推荐系统可以在改善消费者体验、活动绩效和目标营销产品/计划的准确性方面发挥重要作用,并提供相关信息以鼓励忠诚度和奖励。本文使用一个个性化的市场营销业务用例作为示例,阐述从格式化的信用卡交易中预测用户的购买商品的倾向:


  1. 通过优惠匹配和链接不断提高投资回报(ROI)是形成营销活动设计和营销管理的策略。

  2. 对于每个目标商品(如商家、类别、地理位置),估算所有消费者在未来几天/几周内进行购买的倾向,并提供一份作为候选人的消费者排名表。同样,该模型还可以为每个消费者推荐一个商品的排名列表。

  3. 数据工程和深度学习流水线能够在限定时间内运行在现有企业 Apache Hadoop 集群(带有 Spark 服务)之上,以生成用户商品倾向模型。

  4. 模型服务作为人工智能的服务:一种通用推荐人工智能服务,可以在不同的服务环境(如实时、流式和批处理)下与现有应用程序/服务集成。

背景

MasterCard 作为全球领先的支付解决方案提供商,正在将人工智能(AI)集成到其平台中,以更好地为客户服务。Analytic Zoo,通过支持在大型 Intel® Xeon®可扩展处理器集群上运行基于 Spark 的 BigDL,是满足企业深度学习需求的理想解决方案,因为它允许用户直接在现有的大数据(Apache Hadoop/Spark)基础设施上开发和运行深度学习应用程序。相比之下,在企业中部署基于 GPU 的解决方案存在许多挑战(例如,错误的工具集成,昂贵的数据复制和移动,耗时和工程人员资源密集,监控较少,学习曲线陡峭等),因为它们与现有数据分析基础设施不兼容。


深度学习可以通过营销活动的有效性来推动更高的投资回报率。因此,着重于对消费者行为的敏锐洞察,根据客户的兴趣和喜好与客户进行连接。例如,如果商家提供优惠给购买潜力最高的消费者,那么商家的优惠是最有效的。传统的机器学习算法在以前的解决方案中起着至关重要的作用。然而,业界正在寻求一种更健壮的简化流程的解决方案,用于处理模型的复杂性,劳动密集的特征工程过程,以及更高的精度。近年来,人们提出了许多基于深度学习的神经推荐模型,以进一步提高营销活动的有效性。

推荐系统概述

推荐系统(RS)是一种信息过滤工具,用于引导用户以个性化的方式从大量可能的选项中发现他们的偏好。它是为许多在线网站和移动应用程序推广销售和服务的关键工具。例如,80%在 Netflix 上观看的电影来自推荐;60%的视频点击来自 YouTube 上的主页推荐。基于深度学习的推荐系统在克服传统模型的障碍和实现高质量推荐方面得到了广泛的关注。


推荐模型可分为三类:协同过滤、基于内容和混合系统。协同过滤通过学习用户商品历史交互,通过显式的(例如,用户先前的评级)或隐式的反馈(例如,购买历史)来提出建议。由于数据约束,在这个用例里面,协同过滤利用隐式数据。

传统机器学习和深度学习的基准测试

基准概述

作为一个在 Spark 上本地运行的集成分析和人工智能平台,Analytic Zoo 满足企业深度学习应用程序的标准要求。


  • 分析存储在同一大数据集群上的大量数据(Hadoop 分布式文件系统(HDFS)、Apache HBase 和 Apache Hive 等),而不是移动或复制数据。

  • 将深度学习功能添加到现有的分析应用程序和机器学习流水线中,而不是重建它们。

  • 利用现有的大数据集群和基础设施(资源分配,负载管理和企业级的监控)

  • 减少特征工程工作量。在训练阶段进行交叉验证时,深度学习算法会产生指数性增长的隐藏嵌入特征,并自动执行内部特征选择和优化。在构建模型时,算法只关注一些预先定义的滑动特征和自定义重叠特征,删除大部分 Long Time Variable(LTV)预计算工作,节省大量时间和资源。

  • 自动模型优化。传统的机器学习(ML)方法严重依赖于人机学习专家来优化模型。Analytics Zoo 提供了更多选项来找到一个最佳的稳健的执行配置。

  • 由于 Analytic Zoo 作为 Intel Xeon 处理器上的标准 Spark 程序运行,因此部署或操作成本为零。

  • 高层流水线 API 支持,如 DataFrames、ML 管道、autograd、迁移学习、KERS/KERAS2 等。


考虑到 MasterCard 已经为类似的模型运行了几十年的传统机器学习,并且在 Spark ML 生态系统(如 Spark MLlib)上花费了资源,业务利益相关者希望对这两种方法进行基准测试,并确定其差异。因此,在 Spark 机器学习和 Analytics Zoo 的 BigDL 模型进行了基准测试。

选择数据集

数据来自过去三年中从特定渠道收集的数据集。


  • 不同的合格消费者:675,000

  • 用于基准的目标商家(优惠或广告系列):2000

  • 已知交易:14 亿(原始数据 53 GB)消费时间:12 - 24 个月作为训练和 1 - 2 个月作为验证


生产环境 Hadoop 集群:


  • 9 个节点集群(3 个主机主节点(HMN)节点,6 个 Hortonworks 数据平台(HDP)节点),每个节点放在一个物理盒中

  • 24 个超级内核,384 GB 内存,21 TB 磁盘

  • Hadoop 发行版本:Cloudera Distributed Hadoop(CDH)5.12.1

  • Spark 版本:2.2

  • Java *平台,标准版开发工具包(JDK *)1.8


基准库:


  • Analytics Zoo- bigdl_0.6.0-spark_2.2.0

  • Spark MLlib 2.2.0


对于传统的机器学习方法,选择 Spark MLlib 方法的交替最小二乘(ALS)模型。


对于深度学习方法,基于最新的研究和行业实践,选择了神经协同过滤(NCF)和宽深(WAD)模型作为推荐的两个候选模型。来自 Analytics Zoo 的 Keras 风格 API 也被用于用 Python 和 Scala 构建深度学习模型。



图 1.将深度学习模型与 ALS 模型进行比较

深度学习模型阐述

神经协同过滤(NCF)模型

Xiangnan He 首先提出的简单通用的 NCF 模型,旨在作为开发推荐服务深度学习方法的指导,以捕捉用户和物品之间的非线性关系。由于存在大量未观察到的实例,NCF 采用负抽样来减小训练数据量,显著提高了学习效率。传统的矩阵分解可以看作是 NCF 的一个特例。使用 Analytics Zoo,用户可以轻松构建 NCF 模型,如下图所示。



图 2.神经协同过滤(NCF)模型的示例

宽深(WAD)模型

2016 年,Heng Tze Cheng 为 Google Play 商店提出了一个应用推荐系统,该系统采用了宽深(wad)模式。宽分量是一个单层感知器,它是一个广义线性模型。深部分量是类似于 NCF 的多层感知器。结合这两种学习技术,推荐系统可以捕获记忆和泛化。在这种情况下,Merchant ID 和其他特性用于生成宽模型的交叉列。



图 3.宽深模型图


WAD 模型使用了 SparseTensor,以及为稀疏数据计算明确设计的一些的层,例如 SparseLinear, SparseJoinTable 等。Analytics Zoo 支持 DataFrame 和弹性分布式数据集(RDD)两种接口,用于数据准备和训练,为不同场景提供灵活性,允许 Spark 1.5 兼容到最新版本。

模型评估

利用 Spark MLlib ALS 的评价工具,NCF 和 WAD 实现的推荐器用下列指标进行测量。


  • ROC 曲线下面积(ROC AUG)

  • 精确度与召回率曲线下面积(PR AUC)

  • 精准度与召回率

  • 每位客户排名前 20 位的精准度


为了与传统的矩阵分解算法相比,在 SARS2.2.0 上的 ALS 训练采用了相同的数据和优化参数。相比之下,深度学习模型比 ALS 模型有显著的改进,如下表所示。


NCF 模型WAD模型
对比ALS召回率改进29%26%
对比ALS精准度提升18%21%
对比ALS前20个精准度增长14%16%

模型服务

服务方式

通过使用 Plain Old Java Object(POJO),本地 Java API 或 Scala / Python 模型加载 API,Analytic Zoo 模型可以无缝集成到 Web 服务(如 Spark Streaming,Kafka 等)中。


MasterCard 使用数据流水线框架 Apache NiFi9 构建企业数据流水线平台。它开发了相关的定制处理器,通过利用 Analytic Zoo 的服务 API,将深度学习和模型服务流程嵌入到现有的企业数据流水线中。


  • 通过将模型导出到评分/预测/推荐服务和集成点来构建模型服务功能。

  • 在业务数据流水线中集成服务模型。例如,将它们嵌入到离线的 Spark 作业,流式处理的 Spark Streaming 作业,或与通过 Kafka 消息系统的实时“对话”等等。

小结

本文介绍了我们使用 Analytic Zoo 深度学习建立基于消费者交易历史的推荐 AI 服务的经验,为满足企业的深度学习需求提供了一个很好的解决方案。我们开发并评估了两种深度学习模型(NCF,WAD)。与传统的机器学习算法(如 LR 或 ALS)相比,深度学习模型可以显着提高推荐的质量并简化模型训练程序。作为端到端的行业用例,我们展示了如何利用 Analytic Zoo 的深度学习来构建一个出色的推荐系统,以帮助加强 MasterCard 的营销和个性化能力的重要组成部分。

参考

  1. Analytics Zoo

  2. BigDL

  3. Carlos A Gomez-Uribe and Neil Hunt. 2016. Netflix 推荐系统:算法、商业价值和创新。管理信息系统的 ACM 事务(TMIS) 6, 4 (2016), 13.

  4. James Davidson, Benjamin Liebald, Junning Liu, Palash Nandy, Taylor Van Vleet, Ullas Gargi, Sujoy Gupta, Yu He, Mike Lambert, Blake Livingston, and Dasarathi Sampath. 2010. The YouTube Video Recommendation System. 第四届 ACM 推荐系统会议录第 29 页至第 29 页(RecSys '10).

  5. Shuai Zhang, Lina Yao, and Aixin Sun. Deep learning-based Recommender System: A Survey and New Perspectives. arXiv preprint arXiv:1707.07435, 2017.

  6. Robert M. Bell and Yehuda Koren. Scalable Collaborative Filtering with Jointly Derived Neighborhood Interpolation Weights

  7. Xiangnan He, Lizi Liao, Hanwang Zhang, Liqiang Nie, Xia Hu, and Tat-Seng Chua. 2017. Neural Collaborative Filtering. In Proceedings of the 26th International Conference on World Wide Web. International World Wide Web Conferences Steering Committee, 173–182.

  8. Heng-Tze Cheng, Levent Koc, Jeremiah Harmsen, Tal Shaked, Tushar Chandra, Hrishi Aradhye, Glen Anderson, Greg Corrado, Wei Chai, Mustafa Ispir, et al. 2016. Wide and Deep Learning for Recommender Systems. In Proceedings of the 1st Workshop on Deep Learning for Recommender Systems. ACM, 7–10.

  9. Apache NiFi


2019-04-16 08:003271

评论

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

架构实战营模块 2 作业

Lukefang

【架构实战营】模块2作业

dragonboa

微信朋友圈高性能复杂度分析设计

贯通

#架构实战营

架构0期作业2

sjj

架构训练营-模块二作业

Neil43

架构训练营

后端服务太多,且涉及多种语言,如何进行高效管理?

我爱娃哈哈😍

架构 架构设计 架构场景实战

模块二作业-架构训练营

架构训练营

架构实战营模块 2 学习总结

林子钧

总结 架构实战营 模块二

架构实战营模块2作业

林子钧

作业 架构实战营 模块二

微信朋友圈高性能复杂度分析

thewangzl

架构实战营第二模块作业

DZ

模块二:课后作业

iHai

架构实战营

「架构实战营」第二次作业

高亮

架构实战营

架构实战营模块 2 作业

梦寻解语花

架构实战营

架构实战营 模块二作业

Dylan

架构实战营

模块二-微信朋友圈的高性能复杂度

华仔架构训练营

产品经理训练营 Week3 学习心得

Mai

产品经理训练营 Week4 学习心得

Mai

微信朋友圈高性能架构

chenmin

一文带你更方便的控制 goroutine

万俊峰Kevin

线程 并发 Go 语言 goroutine

Java-技术专题-CountDownLatch的介绍和使用

洛神灬殇

Java AQS CountDownLatch JUC

华仔架构-模块

大师兄

甲方日常 94

句子

工作 随笔杂谈 日常

架构师实战营 模块二作业 微信朋友圈高性能架构分析

小遵

朋友圈高性能复杂度

Simon

架构实战营

产品经理训练营Week14学习心得

Mai

架构训练营模块2作业

唐江

模块2—分析一下微信朋友圈的高性能复杂度

sandy

架构实战营

架构实战营 模块二

Keyto

架构学习模块二作业

架构实战营

架构实战营-作业2

大肚皮狒狒

作业

如何利用Analytic Zoo优化MasterCard推荐AI服务?_AI&大模型_Suqiang Song_InfoQ精选文章