1 推荐系统概述

推荐系统概述

  • 1 推荐系统的意义
    • 平台方
    • 信息生产者(物品)
    • 信息消费者(用户)
    • 推荐和搜索的区别
  • 2 推荐系统架构
    • 系统架构
    • 算法架构
  • 3 推荐系统技术栈
    • 算法
      • 画像层
      • 召回/粗排
      • 精排
      • 重排序
    • 工程

1 推荐系统的意义

信息生产者(平台方) -> 平台(推荐系统) <- 消费者(用户)

平台方

  1. 平台方为信息生产者提供物品展示位置,然后吸引用户来平台寻找感兴趣的物品。“流量”的产生对商家物品的展示,用户的浏览、观看、下单等行为
  2. 推荐系统改变了传统电商的树状拓扑结构,变成了更容易让流量流通的网络拓扑结构,给每个商品增加了如何和展示机会。如,传统的需要按照每个大类、小类一个个点击去筛选物品;而推荐系统则直接提供个性化推荐,让你直达感兴趣的商品。
  3. 推荐系统:最大限度吸引用户、留存用户、增加用户粘性、提高用户转换率,达到平台商业目标增长的目的。如(视频平台)点击率、完播率、内置广告点击率;(购物平台)商品点击率、用户转换率:点击->购买。

信息生产者(物品)

  1. 物品的长尾性和二八效应严重,需要推荐系统挖掘出那 80% 的长尾物品,推荐给有需要的用户。
  2. 推荐系统对长尾物品的曝光,对信息生产者(如视频平台的作者、商家)也是一种激励。
  3. 推荐系统的匹配需求和供给能力也成为衡量一个平台的重要标准,决定了该平台的商业价值。

信息消费者(用户)

提高用户体验(基本+惊喜):满足目标明确用户的基本要求,给没有明确需求用户以惊喜推荐。最终都可能提高平台的转换率。

推荐和搜索的区别

推荐搜索
用户意图不明确明确
个性化程度
优化目标广泛,如用户停留时长、点击、多样性、拼分等通常指标:归一化折损累计收益(NDCG),Precision 和 Recall(精确率和召回率)
马太效应和长尾理论也存在马太效应,长尾性非常明显存在马太效应(靠后的很少被关注)

2 推荐系统架构

系统架构

推荐系统架构,从数据驱动角度,可以分为如下三层:

  • 离线层:不用实时数据,不提供实时响应(批量完成,对数据量和算法复杂度限制少);
  • 近线层:使用实时数据,不保证实时响应;
  • 在线层:使用实时数据,保证实时在线服务(和用户交互,有实时性要求,限制算法复杂性和处理数据量);

网飞的设计架构如下图:
在这里插入图片描述
整个数据部分是一整个链路,包括三块:

  • 客户端及服务器实时数据处理: 记录用户行为,如看了哪些内容、和哪些内容交互,停留时间,使用设备,发生时间等(通过埋点)。
  • 流处理平台准实时数据处理:记录一些准实时数据,如用户行为数据。
  • 大数据平台离线数据处理:一些数据操作。

这三个模块具体来说,

  • 离线层,
    1. 数据处理
    2. 特征工程、离线特征计算
    3. 离线模型的训练
  • 近线层
  • 在线层,面向用户,需要考虑响应时延;用户请求发送到在线层,在线层快速返回结果
    1. 模型在线服务,包括快速召回和排序
    2. 在线特征快速处理拼接::根据传入的用户ID和场景,快速读取特征和处理
    3. AB实验或者分流:根据不同用户采用不一样的模型,比如冷启动用户和正常服务模型;
    4. 运筹优化和业务干预:比如要对特殊商家流量扶持、对某些内容限流;

算法架构

  • 召回
  • 粗排
  • 精排
  • 重排

3 推荐系统技术栈

算法

架构: 物料库 -> 召回 -> 粗排 -> 精排 -> 重排

  • 召回:要求轻量低延迟,量大(多采用多路召回)
  • 粗排:精排前过滤,兼顾精准性和低延迟
  • 精排:对粗排结果的候选集进行打分和排序,要在最大时延允许下保证打分的精准性
  • 重排:基于运营策略、多样性、上下文重新进行微调
  • 混排:多个业务都想在 feed 流上曝光,则需要混排。如推荐流中插入广告(基于规则策略,例如广告定坑)、视频流汇总插入图文(强化学习)

画像层

物料库:如何绘制一个用户画像和商品画像。用户画像:关于年龄、爱好等。商品画像:形式多样,如一个内容画像的内容理解可以包含,通过内容本身理解、通过用户理解。

其中涉及到技术包括:

  • 文本理解
  • 关键词标签
  • 内容理解
  • 知识图谱

召回/粗排

多路召回

  • 考虑用户层面
  • 考虑系统层面
  • 系统多样性内容分发
  • 可解释性推荐一部分召回是有明确推荐理由的

其中涉及到的技术包括:

  • 经典召回模型
  • 序列召回模型
  • 用户序列拆分
  • 知识图谱
  • 图模型

精排

其中涉及到的技术包括:

  • 特征交叉模型
  • 序列模型
  • 多模态信息融合
  • 多任务学习
  • 强化学习
  • 跨域推荐

重排序

经典算法有:MRR、DPP、RNN 等

工程

  • 语言:python 、 C++、Java
  • 机器学习框架:Tensorflow、Pytorch
  • 数据分析工具:Pandas、Hadoop、Spark

参考文献:

  1. FunRec 第一章推荐系统概述

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

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

相关文章

变化检测论文阅读合集

1. ChangeCLIP: Remote sensing change detection with multimodal vision-language representation learning 作者&#xff1a;Sijun Dong a, Libo Wang b, Bo Du c, Xiaoliang Meng a,* 年份&#xff1a;2024 研究方法/模型&#xff1a; 重构原始CLIP&#xff1a;提取双时…

使用EVE-NG-锐捷实现单臂路由

一、基础知识 1.三层vlan vlan在三层环境中通常用作网关vlan配上ip网关内部接口ip 2.vlan创建步骤 创建vlan将接口划分到不同的vlan给vlan配置ip地址 二、项目案例 1、项目拓扑 2、项目实现 PC1配置 配置PC1IP地址为192.168.1.10/24网关地址为192.168.1.1 ip 192.168.1…

mysql运维

1、msyqlLinux通用二进制安装 1. MySQL :: Download MySQL Community Server (Archived Versions)https://downloads.mysql.com/archives/community/https://downloads.mysql.com/archives/community/https://downloads.mysql.com/archives/community/https://downloads.mysql…

嵌入式LINUX驱动开发入门之hello驱动(基于IMX6ULL-MINI开发板)

1.驱动前提 编译驱动程序之前要编译内核&#xff0c;原因主要是&#xff1a; &#xff08;1&#xff09;驱动程序要用到内核文件&#xff1a; 比如驱动程序中这样包含头文件: #include <asm/io.h>&#xff0c; 其中的asm是一个链接文件&#xff0c;指向asm-arm或asm-m…

chrome-mojo C++ Bindings API

概述 Mojo C 绑定 API 利用C 系统 API提供一组更自然的原语&#xff0c;用于通过 Mojo 消息管道进行通信。结合从Mojom IDL 和绑定生成器生成的代码&#xff0c;用户可以轻松地跨任意进程内和进程间边界连接接口客户端和实现。 本文档通过示例代码片段提供了绑定 API 用法的详…

centos 8和centos 9 stream x64的区别

以下是 CentOS 8 与 CentOS Stream 9 的主要区别&#xff0c;从技术架构、更新策略到适用场景等维度进行对比&#xff1a; AI产品独立开发实战营 联系我了解 1. 定位与更新策略 特性CentOS 8CentOS Stream 9定位原为 RHEL 8 的免费稳定复刻版RHEL 9 的上游开发分支&#xff…

物联网软件开发与应用方向应该怎样学习,学习哪些内容,就业方向是怎样?(文末领取整套学习视频,课件)物联网硬件开发与嵌入式系统

随着物联网技术的飞速发展&#xff0c;物联网软件开发与应用方向成为了众多开发者关注的焦点。那么&#xff0c;如何在这个领域中脱颖而出呢&#xff1f;本文将为你提供一份详细的学习指南&#xff0c;帮助你从零开始&#xff0c;逐步掌握物联网软件开发与应用的核心技能。 一…

DeepSeek之于心理学的一点思考

模型和硬件参数对应关系参考 模型参数规模 典型用途 CPU建议 GPU建议 最小内存建议 磁盘空间建议 适用场景 1.5b(15亿) 小型推理、轻量级任务 4核以上(Intel i5/AMD Ryzen5) 可选&#xff0c;入门级GPU(如NVIDIA GTX1650 4GB显存) 8GB 10GB以上SSD 小型NLP任务、文…

DeepSeek 助力 Vue 开发:打造丝滑的步骤条

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…

ubuntu安装VMware报错/dev/vmmon加载失败

ubuntu安装VMware报错/dev/vmmon加载失败&#xff0c;解决步骤如下&#xff1a; step1&#xff1a;为vmmon和vmnet组件生成密钥对 openssl req -new -x509 -newkey rsa:2048 -keyout VMW.priv -outform DER -out VMW.der -nodes -days 36500 -subj "/CNVMware/"ste…

5 个释放 安卓潜力的 Shizuku 应用

Shizuku 软件推荐&#xff1a;释放安卓潜力的五款应用 Shizuku (日语&#xff1a;雫&#xff0c;意为“水滴”) 正如其名&#xff0c;是一款轻巧但功能强大的安卓工具。它无需 Root 权限&#xff0c;通过 ADB (Android Debug Bridge) 授权&#xff0c;即可让应用调用系统 API&…

【java API】leetcode常用刷题API及ACM模式

文章目录 ACM输入 Scanner**一、字符串高频API****二、集合高频API****三、栈&#xff08;Stack&#xff09;高频API****1. 推荐用Deque替代Stack类**&#xff08;更高效且线程不安全&#xff0c;适合算法场景&#xff09;**2. 核心操作****3. 经典应用场景****4. 避坑指南** *…

网络防御高级

接口配置&#xff1a; SW2: [sw2]vlan 10 [sw2]vlan 20 [sw2]interface GigabitEthernet 0/0/1 [sw2-GigabitEthernet0/0/1]port link-type trunk [SW2-GigabitEthernet0/0/1]port trunk allow-pass vlan 10 20 [sw2]interface GigabitEthernet 0/0/2 [sw2-GigabitEthernet0/0/…

Kokoro 开源文本转语音引擎上线!多语言支持,无需联网,浏览器内极速运行

Kokoro 是一款轻量级的开源文本转语音(TTS)引擎,凭借其高效能和轻量化设计,迅速在技术社区中引起关注。本文将详细介绍 Kokoro 的主要特点,并提供在浏览器和 Python 环境中的代码示例,帮助您快速上手。 1. Kokoro:可在浏览器中运行的 TTS 引擎 1.1 简介 Kokoro 是一个…

html为<td>添加标注文本

样式说明&#xff1a; /*为td添加相对定位点*/ .td_text {position: relative; }/*为p添加绝对坐标(相对于父元素中的定位点)*/ .td_text p {position: absolute;top: 80%;font-size: 8px; }参考资料&#xff1a;

ASP.NET Core SignalR案例:导入英汉词典

Ecdict 下载词典文件stardict.7z&#xff0c;解压&#xff0c;stardict.csv是一个CSV格式的文本文件&#xff0c;文件的第一行是表头&#xff0c;除第一行外&#xff0c;其他每行文本是一个单词的相关信息&#xff0c;用逗号分隔的就是各个列的值。英汉词典ECDICT中导入单词到…

【清晰教程】通过Docker为本地DeepSeek-r1部署WebUI界面

【清晰教程】本地部署DeepSeek-r1模型-CSDN博客 目录 安装Docker 配置&检查 Open WebUI 部署Open WebUI 安装Docker 完成本地DeepSeek-r1的部署后【清晰教程】本地部署DeepSeek-r1模型-CSDN博客&#xff0c;通过Docker为本地DeepSeek-r1部署WebUI界面。 访问Docker官…

2025web寒假作业二

一、整体功能概述 该代码构建了一个简单的后台管理系统界面&#xff0c;主要包含左侧导航栏和右侧内容区域。左侧导航栏有 logo、管理员头像、导航菜单和安全退出按钮&#xff1b;右侧内容区域包括页头、用户信息管理内容&#xff08;含搜索框和用户数据表格&#xff09;以及页…

如何在 Qt 中添加和使用系统托盘图标

在 Qt 中实现系统托盘图标是一个常见的需求&#xff0c;尤其是在桌面应用程序中。系统托盘图标可以让应用程序在后台运行时仍然具有可见性&#xff0c;同时避免占用过多的桌面空间。本文将详细介绍如何在 Qt 项目中添加托盘图标&#xff0c;并通过资源系统&#xff08;.qrc 文件…

探索B-树系列

&#x1f308;前言&#x1f308; 本文将讲解B树系列&#xff0c;包含 B-树&#xff0c;B树&#xff0c;B*树&#xff0c;其中主要讲解B树底层原理&#xff0c;为什么用B树作为外查询的数据结构&#xff0c;以及B-树插入操作并用代码实现&#xff1b;介绍B树、B*树。 &#x1f4…