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

本文涉及的产品
模型训练 PAI-DLC,100CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
简介: 阿里巴巴技术专家傲海为大家带来推荐系统排序算法及架构说明的介绍。内容包括排序模块在推荐系统中的位置,排序算法的介绍,离线排序模型的训练架构,以及在线排序模型的训练架构。

课程地址:https://developer.aliyun.com/course/2052

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

在如何构建企业级推荐系统系列课程的第一课中,我们介绍了如何去设计整个企业级的推荐系统架构。在第二课中,我们介绍了怎么去理解召回算法以及召回算法的一些意义。在本节课中,我们分享一下推荐系统的排序算法,以及它的一些架构特点。首先,我们再回顾一下这张图,确定一下排序算法在推荐系统中的一个位置。一个用户进入到平台,会发现有很多商品,得把用户可能喜欢的商品先挑出来。我们通过召回模块,进行一个初筛,缩小排序模型的一个受众的范围。
召回模块从潜在的超大规模的item中筛选用户可能喜欢的较小比例的item。比如说平台上有10万个item,用户进来之后筛选出500个他可能会喜欢的。接下来通过排序模块根据他的喜好程度对item进行排序。从这500个item里怎么挑出用户最喜欢的东西,怎么挑出用户第二喜欢的东西,这时候需要一个排序的算法模型。它会针对这500个商品和用户的一些特点,即用户特征进行一个排序。
image.png

二、排序算法介绍

我们今天介绍一下排序算法究竟有哪些种类,排序的模型该怎么训练,它的系统架构是怎么样的。排序模型非常多,随着深度学习的发展,整个的排序算法已经从浅层的算法逐渐往深度学习迁移。目前比较经典的排序算法还是我列的这4种,如下图所示。首先,逻辑回归是应用非常广泛的一种算法。它是目前业内最经典的线性二分类算法,特点是容易上手,对于计算力要求低,模型可解释性好。第二,FM算法近一两年来,在很多客户的场景中都得到大规模的应用,效果也不错。它是通过内积的方式增强特征的表现力。第三,在LR基础上通过GBDT和特征编码增强数据特征的可解释性。第四,DeepFM算法也是现在被应用得非常多的一个深度学习的算法,它把深度学习和经典的机器学习算法做一个结合。如果大家刚开始尝试搭建一套推荐系统,建议先从简单的算法去尝试,后续再逐渐的往更复杂的模型迁移。当然,这些算法都已经内置到了PAI平台,已经可以插件化的应用。
image.png

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

接下来讲一下排序模型该怎么训练产生,训练过程分为离线训练和在线训练,首先讲离线排序。
离线训练用的是T-1的数据,也就是说,今天业务上用的模型是通过今天以前的数据训练出来的。好处是可以把历史的大量数据几乎集合到一个数据仓库里,然后基于整体的全样本的特征和数据进行离线的训练,并且再做一个离线的验证。这样的话,生成的模型已经离线验证过了是没问题的。第二天直接把它推到线上去用,可以保证一定的安全性和效果。这是一个离线的训练模型的架构。目前几乎所有的客户都采用离线排序模型的训练方案。如果你想做实时化的训练,会有比较大的架构挑战。
image.png

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

我们今天重点放在在线模型训练这块。相比于离线训练,在线训练提供什么好处。离线训练毕竟使用的是T-1或者T-2的数据去做的,没有对线上实时产生的行为数据进行利用,对于数据的时效性利用相对较差。比如说,有这样的一个场景,今天我的整个平台只对14岁以下的少女做某个运营活动,而平台上充斥了大量的年龄段的客户,整个平台的交互行为都变了,这个时候你的模型还是T-1去做的,将无法对线上业务做一个及时的感知。这个时候,通过在线训练就能比较好的解决这个问题。在线模型训练的流程如下图所示。在线模型训练意味着我可以用实时线上传输化的数据,然后用我们的实时机器学习模型训练框架去做训练。在线训练虽然数据是实时进来的,但你的模型并不是从0开始的。而是说我从离线先训练好这个模型,我站在离线模型的巨人的肩膀上,再往上去优化。这就是在线排序模型训练的一个框架。它有3个特点。第一,它是基于Flink框架实现的流式模型训练能力。第二,它是基于实时生成的模型去实时评估模型效果。第三,它具备线上模型回滚和版本管理的能力。你要达到这三个标准,才可以构建一个完整的在线模型训练的架构。
image.png

五、参考资料

最后,介绍一下我们给大家准备的一些资料。这第一个link它对应的是PAI团队结合自身过去几年在推荐领域的一些探索,总结了140页的推荐业务的动手实践文档。没有机器学习背景的人基于我们这些文档,也可以在一周之内搭建一套企业级的推荐系统,大家如果感兴趣可以去用一下。另外这一个是PAI的产品地址。
image.png

相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
4天前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
26 3
|
14天前
|
存储 算法 安全
分布式系统架构1:共识算法Paxos
本文介绍了分布式系统中实现数据一致性的重要算法——Paxos及其改进版Multi Paxos。Paxos算法由Leslie Lamport提出,旨在解决分布式环境下的共识问题,通过提案节点、决策节点和记录节点的协作,确保数据在多台机器间的一致性和可用性。Multi Paxos通过引入主节点选举机制,优化了基本Paxos的效率,减少了网络通信次数,提高了系统的性能和可靠性。文中还简要讨论了数据复制的安全性和一致性保障措施。
32 1
|
3月前
|
前端开发 搜索推荐 算法
中草药管理与推荐系统Python+Django网页界面+推荐算法+计算机课设系统+网站开发
中草药管理与推荐系统。本系统使用Python作为主要开发语言,前端使用HTML,CSS,BootStrap等技术和框架搭建前端界面,后端使用Django框架处理应用请求,使用Ajax等技术实现前后端的数据通信。实现了一个综合性的中草药管理与推荐平台。具体功能如下: - 系统分为普通用户和管理员两个角色 - 普通用户可以登录,注册、查看物品信息、收藏物品、发布评论、编辑个人信息、柱状图饼状图可视化物品信息、并依据用户注册时选择的标签进行推荐 和 根据用户对物品的评分 使用协同过滤推荐算法进行推荐 - 管理员可以在后台对用户和物品信息进行管理编辑
94 12
中草药管理与推荐系统Python+Django网页界面+推荐算法+计算机课设系统+网站开发
|
4月前
|
机器学习/深度学习 算法 机器人
【博士每天一篇文献-算法】改进的PNN架构Lifelong learning with dynamically expandable networks
本文介绍了一种名为Dynamically Expandable Network(DEN)的深度神经网络架构,它能够在学习新任务的同时保持对旧任务的记忆,并通过动态扩展网络容量和选择性重训练机制,有效防止语义漂移,实现终身学习。
65 9
|
5月前
|
搜索推荐 人工智能
人工智能LLM问题之推荐系统的架构流程图如何解决
人工智能LLM问题之推荐系统的架构流程图如何解决
人工智能LLM问题之推荐系统的架构流程图如何解决
|
4月前
|
机器学习/深度学习 存储 人工智能
【博士每天一篇文献-算法】改进的PNN架构Progressive learning A deep learning framework for continual learning
本文提出了一种名为“Progressive learning”的深度学习框架,通过结合课程选择、渐进式模型容量增长和剪枝机制来解决持续学习问题,有效避免了灾难性遗忘并提高了学习效率。
90 4
|
4月前
|
消息中间件 搜索推荐 UED
Elasticsearch 作为推荐系统后端的技术架构设计
【8月更文第28天】在现代互联网应用中,推荐系统已经成为提高用户体验和增加用户粘性的重要手段之一。Elasticsearch 作为一个高性能的搜索和分析引擎,不仅能够提供快速的全文检索能力,还可以通过其强大的数据处理和聚合功能来支持推荐系统的实现。本文将探讨如何利用 Elasticsearch 构建一个高效且可扩展的推荐系统后端架构,并提供一些具体的代码示例。
326 0
|
5月前
|
存储 算法 Java
高并发架构设计三大利器:缓存、限流和降级问题之滑动日志算法问题如何解决
高并发架构设计三大利器:缓存、限流和降级问题之滑动日志算法问题如何解决
|
5月前
|
算法 Java 调度
高并发架构设计三大利器:缓存、限流和降级问题之使用Java代码实现令牌桶算法问题如何解决
高并发架构设计三大利器:缓存、限流和降级问题之使用Java代码实现令牌桶算法问题如何解决
|
5月前
|
缓存 算法 Java
高并发架构设计三大利器:缓存、限流和降级问题之使用代码实现漏桶算法问题如何解决
高并发架构设计三大利器:缓存、限流和降级问题之使用代码实现漏桶算法问题如何解决
下一篇
DataWorks