本文介紹在構建通用推薦人工智慧服務的使用者商品傾向模型方面MasterCard和Intel的合作專案。Analytics Zoo1是Intel開源的一個統一的Analytics + AI平臺,它無縫地將Spark、TensorFlow、Keras和BigDL2程式整合到一個整合的流水線中,可以透明地擴充套件到大型Apache Hadoop/Spark叢集中,用於分散式訓練或預測,而無需額外的GPU基礎設施。
在金融行業中,使用者商品傾向模型可以用來計算消費者在特定行業內從商家或零售商處購買的機率。該模型可以用於展示市場研究前景,或為相關金融產品或商業交易提供個性化建議。利用建立在Spark基礎上的基於深度學習的神經推薦模型,推薦系統可以在改善消費者體驗、活動績效和目標營銷產品/計劃的準確性方面發揮重要作用,並提供相關資訊以鼓勵忠誠度和獎勵。本文使用一個個性化的市場營銷業務用例作為示例,闡述從格式化的信用卡交易中預測使用者的購買商品的傾向:
- 透過優惠匹配和連結不斷提高投資回報(ROI)是形成營銷活動設計和營銷管理的策略。
- 對於每個目標商品(如商家、類別、地理位置),估算所有消費者在未來幾天/幾周內進行購買的傾向,並提供一份作為候選人的消費者排名表。同樣,該模型還可以為每個消費者推薦一個商品的排名列表。
- 資料工程和深度學習流水線能夠在限定時間內執行在現有企業Apache Hadoop叢集(帶有Spark服務)之上,以生成使用者商品傾向模型。
- 模型服務作為人工智慧的服務:一種通用推薦人工智慧服務,可以在不同的服務環境(如實時、流式和批處理)下與現有應用程式/服務整合。
背景
MasterCard作為全球領先的支付解決方案提供商,正在將人工智慧(AI)整合到其平臺中,以更好地為客戶服務。Analytic Zoo,透過支援在大型Intel® Xeon®可擴充套件處理器叢集上執行基於Spark的BigDL,是滿足企業深度學習需求的理想解決方案,因為它允許使用者直接在現有的大資料(Apache Hadoop/Spark)基礎設施上開發和執行深度學習應用程式。相比之下,在企業中部署基於GPU的解決方案存在許多挑戰(例如,錯誤的工具整合,昂貴的資料複製和移動,耗時和工程人員資源密集,監控較少,學習曲線陡峭等),因為它們與現有資料分析基礎設施不相容。
深度學習可以透過營銷活動的有效性來推動更高的投資回報率。因此,著重於對消費者行為的敏銳洞察,根據客戶的興趣和喜好與客戶進行連線。例如,如果商家提供優惠給購買潛力最高的消費者,那麼商家的優惠是最有效的。傳統的機器學習演算法在以前的解決方案中起著至關重要的作用。然而,業界正在尋求一種更健壯的簡化流程的解決方案,用於處理模型的複雜性,勞動密集的特徵工程過程,以及更高的精度。近年來,人們提出了許多基於深度學習的神經推薦模型,以進一步提高營銷活動的有效性。
推薦系統概述
推薦系統(RS)是一種資訊過濾工具,用於引導使用者以個性化的方式從大量可能的選項中發現他們的偏好。它是為許多線上網站和移動應用程式推廣銷售和服務的關鍵工具。例如,80%在Netflix上觀看的電影來自推薦3;60%的影片點選來自YouTube4上的主頁推薦。基於深度學習的推薦系統在克服傳統模型的障礙和實現高質量推薦方面得到了廣泛的關注5。
推薦模型可分為三類:協同過濾、基於內容和混合系統。協同過濾透過學習使用者商品歷史互動,透過顯式的(例如,使用者先前的評級)或隱式的反饋(例如,購買歷史)來提出建議。由於資料約束,在這個用例裡面,協同過濾利用隱式資料。
傳統機器學習和深度學習的基準測試
基準概述
作為一個在Spark上本地執行的整合分析和人工智慧平臺,Analytic Zoo滿足企業深度學習應用程式的標準要求。
- 分析儲存在同一大資料叢集上的大量資料(Hadoop分散式檔案系統(HDFS)、Apache HBase和Apache Hive等),而不是移動或複製資料。
- 將深度學習功能新增到現有的分析應用程式和機器學習流水線中,而不是重建它們。
- 利用現有的大資料叢集和基礎設施(資源分配,負載管理和企業級的監控)
- 減少特徵工程工作量。在訓練階段進行交叉驗證時,深度學習演算法會產生指數性增長的隱藏嵌入特徵,並自動執行內部特徵選擇和最佳化。在構建模型時,演算法只關注一些預先定義的滑動特徵和自定義重疊特徵,刪除大部分loan-to-value(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)模型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)
- 精準度與召回率 ( 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 NiFi9構建企業資料流水線平臺。它開發了相關的定製處理器,透過利用Analytic Zoo的服務API,將深度學習和模型服務流程嵌入到現有的企業資料流水線中。
- 透過將模型匯出到評分/預測/推薦服務和整合點來構建模型服務功能。
- 在業務資料流水線中整合服務模型。例如,將它們嵌入到離線的Spark作業,流式處理的Spark Streaming作業,或與透過Kafka訊息系統的實時“對話”等等。
摘要
本文介紹了我們使用Analytic Zoo深度學習建立基於消費者交易歷史的推薦AI服務的經驗,為滿足企業的深度學習需求提供了一個很好的解決方案。開發並評估了兩種深度學習模型(NCF,WAD)。與傳統的機器學習演算法(如LR或ALS)相比,深度學習模型可以顯著提高推薦的質量並簡化模型訓練程式。作為端到端的行業用例,我們展示瞭如何利用Analytic Zoo的深度學習來構建一個出色的推薦系統,以幫助加強MasterCard的營銷和個性化能力的重要組成部分。
參考
- Analytics Zoo
- BigDL
- Carlos A Gomez-Uribe and Neil Hunt. 2016. Netflix推薦系統:演算法、商業價值和創新。管理資訊系統的ACM事務(TMIS) 6, 4 (2016), 13.
- 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).
- Shuai Zhang, Lina Yao, and Aixin Sun. Deep learning-based Recommender System: A Survey and New Perspectives. arXiv preprint arXiv:1707.07435, 2017.
- Robert M. Bell and Yehuda Koren. Scalable Collaborative Filtering with Jointly Derived Neighborhood Interpolation Weights
- 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.
- 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.
- Apache NiFi