什么是「推荐系统」,有哪些主要的推荐方法?

news2024/11/26 2:31:01

1 什么是推荐系统

什么是推荐系统?根据维基百科的定义, 它是一种信息过滤系统,主要功能是预测用户对物品 的评分和偏好。这一定义回答了推荐系统的功能是过滤信息、连接用户和推送信息。将这一定义扩 展一下, 推荐系统就是自动联系用户和物品的一种工具,它能够在信息过载的环境中帮助用户发现 令他们感兴趣的信息, 也能够将信息推送给感兴趣的用户。

推荐系统起源于 20 世纪 90 年代,经过 20 多年的积累和沉淀, 已经逐渐成为一门独立的学科, 并在学术研究和工业界的应用中取得了诸多成果, 如图 1- 1 所示。

如今,随着深度学习在推荐系统的广泛应用,推荐系统领域正式迈入了深度学习时代,微软 (Microsoft)、谷歌(Google)、百度、阿里巴巴等公司成功地在推荐、广告等业务场景中应用了深度 学习模型。推荐系统被应用于如下所示的诸多业务场景中。

● 信息流推荐场景,比如今日头条新闻推荐、360 快资讯、微信看一看等。

● 视频网站,比如 YouTube、腾讯视频、抖音等。

● 电商网站,比如淘宝、京东、亚马逊(Amazon)等。

个性化广告场景,比如百度、谷歌、 360 等网站的广告推荐模块。

● 个性化音乐场景,比如 QQ 音乐、酷狗音乐等 App 的音乐推荐模块。

● 社交网站,比如 Facebook、微信、领英等。

2 推荐系统的作用和意义

站在互联网企业的角度,在互联网应用及用户规模“爆炸式” 增长的时代, 如何做到千人千面, 为每个用户提供个性化的服务, 从而提升产品的使用率和用户黏性呢?这是推荐系统需要解决的 问题。站在用户的角度,面对海量的信息,如何高效检索自己感 兴趣的内容呢?这也是推荐系统需要解决的问题。

和搜索引擎不同, 个性化推荐系统需要依赖用户的行为数据。 对于不同的应用场景,推荐系统的优化目标是不一样的,比如淘 宝这样的电商平台关注的主要是用户点击后的转化率(conversion rate ,CVR);而 YouTube 这样的视频分享平台关注的主要是用户 的观看时长,这是因为 YouTube 的主要收入源于广告,增加用户 的观看时长可以提高广告的曝光度。

为了更直观地区分推荐系统在不同应用场景下发挥的作用, 本章尝试用两个应用场景来描述。

第一个应用场景是今日头条 App 新闻推荐频道 (见图 1-2)。 2018 年 1 月,今日头条的算法架构师发文公布了今日头条的算法 原理,文中提到今日头条关注的目标包含点击率 (click-throughrate ,CTR)、阅读时间、点赞、评论、转发等, 而其中最主要的目标就是 CTR。这主要是因为点击 量和公司的商业目标直接相关,而通过优化点击率来提升点击量是最直接的方法。

第二个应用场景是 YouTube 视频推荐。YouTube 是一个视频网站, 成立于 2005 年,每天要为全 球成千上万的用户提供高水平的视频上传、分发、展示、浏览服务。图 1-3 所示为 YouTube 网站首 页,里面包含各种形式的视频。前面提到过 YouTube 主要优化的是用户观看时长,算法工程师需要 根据业务指标调整模型结构和优化目标。早在 2016 年,YouTube 的算法工程师在 RecSys 会议上发表 了论文“Deep Neural Networks for YouTube Recommendations”非常明确地指出了将优化用户观看时 长设为最终优化目标的建模方法。在随后 2019 年的 WSDM 会议上,另一篇有关强化学习的论文“Top- KOff-Policy Correction for a REINFORCE Recommender System”提出的最终优化目标也是优化用户观 看时长,模型上线后总的用户观看时长提升 0.86%。后面的章节将会详细介绍这两篇论文的技术细节。

本文摘自《推荐系统技术原理与实践》

文亮著

分层介绍推荐系统全链路架构,精选大厂前沿技术方案,帮助读者深入学习、实践推荐系统知识体系,深度解读推荐系统技术的应用场景和前沿实践!

1.集机器学习和深度学习于一身,由360资深算法专家撰写,让你轻松掌握推荐系统的核心技术。

2.覆盖推荐系统召回、粗排、精排和重排全链路,本书从多个角度审视推荐系统中的公平性问题、知识蒸馏、冷启动等前沿实践,是推荐系统领域实践者不容错过的指南。

3.以业界实践为基础,介绍推荐系统的核心技术。通过谷歌、阿里巴巴等大型互联网公司在4层级联架构中的模型设计和实现原理,快速了解业内主流解决方案,搭建属于自己的实用知识体系。

本书系统介绍推荐系统的技术理论和实践。首先介绍推荐系统的基础知识;然后介绍推荐系统常用的机器学习和深度学习模型;接着重点介绍推荐系统的4层级联架构,包括召回、粗排、精排和重排,以及谷歌、阿里巴巴等大型互联网公司在4层级联架构中的模型设计和实现原理;紧接其后介绍多目标排序在推荐系统中的应用,具体介绍阿里巴巴、谷歌等大型互联网公司的实践;最后从不同角度审视推荐系统,介绍公平性问题、知识蒸馏、冷启动等各种前沿实践。本书基于一线研发人员的视角向读者分享推荐系统的实践经验,所有模型结构和前沿实践都在业务场景中落地。

本书适合推荐系统领域的从业者、高校科研人员、高校计算机专业学生,以及对推荐系统感兴趣的产品研发人员和运营人员阅读。

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

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

相关文章

文献阅读:MathPrompter: Mathematical Reasoning using Large Language Models

文献阅读:MathPrompter: Mathematical Reasoning using Large Language Models 1. 内容简介2. 方法细节3. 实验内容4. 结论&思考 文献链接:https://arxiv.org/abs/2303.05398 1. 内容简介 这篇文章是今年3月份的时候微软提出的一篇工作&#xff0…

SpringBoot中间件—ORM(Mybatis)框架实现

目录 定义 需求背景 方案设计 代码展示 UML图 实现细节 测试验证 总结 定义: ORM:Object Relational Mapping --> 对象关系映射,是一种程序设计技术,用于实现面向对象编程语言里面不同类型系统的数据之间的转换 需求背…

前端|CSS(一)| pink老师

参考视频:黑马程序员前端CSS3基础教程,前端必备基础 目录 📚CSS引入 🐇引入CSS样式表 📚CSS基础选择器 🐇标签选择器 🐇类选择器(最常用) 🐇id选择器 …

VIM文本如何复制到系统剪切板?

今天从vim上用鼠标复制代码,发现把VIM当中的行号也复制进去了,就很麻烦,于是简单研究了下,如果vim支持clipboard的话就比较好办,具体支持与否,使用命令查看: vim --version | grep "clipb…

C语言指针面试题

C语言指针面试题 一.指针和数组1.一维数组2.字符数组3.二维数组 二.指针 一.指针和数组 1.一维数组 int a[] {1,2,3,4};(1)printf("%d\n",sizeof(a));// 16(2)printf("%d\n",sizeof(a0));// 4/8(3)printf("%d\n",sizeof(*a));// 4(4)printf(&…

xred病毒分析

概述 xred病毒是一种感染型病毒,会感染系统中特定目录下的exe和xlsx文件,该病毒会将自身伪装成Synaptics触摸板驱动程序,使用Dephi编写。 样本的基本信息 Verified: Unsigned Link date: 6:22 1992/6/20 Company: Synaptics Description: S…

vue3 前端编码规范

prettier 配置 1. vscode 安装prettier 的 插件 2. 新建 .prettierrc 文件 {"semi": false, // 不尾随分号"singleQuote": true, // 使用单引号"trailingComma": "none" // 多行逗号分隔的语法,最后一行不加逗号 }eslin…

WPF嵌入外部exe应用程序-实现基本的嵌入

WPF嵌入外部exe应用程序 使用场景功能实现嵌入基本功能实现1.导入windows API2.运行外部程序3. 获取窗体句柄4. 嵌入窗体5.设置子窗体位置整个代码 嵌入存在的问题: 使用场景 在WPF桌面应用程序开发过程中,有时候需要将其他程序结合到一起,让…

Linux尖刀——shell

目录 知识点 lsblk grep awk tail du df 对新增存储设备的检测与分区 用lsblk查询块设备 用dmesg看内核打印信息 用ls查看新增设备 对rootfs空间使用情况的监控 知识点 首先想要用shell脚本解决一些问题肯定要熟悉linux的命令 lsblk -t或–tree:以…

Redis进阶底层原理- 缓冲区

Redis中使用了很多缓冲区,在redis各个环节起到了非常核心的作用。下面来一一介绍一下: 输入输出缓冲区(客户端缓冲区) Redis中的输入输出缓冲区是为了平衡客户端发送命令和服务端处理命令的速度差异,如果客户端发送指…

java用 postman输入 数字 会加上单引号 和逗号,方便查询

java用 postman输入 数字 会加上单引号 和逗号,方便查询 /*** 输入12575726* 891006* 12575726* 891006* 返回* 12575726,* 891006,* 12575726,* 891006* 方便查询数据* param data* return*/RequestMapping(value "l…

MySQL查看系统性能参数、统计SQL的查询成本last_query_cost的使用

1、查看MySQL系统性能参数 在MySQL中,可以使用SHOW STATUS语句查询一些MySQL数据库服务器的性能参数、执行频率。 语法如下: SHOW [ GLOBAL | SESSION] STATUS LIKE 参数; 一些常用的性能参数如下: Connections:连接MySQL服…

《银行法律法规》三、银行管理——2、公司治理、 内部控制与合规管理

第二章 公司治理、 内部控制与合规管理 第一节 公司治理 考点1 银行公司治理概述★★ 商业银行公司治理是指股东大会、 董事会、 监事会、 高级管理层、 股东及其他利益相关者之间的相互关系, 包括组织架构、 职责边界、 履职要求等治理制衡机制, 以…

从零到精通!50个必懂IT术语,让你成为行业翘楚!

您刚进入IT行业?不必惊慌!我们为您整理了50个最常见的IT术语,从ICT到ITIL再到SLM,全方位解读,让您快速掌握这些关键概念。更令人兴奋的是,我们将向您介绍轻易云数据集成平台,它是您在数字化转型…

Redis进阶底层原理 - 分区算法方案

Redis分区是指将数据分散到不同的Redis实例,降低单个Redis实例内存和高并发请求的压力。为什么要做分区:目前来说前面所学知识都是基于Redis单实例上进行的,及时是哨兵模式也只是保证了单个Redis实例的可用性。当内存数据越来越多时单个Redis…

BOM编程

十四、BOM和DOM编程 windows对象 常见方法 _self:在当前页面打开窗口 _blank:打开一个新的选项卡 第一个参数是x轴,一般没有横向滚动条,都是操作第二个参数 history对象 属性:一般用不到 方法: 01.histor…

PCB规则设置

PCB设计规则 网络class设置间距规则设置线宽规则过孔规则设置铺铜规则设置其他规则设置 网络class设置 间距规则设置 进入规则设置 线宽规则 新建线宽选项,电源类 过孔规则设置 铺铜规则设置 其他规则设置

Django ORM Field源码解读

已models.py的CharField字段代码为起点 secret_id = models.CharField("secret_id", max_length=256, default="") 构造方法中,会去调父类Field 的构造方法,而后向 CharField 的验证器列表 中添加一个 MaxLengthValidator 对象,用于…

leecode 数据库:1084. 销售分析III

导入数据: Create table If Not Exists Product (product_id int, product_name varchar(10), unit_price int); Create table If Not Exists Sales (seller_id int, product_id int, buyer_id int, sale_date date, quantity int, price int); Truncate table Prod…

Elasticsearch中查询性能优化

Elasticsearch是一种流行的搜索引擎和分布式文档存储解决方案,它的高效性能和可伸缩性使其成为许多应用程序的首选存储引擎。在工作中,优化Elasticsearch的检索性能是一个非常重要的任务,可以大大提高应用程序的响应速度和用户体验。下面我们…