HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

如何利用 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:003244

评论

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

Java环境配置:Eclipse简单上手

Bob

Java eclipse 8月日更

Node.js 实现存储服务的下载功能【包含前后端代码】

liuzhen007

8月日更

Windows 中 Node.js 中 nvm 的安装配置和使用

HoneyMoose

【Flutter 专题】72 图解极简自定义跑马灯 ACEMarquee

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

贡献数字力量 浪潮云洲赋能广州箱包皮具产业集群

工业互联网

VSCode July 2021 (version 1.59) 更新

IT蜗壳-Tango

8月日更

在线圆周率查询下载工具

入门小站

工具

Nvm 安装新的 nodejs 版本

HoneyMoose

HashMap面试中的12个点

4ye

Java 面试 后端 hashmap 8月日更

手撸二叉树之数据流中的第 K 大元素

HelloWorld杰少

数据结构与算法 8月日更

感恩架构实战营学习的一路陪伴、不断进度!

arctec

架构实战营模块 5 作业

zlz

【Vue2.x 源码学习】第三十二篇 - diff算法-乱序比对

Brave

源码 vue2 8月日更

Vue进阶(二十五):<component>实现动态组件

No Silver Bullet

Vue 动态组件 8月日更

Vue进阶(二十六):详解 router.push()

No Silver Bullet

Vue router 8月日更

从0开始的TypeScriptの四:接口Interfaces · 上

空城机

JavaScript typescript 大前端 8月日更

prometheus 语法

Rubble

Prometheus 8月日更

netty系列之:使用POJO替代buf

程序那些事

Java Netty nio 程序那些事

SpringBoot 日志配置(logback)

xcbeyond

springboot logback 8月日更

Linux Docker 中安装 Jenkins 并实现 Maven 工程自动化部署

陈皮的JavaLib

Java maven jenkins 8月日更

电商秒杀系统架构设计

arctec

Linux之traceroute命令

入门小站

Linux

Habor 入门指南

Se7en

Regan Yue带你一起学习微软AZ-900认证的有关知识「 第Ⅱ章」

Regan Yue

云计算 微软 后端 8月日更

小手哆嗦一下,就能用 Python Django 实现一个微型博客系统

梦想橡皮擦

8月日更

零代码上线小布对话技能:技能平台的实践与思考

OPPO小布助手

人工智能 自然语言处理 算法 零代码 语义理解

JNI不正确的信号处理导致 JVM 崩溃问题分析

毕昇JDK社区

自媒体培训行业水很深,入行新人要谨慎选择

石头IT视角

架构实战营模块 4 作业

zlz

失败的小项目

箭上有毒

生活随想 8月日更

失败的小项目-Tiktok搬运

箭上有毒

8月日更

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