【推荐系统学习笔记】-- 1、推荐系统架构

news2025/1/11 18:39:58

根本解决的问题:在信息过载的情况下,用户如何高效获取感兴趣的信息。

1 逻辑架构图1 推荐系统的逻辑架构

推荐系统要处理的问题就可以被形式化地定义为:对于某个用户U(User),在特定场景C(Context)下,针对海量的“物品”信息构建一个函数 ,预测用户对特定候选物品I(Item)的喜好程度,再根据喜好程度对所有候选物品进行排序,生成推荐列表的问题

2 技术架构

在实际的推荐系统中,工程师需要着重解决的问题有两类。

  • 一类问题与数据和信息相关,即“用户信息”“物品信息”“场景信息”:逐渐发展为推荐系统中融合了数据离线批处理、实时流处理的数据流框架
  • 另一类问题与推荐系统算法和模型相关:进一步细化为推荐系统中,集训练(Training)、评估(Evaluation)、部署(Deployment)、线上推断(Online Inference)为一体的模型框架。

推荐系统技术架构

2.1 数据部分

推荐系统的“数据部分”主要负责的是“用户”“物品”“场景”信息的收集与处理。根据处理数据量和处理实时性的不同,我们会用到三种不同的数据处理方式,按照实时性的强弱排序的话,它们依次是

  • 客户端与服务器端实时数据处理
  • 流处理平台准实时数据处理
  • 大数据平台离线数据处理

数据处理后,有三个用途:

  • 生成推荐系统模型所需的样本数据,用于算法模型的训练和评估。
  • 生成推荐系统模型服务(Model Serving)所需的“用户特征”,“物品特征”和一部分“场景特征”,用于推荐系统的线上推断。
  • 生成系统监控、商业智能(Business Intelligence,BI)系统所需的统计型数据。

2.2 模型部分

2.2.1 发展历史

从矩阵分解算法 -> 深度模型发展
传统模型:图3传统模型
深度模型的优势:
1、复杂的网络可以拟合更复杂的函数
2、注意力机制可以模拟用户兴趣变化的过程
在这里插入图片描述
《Deep Interest Evolution Network for Click-Through Rate Prediction》,阿里巴巴的深度学习模型——深度兴趣进化网络(如图 3),它利用了三层序列模型的结构,模拟了用户在购买商品时兴趣进化的过程,如此强大的数据拟合能力和对用户行为的理解能力,是传统机器学习模型不具备的。

2.2.2 模型各部分

一般有召回层、排序层、补充策略与算法层

  • 召回层:一般由高效的召回规则、算法或简单的模型组成,这让推荐系统能快速从海量的候选集中召回用户可能感兴趣的物品
  • 排序层:利用排序模型对初筛的候选集进行精排序
  • 补充策略与算法层:在返回给用户推荐列表之前,为兼顾结果的“多样性”“流行度”“新鲜度”等指标,结合一些补充的策略和算法对推荐列表进行一定的调整,最终形成用户可见的推荐列表

深度学习应用:

  • 深度学习中 Embedding 技术在召回层的应用。作为深度学习中非常核心的 Embedding 技术,将它应用在推荐系统的召回层中,做相关物品的快速召回,已经是业界非常主流的解决方案了。不同结构的深度学习模型在排序层的应用。
  • 排序层(也称精排层)是影响推荐效果的重中之重,也是深度学习模型大展拳脚的领域。深度学习模型的灵活性高,表达能力强的特点,这让它非常适合于大数据量下的精确排序。深度学习排序模型毫无疑问是业界和学界都在不断加大投入,快速迭代的部分。增强学习在模型更新、工程模型一体化方向上的应用。
  • 增强学习可以说是与深度学习密切相关的另一机器学习领域,它在推荐系统中的应用,让推荐系统可以在实时性层面更上一层楼。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/24983.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

区块链 - 各个国家Web3的现状与趋势

​潜力博主推荐,点上面关注博主↑↑↑ 2022年,元宇宙、NFT 、GameFi、DAO、DeFi 等 Web3 时代的新生事物,正在彻底改写传统商业模式,重塑全球数字商业的版图,一个全新的数字时代正在开启。 美国、欧洲官方开始在 Web…

【构建ML驱动的应用程序】第 4 章 :获取初始数据集

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

C语言——指针初阶详解

🐒博客名:平凡的小苏 📚学习格言:别人可以拷贝我的模式,但不能拷贝我不断往前的激情 目录 1. 指针是什么 2. 指针和指针类型 2.1指针类型的第一个意义 2.2指针类型的第二个意义 3. 野指针 3.1 野指针成因 3.2 如何…

零基础自学javase黑马课程第十六天

零基础自学javase黑马课程第十六天 ✨欢迎关注🖱点赞🎀收藏⭐留言✒ 🔮本文由京与旧铺原创,csdn首发! 😘系列专栏:java学习 💻首发时间:🎞2022年11月21日&…

三菱FX3U——ST编程点动与自锁

通过赋值 : 操作符,可以控制元件的状态; Y0:1,使Y0得电, Y0:0,使Y0失电; Y0:TRUE,使Y0得电, Y0:FALSE,使Y0失电; Y2:M0,通过M0的状态来控制Y2; NOT 取反操作, 状态取反&#xff…

活动现场大屏幕互动系统(微信墙)修复版完美PHP源码,带完整素材包和详细使用文档

源码收集于网络,觉得不错,2022-11-18亲测了源码,顺手修复了原来的几处bug。网上的这个源码有个重大bug,就是后台系统配音没法上传音乐文件。我理了一下代码,修复了这个问题,现在后台可以分别给每个模块上传…

CTFHub技能树 Web-文件上传详解

文章目录0x01 无验证0x02 前端验证0x03 .htaccess0x04 MIME绕过0x05 00截断0x06 双写后缀0x07 文件头检查0x08 其他摘抄0x01 无验证 介绍&#xff1a;直接上传后缀是php的文件即可 文件上传 <?php eval($_POST[777]);?> 进行连接 查找flag 0x02 前端验证 介…

智慧住建解决方案-最新全套文件

智慧住建解决方案-最新全套文件一、建设背景目前智慧住建的信息化现状&#xff1a;1、系统重叠建设&#xff0c;标准规范不统一2、信息应用水平不均衡&#xff0c;资源共享待提升3、应用系统众多&#xff0c;用户操作体验不佳4、原有架构难以适应“互联网”的新要求二、总体设计…

计算机中的第三个伟大发明

本节我们学习了控制计算机跳转指令的第三个发明的由来&#xff0c;以及清除指令。并且展示了计算机的整体控制部分的布线图。 第三个发明 对于跳转指令&#xff0c;有时它会跳转&#xff0c;有时不会。跳或不跳只是两种可能性&#xff0c;所以只需要一个bit就可以确定哪一种会…

【Kubernetes快速实战】

K8S官网文档&#xff1a;https://kubernetes.io/zh/docs/home/ 文章目录前言一、K8S核心特性二、K8S集群安装1.安装K8S集群1、关闭防火墙2、关闭 selinux3、关闭 swap4、给三台机器分别设置主机名5、在 k8s‐master机器添加hosts&#xff0c;执行如下命令&#xff0c;ip需要修改…

全球最受欢迎的「数字游民」城市竟然是它?

相信你已经或多或少听说过「数字游民」这个词汇了。 「数字游民」译自英文词组Digital Nomad&#xff0c;是指那些没有办公室等固定工作场所&#xff0c;利用互联网从事远程工作&#xff0c;实现地域和时间的相对自由&#xff0c;在全球范围内移动生活的人群。 想想看&#x…

STM32实战总结:HAL之电机

电机基础知识参考&#xff1a; 51单片机外设篇&#xff1a;电机_路溪非溪的博客-CSDN博客 无刷电机和有刷电机 先详细了解有刷电机&#xff1a; 带你了解&#xff08;有刷&#xff09;电机工作原理_哔哩哔哩_bilibili 再详细了解无刷电机&#xff1a; 无刷直流电机工作原理_哔哩…

MySQL在centos上的安装

去mysql官网下载mysql 通过mysql官网的download界面&#xff0c;找到community server&#xff0c;然后选择对应linux版本下载对应的安装包 这里直接上链接 https://downloads.mysql.com/archives/community/ 可以通过cat /etc/centos-release命令找到当前centos对应的版本 下…

[附源码]java毕业设计小区供暖收费管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

重磅上市《精通Neo4j》

重磅上市《精通Neo4j》重磅上市《精通Neo4j》一、写在前面的话二、主要内容三、更多介绍Here’s the table of contents:重磅上市《精通Neo4j》 《精通Neo4j》是继《Neo4j权威指南》之后第二本由中国人原创的图数据库领域专业书籍。由清华大学出版社于2022年11月出版&#xff0…

【菜菜的sklearn课堂笔记】逻辑回归与评分卡-步长的进一步理解和max_iter

视频作者&#xff1a;菜菜TsaiTsai 链接&#xff1a;【技术干货】菜菜的机器学习sklearn【全85集】Python进阶_哔哩哔哩_bilibili 既然参数迭代是靠梯度向量的大小d步长α梯度向量的大小d \times步长\alpha梯度向量的大小d步长α来实现的&#xff0c;而J(θ)J(\theta)J(θ)的降…

群推王|如何引爆您的推特流量

推特营销主要吸引力在于其庞大的用户群体。它是最大的社交媒体平台之一&#xff0c;据统计每月有3.3亿活跃用户&#xff0c;为品牌知名度和增长做出了重大贡献。 尽管我们都知道推特营销的重要性&#xff0c;但是在实际运用上大家可能会遇到一些问题&#xff0c;比如您有很多粉…

C/C++ 结构体变量初始化的几种方法总结及内存排列(字节对齐)

前言 最近看到一些别人的代码&#xff0c;对结构体的初始化使用了不同的语法&#xff0c;就决定对结构体的初始化方法做个探索&#xff0c;这里小小的记录一下。 注意&#xff0c;没有初始化的结构体变量是不会输出的&#xff0c;比如 struct SBase{int iNumberOne;int iNum…

Redis的分布式锁问题(八)基于Redis的分布式锁

Redis的分布式锁问题&#xff08;八&#xff09;基于Redis的分布式锁 分布式锁 什么是分布式锁&#xff1f; 分布式锁&#xff1a;满足分布式系统或集群模式下多进程可见并且互斥的锁。 当多个进程不在同一个系统中&#xff0c;用分布式锁控制多个进程对资源的访问。 在…

springboot+vue3+ts实现一个点赞功能

前端&#xff1a;vitevue3tselementplusless 后端&#xff1a;springboot2.7.5mybatisplus 后端&#xff1a; 引入pom依赖 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</…