Analytic Zoo的深度学习对MasterCard的推荐AI服务的优化

2023-10-13 07:10

本文主要是介绍Analytic Zoo的深度学习对MasterCard的推荐AI服务的优化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

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

  1. 通过优惠匹配和链接不断提高投资回报(ROI)是形成营销活动设计和营销管理的策略。
  2. 对于每个目标商品(如商家、类别、地理位置),估算所有消费者在未来几天/几周内进行购买的倾向,并提供一份作为候选人的消费者排名表。同样,该模型还可以为每个消费者推荐一个商品的排名列表。
  3. 数据工程和深度学习流水线能够在限定时间内运行在现有企业Apache Hadoop集群(带有Spark服务)之上,以生成用户商品倾向模型。
  4. 模型服务作为人工智能的服务:一种通用推荐人工智能服务,可以在不同的服务环境(如实时、流式和批处理)下与现有应用程序/服务集成。

背景

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

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

推荐系统概述

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

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

基准概述

作为一个在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
  • 用于基准的目标商家(优惠或广告系列):200
  • 已知交易:14亿(原始数据53GB)消费时间: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)模型 [6] 。

对于深度学习方法,基于最新的研究和行业实践,选择了神经协同过滤(NCF)和宽深(WAD)模型作为推荐的两个候选模型。来自Analytics Zoo的Keras风格API也被用于用python和scala构建深度学习模型。
在这里插入图片描述
图1.将深度学习模型与ALS模型进行比较

深度学习模型阐述

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

宽深(WAD)模型
2016年,Heng Tze Cheng [8] 为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)
  • 精准度与召回率 (https://en.wikipedia.org/wiki/Precision_and_recall )
  • 每位客户排名前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 NiFi [9] 构建企业数据流水线平台。它开发了相关的定制处理器,通过利用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

译文出处: https://software.intel.com/en-us/articles/deep-learning-with-analytic-zoo-optimizes-mastercard-recommender-ai-service

这篇关于Analytic Zoo的深度学习对MasterCard的推荐AI服务的优化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/201574

相关文章

Maven中引入 springboot 相关依赖的方式(最新推荐)

《Maven中引入springboot相关依赖的方式(最新推荐)》:本文主要介绍Maven中引入springboot相关依赖的方式(最新推荐),本文给大家介绍的非常详细,对大家的学习或工作具有... 目录Maven中引入 springboot 相关依赖的方式1. 不使用版本管理(不推荐)2、使用版本管理(推

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

springboot项目如何开启https服务

《springboot项目如何开启https服务》:本文主要介绍springboot项目如何开启https服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录springboot项目开启https服务1. 生成SSL证书密钥库使用keytool生成自签名证书将

Python中__init__方法使用的深度解析

《Python中__init__方法使用的深度解析》在Python的面向对象编程(OOP)体系中,__init__方法如同建造房屋时的奠基仪式——它定义了对象诞生时的初始状态,下面我们就来深入了解下_... 目录一、__init__的基因图谱二、初始化过程的魔法时刻继承链中的初始化顺序self参数的奥秘默认

MySQL索引的优化之LIKE模糊查询功能实现

《MySQL索引的优化之LIKE模糊查询功能实现》:本文主要介绍MySQL索引的优化之LIKE模糊查询功能实现,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前缀匹配优化二、后缀匹配优化三、中间匹配优化四、覆盖索引优化五、减少查询范围六、避免通配符开头七、使用外部搜索引擎八、分

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

Spring LDAP目录服务的使用示例

《SpringLDAP目录服务的使用示例》本文主要介绍了SpringLDAP目录服务的使用示例... 目录引言一、Spring LDAP基础二、LdapTemplate详解三、LDAP对象映射四、基本LDAP操作4.1 查询操作4.2 添加操作4.3 修改操作4.4 删除操作五、认证与授权六、高级特性与最佳

mysql的基础语句和外键查询及其语句详解(推荐)

《mysql的基础语句和外键查询及其语句详解(推荐)》:本文主要介绍mysql的基础语句和外键查询及其语句详解(推荐),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录一、mysql 基础语句1. 数据库操作 创建数据库2. 表操作 创建表3. CRUD 操作二、外键

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.