【第三章】推荐系统冷启动问题

news/2024/9/29 21:33:24

推荐系统需要根据用户的历史行为和兴趣预测用户未来的行为和兴趣,在没有足够初始数据的情况下,设计个性化推荐系统并且让用户对推荐结果满意从而愿意使用推荐系统,就是冷启动的问题。

3.1 冷启动问题简介

  • 用户冷启动:新用户没有历史数据
  • 物品冷启动:将新物品推荐给可能对它感兴趣的用户
  • 系统冷启动:没有用户,也没有用户行为,只有一些物品的信息,但是要让用户有个性化体验

3.2 利用用户注册信息

基于注册信息的个性化推荐流程基本如下:

  1. 获取用户的注册信息;
  2. 根据用户的注册信息对用户分类;
  3. 给用户推荐他所属分类中用户喜欢的物品。

基于用户注册信息的推荐算法其核心问题是计算每种特征的用户喜欢的物品。也就是说,对于每种特征f,计算具有这种特征的用户对各个物品的喜好程度\(p (f, i )\)

\[p(f, i) = |N(i) \cap U(f)| \]

其中\(N(i )\)是喜欢物品i的用户集合,\(U( f)\)是具有特征f的用户集合
但是,热门的物品会在各种特征的用户中都具有比较高的权重,也就是\(|N(i)|\)高的物品\(p(f, i)\)一般都比较高,所以分母可以除一个\(N(i)\):

\[p(f, i) = \frac{|N(i) \cap U(f)|}{N(i) + \alpha} \]

这里分母中使用参数\(\alpha\)的目的是解决数据稀疏问题。比如有一个物品只被1个用户喜欢过,而这个用户刚好就有特征\(f\),那么就有\(p( f, i)=1\)。但是,这种情况并没有统计意义,因此我们为分母加上一个比较大的数,可以避免这样的物品产生比较大的权重。

3.3 选择合适的物品启动用户的兴趣

解决用户冷启动问题的另一个方法是在新用户第一次访问推荐系统时,不立即给用户展示推荐结果,而是给用户提供一些物品,让用户反馈他们对这些物品的兴趣,然后根据用户反馈给提供个性化推荐。
一般来说,能够用来启动用户兴趣的物品需要具有以下特点:

  • 比较热门:如果要让用户对一个物品进行反馈,前提是用户知道这个物品是什么东西
  • 具有代表性和区分性:用一部票房很高且广受欢迎的电影做启动物品,可以想象的到的是几乎所有用户都会喜欢这部电影,因而无法区分用户个性化的兴趣。
  • 启动物品集合需要有多样性:在冷启动时,我们不知道用户的兴趣,而用户兴趣的可能性非常多,为了匹配多样的兴趣,我们需要提供具有很高覆盖率的启动物品集合,这些物品能覆盖几乎所有主流的用户兴趣。

如何设计一个选择启动物品集合的系统——决策树
区分度D(i):

\[D(i) = \sigma_{u \in N^+(i)} + \sigma_{u \in N^-(i)} + \sigma_{u \in \bar{N}(i)} \]

其中,\(N^+(i)\)是喜欢物品i的用户集合,\(N^+(i)\)是不喜欢物品i的用户集合,\(\bar{N}(i)\)是没有对物品i评分的用户集合。

Nadav Golbandi的算法首先会从所有用户中找到具有最高区分度的物品i,然后将用户分成3类。然后在每类用户中再找到最具区分度的物品,然后将每一类用户又各自分为3类,也就是将总用户分成9类,然后这样继续下去,最终可以通过对一系列物品的看法将用户进行分类。而在冷启动时,我们从根节点开始询问用户对该节点物品的看法,然后根据用户的选择将用户放到不同的分枝,直到进入最后的叶子节点,此时我们就已经对用户的兴趣有了比较清楚的了解,从而可以开始对用户进行比较准确地个性化推荐。
例子
image

3.4 利用物品的内容信息

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

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

相关文章

kettle从入门到精通 第五十八课 ETL之kettle HTTP post使用教程

1、今天群里有位朋友问我有没有关于调用http接口的kettle 示例,我下意识的去翻我的公众号推文,愣是没找到。果断开始撸。 2、本次演示流程通过调用接口【网易云音乐随机歌曲】,然后解析返回的数据,接口信息如下图所示:3、本次演示流程通过调用接口【网易云音乐随机歌曲】,…

通过Docker Compose部署GitLab和GitLab Runner(一)

GitLab 是一个用于版本控制、项目管理和持续集成的开源软件平台,它提供了一整套工具,能够帮助团队高效地协作开发。而 GitLab Runner 则是 GitLab CI/CD 的执行者,用于运行持续集成和持续交付任务。 在本文中,我们将使用 Docker Compose 来快速部署 GitLab 和 GitLab Runne…

d3d12龙书阅读----绘制几何体(下)

d3d12龙书阅读----绘制几何体(下) 本节在上一节的基础上,对整个绘制过程进行优化,将绘制单个几何体的内容拓展到了多个几何体,同时对根签名进行了进一步地探索。 帧资源 在之前绘制每帧的结尾,我们都要使用flushingcommandqueue方法,要一直等待gpu执行完所有命令,才会继…

如何使用postman测试带Token的登录以及其他的测试接口

参考文章:https://blog.csdn.net/xzytl60937234/article/details/845009371.Postman设置变量并访问 点击右上角眼睛,在Globals选项中,选择edit 然后add 在弹出的页面中:,填写token 填写成功之后,右下角,点击save 在登录接口中,Test 选项中加入以下代码 var data = JSO…

PTA-1002

原先主要错误: 没有考虑到有关0的相关情况观看的大佬代码整理思路无非就是在相同的指数的情况下,系数相加 因为最后是要从大到小输出来。注意要对最后的结果进行四舍五入; PTA的英语题对英语不好的我真心不友好。#include<map> #include<cmath> #include<iost…

【笔记】通过目标编码和分类损失的神经场分类器【ICLR2024】

这是一篇发表在 ICLR 2024 会议上的学术论文的阅读笔记,题为“通过目标编码和分类损失的神经场分类器”,作者来自北京交通大学和百度研究院。 为什么会找到这篇文章,因为文章的一个作者是HKUST一个基础实验室的,搞的是偏底层的算法理论,所以自然就顺下来了。但是看完之后发…

winform开发杂碎知识点

1、Form属性 起始位置:StartPosition 默认最大化:WindowState 最小尺寸:MinimumSize 是否父窗体:IsMdiContainer ImeMode 图标:icon2、Form事件3、Location 元素相对父控件或父元素的位置1 this.panelLogin.BackColor = System.Drawing.Color.White;2 this.p…

【软件构造课程相关】幻方及其构造(下)

前言 ​ 在上一篇博客(click here)中,我们完成了实验要求的部分,即实现奇数阶幻方的构造。接下来我们将要着手实现剩下的4M阶幻方和4M+2阶幻方的构造。 构造方法 4M阶幻方 ​ 4M阶幻方的构造方法较奇数阶幻方的构造更为复杂,在此我们采用对角线法,其策略如下:…