阿里的《基于pai的推荐系统》--摘抄笔记

推荐系统简介

一、什么是推荐系统

(一)常见的推荐业务场景

背景:信息过载
本质:推荐系统解决的是一个信息比对问题
要解决的问题:怎眼基于用户的信息和商品 信息去做好一个更好地匹配
常见的推荐业务场景:一是基于搜索Query的推荐,一是基于用户和商品属性的Feed流的推荐
Query推荐:基于用户的购买偏好,还有商品的属性去做的一个匹配(淘宝)
Feed流推荐:采用机器学习推荐模型,既要学习用户,也要学习商品属性(今日头条)

(二)个性化推荐业务流程

个性化推荐业务流程
在这里插入图片描述
推荐系统可以理解为:推荐系统= 推荐算法+系统工程
很多资料都是聚焦在这个算法怎么做,宝库很多paper都是在说新的推荐算法。但是,当你真正动手搭建这套业务系统,特别是云上,你就饿会发现其实是一个系统化的工程。即使知道算法,也会面临很多问题。比如:性能、数据存储等。

企业级推荐系统架构

(一)企业级推荐系统要求

四个基本要求:
要求一、目标客户有百万级MAU的一个推荐业务需求的应用,机器学习领域 数据量越大 模型越精准。 数据拆分可分为三种:用户行为数据、商品的行为数据、用户商品之间的交互数据。
要求二、有算法插件化部署的能力。
要求三、服务的性能问题(每次请求毫秒级反馈)
要求四、支持资源的弹性拓展
在这里插入图片描述

(二)推荐整体架构

在这里插入图片描述

(三)基于PAI的推荐技术架构

在这里插入图片描述

推荐系统召回算法

一、召回模块在推荐系统中的位置

召回模块主要做的一件事就是初筛
在这里插入图片描述

二、推荐场景–召回算法介绍

右侧的是协同过滤算法,左侧的可以叫做向量召回相关的算法。
协同过滤算法类似于基于统计的算法。
向量召回更偏机器学习的一些深层的模型。
ALS 是一个经典的矩阵分解方法,可以基于行为数据表,产出user embedding 表和 item embedding 表。
FM 也是类似的一个逻辑,通过内积方式增强特征表现力
GraphSage 算法。它其实是一种图神经网络的召回算法
在这里插入图片描述

三、什么是协同过滤

举例:我们有用户 A、B、C,他们的偏好如下图所示。你会发现 A 和 C 有一些相似的口味。A 和 C 都喜欢 Rice、Milk。除此之外,A 还喜欢 Lamb。就是说 A 和 C 有相似的口味,并且 A 还喜欢某个 C 没有尝试过的东西。我们就假设 C 也喜欢它,可以把它作为 C 的一个召回结果。这就是一个基于数据统计的标准的协同过滤的方式。
在这里插入图片描述

四、向量召回架构说明

在这里插入图片描述

推荐系统排序算法

一、排序模块在推荐系统中的位置

我们通过召回模块,进行一个初筛,缩小排序模型的一个受众的范围
在这里插入图片描述

二、排序算法介绍

逻辑回归是应用非常广泛的一种算法。它是目前业内最经典的线性二分类算法,特点是容易上手,对于计算力要求低,模型可解释性好
FM 算法近
一两年来,在很多客户的场景中都得到大规模的应用,效果也不错。它是通过内积的方式增强特征的表现力。
在 LR 基础上通过 GBDT 和特征编码增强数据特征的可解释性。
DeepFM 算法也是现在被应用得非常多的一个深度学习的算法,它把深度学习和经典的机器学习算法做一个结合。
在这里插入图片描述

三、离线排序模型训练架构

训练过程分为离线训练和在线训练,首先讲离线排序
在这里插入图片描述

四、在线排序模型训练架构

在线训练 具有及时感知
在线排序模型训练的一个框架特点:
第一,它是基于 Flink 框架实现的流式模型训练能力。
第二,它是基于实时生成的模型去实时评估模型效果。
第三,它具备线上模型回滚和版本管理的能力。
在这里插入图片描述

推荐系统线上服务编排

一、在线推理服务 - 架构说明

召回和排序这样的一个流程我们的方案是,基于高扩展弹性业务场景,采用阿里云 ACK 构建整体推理架构。
调用流程分为 3 步。
第一步,多路召回:物品协同过滤,语义召回,热门及运营策略召回取回上千条候选集。
第二步,曝光去重:基于该用户阅读历史,去掉已经曝光内容,去掉基于运营策略不能推荐的内容。
第三步,排序:推理模块调用排序过程时根据用户 ID 及物料 ID,获取用户特征及物料特征后,分批调用 PAI-EAS 服务返回排序结果。
在这里插入图片描述

二、线上多目标问题

   一种是说多模型解决多目标问题。假设就是点击和时长这两个目标,你可以有一套推荐召回模块专门针对点击。另一块专门针对使用时长去做训练。这两个结果你把它融合一下,得到最终的推荐结果。但代价就会比较大,你要同时维护两个系统,而且二者的比例也不好去量化。
   方案二是合并多目标成单模型,是目前采用得比较多的一个方案,也是效果相对来讲会比较好的一个方案。你把目标一和目标二这两个目标先融合成一个目标。比如说你把是否点击和观看时长按照一个比例去压缩下,把它都放到 0~1 之间。不点击就 0,点击就是 1。然后你把观看时长去做一个归一化,把整个时间都缩小到 0~1 的区间去。这样,你整个的区间就变成了 0~2,变成一个单目标的数值。这样的话你就可以针对这一个目标去训练你的召回、排序模型,从而拿到最终的结果。这样做的好处是你只需要维护一套推荐业务的建模流程,会比较方便维护,最后的效果也通常是方案二好一些

在这里插入图片描述

基于 PAI 10 分钟搭建一个简单推荐系统

一、个性化推荐业务流程

如何基于 PAI 去搭建一套非常简单的推荐系统:
这套推荐系统有两个特点。
第一是搭建非常方便,因为我们做了很多工具。
第二,这套系统是可扩展的。

推荐系统可以分为两个主要的模块。
第一个是召回模块,它做的事情就是初筛。
第二个是排序模块,按用户的偏好程度对 500 个新闻排序,就可以生成最终的推荐顺序。

在一个非常简单的推荐系统中,只有召回模块也是可以做推荐的。(上面有介绍过)

二、协同过滤

比如说召回领域有很多矩阵分解算法、协同过滤算法等等。(上面有介绍过)

三、推荐方案架构

完 整 的 推 荐 架 构 如 下 图 所 示, 包 含 如 下 部 分:Dataworks,PAI-Studio,TableStore,PAI-AutoLearning,PAI-EAS。
在这里插入图片描述

四、实际操作

首先我们在 PAI-Studio 里基于你的原始数据生成你的协同过滤后的结果数据,
这是两张表。
接着我们在 TableStore,即表格存储里去把这两张表按照要求的格式建立出来。
然后利用 Dataworks 去把这个数据从 PAI-Studio 里灌到表格存储里。
接着在 AutoLearning 里去把 TableStore 的两个数据配置出来,配出来呈一个
策略。
然后最后把这个策略变成一个 PAI-EAS 的服务,你可以在这看一个调用方式。
最终用户拿到的结果就是这条服务。
如果想更新迭代里面的整个的数据,你就可以去改最原始的这张表。因为整套服务都可以做成一个自动化的流程,都可以利用 Dataworks 的数据调度系统去做成一个自动化的系统。所以你只要每天去更新这里的原始的数据就可以了,剩下来的业务都可以自动化。

参考资料

140 页推荐业务动手实践文档:
https://www.aliyun.com/acts/best-practice/preview?&id=378791
机器学习 PAI:
https://www.aliyun.com/product/bigdata/product/learn

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KryHan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值