公众号:尤而小屋
作者:Peter
编辑:Peter
大家好,我是Peter呀~
本文讲解的是推荐系统中的冷启动问题,参考的主要资料是项亮老师《推荐系统实践》一书中的第三章,仅作为学习记录使用。
写这篇文章的目的主要是有两次面试的时候,面试官问过我这个问题:Peter,你记录过一篇关于推荐系统的文章,那你知道冷启动怎么解决吗?
Peter答:曾经在一本书中看到过冷启动问题,忘记了!
何为冷启动?
推荐系统需要根据用户的历史行为和兴趣预测用户未来的行为和兴趣,因此大量的用户行为数据成为推荐系统的重要先决部分。
对于百度、谷歌、YouTube等大型网站,已经拥有了大量的用户数据,它们是可以直接根据这些海量数据进行推荐;但是,当一个网站没有大量用户数据的情况下,如何设计个性化推荐系统从而让用户满意推荐的结果,这就是冷启动问题。
冷启动问题分类
用户冷启动
针对新用户:用户冷启动主要解决如何给新用户做个性化推荐的问题。新用户来的时候,没有他的历史行为数据,从而无法根据他的历史行为进行预测。
物品冷启动
针对新物品:主要解决的是如何将新的物品推荐给可能对它感兴趣的用户。
系统冷启动
针对新系统:主要解决如何在一个新开发的网站上(没有用户、没有物品)设计个性化推荐系统,从而在网站刚发布时就让用户体验到个性化推荐服务的问题。
冷启动解决方法
一般冷启动的解决方案:
- 提供非个性化的推荐:热门排行榜;Top10榜单等;当用户的数据收集到一定程度,再做个性化推荐
- 利用用户注册信息:根据用户注册时提供的年龄、性别等信息做粗粒度的个性化推荐
- 利用用户的社交网络账号登陆(需用户授权),根据用户的好友爱好进行推荐
- 要求用户在登录时对物品进行反馈,收集用户对这些物品的兴趣信息,然后给用户推荐相似的物品
- 对于新加入的物品,利用内容信息,将它们推荐给喜欢过或者相似的物品的用户
- 在系统冷启动时,引入专家的知识,通过一定的高效方式建立起物品的相关度表。
利用用户注册信息
个性化电台的注册界面,需要提供个人信息:生日、性别、邮编等。
用户注册信息主要是3种:
- 人口统计学信息:年龄、性别、职业、民族等
- 兴趣描述:用户的兴趣爱好描述
- 其他网站导入行为数据:从豆瓣、微博等第三方网站导入一些用户的行为或者社交网络数据(需用户同意)。
一个基于人口统计学的推荐例子:
选择合适物品启动用户的兴趣
这是一种很常见的做法:用户第一次访问推荐系统时,不立即给用户展示推荐结果,而是给用户提供一些物品,让用户对这些物品进行反馈,然后根据用户反馈给提供个性化推荐。
电影网站Jinni在用户登陆的时候,需要用户给多部电影评分,从而来收集用户兴趣来进行冷启动。
能够用来启动用户兴趣的物品需要的特点:
- 比较热门:让用户知道他们将要进行反馈的物品是什么,保证他们能够做出准确的反馈
- 具有代表性和区分性:启动用户兴趣的物品不能是大众化的,无法区分用户
- 启动物品集合需要有多样性:用户的兴趣可能性很多,需要提供很高覆盖率的物品集合供用户选择
利用物品的内容信息
物品冷启动解决的问题是如何将新品推荐给对它感兴趣的用户。常见物品的常见内容信息:
发挥专家的作用
很多推荐系统在建立时候,既没有用户的行为数据,也没有充足的物品内容信息来计算准确物品相似度。
那么,如何解决系统的推荐问题呢?答案:请专家。两个代表系统:个性化网络电台Pandora和电影推荐网站Jinni。
Pandora是一个给用户播放音乐的个性化电台应用,它雇佣了一批懂计算机的音乐人,对它的音乐进行了多个维度的标注,最终他们使用了400个特征(Pandora称之为基因)。标注完之后,每首歌都可以表示为一个400维的向量。
Jinni也进行了类似的工作,它对自身的电影进行基因系统的设计,让专家给电影进行标注。
专家标注之后,Jinni也会使用机器学习的技术,通过分析用户对电影的评论和电影的内容属性对电影进行自己的标注。Jinni通过专家系统和机器学习相结合的方法解决了系统冷启动问题。