基于Flink的机器学习算法平台 Alink(二)推荐算法介绍

简介: Alink在“周二开源日”的第二节分享,主要介绍了推荐算法的框架和设计细节。内容简要:一、Alink介绍整体介绍和SparkML对比算法调用方式二、Alink 推荐 DemoAlink推荐相关算法整体介绍影片推荐DemoCTR点击率预估DemoWeb Demo

一、Alink介绍
(一)整体介绍
什么是Alink?

 Alink是基于Flink的机器学习算法平台
1) 由阿里巴巴计算平台事业部PAI团队研发;
2) 同时支持批式/流式算法,提供丰富的算法库;
3) 帮助数据分析和应用开发人员能够从数据处理、特征工程、模型训练、预测,端到端地完成整个流程。
 相关名称的公共部分
Alibaba,Algorithm,AI,Flink,Blink

(二)和SparkML对比
SparkML是目前市面上使用较为广泛的机器学习的库,下面从性能和功能两个方面对Alink与SparkML进行比较。
1、性能对比
image.png
Alink与SparkML性能对比图

上图为开源Alink与SparkML算法运行时间对比,纵坐标为各类算法,横坐标为运行同一算法时,SparkML相较开源Alink所花费的时间倍数。由上图可看出,在大多数情况下,开源Alink比SparkML效率更高。

2.功能对比
image.png
Alink与SparkML功能对比图

由上图可知,Alink拥有SparkML支持的大多数功能。在此基础上,Alink还支持流式算法、批流混跑、在线学习与中文分词等SparkML不具备的功能,Alink功能种类更丰富与齐全。

(三)算法调用方式
1.Link
Link是批式/流式算法通用的串联方式。
下方为三个Alink搭建的实验:批示实验,流式实验,批流混合实验。
image.png
批式实验(Batch Experiment)

image.png
流式实验(Stream Experiment)

image.png
流批混合实验(Batch-Stream Mixed Experiment)

2. Python 脚本调用Alink算法
除了用Web的方式,还可以用写脚本的方式调用Alink,用脚本完成机器学习的训练与预测,Demo如下:
image.png

二、Alink 推荐 Demo
(一)基于 Alink 推荐算法

image.png
线上服务流程图

在线上服务的时候,首先需要召回有用数据,例如真实用户关心的商品,或者相近的商品数据,然后针对商品做特征拼接,接着进行特征编码,最后通过排序算法得出结果,将排序比较靠前的推荐给用户。
针对线上服务流程,Alink能提供什么帮助?如下图所示:
image.png
针对线上服务,在离线模型中,Alink对召回、特征拼接、特征编码、排序等流程对应提供了多种算法。在线模型中,Alink支持在线学习,实时训练模型,不断将模型部署到线上,实现模型更高更快时效性。

(二)影片推荐Demo
接下来,以影片推荐Demo为例介绍一下算法的使用。
1.数据集介绍
我们在Moivelens网站上采集了不同时间段的电影观众的评分,做出了以下数据集:
image.png
如上图所示,这个数据集包括了User的ID,Movie的ID,还有观众的打分。下面针对这个数据集,我们来看Alink算法是如何实现对电影的推荐。

2.ALS训练模型(ALS model training)
image.png
ALS训练模型脚本Demo

上图为ALS训练模型的脚本Demo。得到一个数据集后,它会Link ALS的训练算法,在算法里面设置User、Item还有Rating列名,然后设置一些参数,包括Lambda,Rank,NumIter。
下面第二个Link是将它写到对应的目录中,这个目录可以是本地的环境目录,也可以是网络文件的目录,Alink都是支持的。然后加上执行代码后,脚本就可以直接执行。
训练完数据集Train_set对应的模型后,最后写到对应的目录中,以上就是ALS训练模型的一个简单脚本。

3. 使用ALS模型求TOPK的电影(topK movie with ALS model)
下面解析ALS模型如何实现对电影进行求TOPK。
image.png
使用ALS模型求TOPK的电影

通过上图脚本可以看到,首先通过创建一个Pipeline Model,然后ALS模型通过Source组件将它读取,设置到Pipeline对象中。接着设置User的列,设置Top的数量(如Top10),然后设置推荐的列名,最后通过Transform就可以得到推荐电影数据,推荐数据如下:
image.png
例如对43号电影,这边推荐了与它最相近的10部电影与相应的打分。

4. 使用ALS模型对电影打分(Rating movie with ALS model)
image.png
ALS实现电影打分Demo

如何得到每位观影的User对所看电影的打分数据。通过上图可以看到,这里使用的方法与之前类似,首先建一个Pipeline Model,然后设置打分组件,接着设置User、Item、Recomm的列,最后设置ALS模型,完成模型录入。
第二个组件KeyToValue,它将电影的ID对应到电影的名字。
通过上述两个组件,可以得到用户和用户对电影打分的结果。例如下图,是用户1对各个电影的打分情况Rating以及系统推荐的分数Recomm。
image.png
打分之后希望看到打分效果,于是接了评估组件EvalRegressionBatchOp,如下图所示:
image.png
EvalRegressionBatchOp组件相当于将打分结果跟真实结果做一个回归对比,下方是它的一个MSE和RNSE的结果,可以看到用ALS对数据进行打分的话,效果十分不错。

5.基于物品的协同过滤——模型训练
接下来介绍基于物品的协同过滤算法训练模型,调用方式与ALS类似,Demo如下:
image.png
首先在脚本中设置对应的模型与参数,然后linkFrom对应的打分数据,接着将它放到Pipeline Model,最终执行就完成了。这样数据对应的模型渲染出来,并将它存到对应的pipeline_model.ak中。

6. 基于物品的协同过滤——推荐预测
如果有这个模型,如何用它来做推荐预测?
image.png
如上图左边所示,首先用Pipeline_lodel可以Load函数,然后给出对应的文件路径。这样的话就将模型Load到内存中,然后Transform就可以将对应的数据集进行推理预测。右边为输出结果。

7.基于物品的协同过滤——Java/Python LocalPredictor预测
训练模型最终要部署到线上,这边提供了LocalPredictor机制,它支持Java与Python接口。在Java或Python环境下,直接通过LocalPredictor就加载模型,然后模型可以通过Map函数完成推理的操作。有了Python和Java这两个接口,我们可以在相应的环境下部署想要的一些服务。
image.png
image.png

(三)Click-Through Rate Prediction DEMO
在网络广告中,点击率(CTR)是衡量广告效果的一个非常重要的指标。因此,点击预测系统在赞助搜索和实时竞价中具有重要的应用价值。该Demo 使用 FTRL方法实时训练分类模型,并使用模型进行实时预测评估,展现了在线学习的能力。
image.png
上图为一个经典的数据集,有一些是字符串,有些特征是对应的数值性。

如何针对这个数据集去做在线学习呢?
image.png
在线学习流程图
该流程存在四个问题:
1)如何进行特征建模?
2)如何训练初始模型?
3)如何进行在线训练和预测?
4)如何对结果进行评估?

1.如何进行特征建模?
image.png
上图为脚本Demo,首先对原始数据做标准化操作,然后对这数据链做了一标准化操作,之后通过FeatureHash将它映射到数组中,生成一个Pipeline,Fit将整个数据相进行特征工程训练,训练出模型。

2.如何训练初始模型?
image.png
FTRL本质上是Online的逻辑回归,初始模型调了逻辑回归组件,通过设置参数,以LinkFrom方式对数据训练,最终完成初始模型的训练。

3.如何进行在线训练和预测?
在线训练和预测主要分为三步,第一是准备流数据,第二是FTRL算法实时更新模型,第三是对实时数据进行预测,对应Demo如下:
image.png
准备流数据
image.png
FTRL算法实时更新模型
image.png
对实时数据进行预测

4.如何对结果进行评估?
image.png
如上图所示,得到模型之后,希望对模型进行评估。
通过 EvalBinaryClassStreamOp组件,就可以完成对模型的评估操作。上图下方为得到的评估指标,可以根据相应的信息去考虑这个模型是否要部署到线上。

(四)Web Demo
上方为脚本的方式,这边用Web的方式也可以实现这样的操作,操作流程图如下:
image.png
Alink支持大屏显示,实时结果写一个数据库中,大屏会实时读取数据库的数据进行展示,如下图所示:image.png
图上方为评估结果,下方为AUC曲线和准确率曲线。

我们也可以直接对模型进行评估,而不是预测,如下图所示:
image.png
image.png
当FTRL训练完模型,会有一个实时的评估组件,组件对模型进行评估。这里要注意的是,两个特征工程调用的是同一个特征模型。
image.png
FTRL模型过滤参数配置

(分享人:赵伟波)

第一期分享内容《基于Flink的机器学习平台Alink》

云原生场景中的AI调度

欢迎加入机器学习PAI钉钉群交流!
PAI钉钉群二维码.png

相关实践学习
基于Hologres+Flink搭建GitHub实时数据大屏
通过使用Flink、Hologres构建实时数仓,并通过Hologres对接BI分析工具(以DataV为例),实现海量数据实时分析.
实时计算 Flink 实战课程
如何使用实时计算 Flink 搞定数据处理难题?实时计算 Flink 极客训练营产品、技术专家齐上阵,从开源 Flink功能介绍到实时计算 Flink 优势详解,现场实操,5天即可上手! 欢迎开通实时计算 Flink 版: https://cn.aliyun.com/product/bigdata/sc Flink Forward Asia 介绍: Flink Forward 是由 Apache 官方授权,Apache Flink Community China 支持的会议,通过参会不仅可以了解到 Flink 社区的最新动态和发展计划,还可以了解到国内外一线大厂围绕 Flink 生态的生产实践经验,是 Flink 开发者和使用者不可错过的盛会。 去年经过品牌升级后的 Flink Forward Asia 吸引了超过2000人线下参与,一举成为国内最大的 Apache 顶级项目会议。结合2020年的特殊情况,Flink Forward Asia 2020 将在12月26日以线上峰会的形式与大家见面。
相关文章
|
6月前
|
存储 消息中间件 人工智能
Lazada 如何用实时计算 Flink + Hologres 构建实时商品选品平台
本文整理自 Lazada Group EVP 及供应链技术负责人陈立群在 Flink Forward Asia 2025 新加坡实时分析专场的分享。作为东南亚领先的电商平台,Lazada 面临在六国管理数十亿商品 SKU 的挑战。为实现毫秒级数据驱动决策,Lazada 基于阿里云实时计算 Flink 和 Hologres 打造端到端实时商品选品平台,支撑日常运营与大促期间分钟级响应。本文深入解析该平台如何通过流式处理与实时分析技术重构电商数据架构,实现从“事后分析”到“事中调控”的跃迁。
550 55
Lazada 如何用实时计算 Flink + Hologres 构建实时商品选品平台
|
9月前
|
消息中间件 运维 Kafka
直播预告|Kafka+Flink双引擎实战:手把手带你搭建分布式实时分析平台!
在数字化转型中,企业亟需从海量数据中快速提取价值并转化为业务增长动力。5月15日19:00-21:00,阿里云三位技术专家将讲解Kafka与Flink的强强联合方案,帮助企业零门槛构建分布式实时分析平台。此组合广泛应用于实时风控、用户行为追踪等场景,具备高吞吐、弹性扩缩容及亚秒级响应优势。直播适合初学者、开发者和数据工程师,参与还有机会领取定制好礼!扫描海报二维码或点击链接预约直播:[https://developer.aliyun.com/live/255088](https://developer.aliyun.com/live/255088)
635 35
直播预告|Kafka+Flink双引擎实战:手把手带你搭建分布式实时分析平台!
|
4月前
|
存储 消息中间件 人工智能
云栖实录|实时计算 Flink 全新升级 - 全栈流处理平台助力实时智能
本文根据 2025 云栖大会演讲整理而成,演讲信息如下 演讲人:黄鹏程 阿里云智能集团计算平台事业部实时计算Flink版产品负责人
360 1
云栖实录|实时计算 Flink 全新升级 - 全栈流处理平台助力实时智能
|
9月前
|
消息中间件 运维 Kafka
直播预告|Kafka+Flink 双引擎实战:手把手带你搭建分布式实时分析平台!
直播预告|Kafka+Flink 双引擎实战:手把手带你搭建分布式实时分析平台!
284 11
|
4月前
|
机器学习/深度学习 数据采集 人工智能
【机器学习算法篇】K-近邻算法
K近邻(KNN)是一种基于“物以类聚”思想的监督学习算法,通过计算样本间距离,选取最近K个邻居投票决定类别。支持多种距离度量,如欧式、曼哈顿、余弦相似度等,适用于分类与回归任务。结合Scikit-learn可高效实现,需合理选择K值并进行数据预处理,常用于鸢尾花分类等经典案例。(238字)
|
9月前
|
机器学习/深度学习 数据采集 人工智能
20分钟掌握机器学习算法指南
在短短20分钟内,从零开始理解主流机器学习算法的工作原理,掌握算法选择策略,并建立对神经网络的直观认识。本文用通俗易懂的语言和生动的比喻,帮助你告别算法选择的困惑,轻松踏入AI的大门。
603 8
|
10月前
|
机器学习/深度学习 存储 Kubernetes
【重磅发布】AllData数据中台核心功能:机器学习算法平台
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
AI训练师入行指南(三):机器学习算法和模型架构选择
从淘金到雕琢,将原始数据炼成智能珠宝!本文带您走进数字珠宝工坊,用算法工具打磨数据金砂。从基础的经典算法到精密的深度学习模型,结合电商、医疗、金融等场景实战,手把手教您选择合适工具,打造价值连城的智能应用。掌握AutoML改装套件与模型蒸馏术,让复杂问题迎刃而解。握紧算法刻刀,为数字世界雕刻文明!
402 6
|
11月前
|
SQL 消息中间件 Serverless
​Flink+Paimon+Hologres,面向未来的一体化实时湖仓平台架构设计
​Flink+Paimon+Hologres,面向未来的一体化实时湖仓平台架构设计
361 4

热门文章

最新文章