PAI平台搭建企业级个性化推荐系统

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
交互式建模 PAI-DSW,每月250计算时 3个月
简介: PAI是阿里云推出的人工智能平台,提供一站式的机器学习解决方案。本最佳实践利用PAI平台结合阿里云RDS for MySQL版、对象存储OSS和云数据库Redis版等产品构建一个高效的离线训练+在线推理的推荐业务系统。

分享人: 敬海            解决方案架构师

傲海            阿里云机器学习PAI产品经理

视频地址:https://yqh.aliyun.com/live/detail/21784


正文:

最佳实践目前已覆盖23种常用场景,目前有170余篇最佳实践,这其中涉及100款以上阿里云产品的最佳使用场景。目前,最佳实践已成功帮助大量客户实现自助上云。本篇实践将从3个部分为大家详细介绍PAI平台搭建企业级个性化推荐系统最佳实践,希望可以让大家对其有更深入的了解,并可以将其应用到项目中,达到降本提效的目的。

本文主要内容分为以下三个方面:

l 最佳实践原理讲解

l PAI平台核心产品讲解

l 最佳实践系统搭建


一、 最佳实践原理讲解


1)Demo讲解


image.png

下面通过一个Demo来展示本最佳实践搭建完成后的效果。通过图中链接可以打开Demo展示页面,打开页面后可以会如图所示。这个推荐系统本质上是一个信息流推荐系统。这里要解决的问题是给不同的用户推荐不同的文章,实现千人千面的效果,类似于我们经常用到的今日头条、一点资讯等APP。它的工作原理大致是这样的:在推荐系统里面有很多用户和很多文章,每个用户有一个User ID,比如这个Demo系统里有两个用户,用户A和用户B。每篇文章都有一个Item ID,比如这里有几万篇的文章。推荐系统要解决的问题是根据用户的浏览记录等特征数据,给用户推荐当前可能感兴趣的文章。首先,用户登录APP之后会浏览文章,产生的浏览记录会被系统收集到后台,通过召回和排序两个步骤的计算,给用户生成推荐列表。当用户再访问这个APP的时候,就从推荐列表中拉取对应的文章推荐给用户,用户浏览后又会产生新的浏览记录,从而不断重复这个过程。通常这个周期是以天为单位,比如我们这个Demo就是在每天0点开拾,根据用户昨天的浏览记录作为输入,经过模型训练和模型推理的计算,生成当天的推荐列表,这实际是个离线的训练过程。具体演示如下:

步骤 1 打开浏览器,通过上图链接访问 Demo 系统。

步骤 2 打开后,单击用户 A 下面的生成浏览记录,系统会随机生成用户 A 的浏览记录,并将数据写到 MaxCompute 中。

image.png

步骤 3 这时候,进入 Dataworks 的数据开发页面,单击运维中心。

image.png

步骤 4 这里再次以补数据方式运行,程序会把当前数据补充到昨天中,合并计算出新的召回列表。

image.png

image.png

步骤 5 运行后,等待运行完成,预计需要 30 分钟左右。

步骤 6 返回页面,单击生成智能推荐按钮,右侧会显示实际推荐的内容。

image.png

步骤 7 对用户 B 执行相同的操作,结果如下图所示。

image.png

这里可以看出,根据不同的用户的浏览记录,推荐的内容是不同的。说明:实际生产中,会周期执行训练任务,比如根据当天收集到的用户浏览记录,在凌晨开始训练,在早八点之前训练完成,用户再访问的时候,直接从生成的结果中读取。


2)场景描述


最佳实践的场景描述如下:

l 本最佳实践讲解了如何基于阿里云产品快速搭建一个企业级的个性化推荐系统这里以搭建一个文章推荐系统为例。

l 其中用到了核心产品是阿里云推出的人工智能平台PAI,其提供了一站式的机器学习解决方案。

l 本最佳实践利用PAI平台结合阿里云RDS for MySql版,对象存储OSS和云数据库Redis版等产品构建一个高效的离线训练+在线推理的推荐业务流程。

适用的用户包括以下几个:

l 互联网行业客户,MAU在80万到1500万。

l 业务为信息流、广告推荐等经典推荐场景

l 数据已经使用了阿里云MaxCompute或者准备使用。

l 具有1到5名算法背景的工程人员。

l 原有服务基于开源算法自建体系,但是受限现有人员和成本无法进一步提升。

 

image.png


3)系统架构图


接下来介绍系统架构图,其中包括几个产品:

l 机器学习PAI是阿里云机器学习PAI平台用于机器学习、开发和测试。

l MaxCompute是阿里云大数据计算平台。

l Dataworks是数据仓库管理工具,用于开发管理MaxCompute的数据。

l 云数据库RDS MySql版是阿里云云上关系型数据库用于存储业务系统数据。

l 对象存储OSS是阿里云对象存储系统用于存储排序模型文件。

l 云数据库Redis版是云上Redis数据库用于存储模型特征数据表格存储。

l 表格存储TableStore是云上nosql数据库用于存储召回列表。

架构及组件的作用大致是这样。

image.png


4)核心产品-PAI


这里用到的核心产品就是PAI平台,下面来看下PAI平台的构成(如下图)。这里我们主要用到了三个组件:PI-EAS模型在线服务,PAI-autolearning、PAI-studio。

最前面是客户的应用,比如浏览文章的APP,PI-EAS模型在线服务将召回和排序封装成两个restful的API,提供一键部署、版本控制、蓝绿部署、弹性伸缩等功能。

再往后用到了PAI-autolearning自动学习框架、零门槛使用、迁移学习框架,这里面可以通过简单的页面配置来实现这个学习框架。

PAI-studio用来做可视化建模,提供200多种算法模型、算法组件。通过web页面拖拽的方式构建实验,它支持百亿特征样本,这些算法是核心。

再往后就是用到了机器学习框架和计算引擎,这里用的是MaxCompute的计算引擎。

 

image.png


5)业务流程


下面介绍个性化推荐的业务流程。这个信息流推荐系统当中,每个用户有一个userID,每篇文章有一个itemID,通过召回和排序两个模块的计算给用户生成推荐文章列表。推荐系统要解决的问题就是从这10万篇文章当中,筛选用户A最喜欢的十篇文章。

召回可以看作是初步筛选,比如有10万篇文章,通过协同过滤算法的计算,筛选出500篇文章,这些是不分优先级的。召回可以设置多路,比如两路,每路召回500篇,总共1000篇。

然后再通过排序模块,排序相当于精排,对于这500篇文章进行优先级的计算。比如这里通过排序算法计算后,用户第一喜欢33这篇文章,第二喜欢22这篇文章。

在简单的推荐系统中,可以只有召回模块,比如直接召回10篇文章,然后推荐给用户,开文的Demo就是这样。

在实际的推荐系统中,可能有多重排序算法,然后将所有结果汇总后再设置一定的策略,然后再推给用户,这样效果会更好。image.png

6)推荐业务架构图


下面详细看下推荐系统的方案架构。如果将推荐系统看成一个系统,它的输入是三张不断变化的表。

左侧的User、 Item、Behavior表。它的输出是每个用户的文章推荐列表。这个表可以通过两个API来实现,以上三张表分别存储了用户、文章表、浏览记录,存储在RDSMySQL版的数据库里。

在实际系统中,这些数据一般经过ETL的处理,然后导入Dateworks这里弹幕系统。在Dateworks主要进行数据的预处理、特征工程模块儿、周期性调动配置等。

后面进入到PAI的模块,主要有两个模块,排序和召回。首先PAI-studio提供了排序算法和召回算法。先看排序算法,这里会生成排序的模型,然后提交给PAI-EAS。通过PAI-EAS封装成Restful API供前端调用,以后应用再调用的时候直接调用这个Restful API更加方便。

回到召回算法,经过召回计算后生成两张表,一张是item表,一张是user表,存储在tablestore中,包含了召回向量和特征向量。下一步将tablestore中数据和PAI-autolearning打通,经过召回数据的顾虑和召回策略的设置,最终给到PAI-EAS服务,同样封装成restful ap,作为召回服务的API,这样即形成了整个业务流程。

image.png


7)方案优势


最后看下阿里云推荐方案的优势,主要包括三点:

l 阿里云原生产品组合丰富,生态完善

资源丰富,产品组合多样,云服务器+对象存储+数据库弹性易用

l 成熟的机器学习平台PAI

包括业内主流的推荐算法、推荐服务,采用多路召回,成熟易用。

一站式的机器学习体验,包含机器学习全流程支持。

支持主流的深度学习框架,支持Tensorflow、Caffe、Mxnet

l 大规模计算存储MaxCompute+Dateworks数据治理

MaxCompute支持多种计算类型,强数据安全低成本。

Dateworks提供一站式数据开发与治理平台,自带阿里数据治理最佳实践。

image.png

二、核心产品讲解


1)召回算法


召回是整个推荐流程中第一次筛选候选集的环节,需要通过召回算法锁定排序候选集。召回算法分为i2i和u2i两种。i2i指的是基于已经购买过的item,提供相似的item。u2i指的是基于用户基于与用户相似的用户的购买行为,为用户进行推荐。

首先我们看Etrec,这个算法是一个经典的协同过滤算法。

另外GraphSage算法,这个算法是基于PAI最新开源的企业级图神经网络框架GNN开发的。图神经网络算法也是目前科研领域比较前沿的算法。

另外我们还提供了ALS算法。这是一种矩阵分解算法,ALS会基于用户的行为数据产生user embedding和item embedding。利用这两个embedding向量就可以实现基本的向量召回。举个例子介绍PAI的召回算法的作用:某段视频客户基于PAI的照顾算法,提升了视频的CTR点击的3%,用户的整体的停留市场也提升了11%。另外,也挖掘更多的长尾视频,保证视频的多样性,从而也提升了升视频生产者的积极性。

image.png


2)排序算法


下面再给大家介绍一下PAI现在提供的排序算法。排序算法在PAI平台是一套名为EasyRec的排序算法库。其中包含业内比较流行的深度学习排序算法DeepFM以及DIN。

另外,也有基于Youtube论文,PAI团队自行实现的MultiTower算法。

除此之外,我们也提供了基于用户历史行为数据序列进行建模的BST算法。用户可以基于这个算法去用他的用户的历史行为序列,做一个排序模型的建模。

MMOE算法是个多目标算法,因为在推荐业务中通常存在多目标的场景,比如既需要停留时长提升,也需要CTR提升,MMOE算法能很好的满足多目标的需求。

基于以上的排序算法,PAI团队在诸多业务场景下进行了验证,比如说帮某大型APP推送场景的客户的AUC场景提升了1个点;另外也帮助某社交媒体提升了AUC6个点。第三个例子是我们帮助某直播APP提升了它整体的点击率的CTR2个点。

image.png


三、最佳实践系统搭建


下面简单演示如何搭建基础环境,包括创建 RDS,Redis,OSS 等基础组件。这里采用 CADT 来拉起整个基础环境,使用 CADT 模板创建基础环境。

步骤 1 登录 CADT 控制台。(https://bpstudio.console.aliyun.com

步骤 2 依次打开新建->官方模板库新建,找到如下模板,点击基于模板新建。

image.pngimage.png

步骤 3 创建后,进入如下页面

image.png

这里根据模板中的设置,依次修改各个产品的参数。

VPC 配置参考如下:

image.png

 

RDS 配置:

image.png

RDS 到 ECS 的连接线,需要重新设置密码。

image.png

Tablestore 配置:

image.png

OSS 配置:

image.png

Redis 实例配置:

image.png

ECS 实例配置:

image.png


另外注意:

OSS 的地址要是全局唯一的,ots 的实例名称不能以 ots 开头,并且实例名称要全局唯一。

步骤 4 设置好参数后,点击保存,填写应用名称。

image.png

步骤 5 打开应用,部署应用

image.png

步骤 6 资源验证

image.png

步骤 7 计算价格

image.png

步骤 8 部署资源,点击后,大概需要 20 分钟创建资源。

image.png

步骤 9 部署资源结束后,如下图。

image.png

关于完整的搭建演示过程,大家可以用过https://bp.aliyun.com/detail/140

这个链接来访问本篇最佳实践文档内容,里面包含最佳实践场景和完整的搭建过程。

相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
3月前
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
179 4
|
9天前
|
机器学习/深度学习 自然语言处理 Linux
Linux 中的机器学习:Whisper——自动语音识别系统
本文介绍了先进的自动语音识别系统 Whisper 在 Linux 环境中的应用。Whisper 基于深度学习和神经网络技术,支持多语言识别,具有高准确性和实时处理能力。文章详细讲解了在 Linux 中安装、配置和使用 Whisper 的步骤,以及其在语音助手、语音识别软件等领域的应用场景。
40 5
|
1月前
|
机器学习/深度学习 API 计算机视觉
基于Python_opencv人脸录入、识别系统(应用dlib机器学习库)(下)
基于Python_opencv人脸录入、识别系统(应用dlib机器学习库)(下)
24 2
|
1月前
|
机器学习/深度学习 存储 算法
基于Python_opencv人脸录入、识别系统(应用dlib机器学习库)(上)
基于Python_opencv人脸录入、识别系统(应用dlib机器学习库)(上)
30 1
|
2月前
|
机器学习/深度学习 存储 人工智能
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
使用Python作为开发语言,基于文本数据集(一个积极的xls文本格式和一个消极的xls文本格式文件),使用Word2vec对文本进行处理。通过支持向量机SVM算法训练情绪分类模型。实现对文本消极情感和文本积极情感的识别。并基于Django框架开发网页平台实现对用户的可视化操作和数据存储。
50 0
文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
|
3月前
|
机器学习/深度学习 数据采集 数据可视化
基于python 机器学习算法的二手房房价可视化和预测系统
文章介绍了一个基于Python机器学习算法的二手房房价可视化和预测系统,涵盖了爬虫数据采集、数据处理分析、机器学习预测以及Flask Web部署等模块。
108 2
基于python 机器学习算法的二手房房价可视化和预测系统
|
3月前
|
机器学习/深度学习 数据可视化 数据处理
Python vs R:机器学习项目中的实用性与生态系统比较
【8月更文第6天】Python 和 R 是数据科学和机器学习领域中最受欢迎的两种编程语言。两者都有各自的优点和适用场景,选择哪种语言取决于项目的具体需求、团队的技能水平以及个人偏好。本文将从实用性和生态系统两个方面进行比较,并提供代码示例来展示这两种语言在典型机器学习任务中的应用。
88 1
|
3月前
|
机器学习/深度学习 算法
【Deepin 20系统】机器学习分类算法模型xgboost、lightgbm、catboost安装及使用
介绍了在Deepin 20系统上使用pip命令通过清华大学镜像源安装xgboost、lightgbm和catboost三个机器学习分类算法库的过程。
48 4
|
4月前
|
机器学习/深度学习 数据采集 运维
智能化运维:利用机器学习优化系统性能
在当今快速发展的信息技术时代,传统的运维方式已难以满足日益增长的业务需求和复杂性。本文将探讨如何通过机器学习技术来提升运维效率,确保系统的高可用性和性能优化。我们将深入分析机器学习模型在预测系统负载、自动故障检测与响应以及资源分配中的应用,并讨论实施这些策略时可能遇到的挑战和解决思路。
|
4月前
|
机器学习/深度学习 数据采集 人工智能
ERP系统中的人工智能与机器学习应用:提升企业智能化管理
【7月更文挑战第29天】 ERP系统中的人工智能与机器学习应用:提升企业智能化管理
573 0