推荐系统学习笔记-冷启动

news2025/2/3 6:48:21

简介

推荐系统的主要目标是将大量的标的物推荐给可能喜欢的海量用户, 这里涉及到标的物和用户两类对象。任何互联网推荐产品, 标的物和用户都是不断增长变化的,所以一定会频繁面对新标的物和新用户, 推荐系统冷启动问题指的就是对于新注册的用户或者新入库的标的物, 该怎么给新用户推荐标的物让用户满意,怎么将新标的物分发出去,推荐给喜欢它的用户。

另外,如果是新开发的产品,初期用户很少,用户行为也不多,常用的协同过滤、深度学习等依赖大量用户行为的算法不能很好的训练出精准的推荐模型, 怎么让推荐系统很好的运转起来,让推荐变得越来越准确,这个问题就是系统冷启动。

简单来说,新用户、新内容对推荐系统来说都是没有过往信息积累的、陌生的,需要通过累计一定的曝光量和互动量来收集基础数据。这个从0到1积累基础数据的过程就是冷启动,其效果的好坏直接关系到整个产品新用户的留存和转化,而用户留存和转化的提升是做冷启动优化的动力来源。

总之,推荐系统冷启动主要分为标的物冷启动、用户冷启动、系统冷启动三大类。

用户冷启动

主要解决如何对新用户做个性化推荐问题。当新用户到来时,没有其行为数据,无法根据其历史行为预测其兴趣,从而无法借此做个性化推荐

物品冷启动

主要解决如何将新的物品推荐给可能对它感兴趣的用户

系统冷启动

主要解决如何在一个新的网站上(没有用户,也没有用户行为,只有一些物品信息)设计个性化推荐系统,从而在网站方发布时就让用户体验到个性化推荐服务

重要性

用户不确定性需求是客观存在的,在当今信息爆炸的时代,用户的不确定性需求更加明显,而推荐作为一种解决用户不确定性需求的有效手段在互联网产品中会越来越重要, 特别是随着短视频、新闻等应用的崛起,推荐的重要性被更多人认可。很多产品将推荐业务放到最核心的位置(如首页),或者是整个产品的核心,比如今日头条等各类信息流产品及很多电商类产品。因此,新用户必须要面对冷启动这个问题。

从上面的介绍中可以知道,新用户、新标的物是持续产生的,对互联网产品来说是常态,是无法避免的,所以冷启动问题会伴随整个产品的生命周期。特别是当你投入很大的资源推广你的产品时, 短期会吸引大量的用户来注册你的产品(比如今年百度的春晚红包),这时,用户冷启动问题将会更加严峻,解决冷启动问题也会更加迫切。

既然很多产品将推荐放到这么好的位置, 而推荐作为一种有效提升用户体验的工具,在新用户留存中一定要起到非常关键的作用,如果推荐系统不能很好的为新用户推荐好的内容,新用户可能会流失。所以如果不解决冷启动问题,你的新用户一直会得不到好的推荐体验,极有可能会流失掉。

新用户的留存对一个公司来说非常关键, 服务不好新用户,并让用户留下来,你的用户增长将会停滞不前。对于互联网公司来说, 用户是公司赖以生存的基础,是利润的核心来源。可以毫不夸张地说,如果不能很好的留住新用户,让总用户健康的增长,整个公司将无法运转下去。因为互联网经济是建立在规模用户基础上的,只有用户足够多,你的产品才会有变现的价值(不管是会员、广告、游戏、增值服务,你的总营收基本线性依赖于用户数, 拿会员来举例说明,会员总收益=日活跃用户数付费率客单价)。同时,只有你的产品有很好的用户增长曲线, 投资人才会相信未来用户大规模增长的可能, 才能看得到产品未来的变现价值,才会愿意在前期投资你的产品。

面临的问题

我们一般对新用户知之甚少, 所以基本不知道用户的真实兴趣,从而很难为用户推荐他喜欢的标的物;
我们对新用户知之甚少的主要原因有:

(1) 很多APP也不强求用户注册时填写包含个人身份属性及兴趣偏好的信息,其实也不应该让新用户填写太多的信息,否则用户就嫌麻烦不用你的产品了。由于没有这些信息,我们没法得到用户的画像。

(2) 新用户由于是新注册的,在产品上的访问行为没有或者很少,不足以用复杂的算法来训练推荐模型;

对于新的标的物,我们也不知道什么用户会喜欢它,只能根据用户历史行为了解用户的真实喜好,如果新的标的物与库中存在的标的物可以建立相似性联系的话, 我们可以基于这个相似性将标的物推荐给喜欢与它相似标的物的用户。但是,很多时候标的物的信息不完善、包含的信息不好处理、数据杂乱,或者是新标的物产生的速度太快(如新闻类,一般通过爬虫可以短时间爬取大量的新闻),短时间类来不及处理或者处理成本太高,或者是完全新的品类或者领域,无法很好的建立与库中已有标的物的联系,所有这些情况都会增加将标的物分发给喜欢该标的物的用户的难度。

对于新开发的产品,由于是从零开始发展用户,冷启动问题就更加凸显,这时每个用户都是冷启动用户,面临的挑战更大。

一般的冷启动策略

提供非个性化的推荐(用户冷启动)
利用用户注册时提供的信息(用户冷启动、系统冷启动)
基于内容做推荐(用户冷启动、系统冷启动)
利用标的物的metadata信息做推荐(标的物冷启动)
采用快速试探策略(用户冷启动、标的物冷启动)
采用兴趣迁移策略(用户冷启动、系统冷启动)
采用基于关系传递的策略(标的物冷启动)

具体的冷启动策略

用户冷启动

非个性化推荐(与具体用户无关)

推送整体热门
用户画像
推送不同时间段热门
推送各类排行榜

构建用户画像

在这里插入图片描述
尽可能收集用户信息
新用户信息收集启动项
1人的兴趣描述启动项: 音乐风格等
2人口统计学信息:年龄,性别,学历

站外数据
1微信
2合作方的数据
3算法对缺失或深层隐藏信息做预估

利用已有用户信息进行粗粒度推荐

• 利用专家经验和基础属性信息做更细粒度排行榜,热度榜
基于性别、设备信息、网络信息、位置等用户和上下文信息相关的榜单
• 利用算法和基础属性的做更细粒度榜单
训练决策树模型构建叶子结点对应的冷启动榜单
• 利用外部数据寻找相似用户做推荐
微信好友,拼多多好友等
• 少样本学习算法

物品冷启动

概览

针对新上线的标的物,基于上述7大冷启动解决思路,可行的解决标的物冷启动的方案与策略有:

利用标的物的metadata信息做推荐
(1)利用标的物跟用户行为的相似性

可以通过提取新入库的标的物的特征(如标签、采用TF-IDF算法提取的文本特征、基于深度学习提取的图像特征等),通过计算标的物特征跟用户行为特征(用户行为特征通过他看过的标的物特征的叠加,如加权平均等)的相似性,从而将标的物推荐给与它最相似的用户。

(2) 利用标的物跟标的物的相似性

可以基于标的物的属性信息来做推荐,一般新上线的标的物或多或少都是有一些属性的,根据这些属性找到与该标的物最相似(利用余弦相似度等相似算法)的标的物,这些相似的标的物被哪些用户“消费”过,可以将该标的物推荐给这些消费过的用户。

采用快速试探策略
另外一种思路是借用强化学习中的exploration-exploitation思想,将新标的物曝光给随机一批用户,观察用户对标的物的反馈,找到对该标的物有正向反馈(观看,购买,收藏,分享等)的用户, 后续将该标的物推荐给有正向反馈的用户或者与该用户相似的用户。

该方法特别适合像淘宝这种提供平台的电商公司以及像今日头条、快手、阅文等UGC平台公司,他们需要维护第三方生态的繁荣,所以需要将第三方新生产的标的物尽可能的推荐出去,让第三方有利可图。同时通过该方式也可以快速知道哪些新的标的物是大受用户欢迎的,找到这些标的物,也可以提升自己平台的营收。

采用基于关系传递的策略
当产品在拓展标的物品类的过程中,比如视频类应用,前期只做长视频,后来拓展到短视频,那么对某些没有短视频观看行为的用户,怎么给他做短视频推荐呢?可行的方式是借用数学中关系的传递性思路,利用长视频观看历史,计算出用户的相似度。对新入库的短视频,可以先计算与该短视频相似的长视频,我们可以将该短视频推荐给喜欢与它相似的长视频的用户。

该相似关系的传递性可描述为:短视频与长视频有相似关系,长视频与喜欢它的用户有相似关系,最终得到短视频与用户有相似关系。

基于规则
固定展示位上新物品随机推荐
利用物品内容信息进行不同粒度匹配(图书分类)
物品冷启动不敏感的算法
协同过滤User-CF
look-alike相似人群扩展
利用物品信息获取相似物品进行模型的推荐
探索与利用策略

探索与利用

Exploration 与 Exploitation
Exploration :
寻找用户可能喜欢的新物品,或者说可能对这个新物品感
兴趣的用户,探索用户可能感兴趣的信息
Exploitation:
充分利用已有信息,推荐最大价值或最感兴趣物品
选餐厅:
Exploration :尝试新餐厅。
Exploitation:去最喜欢的餐厅。
在线广告:
Exploration :展示些不同的广告。
Exploitation:展示最好的广告。

对应算法

• 𝜀 − 𝐺𝑟𝑒𝑒𝑑𝑦简单贪心
• 𝑇ℎ𝑜𝑚𝑝𝑠𝑜𝑛 𝑆𝑎𝑚𝑝𝑙𝑖𝑛𝑔汤普森采样
• 𝑈𝐶𝐵置信上界
• 𝐿𝑖𝑛 − 𝑈𝐶𝐵线性置信上界

系统冷启动

发挥专家作用
没有用户的行为数据,也没有充足的物品内容信息来计算准确的物品相似度
专家(或算法)进行标注以便根据多维度特征表示向量计算物品相似度

在这里插入图片描述
或者使用相似业务的迁移

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

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

相关文章

CDGA|2022年内有超20家银行因数据治理模块受罚,原因都在这里

今年,银保监会对银行数据治理的监管趋严,对银行机构在监管数据质量和数据报送中存在的违法违规行为,不断加大处罚与整治力度。 近日,北京农商银行收到的一张630万元罚单显示,该行主要存在的违法违规事实具体为&#xf…

NVMe解读

看NVMe协议(1.0e)过程中,参考了SSDFans的很多文章内容, 目录 1. 综述 3 1.1 名词解释 3 1.1.1 Namespace 3 1.1.2 Fused Operations 4 1.1.3 指令执行顺序 4 1.1.4 写单元的原子性 4 1.1.5 元数据 4 1.1.6 仲裁机制 4 1…

图数据库知识点3:图数据库解决了什么问题?

在前面的两个知识点中我们先后介绍了: 知识点1:图数据库与关系型数据库的区别 知识点2:图思维方式 现在,我们可以更进一步来通过具体的例子来了解图数据库、图计算到底解决了什么问题。我们先来剖析下面这个问题: 图数据库查询…

【Vue实用功能】elementUI 自定义表单模板组件

elementUI 实现一个自定义的表单模板组件 注&#xff1a;该功能基于elementUI 背景&#xff1a;在项目开发中&#xff0c;我们会遇到这种需求&#xff0c;在管理后台添加自定义表单&#xff0c;在指定的页面使用定义好的表单 直接上代码&#xff1a; <template><di…

DBCO-PEG-NHS, 可溶于水,有多种分子量供选择

凯新生物DBCO-PEG-NHS衍生物可以点击化学反应不需要任何金属催化剂。反应促进1,3-偶极环加成反应&#xff0c;环辛炔和叠氮化合物&#xff0c;也被称为铜自由点击反应&#xff0c;是一种生物正交反应使溶液中的两个分子的共轭。DBCO PEG衍生物具有缓冲溶液中快速的动力学和稳定…

C语言基础【程序=算法+数据结构】——(数据结构——基础篇)

欢迎小伙伴的点评✨✨ 本篇章系列是对C语言的深度思考和总结、关于C语言内容会持续更新。 文章目录✨前言✨数据的表现形式✨数据类型一、基本类型1.1、整型类型1.1.1、基本整型(int)1.1.2、短整型(short int)1.1.3、长整型(long int)1.1.4、*双长整型(long long int)1.1.5、字…

1556:Dis——Tarjan求LCA、倍增求LCA

【题目描述】 给出 n 个点的一棵树&#xff0c;多次询问两点之间的最短距离。 注意&#xff1a;边是双向的。 【输入】 第一行为两个整数 n 和 m。n 表示点数&#xff0c;m 表示询问次数&#xff1b; 下来 n−1 行&#xff0c;每行三个整数 x,y,k&#xff0c;表示点 x 和点 …

英文计算机论文写作,需要注意哪些细节? - 易智编译EaseEditing

&#xff08;1&#xff09;尽量用动词少用名词化 那些大篇名词的文章真的很难读懂&#xff0c;而有强大动词的句子更容易理解。 我们注意到客户在论文中经常使用的名词有“agreement”, “disagreement”, “investigation”, “analysis”, “examination”, “comparison”…

Qt 中的多项目管理

背景&#xff1a; 在Visual Studio中使用 “Solution” 来组织多个 Projects。 在Qt中&#xff0c;使用 "Subdirs Project"来组成多个projects &#xff0c;实现VS中的Solution功能。 项目类型 首先是先新建一个子目录项目&#xff0c;再根据需要在子目录项目中添…

漏洞深度分析|CVE-2022-1471 SnakeYaml 命令执行漏洞

项目介绍 YAML是一种数据序列化格式&#xff0c;设计用于人类的可读性和与脚本语言的交互。 SnakeYaml是一个完整的YAML1.1规范Processor&#xff0c;支持UTF-8/UTF-16&#xff0c;支持Java对象的序列化/反序列化&#xff0c;支持所有YAML定义的类型。 项目地址 https://gi…

javaee之MyBatis框架3

mybatis中编写dao实现类的使用方式 简单说一下实现原理&#xff1a; 下面来说一下UserDaoImpl的实现原理 mybatis主配置文件中properties标签的使用 第一种&#xff1a; <property name"driver" value"com.mysql.jdbc.Driver"></property> &…

软件加密保护:Mirage License Protector v5 注册版

Mirage License Protector v5.1.0 适用于许多编译器 License Protector 是一个 DLL / COM exe&#xff0c;几乎可以与 所有编译器一起使用&#xff1a;C、C#、.NET、Delphi、VB6 和 VB.NET&#xff0c; 32 位和 64 位的 Java 哪种产品适合我&#xff1f; 选择许可证保护器 应…

智能无障碍轮椅——PID算法控制

文章目录一、PID算法二、控制方法对比棒棒控制&#xff08;启停控制器&#xff09;比例控制PI控制PID控制三、PID的手动整定四、PID衰减曲线整定五、PID调节器各校正环节的作用是&#xff1a;六、PID算法的一般表达式是&#xff1a;七、计算注意事项一、PID算法 PID控制是最早…

图像语义分割网络FCN(32s、16s、8s)原理及MindSpore实现

一、FCN网络结构 全卷积网络(Fully Convolutional Networks)&#xff0c;是较早用于图像语义分割的神经网络。根据名称可知&#xff0c;FCN主要网络结构全部由卷积层组成&#xff0c;在图像领域&#xff0c;卷积是一种非常好的特征提取方式。本质上&#xff0c;图像分割是一个分…

DBCO-PEG-NH2/Amine二苯基环辛炔-聚乙二醇-氨基 简介。用于以高特异性和反应性标记叠氮化物修饰的生物分子。

中文名称&#xff1a; 二苯基环辛炔-聚乙二醇-氨基 氨基-聚乙二醇-二苯基环辛炔 英文简称&#xff1a; DBCO-PEG-NH2/Amine Amine/H2N-PEG-DBCO 外观&#xff1a; 灰白色固体或半固体&#xff0c;取决于PEG的分子量 溶剂&#xff1a; 部分常规有机溶剂 存储…

day20-django

文件上传 批量上传数据 案例&#xff1a;混合数据(Form) 提交页面&#xff1a;用户输入数据文件&#xff08;输入不能为空&#xff0c;报错&#xff09; django开发过程中两个特殊的文件夹 static&#xff1a;存放静态文件的路径&#xff0c;包括css、js、项目图片 media&…

【问题记录】Git问题记录

文章目录问题1Failed to connect to github.com port 443 after 21085 ms: Timed outOpenSSL SSL_read: Connection问题2unable to access https://github.com//: OpenSSL SSL_read: Connection was reset, errno 10054网速慢问题clone太慢&#xff0c;pull太慢怎么办问题1 Fa…

记录C,C++关键字的位置,直接跳过注释和字符串文本。

依据第二版本&#xff0c;可以写一个跳过注释的查找函数 C_IndexOfWord Java_IndexOfWord CSharp_IndexOfWord 还有一种方法&#xff0c;可以先把所有注释用空格代替&#xff0c;查出的字符位置也不变。 以前版本&#xff1a; DList<TextColor> Syntax::GetTextColor…

m基于matlab的连续相位调制(CPM)解调系统仿真,包括解调,同步等模块

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 随着数字通信技术的飞速发展&#xff0c;数字通信的调制技术也得到了快速发展&#xff0c;其中连续相位调制(Continuous Phase Modulation&#xff0c;CPM)作为一种全新的通信调制方法得到了越来…

GNN 极简入门

文章目录图基本知识GNN简介GCNPYG极简入门Data Handling of GraphsCommon Benchmark DatasetsMini-batchesData TransformsLearning Methods on Graphs图基本知识 &#x1f638;图是由节点的有穷非空集合和节点之间边的集合组成&#xff0c;通常表示为 G(V,E)G(V, E)G(V,E)&am…