浅谈冷启动问题 (推荐系统相关)
1.冷启动问题定义
推荐系统需要根据用户的历史行为和兴趣预测用户未来的行为和兴趣,对于BAT这类大公司来说,它们已经积累了大量的用户数据,不发愁。但是对于很多做纯粹推荐系统的网站或者很多在开始阶段就希望有个性化推荐应用的网站来说,如何在对用户一无所知(即没有用户行为数据)的情况下进行最有效的推荐呢?这就衍生了冷启动问题。
2.冷启动的分类
冷启动问题主要分为3类:
- 用户冷启动,即如何给新用户做个性化推荐
- 物品冷启动,即如何将新的物品推荐给可能对它感兴趣的用户
- 系统冷启动,即如何在一个新开发的网站(没有用户,没有用户行为,只有部分物品信息)上设计个性化推荐系统,从而在网站刚发布时就让用户体会到个性化推荐
3.冷启动问题的解决方案
3.1提供非个性化的推荐
最简单的例子就是提供热门排行榜,可以给用户推荐热门排行榜,等到用户数据收集到一定的时候,再切换为个性化推荐。
关于热门排行榜解决推荐问题的理论测试,可以参考着篇文章 Performance of recommender algorithms on top-n recommendation tasks.
并且Netflix的研究也表明新用户在冷启动阶段确实是更倾向于热门排行榜的,老用户会更加需要长尾推荐
(参考知乎:严林-回答)
3.2利用用户注册信息
用户的注册信息主要分为3种:
- 人口统计学信息,包括年龄、性别、职业、民族、学历和居住地
- 用户兴趣的描述,部分网站会让用户用文字来描述兴趣
- 从其他网站导入的用户站外行为,比如用户利用社交网站账号登录,就可以在获得用户授权的情况下导入用户在该社交网站的部分行为数据和社交网络数据
这种个性化的粒度很粗,假设性别作为一个粒度来推荐,那么所有刚注册的女性看到的都是同样的结果,但是相对于男女不区分的方式,这种推荐精度已经大大提高了。
推荐流程基本如下:
- 获取用户的注册信息
- 根据用户的注册信息对用户分类
- 给用户推荐他所属分类中用户喜欢的物品
举一个简单例子说明下:
利用用户注册信息进行推荐
3.3选择合适的物品启动用户的兴趣
用户在登录时对一些物品进行反馈,收集用户对这些物品的兴趣信息,然后给用户推荐那些和这些物品相似的物品。
一般来说,能够用来启动用户兴趣的物品需要具有以下特点:
- 比较热门,如果要让用户对物品进行反馈,前提是用户得知道这是什么东西;
- 具有代表性和区分性,启动用户兴趣的物品不能是大众化或老少咸宜的,因为这样的物品对用户的兴趣没有区分性;
- 启动物品集合需要有多样性,在冷启动时,我们不知道用户的兴趣,而用户兴趣的可能性非常多,为了匹配多样的兴趣,我们需要提供具有很高覆盖率的启动物品集合,这些物品能覆盖几乎所有主流的用户兴趣
下面以网易云音乐私人FM为例,来看一看它是怎么做的
网易云音乐 - 私人FM
幽默的文案加上适当的引导,用户在使用过程中也是会很开森的~
参考知乎:刘彦彬 - 回答
3.4利用物品的内容信息
用来解决物品的冷启动问题,即如何将新加入的物品推荐给对它感兴趣的用户。物品冷启动问题在新闻网站等时效性很强的网站中非常重要,因为这些网站时时刻刻都有新物品加入,而且每个物品必须能够再第一时间展现给用户,否则经过一段时间后,物品的价值就大大降低了。
针对协同过滤的两种推荐算法——userCF算法、itemCF算法来分别了解一下物品冷启动的问题。
userCF算法
针对推荐列表并不是给用户展示内容的唯一列表(大多网站都是这样的)的网站
当新物品加入时,总会有用户通过某些途径看到,那么当一个用户对其产生反馈后,和他历史兴趣相似的用户的推荐列表中就有可能出现该物品,从而更多的人对该物品做出反馈,导致更多的人的推荐列表中出现该物品。因此,该物品就能不断扩散开来,从而逐步展示到对它感兴趣用户的推荐列表中针对推荐列表是用户获取信息的主要途径(例如豆瓣网络电台)的网站
userCF算法就需要解决第一推动力的问题,即第一个用户从哪儿发现新物品。最简单的方法是将新的物品随机战士给用户,但是太不个性化。因此可以考虑利用物品的内容信息,将新物品先投放给曾经喜欢过和它内容相似的其他物品的用户itemCF算法
对itemCF算法来说,物品冷启动就是很严重的问题了。因为该算法的基础是通过用户对物品产生的行为来计算物品之间的相似度,当新物品还未展示给用户时,用户就无法产生行为。为此,只能利用物品的内容信息计算物品的相关程度。基本思路就是将物品转换成关键词向量,通过计算向量之间的相似度(例如计算余弦相似度),得到物品的相关程度。
下表列出了常见物品的内容信息:
常见物品的内容信息
3.5采用专家标注
很多系统在建立的时候,既没有用户的行为数据,也没有充足的物品内容信息来计算物品相似度。这种情况下,很多系统都利用专家进行标注。
代表系统:个性化网络电台Pandora、电影推荐网站Jinni
以Pandora电台为例,Pandora雇用了一批音乐人对几万名歌手的歌曲进行各个维度的标注,最终选定了400多个特征。每首歌都可以标识为一个400维的向量,然后通过常见的向量相似度算法计算出歌曲的相似度。
以上均为书中描述到的方法,下面再介绍两种方法
参考自:刘彦彬 - 回答
3.6利用用户在其他地方已经沉淀的数据进行冷启动
以QQ音乐举例:
QQ音乐的猜你喜欢电台想要去猜测第一次使用QQ音乐的用户的口味偏好,一大优势是可以利用其它腾讯平台的数据,比如在QQ空间关注了谁,在腾讯微博关注了谁,更进一步,比如在腾讯视频刚刚看了一部动漫,那么如果QQ音乐推荐了这部动漫里的歌曲,用户会觉得很人性化。这就是利用用户在其它平台已有的数据。
再比如今日头条:
它是在用户通过新浪微博等社交网站登录之后,获取用户的关注列表,并且爬取用户最近参与互动的feed(转发/评论等),对其进行语义分析,从而获取用户的偏好。
所以这种方法的前提是,引导用户通过社交网络账号登录,这样一方面可以降低注册成本提高转化率;另一方面可以获取用户的社交网络信息,解决冷启动问题。
3.7利用用户的手机等兴趣偏好进行冷启动
(这一点还真是超乎我的想象=_=)
Android手机开放的比较高,所以在安装自己的app时,就可以顺路了解下手机上还安装了什么其他的app。比如一个用户安装了美丽说、蘑菇街、辣妈帮、大姨妈等应用,就可以判定这是女性了,更进一步还可以判定是备孕还是少女。
目前读取用户安装的应用这部分功能除了app应用商店之外,一些新闻类、视频类的应用也在做,对于解决冷启动问题有很好的帮助。
参考: https://www.jianshu.com/p/97e46f933010
友情链接:https://blog.csdn.net/Mr_tyting/article/details/63684839
浅谈冷启动问题 (推荐系统相关)相关推荐
- 浅谈用户密码保护与相关技术
浅谈用户密码保护与相关技术(上) 一. 全文涉及 上篇:哈希,彩虹表 下篇:加盐加密,慢哈希,非对称加密与HTTPS 二. 主题引入 2011年12月21日,CSDN后台数据库被黑客恶意发布到互联 ...
- 浅谈Java中类的相关内容
目录 阅前说明 面向对象思想 面向对象思想概述 类和对象 代码示例 对象内存图 继承 概述 定义 优点 格式 代码示例 super和this super和this的含义 用法 抽象类 概述 抽象类的使 ...
- 浅谈Android之SurfaceFlinger相关介绍(一)
SurfaceFlinger是GUI的核心,以系统服务的形式存在,负责将所有App的图形数据按照Z Order顺序混合并输出到FrameBuffer. 根据图中描述,从下到上依次介绍: 1) 这里的 ...
- 浅谈大数据及相关技术在计算机专业的应用
信息时代,各种高新科技高速发展,现代科学技术发展进入了"快车道",科学技术的实践化应用改变了人们的生活,其中就包括人工智能技术的应用,如智能家居系统.智能汽车.智慧城市等. 所谓人 ...
- 浅谈安卓线程池相关问题
作为一个标准的程序员,我们都非常清楚.线程的创建和销毁时一个耗时的操作,如果在程序中反复创建和销毁,那么APP的流畅度会很受影响,甚至会奔溃.为了增加程序健壮性且能是实现复杂业务逻辑,这时候我们引入线 ...
- 浅谈算法——多项式乘法相关
从多项式乘法到FFT 这一段大部分是复制以前我写的这篇博客: https://blog.csdn.net/wang3312362136/article/details/79510933 这篇博客有详细 ...
- movielens推荐系统_浅谈推荐系统+3个小时上手python实现(完整代码)
已经9012年了应该也不需要我解释什么是推荐系统,大致就像头图一样,挖掘用户的喜好,精准的推送给用户ta想要的东西!推荐系统可以说是无处不在了,电商的猜你喜欢,浏览器右侧的推送消息,包括搜索结果的排序 ...
- 教育教学知识与能力小学计算机,浅谈小学计算机教学论文
在小学的教育中,计算机教学也成为了非常重要的教学内容,但是从现阶段小学计算机教学的实际情况看还存在很多需要去解决的问题,只有采取合理的对策和措施去有效解决当前存在的问题,才能有效提高小学计算机教学质量 ...
- 计算机专业教学论文,浅谈计算机专业教学论文
现代职业教育注重实践性教学,老的教学模式已经不适应现代化教学的需要,教学改革势在必行.中职学校计算机专业教学的任务,就是使学生掌握计算机软.硬件基本知识,掌握利用计算机分析问题.解决问题的方法,提高学 ...
最新文章
- 优化选项对ARM下指针赋值的影响
- JSON WEB TOKEN
- Python进阶01 词典
- java6 disable ssl2.0_SpringBoot2.0如何启用https协议
- android 按键消息,在android中模拟键盘消息(shell命令的方法)
- 隐马尔科夫模型(HMM)笔记(公式+代码)
- noip2004普及组第2题 花生采摘
- golang http 返回html文件_从零部署安装 Grpc-golang
- 为何要进行软件维护?维护的种类及目标?
- MYCAT 安装(转)
- 【BZOJ4196】[Noi2015]软件包管理器 树链剖分
- CSS:transform
- 按键精灵html代码,最新按键精灵脚本代码大全 按键精灵命令运行方法
- 桥接模式 和 中继模式
- 宇视项目VM相关笔记
- 嵌入式linux加入nes模拟器,成功运行于 ARM 上的 NES模拟器(InfoNES)
- 腾讯云--添加二级域名
- andriod studio 开发
- 老王家esp8266及老五家WS2818灯带
- Gitlab项目上传