推荐系统排序算法及架构说明|学习笔记

简介: 快速学习推荐系统排序算法及架构说明

开发者学堂课程【跟阿里云技术专家学习智能推荐系统 推荐系统排序算法及架构说明】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/662/detail/11076


推荐系统排序算法及架构说明


内容介绍:

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

二、排序算法的介绍

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

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

五、召回算法的输入输出结果

 

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

推荐系统的排序算法在整个推荐系统中的位置就是一个用户呢进入到平台后有很多商品,通过召回模块把用户可能喜欢的商品先粗筛出来,缩小排序模型的范围,接下来要解决的问题是要在粗筛出的500个商品中选出10个在屏幕中展示出来,此时便需要排序的算法模型,排序算法会针对这500个商品和用户的特点与特征进行排序,最终找出排名第一、排名第二一直到排名第十的商品,所以排序模块主要做的是细排。

 image.png


二、排序算法的介绍

排序模型也是非常多的,上述算法并不是全部的排序算法,随着深度学习的发展,整个的排序算法已经从浅层的算法逐渐的往深度学习迁移,但是目前比较经典的排序算法还是以下罗列的这四种。

1、LR

目前业内最经典的线性二分类算法,特点是容易上手,对于计算力要求低,模型可解释性好。

2、GBDT+LR

在 LR 基础上通过 GBDT 和特征编码增强数据特征的可解释性。是目前行业内应用最

3、FM

通过内积方式增强特征表现力,PAI 的 FM 算法基于 Flink 实现,可以做到流批一体化训练

4、DeepFM

将深度学习和经典机器学习结合的一种分类方法,是最近开始流行的一种算法

LR 是目前应用非常广泛的一种办法,但是他的效果并不是特别突出,现在有很多互联网公司会用 GBDT+LR 的方案,即 Facebook 在2014年 paper 里提到的基于视频推荐的组合,它的好处就是 GBDT 可以做很多特征编码,然后增强数据特征的可解释型,可以完成一部分特征工程,然后再去结合 LR 线性模型,达到分类的效果。

补充一点:在排序过程中可以看成是一个分类问题,就是把一个视频或者商品推荐的用户,可以做成二分类的形式,所以这些算法本质上是二分类的算法。

FM 算法近些年特别是这两年在很多的客户场景中得到极大的应用,效果也不错,他也是通过内积的方式增强特征表现,可以发现 GBDT+LR 算法的本质上对于LR算法的提升,就是在计算的过程中帮助用户解决了一部分特征工程的工作,增强了数据表现力。DeepFM 也是现在被广泛应用的一个深度学习的算法,它可以与深度学习的经典算法相结合。

但是如果是一开始去尝试搭建一套推荐系统,建议大家先从简单的算法去尝试,比如说 LR,因为这种算法比较好解释,也比较好调节效果,后续的话会建议大家逐渐使用 GBDT+LR 或者 FM,逐渐向复杂的模型迁移。这些算法已经内置到 PAI 平台,可以轻松应用,所以在平台上不用考虑这种问题。

 

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

1、特点:

l 样本生成流程,整体流程基于 DW/Maxcompute 完成。

l PAI 完成 PS-SMART/DeepFM 等离线训练流程,生成模型文件到 OSS,定期更新到 PAT-EAS 服务。排序属于计算密集型作业,每天训练一次(可调整评率,比如6小时训练一次),基于最近一段时间的行为数据。

l 样本基于用户行为事件构建,根据事件类型点击,评论,分享,加入用户及物料表特征 Join 生成大宽表,作为训练及测试数据(过去 N 天训练,过去 M 天测试).

2、流程

排序模型的训练产生:训练过程分为离线训练和在线训练,这两者的区别是离线训练用的是简易的数据,比如说今天使用的模型是通过今天以前的数据训练出来的,它的好处就是可以把历史的大量数据全集合到云上的数仓体系,然后基于整体全样本的特征和数据进行离线的训练。

这样的话,在做一个验证,生成的模型呢,然后进行验证,验证成功后第二天可以推荐给用户去用,可以保证一定的安全性。目前几乎所有的互联网客户都是采用的是离线排序模型的训练方法,这是因为如果进行实时训练会有比较大的价格挑战。


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

1、特点:

l 基于 Flink 框架实现流式模型训练能力

l 基于事实生成的模型去实时评估模型效果

l 具备线上模型回滚和版本管控功能

2、流程

在线模拟训练相比离线训练的好处在于就是离线训练使用的是7.1或者7.2的数据去进行做的,但没有对线上实时产生的一些行为数据进行利用,相对来讲对于数据的时效性利用比较差,比如某平台只允许14岁以下的少年进行活动,平台上充斥着大量这个年龄段的客户,而这个时候的模型还是按照t-1去完成的,却无法对于整个线上业务做一个及时的感知。

而通过在线训练就可以比较好的解决这种问题,在线模型训练的流程图是这样的:

image.png

在线模拟训练意味着可以使用实时上传数据,把用户基于平台产生的行为数据经过 Flink 做实时特征加工,然后用实时机器学习模型训练框架去完成训练,图示黄色部分是离线的,蓝色部分是在线可以看到在线训练模型其实也离不开离线离线模型的作用是它生成一个基础模型,也就说在线训练数据虽然是实时进来的,模型并不是从零开始,而是从离线训练好的模型进行优化,可以看到离线模型会输入到在线的这个FTL的训练的过程中,这个时候通过实时的数据去实时的更新模型,另外还有实时的验证数据,可以把 Kafka 预留的数据时间窗口再进行前移完成验证,并得实时线上动态模型指标

整套系统的24小时在不间断地运行,而评估呢也是一直进行,当评估的指标达到一定水平,达到一定的上限,就会自动把模型导出并上线;如果实时更新模型的指标一直没有达到要求,就会一直训练该模型,但是不上线

相关文章
|
2月前
|
前端开发 搜索推荐 算法
中草药管理与推荐系统Python+Django网页界面+推荐算法+计算机课设系统+网站开发
中草药管理与推荐系统。本系统使用Python作为主要开发语言,前端使用HTML,CSS,BootStrap等技术和框架搭建前端界面,后端使用Django框架处理应用请求,使用Ajax等技术实现前后端的数据通信。实现了一个综合性的中草药管理与推荐平台。具体功能如下: - 系统分为普通用户和管理员两个角色 - 普通用户可以登录,注册、查看物品信息、收藏物品、发布评论、编辑个人信息、柱状图饼状图可视化物品信息、并依据用户注册时选择的标签进行推荐 和 根据用户对物品的评分 使用协同过滤推荐算法进行推荐 - 管理员可以在后台对用户和物品信息进行管理编辑
79 12
中草药管理与推荐系统Python+Django网页界面+推荐算法+计算机课设系统+网站开发
|
3月前
|
机器学习/深度学习 算法 机器人
【博士每天一篇文献-算法】改进的PNN架构Lifelong learning with dynamically expandable networks
本文介绍了一种名为Dynamically Expandable Network(DEN)的深度神经网络架构,它能够在学习新任务的同时保持对旧任务的记忆,并通过动态扩展网络容量和选择性重训练机制,有效防止语义漂移,实现终身学习。
57 9
|
4月前
|
搜索推荐 人工智能
人工智能LLM问题之推荐系统的架构流程图如何解决
人工智能LLM问题之推荐系统的架构流程图如何解决
人工智能LLM问题之推荐系统的架构流程图如何解决
|
3月前
|
机器学习/深度学习 存储 人工智能
【博士每天一篇文献-算法】改进的PNN架构Progressive learning A deep learning framework for continual learning
本文提出了一种名为“Progressive learning”的深度学习框架,通过结合课程选择、渐进式模型容量增长和剪枝机制来解决持续学习问题,有效避免了灾难性遗忘并提高了学习效率。
57 4
|
3月前
|
消息中间件 搜索推荐 UED
Elasticsearch 作为推荐系统后端的技术架构设计
【8月更文第28天】在现代互联网应用中,推荐系统已经成为提高用户体验和增加用户粘性的重要手段之一。Elasticsearch 作为一个高性能的搜索和分析引擎,不仅能够提供快速的全文检索能力,还可以通过其强大的数据处理和聚合功能来支持推荐系统的实现。本文将探讨如何利用 Elasticsearch 构建一个高效且可扩展的推荐系统后端架构,并提供一些具体的代码示例。
239 0
|
4月前
|
搜索推荐 算法 大数据
基于内容的推荐系统算法详解
【7月更文挑战第14天】基于内容的推荐系统算法作为推荐系统发展的初期阶段的重要技术之一,具有其独特的优势和广泛的应用场景。然而,随着大数据和人工智能技术的发展,传统的基于内容的推荐系统已经难以满足日益复杂和多样化的推荐需求。因此,未来的推荐系统研究将更加注重多种推荐算法的融合与创新,以提供更加精准、个性化的推荐服务。
|
4月前
|
存储 算法 Java
高并发架构设计三大利器:缓存、限流和降级问题之滑动日志算法问题如何解决
高并发架构设计三大利器:缓存、限流和降级问题之滑动日志算法问题如何解决
|
4月前
|
算法 Java 调度
高并发架构设计三大利器:缓存、限流和降级问题之使用Java代码实现令牌桶算法问题如何解决
高并发架构设计三大利器:缓存、限流和降级问题之使用Java代码实现令牌桶算法问题如何解决
|
4月前
|
缓存 算法 Java
高并发架构设计三大利器:缓存、限流和降级问题之使用代码实现漏桶算法问题如何解决
高并发架构设计三大利器:缓存、限流和降级问题之使用代码实现漏桶算法问题如何解决
|
4月前
|
算法 UED 缓存
高并发架构设计三大利器:缓存、限流和降级问题之滑动窗口算法适用于哪些场景
高并发架构设计三大利器:缓存、限流和降级问题之滑动窗口算法适用于哪些场景

热门文章

最新文章

下一篇
无影云桌面