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

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.kler.cn/a/541522.html

相关文章:

  • 什么是Java虚拟机(JVM)?它的作用是什么?
  • Lua限流器的3种写法
  • 亚博microros小车-原生ubuntu支持系列:26手势控制小车基础运动
  • 【CXX-Qt】1.1 Rust中的QObjects
  • opc da 服务器数据 转 EtherCAT项目案例
  • 百度高德地图坐标转换
  • 重启电脑之后vscode不见了
  • HTTP协议学习大纲
  • vLLM 安装记录 (含踩坑xformers)
  • #渗透测试#批量漏洞挖掘#ServiceNow UI Jelly模板注入(CVE-2024-4879)
  • 更换网络IP地址几种简单的方法
  • 计算机毕业设计SpringBoot+Vue.js+H5在线花店 花店app 鲜花销售系统 网上花店(app+web)(源码+文档+运行视频+讲解视频)
  • java后端开发day11--综合练习(二)
  • 【模型部署】大模型部署工具对比:SGLang, Ollama, VLLM, LLaMA.cpp如何选择?
  • linux tcpdump文件分割
  • 【Vue】3.0利用远程仓库自定义项目脚手架
  • SPI机制:Java SPI原理及源码剖析、应用场景分析与自实现案例实战详解
  • linux利用nfs服务器,实现数据和windows环境拷贝
  • HTML之JavaScript分支结构
  • 127,【3】 buuctf [NPUCTF2020]ReadlezPHP
  • Redis 数据类型 String 字符串
  • 【linux学习指南】模拟线程封装与智能指针shared_ptr
  • 高级java每日一道面试题-2025年02月01日-框架篇[SpringBoot篇]-Spring Boot 的核心配置文件有哪几个?它们的区别是什么?
  • Scala语言的区块链
  • Log4j定制JSON格式日志输出
  • Scala语言的系统运维