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

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

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

课程地址: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小时在不间断地运行,而评估呢也是一直进行,当评估的指标达到一定水平,达到一定的上限,就会自动把模型导出并上线;如果实时更新模型的指标一直没有达到要求,就会一直训练该模型,但是不上线

相关文章
|
7月前
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
3月前
|
机器学习/深度学习 人工智能 搜索推荐
从零构建短视频推荐系统:双塔算法架构解析与代码实现
短视频推荐看似“读心”,实则依赖双塔推荐系统:用户塔与物品塔分别将行为与内容编码为向量,通过相似度匹配实现精准推送。本文解析其架构原理、技术实现与工程挑战,揭秘抖音等平台如何用AI抓住你的注意力。
860 7
从零构建短视频推荐系统:双塔算法架构解析与代码实现
|
6月前
|
机器学习/深度学习 运维 监控
实时异常检测实战:Flink+PAI 算法模型服务化架构设计
本文深入探讨了基于 Apache Flink 与阿里云 PAI 构建的实时异常检测系统。内容涵盖技术演进、架构设计、核心模块实现及金融、工业等多领域实战案例,解析流处理、模型服务化、状态管理等关键技术,并提供性能优化与高可用方案,助力企业打造高效智能的实时异常检测平台。
500 1
|
9月前
|
机器学习/深度学习 人工智能 自然语言处理
AI训练师入行指南(三):机器学习算法和模型架构选择
从淘金到雕琢,将原始数据炼成智能珠宝!本文带您走进数字珠宝工坊,用算法工具打磨数据金砂。从基础的经典算法到精密的深度学习模型,结合电商、医疗、金融等场景实战,手把手教您选择合适工具,打造价值连城的智能应用。掌握AutoML改装套件与模型蒸馏术,让复杂问题迎刃而解。握紧算法刻刀,为数字世界雕刻文明!
337 6
|
11月前
|
负载均衡 算法
架构学习:7种负载均衡算法策略
四层负载均衡包括数据链路层、网络层和应用层负载均衡。数据链路层通过修改MAC地址转发帧;网络层通过改变IP地址实现数据包转发;应用层有多种策略,如轮循、权重轮循、随机、权重随机、一致性哈希、响应速度和最少连接数均衡,确保请求合理分配到服务器,提升性能与稳定性。
2396 11
架构学习:7种负载均衡算法策略
|
10月前
|
存储 监控 算法
公司监控上网软件架构:基于 C++ 链表算法的数据关联机制探讨
在数字化办公时代,公司监控上网软件成为企业管理网络资源和保障信息安全的关键工具。本文深入剖析C++中的链表数据结构及其在该软件中的应用。链表通过节点存储网络访问记录,具备高效插入、删除操作及节省内存的优势,助力企业实时追踪员工上网行为,提升运营效率并降低安全风险。示例代码展示了如何用C++实现链表记录上网行为,并模拟发送至服务器。链表为公司监控上网软件提供了灵活高效的数据管理方式,但实际开发还需考虑安全性、隐私保护等多方面因素。
214 0
公司监控上网软件架构:基于 C++ 链表算法的数据关联机制探讨
|
11月前
|
机器学习/深度学习 算法 PyTorch
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
软演员-评论家算法(Soft Actor-Critic, SAC)是深度强化学习领域的重要进展,基于最大熵框架优化策略,在探索与利用之间实现动态平衡。SAC通过双Q网络设计和自适应温度参数,提升了训练稳定性和样本效率。本文详细解析了SAC的数学原理、网络架构及PyTorch实现,涵盖演员网络的动作采样与对数概率计算、评论家网络的Q值估计及其损失函数,并介绍了完整的SAC智能体实现流程。SAC在连续动作空间中表现出色,具有高样本效率和稳定的训练过程,适合实际应用场景。
3717 7
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
|
11月前
|
搜索推荐 NoSQL Java
微服务架构设计与实践:用Spring Cloud实现抖音的推荐系统
本文基于Spring Cloud实现了一个简化的抖音推荐系统,涵盖用户行为管理、视频资源管理、个性化推荐和实时数据处理四大核心功能。通过Eureka进行服务注册与发现,使用Feign实现服务间调用,并借助Redis缓存用户画像,Kafka传递用户行为数据。文章详细介绍了项目搭建、服务创建及配置过程,包括用户服务、视频服务、推荐服务和数据处理服务的开发步骤。最后,通过业务测试验证了系统的功能,并引入Resilience4j实现服务降级,确保系统在部分服务故障时仍能正常运行。此示例旨在帮助读者理解微服务架构的设计思路与实践方法。
721 17
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
887 4
|
存储 算法 安全
分布式系统架构1:共识算法Paxos
本文介绍了分布式系统中实现数据一致性的重要算法——Paxos及其改进版Multi Paxos。Paxos算法由Leslie Lamport提出,旨在解决分布式环境下的共识问题,通过提案节点、决策节点和记录节点的协作,确保数据在多台机器间的一致性和可用性。Multi Paxos通过引入主节点选举机制,优化了基本Paxos的效率,减少了网络通信次数,提高了系统的性能和可靠性。文中还简要讨论了数据复制的安全性和一致性保障措施。
754 1

热门文章

最新文章