当前位置: 首页 > news >正文

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 第一章推荐系统概述

相关文章:

1 推荐系统概述

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

Redis初阶笔记

1. 认识Redis Redis是一个基于内存运行的缓存中间件&#xff0c;有着多种的数据类型可供使用。Redis的使用主要是为关系性数据库&#xff08;MySQL等&#xff09;分担压力&#xff0c;在高并发环境下MySQL执行命令的压力是很大的&#xff0c;容易宕机&#xff0c;所以需要中间件…...

electron.vite 项目创建以及better-sqlite3数据库使用

1.安装electron.vite npm create quick-start/electronlatest中文官网&#xff1a;https://cn.electron-vite.org/ 2. 安装项目依赖 npm i3.修改 electron-builder 配置文件 appId: com.electron.app productName: text33 directories:buildResources: build files:- !**/.v…...

【新品解读】AI 应用场景全覆盖!解码超高端 VU+ FPGA 开发平台 AXVU13F

「AXVU13F」Virtex UltraScale XCVU13P Jetson Orin NX 继发布 AMD Virtex UltraScale FPGA PCIE3.0 开发平台 AXVU13P 后&#xff0c;ALINX 进一步研究尖端应用市场&#xff0c;面向 AI 场景进行优化设计&#xff0c;推出 AXVU13F。 AXVU13F 和 AXVU13P 采用相同的 AMD Vir…...

Proxmox VE 8.3 qm 方式导入ESXi Linux OVA UEFI模式虚拟机

前言 实现esxi ova uefi 虚拟机导入到pve,Linux UEFI 都支持 创建一个105虚拟机 qm 参数使用参考,以下可以根据自己的实际情况执行调整 esxi 导出虚拟机参考 #vmid (100 - 999999999) vmid=105# qm vm name...

OpenAI 放王炸,将发布整合多项技术的 GPT-5,并免费无限使用,该模型有哪些技术亮点

对于 ChatGPT 的免费用户&#xff0c;将可以无限制地访问 GPT-5&#xff0c;但仅限于标准的智能级别。该级别会设定滥用限制&#xff0c;以防止不当使用(意思就是你得付费嘛)。 OpenAI CEO Sam Altman 今天在 X 上透露了 GPT-4.5 和 GPT-5 的最新发展计划。 OpenAI 将发布代…...

【前端框架与库】「深入理解 Vue 插槽」:类型、用法与实际场景解析,增强组件复用性的利器

深入理解 Vue 插槽 [TOC](深入理解 Vue 插槽) 前言一、插槽的几种类型1. 默认插槽&#xff08;Default Slot&#xff09;2. 具名插槽&#xff08;Named Slot&#xff09;3. 作用域插槽&#xff08;Scoped Slot&#xff09; 二、插槽的作用与实际使用场景三、延伸知识总结 前言 …...

对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,比较其各自的优势 与基于 openEuler 构建 LVS-DR 群集

一、 对比 LVS 负载均衡群集的 NAT 模式和 DR 模式&#xff0c;比较其各自的优势 NAT 模式 部署简单&#xff1a;NAT 模式下&#xff0c;所有的服务器节点只需要连接到同一个局域网内&#xff0c;通过负载均衡器进行网络地址转换&#xff0c;就可以实现负载均衡功能。不需要对…...

matplotlib绘制频率分布直方图

1.给了数据,让统计这些数据的分布 from matplotlib import pyplot as plt from matplotlib import rcParams import random as r# 直方图用来统计每个区间数量多少rcParams[font.sans-serif] [SimHei] rcParams[axes.unicode_minus] Falseplt.figure(figsize(20,8), dpi80)#…...

相得益彰,Mendix AI connector 秒连DeepSeek ,实现研发制造域场景

在当今快速发展的科技领域&#xff0c;低代码一体化平台已成为企业数字化转型的关键工具&#xff0c;同时&#xff0c;大型语言模型&#xff08;LLM&#xff09;如 DeepSeek 在自动生成代码和提供智能建议方面表现出色。 Mendix 于近期发布的 GenAI 万能连接器&#xff0c;目前…...

shell脚本自动安装MySQL8

环境&#xff1a;centos7版本&#xff1a;8.0.28安装包&#xff1a;mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz 二进制包要求&#xff1a;安装包和shell脚本在同一目录下执行方式&#xff1a;sudo ./install_mysql8.sh #!/bin/bash# 定义MySQL安装目录和压缩包名称MYSQL_DIR…...

Git | 相关命令

相关资料 官网Git 学习教程Git 入门指南Git 的奇技淫巧Git Extras git 命令行扩展工具配置 Git 处理行结束符Git 配置多个 SSH-Key下载相关 Windows 版下载镜像使用 jsdelivr 加速 Github 仓库资源 commit 常用的 type 常用 Git 命令 [xxx] 均为可选参数 git clone # 拷贝一…...

RealClip正式发布:重新定义轻量化数字内容交互体验

在移动互联网流量红利逐渐见顶的当下&#xff0c;用户对即时性、碎片化娱乐与交互体验的需求持续攀升。轻量化小游戏、VR互动、数字孪生、工业仿真等内容形态迅速崛起&#xff0c;但开发者却面临两大核心矛盾&#xff1a;如何将高性能互动内容轻量化嵌入现有应用中&#xff1f;…...

Linux内核 - 非仿生机器人之感知主控系统(协议栈)

Linux内核 - 非仿生机器人之感知主控系统&#xff08;协议栈&#xff09; 注&#xff1a;该项目为18年实习期间&#xff0c;参与非仿生六足机器人&#xff08;Linux方案&#xff09;的个人理解和积累。时至今日&#xff0c;再看其实仅为一套系统编程相关框架&#xff0c;一直为…...

CZML 格式详解,javascript加载导出CZML文件示例

示例地址&#xff1a;https://dajianshi.blog.csdn.net/article/details/145573994 CZML 格式详解 1. 什么是 CZML&#xff1f; CZML&#xff08;Cesium Zipped Markup Language&#xff09;是一种基于 JSON 的文件格式&#xff0c;用于描述地理空间数据和时间动态场景。它专…...

【gRPC-gateway】auth-通过拦截器从上下文中提取元数据用于认证,与从http header转发待认证数据到上下文进行验证,go案例

从grpc上下文中提取元数据用于认证 案例 interceptor.go package serverimport ("context""errors""google.golang.org/grpc""google.golang.org/grpc/metadata""strings" )// UnaryInterceptor 是一个 unary RPC 的拦截器…...

Sass基础知识以及常用知识整理

Sass基础知识以及常用知识整理 一、CSS 功能拓展 注意&#xff1a;>、 、和~的区分 1.1 嵌套规则 Sass 允许将一套 CSS 样式嵌套进另一套样式中&#xff0c;内层的样式将它外层的选择器作为父选择器&#xff0c;例如&#xff1a; #main p {color: #00ff00;width: 97%;…...

Redis 内存回收机制

Redis 是一个基于内存的键值存储系统&#xff0c;为了避免内存耗尽&#xff0c;Redis 提供了多种内存回收机制。以下是 Redis 内存回收的主要方式&#xff1a; 1. 过期键删除 Redis 支持为键设置过期时间&#xff0c;过期后会自动删除键以释放内存。 1.1 设置过期时间 SET key…...

docker安装mongo,导入、导出数据

1、docker安装mongo docker pull mongo docker run -d -p 27017:27017 --name mongodb mongodocker update mongodb --restartalways ## 开机自启动-d&#xff1a;表示以后台模式运行容器。 -p 27017:27017&#xff1a;将容器内部的 MongoDB 默认端口 27017 映射到宿主机的 27…...

Excel常用操作

Excel常用操作 学习资源 37_电子表格处理考点精讲_设置数据格式_哔哩哔哩_bilibili 快速输入数据与编辑数据 一个工作簿可以包含多个工作表 特殊数据的添加格式 输入负数, 例如-3、-5 常规输入, 直接输入-3、-5;使用(), 例如在单元格中输入(3)回车即可变为-3;上述括号不区分中…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件&#xff0c;常用于在两个集合之间进行数据转移&#xff0c;如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model&#xff1a;绑定右侧列表的值&…...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象&#xff1a;mysql已经安装&#xff0c;但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时&#xff0c;可能是因为以下几个原因&#xff1a;1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

《C++ 模板》

目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板&#xff0c;就像一个模具&#xff0c;里面可以将不同类型的材料做成一个形状&#xff0c;其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式&#xff1a;templa…...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf

FTP 客服管理系统 实现kefu123登录&#xff0c;不允许匿名访问&#xff0c;kefu只能访问/data/kefu目录&#xff0c;不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)

考察一般的三次多项式&#xff0c;以r为参数&#xff1a; p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]&#xff1b; 此多项式的根为&#xff1a; 尽管看起来这个多项式是特殊的&#xff0c;其实一般的三次多项式都是可以通过线性变换化为这个形式…...

08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险

C#入门系列【类的基本概念】&#xff1a;开启编程世界的奇妙冒险 嘿&#xff0c;各位编程小白探险家&#xff01;欢迎来到 C# 的奇幻大陆&#xff01;今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类&#xff01;别害怕&#xff0c;跟着我&#xff0c;保准让你轻松搞…...

腾讯云V3签名

想要接入腾讯云的Api&#xff0c;必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口&#xff0c;但总是卡在签名这一步&#xff0c;最后放弃选择SDK&#xff0c;这次终于自己代码实现。 可能腾讯云翻新了接口文档&#xff0c;现在阅读起来&#xff0c;清晰了很多&…...

FFmpeg:Windows系统小白安装及其使用

一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】&#xff0c;注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录&#xff08;即exe所在文件夹&#xff09;加入系统变量…...