推荐系统召回算法及架构说明

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

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

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

在如何构建企业级推荐系统系列课程的第一课中,我们介绍了整个推荐系统的架构应该是什么样的,大体有哪些模块,在云上的产品的每个模块需要用什么样的一个应用。在这一节课,我们会重点针对推荐系统中的召回算法做一个具体的说明,以及这个架构是怎么搭建的。先来回顾一下召回模块在整个推荐系统中的一个位置。召回模块主要做的一件事就是初筛。用户A进到平台中,从潜在的超大规模的item中筛选A可能喜欢的较小比例的item。比如说平台上有10万个item,用户进来之后筛选出500个他可能会喜欢的。接下来通过排序模块根据他的喜好程度对item进行排序。
image.png

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

今天我们就介绍一下在这个召回模块究竟会用到哪些算法。我把目前比较流行的4个算法放到这里。右侧的是协同过滤算法,左侧的可以叫做向量召回相关的算法。协同过滤算法类似于基于统计的算法,它会找出兴趣相同的一些人,或者说一些可以被同时购买的商品。比如说啤酒和尿布的故事,我们发现在超市里啤酒和尿布经常被一起购买,这是基于大量的数据统计得到的一个结果。向量召回更偏机器学习的一些深层的模型。比如说ALS是一个经典的矩阵分解方法,可以基于行为数据表,产出user embedding表和item embedding表。这是向量召回的一个基本方法。其实FM也是类似的一个逻辑,通过内积方式增强特征表现力。这里面我要单独介绍一下 GraphSage算法。它其实是一种图神经网络的召回算法,这种算法在整个的互联网领域应用的还不是特别多。但是在一些比较大的互联网公司,比如说淘宝的推荐场景会应用得比较多。GraphSage是基于深度学习框架构建的图算法。可以基于用户和商品特征及行为产出user embedding和item embedding。GraphSage算法也经常被用于电商的召回场景。
image.png

三、什么是协同过滤

协同过滤可能是比较好理解的一个算法,我这里会用一个篇幅给大家介绍一下。比如说我们有用户A、B、C,他们的偏好如下图所示。你会发现A和C有一些相似的口味。A和C都喜欢Rice、Milk。除此之外,A还喜欢Lamb。就是说A和C有相似的口味,并且A还喜欢某个C没有尝试过的东西。我们就假设C也喜欢它,可以把它作为C的一个召回结果。这就是一个基于数据统计的标准的协同过滤的方式。这张图可以帮大家很好地去理解协同过滤算法的原理。
image.png

四、向量召回架构说明

接下来再介绍一下刚才的三种向量召回的算法。它的一个输入的数据大体是这样的,你有一些用户的ID,然后有一些物品的ID,然后有一些行为的数据。如下图所示,这是一个用户行为的数据表,进来之后你通过向量召回算法,最终拿到的是两个向量表。这些向量表在实际的生产中是一个K、V形式的。就是一个用户ID对应一个向量,可以在Redis里去暂存一下。实际的使用过程中需要把这些东西全存到Faiss的服务器里。Faiss是Facebook的AI团队开源的专门针对向量检索的一个引擎。它的一个好处就是非常快,可以提供很多的向量检索的模式,甚至可以在一毫秒之内返回一个几百万级别的向量检索,它的性能非常好,常用到推荐召回的领域里。具体召回的时候,比如说我们想给一个用户推荐一个物品,我们拿着用户的ID和它的向量进入到Faiss引擎里去查哪些物料向量和用户向量的欧式距离最近。比如说,把Top10个拿出来,作为这名用户的召回结果。这是整个的方案,会用到Redis,也会用到Faiss这样的一个引擎。这就是整个的向量召回的架构。
image.png

五、参考资料

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

相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
13天前
|
存储 监控 算法
公司监控上网软件架构:基于 C++ 链表算法的数据关联机制探讨
在数字化办公时代,公司监控上网软件成为企业管理网络资源和保障信息安全的关键工具。本文深入剖析C++中的链表数据结构及其在该软件中的应用。链表通过节点存储网络访问记录,具备高效插入、删除操作及节省内存的优势,助力企业实时追踪员工上网行为,提升运营效率并降低安全风险。示例代码展示了如何用C++实现链表记录上网行为,并模拟发送至服务器。链表为公司监控上网软件提供了灵活高效的数据管理方式,但实际开发还需考虑安全性、隐私保护等多方面因素。
20 0
公司监控上网软件架构:基于 C++ 链表算法的数据关联机制探讨
|
2月前
|
负载均衡 算法
架构学习:7种负载均衡算法策略
四层负载均衡包括数据链路层、网络层和应用层负载均衡。数据链路层通过修改MAC地址转发帧;网络层通过改变IP地址实现数据包转发;应用层有多种策略,如轮循、权重轮循、随机、权重随机、一致性哈希、响应速度和最少连接数均衡,确保请求合理分配到服务器,提升性能与稳定性。
396 11
架构学习:7种负载均衡算法策略
|
2月前
|
机器学习/深度学习 算法 PyTorch
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
软演员-评论家算法(Soft Actor-Critic, SAC)是深度强化学习领域的重要进展,基于最大熵框架优化策略,在探索与利用之间实现动态平衡。SAC通过双Q网络设计和自适应温度参数,提升了训练稳定性和样本效率。本文详细解析了SAC的数学原理、网络架构及PyTorch实现,涵盖演员网络的动作采样与对数概率计算、评论家网络的Q值估计及其损失函数,并介绍了完整的SAC智能体实现流程。SAC在连续动作空间中表现出色,具有高样本效率和稳定的训练过程,适合实际应用场景。
353 7
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
|
2月前
|
搜索推荐 NoSQL Java
微服务架构设计与实践:用Spring Cloud实现抖音的推荐系统
本文基于Spring Cloud实现了一个简化的抖音推荐系统,涵盖用户行为管理、视频资源管理、个性化推荐和实时数据处理四大核心功能。通过Eureka进行服务注册与发现,使用Feign实现服务间调用,并借助Redis缓存用户画像,Kafka传递用户行为数据。文章详细介绍了项目搭建、服务创建及配置过程,包括用户服务、视频服务、推荐服务和数据处理服务的开发步骤。最后,通过业务测试验证了系统的功能,并引入Resilience4j实现服务降级,确保系统在部分服务故障时仍能正常运行。此示例旨在帮助读者理解微服务架构的设计思路与实践方法。
129 17
|
7月前
|
搜索推荐 前端开发 数据可视化
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
本文介绍了一个基于Django框架、协同过滤算法、ECharts数据可视化以及Bootstrap前端技术的酒店推荐系统,该系统通过用户行为分析和推荐算法优化,提供个性化的酒店推荐和直观的数据展示,以提升用户体验。
262 1
【优秀python web毕设案例】基于协同过滤算法的酒店推荐系统,django框架+bootstrap前端+echarts可视化,有后台有爬虫
|
3月前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
230 3
|
3月前
|
存储 算法 安全
分布式系统架构1:共识算法Paxos
本文介绍了分布式系统中实现数据一致性的重要算法——Paxos及其改进版Multi Paxos。Paxos算法由Leslie Lamport提出,旨在解决分布式环境下的共识问题,通过提案节点、决策节点和记录节点的协作,确保数据在多台机器间的一致性和可用性。Multi Paxos通过引入主节点选举机制,优化了基本Paxos的效率,减少了网络通信次数,提高了系统的性能和可靠性。文中还简要讨论了数据复制的安全性和一致性保障措施。
156 1
|
5月前
|
机器学习/深度学习 算法 搜索推荐
django调用矩阵分解推荐算法模型做推荐系统
django调用矩阵分解推荐算法模型做推荐系统
75 4
|
6月前
|
前端开发 搜索推荐 算法
中草药管理与推荐系统Python+Django网页界面+推荐算法+计算机课设系统+网站开发
中草药管理与推荐系统。本系统使用Python作为主要开发语言,前端使用HTML,CSS,BootStrap等技术和框架搭建前端界面,后端使用Django框架处理应用请求,使用Ajax等技术实现前后端的数据通信。实现了一个综合性的中草药管理与推荐平台。具体功能如下: - 系统分为普通用户和管理员两个角色 - 普通用户可以登录,注册、查看物品信息、收藏物品、发布评论、编辑个人信息、柱状图饼状图可视化物品信息、并依据用户注册时选择的标签进行推荐 和 根据用户对物品的评分 使用协同过滤推荐算法进行推荐 - 管理员可以在后台对用户和物品信息进行管理编辑
167 12
中草药管理与推荐系统Python+Django网页界面+推荐算法+计算机课设系统+网站开发
|
7月前
|
机器学习/深度学习 算法 机器人
【博士每天一篇文献-算法】改进的PNN架构Lifelong learning with dynamically expandable networks
本文介绍了一种名为Dynamically Expandable Network(DEN)的深度神经网络架构,它能够在学习新任务的同时保持对旧任务的记忆,并通过动态扩展网络容量和选择性重训练机制,有效防止语义漂移,实现终身学习。
100 9