转自:https://baijiahao.baidu.com/s?id=1578360730078287757&wfr=spider&for=pc
所属标签
|人工智能|算法|机器学习|推荐系统|Python|冷启动问题|
什么是冷启动?
冷启动在推荐系统中表示该系统积累数据量过少,无法给新用户做个性化推荐的问题,这是产品推荐的一大难题。基本上,冷启动问题可以分为以下三类:
用户冷启动:用户冷启动主要解决如何给新用户做个性化推荐的问题。当新用户到来时,我们没有他的行为数据,所以也无法根据他的历史行为预测其兴趣,从而无法借此给他做个性化推荐。
物品冷启动:物品冷启动主要解决如何将新的物品推荐给可能对它感兴趣的用户这一问题。
系统冷启动:系统冷启动主要解决如何在一个新开发的网站上(还没有用户,也没有用户行为,只有一些物品的信息)设计个性化推荐系统,从而在网站刚发布时就让用户体验到个性化推荐服务这一问题。
一般解决方案
推送热门排行榜,然后等到用户数据收集到一定的时候,再切换为个性化推荐;
利用用户注册时提供的年龄、性别等数据做粗粒度的个性化;
利用用户的社交网络账号登录(需要用户授权),导入用户在社交网站上的好友信息,然后给用户推荐其好友喜欢的物品;
要求用户在登录时对一些物品进行反馈,收集用户对这些物品的兴趣信息,然后给用户推荐那些和这些物品相似的物品;
对于新加入的物品,可以利用内容信息,将它们推荐给喜欢过和它们相似的物品的用户;
在系统冷启动时,可以引入专家的知识,通过一定的高效方式迅速建立起物品的相关度表。
用户冷启动
人口统计学信息:包括用户的年龄、性别、职业、民族、学历和居住地;
用户兴趣的描述:有一些网站会让用户用文字或用区域选择来描述他们的兴趣;
从其他网站导入的用户站外行为数据:比如用户通过豆瓣、新浪微博的账号登录,就可以在得到用户同意的情况下获取用户在豆瓣或者新浪微博的一些行为数据和社交网络数据。
基于注册信息的个性化推荐流程基本如下:
(1) 获取用户的注册信息;
(2) 根据用户的注册信息对用户分类;
(3) 给用户推荐他所属分类中用户喜欢的物品;
(4)若无法找到合适的物品,推荐热门排行榜。
选择合适的物品启动用户的兴趣
解决用户冷启动问题的另一个方法是在新用户第一次访问推荐系统时,不立即给用户展示推荐结果,而是给用户提供一些物品,让用户反馈他们对这些物品的兴趣,然后根据用户反馈给提供个性化推荐。
一般来说,能够用来启动用户兴趣的物品需要具有以下特点:
(1)比较热门。如果要让用户对一个物品进行反馈,前提是用户知道这个物品是什么东西;
(2) 具有代表性和区分性。启动用户兴趣的物品不能是大众化或老少咸宜的,因为这样的物品对用户的兴趣没有区分性;
(3)启动物品集合需要有多样性。在冷启动时,我们不知道用户的兴趣,而用户兴趣的可能性非常多,为了匹配多样的兴趣,我们需要提供具有很高覆盖率的启动物品集合,这些物品能覆盖几乎所有主流的用户兴趣。
利用物品的内容信息
物品冷启动需要解决的问题是如何将新加入的物品推荐给对它感兴趣的用户,这时候可以通过物品之间的语义来计算其相似度,常用的算法有cos相似度和TF-IDF。
物品冷启动在新闻网站等时效性很强的网站中非常重要,因为那些网站中时时刻刻都有新加入的物品,而且每个物品必须能够在第一时间展现给用户,否则经过一段时间后,物品的价值就大大降低了。
人工标注
很多推荐系统在建立时,既没有用户的行为数据,也没有充足的物品内容信息来计算准确的物品相似度。那么为了在推荐系统建立时就让用户得到比较好的体验,很多系统都进行人工标注。例如音乐网站推荐,可以通过一些方式将自己旧的音乐推荐系统或者其他网站下已标注好的音乐标签收集下来,对新的音乐网站做物品相似度的度量,再推荐给用户。
总结
推荐系统冷启动问题主要是因为系统本身的扩展性不强所导致,在工业上很多时候都是先通过人工标注进行推荐,得到足够的反馈后在线下运行合适的算法进行测试,然后在线上运行。在此过程中可以充分利用物品物品间的品类和关键词进行相似度计算,然后通过用户的注册信息和初步访问的记录进行合适的推荐,形成良好的闭环。