1.什么是冷启动?
推荐系统需要根据用户的历史行为和兴趣预测用户未来的行为和兴趣,因此大量的用户行为数据就成为推荐系统的重要组成部分和先决条件。 这些数据的获取对于一些热门的网站或者app来说也许不是个担心的问题,但是对于一些全新上线的网站等开始阶段的平台来说,如何在没有大量用户数据的情况下设计个性化推荐系统并且让用户对推荐结果满意从而愿意使用推荐系统,就是冷启动的问题。
2.常见冷启动类型
在推荐系统中,新用户,新商品是不断产生的。常见的冷启动类型有:
- 物品冷启动:主要解决如何将新的物品推荐给可能对它感兴趣的用户。也可以看成是基于用户冷启动的基础上做的物品冷启动。
- 用户冷启动:主要解决如何给新用户做个性化推荐的问题。对于新用户,我们没有他的行为数据,所以也无法根据他的历史行为预测其兴趣给他做个性化推荐。
- 系统冷启动: 主要解决如何在一个新开发的网站上设计个性化推荐系统。
3.冷启动解决方案
3.1 提供非个性化的推荐
最简单的方案就是提供热门排行榜,可以给用户推荐热门排行榜,等到用户数据收集到一定的时候,再切换为个性化推荐。
关于热门排行榜解决推荐问题的理论测试,可以参考着篇文章 Performance of recommender algorithms on top-n recommendation tasks.
并且Netflix的研究也表明新用户在冷启动阶段确实是更倾向于热门排行榜的,老用户会更加需要长尾推荐。
3.2 利用用户注册信息
用户的注册信息主要分为3种:
1)人口统计学信息,包括年龄、性别、职业、民族、学历和居住地
2)用户兴趣的描述,部分网站会让用户用文字来描述兴趣
3)从其他网站导入的用户站外行为,比如用户利用社交网站账号登录,就可以在获得用户授权的情况下导入用户在该社交网站的部分行为数据和社交网络数据
这种个性化的粒度很粗,假设性别作为一个粒度来推荐,那么所有刚注册的女性看到的都是同样的结果,但是相对于男女不区分的方式,这种推荐精度已经大大提高了。
推荐流程基本如下:
- 获取用户的注册信息
- 根据用户的注册信息对用户分类
- 给用户推荐他所属分类中用户喜欢的物品
3.3 选择合适的物品启动用户的兴趣
用户在登录时对一些物品进行反馈,收集用户对这些物品的兴趣信息,然后给用户推荐那些和这些物品相似的物品。
一般来说,能够用来启动用户兴趣的物品需要具有以下特点:
- 比较热门,如果要让用户对物品进行反馈,前提是用户得知道这是什么东西;
- 具有代表性和区分性,启动用户兴趣的物品不能是大众化或老少咸宜的,因为这样的物品对用户的兴趣没有区分性;
- 启动物品集合需要有多样性,在冷启动时,我们不知道用户的兴趣,而用户兴趣的可能性非常多,为了匹配多样的兴趣,我们需要提供具有很高覆盖率的启动物品集合,这些物品能覆盖几乎所有主流的用户兴趣。
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应用商店之外,一些新闻类、视频类的应用也在做,对于解决冷启动问题有很好的帮助。
4.总结
- 冷启动问题一直存在,故解决冷启动问题就很重要。
- 冷启动分为:用户冷启动、物品冷启动、系统冷启动。
- 冷启动问题的解决方案:热门物品推荐(非个性化)、利用用户注册信息、选择合适的物品、利用物品内容信息、利用用户的收集等兴趣偏好