本文介绍在构建通用推荐人工智能服务的用户商品倾向模型方面MasterCard* 和Intel的合作项目。Analytics Zoo1是Intel开源的一个统一的Analytics + AI平台,它无缝地将Spark*、TensorFlow*、Keras* 和BigDL2程序集成到一个整合的流水线中,可以透明地扩展到大型Apache Hadoop/Spark集群中,用于分布式训练或预测,而无需额外的GPU基础设施。
在金融行业中,用户商品倾向模型可以用来计算消费者在特定行业内从商家或零售商处购买的概率。该模型可以用于展示市场研究前景,或为相关金融产品或商业交易提供个性化建议。利用建立在Spark基础上的基于深度学习的神经推荐模型,推荐系统可以在改善消费者体验、活动绩效和目标营销产品/计划的准确性方面发挥重要作用,并提供相关信息以鼓励忠诚度和奖励。本文使用一个个性化的市场营销业务用例作为示例,阐述从格式化的信用卡交易中预测用户的购买商品的倾向:
1. 通过优惠匹配和链接不断提高投资回报(ROI)是形成营销活动设计和营销管理的策略。
2. 对于每个目标商品(如商家、类别、地理位置),估算所有消费者在未来几天/几周内进行购买的倾向,并提供一份作为候选人的消费者排名表。同样,该模型还可以为每个消费者推荐一个商品的排名列表。
3. 数据工程和深度学习流水线能够在限定时间内运行在现有企业Apache Hadoop* 集群(带有Spark服务)之上,以生成用户商品倾向模型。
4. 模型服务作为人工智能的服务:一种通用推荐人工智能服务,可以在不同的服务环境(如实时、流式和批处理)下与现有应用程序/服务集成。
背景
MasterCard作为全球领先的支付解决方案提供商,正在将人工智能(AI)集成到其平台中,以更好地为客户服务。Analytics Zoo,通过支持在大型英特尔® 至强® 可扩展处理器集群上运行基于 Spark 的BigDL,是满足企业深度学习需求的理想解决方案,因为它允许用户直接在现有的大数据(Apache Hadoop/Spark)基础设施上开发和运行深度学习应用程序。相比之下,在企业中部署基于GPU的解决方案存在许多挑战(例如,错误的工具集成,昂贵的数据复制和移动,耗时和工程人员资源密集,监控较少,学习曲线陡峭等),因为它们与现有数据分析基础设施不兼容。
深度学习可以通过营销活动的有效性来推动更高的投资回报率。因此,着重于对消费者行为的敏锐洞察,根据客户的兴趣和喜好与客户进行连接。例如,如果商家提供优惠给购买潜力最高的消费者,那么商家的优惠是最有效的。传统的机器学习算法在以前的解决方案中起着至关重要的作用。然而,业界正在寻求一种更健壮的简化流程的解决方案,用于处理模型的复杂性,劳动密集的特征工程过程,以及更高的精度。近年来,人们提出了许多基于深度学习的神经推荐模型,以进一步提高营销活动的有效性。
推荐系统概述
推荐系统(RS)是一种信息过滤工具,用于引导用户以个性化的方式从大量可能的选项中发现他们的偏好。它是为许多在线网站和移动应用程序推广销售和服务的关键工具。例如,80%在Netflix*上观看的电影来自推荐3;60%的视频点击来自YouTube*4上的主页推荐。基于深度学习的推荐系统在克服传统模型的障碍和实现高质量推荐方面得到了广泛的关注5。
推荐模型可分为三类:协同过滤、基于内容和混合系统。协同过滤通过学习用户商品历史交互,通过显式的(例如,用户先前的评级)或隐式的反馈(例如,购买历史)来提出建议。由于数据约束,在这个用例里面,协同过滤利用隐式数据。
传统机器学习和深度学习的基准测试
基准概述
作为一个在Spark上本地运行的集成分析和人工智能平台,Analytics Zoo满足企业深度学习应用程序的标准要求。
· 分析存储在同一大数据集群上的大量数据(Hadoop分布式文件系统(HDFS)、Apache HBase* 和Apache Hive*等),而不是移动或复制数据。
· 将深度学习功能添加到现有的分析应用程序和机器学习流水线中,而不是重建它们。
· 利用现有的大数据集群和基础设施(资源分配,负载管理和企业级的监控)
· 减少特征工程工作量。在训练阶段进行交叉验证时,深度学习算法会产生指数性增长的隐藏嵌入特征,并自动执行内部特征选择和优化。在构建模型时,算法只关注一些预先定义的滑动特征和自定义重叠特征,删除大部分loan-to-value(LTV)预计算工作,节省大量时间和资源。
· 自动模型优化。传统的机器学习(ML)方法严重依赖于人机学习专家来优化模型。Analytics Zoo提供了更多选项来找到一个最佳的稳健的执行配置。
· 由于Analytics 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)模型6。
对于深度学习方法,基于最新的研究和行业实践,选择了神经协同过滤(NCF)和宽深(WAD)模型作为推荐的两个候选模型。来自Analytics Zoo的Keras风格API也被用于用python* 和scala* 构建深度学习模型。
图1.将深度学习模型与ALS模型进行比较
深度学习模型阐述
神经协同过滤(NCF)模型
Xiangnan He7首先提出的简单通用的NCF模型,旨在作为开发推荐服务深度学习方法的指导,以捕捉用户和物品之间的非线性关系。由于存在大量未观察到的实例,NCF采用负抽样来减小训练数据量,显著提高了学习效率。传统的矩阵分解可以看作是NCF的一个特例。使用Analytics Zoo,用户可以轻松构建NCF模型,如下图所示。
图2.神经协同过滤(NCF)模型的示例
宽深(WAD)模型
2016年,Heng Tze Cheng8 为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,Analytics Zoo模型可以无缝集成到Web服务(如Spark Streaming,Kafka* 等)中。
MasterCard使用数据流水线框架Apache NiFi9构建企业数据流水线平台。它开发了相关的定制处理器,通过利用Analytics Zoo的服务API,将深度学习和模型服务流程嵌入到现有的企业数据流水线中。
· 通过将模型导出到评分/预测/推荐服务和集成点来构建模型服务功能。
· 在业务数据流水线中集成服务模型。例如,将它们嵌入到离线的Spark作业,流式处理的Spark Streaming作业,或与通过Kafka消息系统的实时 “对话” 等等。