如何使用 emr spark ml 与 zeppelin 搭建机器学习服务技术 · yarn cluster resource...

59
AWS 中国(北京)区域由光环新网运营 AWS 中国(宁夏)区域由西云数据运营 AWS 中国(北京)区域由光环新网运营 AWS 中国(宁夏)区域由西云数据运营 如何使用 EMRSpark ML Zeppelin 搭建机器学习服务技术 赖彦彣, AWS 培训与认证部门技术讲师

Upload: others

Post on 22-May-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

如何使用 EMR,Spark ML 与Zeppelin 搭建机器学习服务技术

赖彦彣, AWS 培训与认证部门技术讲师

Page 2: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

日程

• 进阶分析与机器学习 Predictive Analytic & ML

• 运行于 Amazon EMR 的 Spark ML

• 机器学习如何与 Amazon EMR Spark pipeline 整合应用

• 典型分析情境:客户流失率分析

• 进阶分析情境:搭建电影推荐平台

Page 3: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

维基百科定义

分析 数据的模式意义寻找

预测性分析 运用过去的事实数据分析,

利用进阶方法如 ML,达成可预测性的模

型,预测未来的情况

Page 4: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

预测性分析情境

客户预测分析: 客户会不会流失

服务分析:什么产品会一起被购买

营运模式分析:

如果增加行销预算 revenue 会不会增加

Page 5: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

预测分析为何重要?

• 公司多年来一直在积累关于客户、产品/服务和运营的“大数据”。

• 大数据技术为满足这一数据管理需求提供了经过验证的解决方案。

• 但是...将数据转化为对趋势、分类、检测异常以及提供反馈循环以改善其业务的见解的压力越来越大

越来越多从大数据延伸的商业需求

Page 6: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

预测分析为何重要?

• 例如:希望从未来的月度或季度报告演变成实时警报,现在预测未来

越来越多从大数据延伸的商业需求

Page 7: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

Amazon EMR Eco-system

Storage S3 (EMRFS), HDFS

YARNCluster Resource Management

BatchMapReduce

InteractiveTez

In MemorySpark

ApplicationsHive, Pig, Spark SQL/Streaming/Mahout, Sqoop

HB

ase

/ P

ho

en

ix

Pre

sto

StreamingFlink

Zeppelin - NotebooksM

XN

et

Hue - SQL

Ganglia - Monitoring

Livy – Job Server

Co

nn

ecto

rs to

AW

S se

rvic

es

Amazon EMR

service

Page 8: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

Amazon EMR Eco-system

Storage S3 (EMRFS), HDFS

YARNCluster Resource Management

BatchMapReduce

InteractiveTez

In MemorySpark

ApplicationsHive, Pig, Spark SQL/Streaming/Mahout, Sqoop

HB

ase

/ P

ho

en

ix

Pre

sto

Zeppelin - NotebooksM

XN

et

Hue - SQL

Ganglia - Monitoring

Livy – Job Server

Co

nn

ecto

rs to

AW

S se

rvic

es

Amazon EMR

service

StreamingFlink

Page 9: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

Amazon EMR 上的 Spark ML

Page 10: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

Spark 组件

DataFrames API

RDD API

Spark Core

Page 11: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

浅谈 Spark ML

• 是 Spark 上高延展的机器学习函式库, 提供 Java, Scala, Python 与 R语言的 API

• 易用于发展迭代分析演算法

• 快速的大量资料处理

• Spark 2.0: DataFrame 为主的 API

• MLlib: RDD 为主的 API : 现今已不支援于 SparkMlib

Page 12: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

Spark 组件

DataFrames API

RDD API

Spark Core

The RDD-based API is

expected to be

removed in Spark 3.0.

Spark ML: Mllib for

DataFrame-based API

DataFrame-based API is

annouced as primary API

Page 13: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

数据处理技术之演进

RDDSpark

DataframeSpark SQL

Spark Mllib RDD-based

ML

Spark ML-

DataFrame based-ML

Spark 1.0 Spark 2.0 Spark 2.0

Spark ML-

DataFrame based-ML

Page 14: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

范例代码 - RDD: 使用上并不友善

具有元数据的 Spark DataFrame 较易使用

Page 15: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

机器学习如何在 Amazon EMR pipeline 中运作

Page 16: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

机器学习流程

导入数据

准备数据

训练模型

评估模型

使用训练

好模型做

预测

Page 17: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

机器学习流程

Historical

DataTraining Set

Model

Training/

Building

Test Model

Predictions

Test Set

Feature

ExtractionFeature &

Labels

Feature without

Labels

Train/Test Loop

Page 18: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

Spark ML 说明

Estimator

Transformer

Model

Page 19: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

Spark ML pipeline 说明

Pipeline

PipelineModel

Training

Prediction

Train

Dataframe

Test

Dataframe

Result

Dataframe

Page 20: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

Spark ML 算法说明

Regression

Collaborative

Filtering

Clustering

Decomposition

Classification• logistic regression, linear support vector machine (SVM),

native Bayes, classification tree

• generalized linear model (GLMs), regression tree

• alternating least squares (ALS)

• k-means

• singular value decomposition (SVD), principal component

analysis (PCA)

Page 21: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

系统架构

Storage

Compute

Analytic

Core/Tas

k

AWS EMR

Cluster

Core/Task

Core/Task

Master

node

Core/Task

Spark

master

YARN

Spark

worker

Spark

worker

Spark

worker

Spark

worker

EMR Spark 运算,Amazon S3 存储,Zeppelin Notebook

Page 22: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

连结 Zeppelin notebook

Zeppelin 在 Amazon EMR

主节点上作为本地网站运行(默认端口:8157)

Amazon EMR

主节点(Master Node)

在您的 Web 浏览器上运行的代理通过安全通信路由通信

Page 23: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

Spark Datasets 与 DataFrames

• 用于选择、过滤、聚合和绘制结构化数据

• 使用 Catalyst 查询规划器优化查询执行

Page 24: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

使用 DataFrames 作为机器学习数据载入方式

• Spark ML 库使用 DataFrames作为模型的输入/输出

• 使用多种分布式算法创建 ML管道

Page 25: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

Datasets 与 DataFrames

• Datasets• 分布式群集资料架构• 强化编码与效能,便于使用于 AWS Lambda

• 物件为主的操作( Object-oriented ),近似 RDD API

• DataFrames• 将数据集组织为命名列• 数据集表示为行

当前版本 Spark 2.3.1

Page 26: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

如何预测顾客流失率?

Page 27: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

预测电信业客户顾客流失率

• 使用资料:美国 Telco 的客户费率方案与用量

• 21 栏位,3333 笔数据:• Cutomer: State, Acode (Area code)

• Plan: Intlplan, Vplan

• Behavior: umvmail, tdmins|tdcalls, tdcharge, temins, tecalls, techarge, tnmins, tncalls, tncharge, timins, ticalls, ticharge

• Other: Len (account length), numcs, churn

我们使用决策树!!

Page 28: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

机器学习流程

Historical

DataTraining Set

Model

Training/

Building

Test Model

Predictions

Test Set

Feature

ExtractionFeature &

Labels

Feature without

Labels

Train/Test Loop

Tree model

Page 29: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

特徵选取与 Pipelining

使用 VectorAssembler 作为 a transformer

设定 StringIndexer transformers

Page 30: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

特徵选取与 Pipelining

Dataframe Feature & LabelTransformer

Page 31: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

训练模型(使用决策树)

创建决策树 Estimator , 设定 Label 与 Feature

Page 32: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

设定 feature transformers 与 model estimatorpipeline

设置pipeline ,传递数据以提取功能和标签,并将它传递给决策树预览器以适应模型

Page 33: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

给予参数以寻找最佳模型

决策树最大深度:精确度与过配适

Page 34: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

使用模型于训练资料

val cvModel = crossval.fit(ntrain)

Feature 11: fields Customer service calls

Feature 3: Total day minutes

具有高预测能力来确定客户的流失率

最佳决策树型:深度5,53个节点

Page 35: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

从测试数据集预测并评估

val predictions = cvModel.transform(test)

84.8%

精确度

Page 36: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

特徵选取与 Pipelining

Data

frame

Feature

& Label

Transformer

Model Prediction

Estimator Transformer

Page 37: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

接下来让我们开始实作电影预测系统吧!

Page 38: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

推荐引擎算法

• 协作筛选 CF (Collaborative Filtering)• 基于用户的 (User-based)

• 基于项目的 (Item-based)

• 基于内容的筛选 CBF (Contents Based Filtering)• 文本 (Text)

• 图像 (Image)

• 关联规则 AR (Association Rule)

• 因子分解机 FM (Factorization Machine)

Page 39: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

商业上推荐引擎

• 个性化推荐• 基于用户的 CF

• 因子分解机

• 替代推荐• 基于商品的 CF

• 基于文本的 CBF

• 基于图像的 CBF

• 补充推荐• 关联规则• 基于商品的 CF 与购买的日志

Page 40: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

协作筛选 CF - 基于用户的筛选

Page 41: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

协作筛选 CF - 基于用户的筛选

Page 42: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

扩展性问题

Page 43: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

解决方法:预先分群

Page 44: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

基于内容的筛选 CBF

CBF – Word2Vec 找文字 CBF – 深度学习找相似图片

Page 45: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

关联规则 AR (Association Rule)

Page 46: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

因子分解机 FM (Factorization Machine)

• 通过特征组合来解决大规模稀疏数据的分类问题• 矩阵分解的方法假设 user 对 item 的打分 R 由 User Embedding 和 Item

Embedding 相似性以及用户,物品的偏见决定。

Page 47: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

训练数据集

Personal Rating Movie List

UserID::MovieID::Rating::Timestamp MovieID::Title::Genres

Page 48: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

使用 Spark Mllib 构建推荐引擎

来自 MovieLens 网站的电影评级数据集

导入数据

准备数据

训练模型

评估模型

使用训练

好模型做

预测

Page 49: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

使用 Spark Mllib 构建推荐引擎

Data Prepare

• Training (60%)

• validation (20%)

• testing (20%)

Model Training

• ALS algorithm

Model Evaluating & Comparison

• (RMSE) Root Mean Squared Error

Prediction use model

• base on personal rating to learn preference & recommend

Page 50: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

Alternating least squares (ALS)

Page 51: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

准备训练数据集

Training: 3810355, Validation: 1269312, Test: 1268409

Page 52: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

用 RMSE 评估

Page 53: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

选出最佳模型

Page 54: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

比较找到最佳模型

Output

testRmse: Double = 0.8165742570260864

The best model was trained with rank = 12 and lambda = 0.1, and numIter = 20, and its RMSE

on the test set is 0.8165742570260864

RMSE: Smallest!!

Page 55: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

比较模型进行验证

OutputmeanRating: Double = 3.512362305720863

baselineRmse: Double = 1.0597828264660583

improvement: Double = 22.94890645199194

The best model improves the baseline by 22.95%.

Page 56: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

使用模型提出个人推荐

Output

Movies recommended for User #1001: Eve and the Fire Horse (2005)

2: Maradona by Kusturica (2008)

3: Power of Nightmares: The Rise of the

Politics of Fear, The (2004)

4: Shadows of Forgotten Ancestors (1964)

5: Low Life, The (1995)

6: Tunnel, The (Der Tunnel) (2001)

7: Unreasonable Man, An (2006)

8: Godfather, The (1972)

9: Pulp Fiction (1994)

10: Godfather: Part II, The (1974)

Page 57: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

选择特定“喜剧”电影推荐

load the genre information

filter the movies to

include only the ones

with “Comedy”:

Page 58: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

选择特定“喜剧”电影推荐

Output

Comedy Movies recommended for you:

1: Pulp Fiction (1994)

2: Dr. Strangelove or: How I Learned to Stop Worrying and Love the

Bomb (1964)

3: Yojimbo (1961)

4: Mafioso (1962)

5: Fargo (1996)

Page 59: 如何使用 EMR Spark ML 与 Zeppelin 搭建机器学习服务技术 · YARN Cluster Resource Management Batch MapReduce Interactive Tez In Memory Spark Applications Hive, Pig, Spark

AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营AWS 中国(北京)区域由光环新网运营AWS 中国(宁夏)区域由西云数据运营

感谢参加 AWS INNOVATE 2018 在线技术大会我们希望您在这里找到感兴趣的内容!也请帮助我们完成投票打分和反馈问卷。

欲获取关于 AWS 的更多信息和技术内容,可以通过以下方式找到我们:

微信公众号:AWSChina

新浪微博:https://www.weibo.com/amazonaws/

领英:https://www.linkedin.com/company/aws-china/

知乎:https://www.zhihu.com/org/aws-54/activities/

视频中心:http://aws.amazon.bokecc.com/

更多线上活动:https://aws.amazon.com/cn/about-aws/events/webinar/