【推荐系统系列3】推荐系统中如何解决冷启动


0、前言

推荐系统需要根据用户的历史行为和兴趣来预测用户未来的行为和兴趣,因此大量的用户行为数据就称为了推荐系统的重要组成部门和先决条件。但是,很多个性化推荐系统的网站从开始就没有这些用户行为数据,所以如何在没有大量用户行为数据的情况下进行个性化推荐并且让用户对推荐的结果感到满意,这就是冷启动问题。

1、冷启动问题分类和解决方法

冷启动问题主要分三类:

  1. 用户冷启动 
    用户冷启动主要解决如何给一个新的用户做个性化推荐。当一个新用户(新注册的)到来时,我们没有他的历史行为数据,所以无法根据他的历史行为去预测他的兴趣,从而无法去做个性化推荐。
  2. 物品冷启动 
    物品冷启动主要解决如何将新的物品推荐给可能对其感兴趣的用户。
  3. 系统冷启动 
    系统冷启动主要解决如何在一个新开发的网站上设计个性化推荐,从而使得网站刚发布的时候就让用户体验到个性化服务。

主要解决方法:

  1. 提供非个性化推荐,最简单例子就是热门排行榜推荐,先给用户推荐热门的物品,然后等到用户数据收集到一定的时候再进行个性化推荐。
  2. 利用用户注册提供的年龄性别等做粗粒度的个性化推荐。
  3. 利用用户的社交账号登录,获取用户在社交网站上的好友信息,然后根据好友喜欢的物品给用户做推荐。
  4. 要求用户在登录的时候对一些物品的反馈,收集用户对这些物品的兴趣信息,然后给用户做推荐。
  5. 对于新物品,可以利用物品的内容信息,将它们推荐给喜欢过和该物品相似物品的用户。

2、冷启动问题具体解决方法

  1. 利用用户注册信息 
    在推荐系统网站中,当一个新用户注册时,我们不知道他喜欢什么样的物品,于是只能给他推荐一些热门的物品。但如果我们知道她是一位女性的话,可以给她推荐女性喜欢的热门物品。其实这也是一种个性化推荐,只不过这种推荐的粒度很粗,当时相对于什么都不区分的推荐来说,这种推荐结果已经很好了。因此,利用用户的注册信息可以很好的解决新用户冷启动问题。

    用户的注册信息可以分三种: 
    (1)人口统计学信息:包括用户的年龄、性别、职业、民族、学历等。 
    (2)用户兴趣的描述:有一些网站会让用户用文字描述他们的兴趣。 
    (3)从其他网站导入的用户站外行为数据:比如用户通过豆瓣、新浪微博的账号登录,就可以在得到用户同意的情况下获取用户在豆瓣或新浪微博上的一些历史行为数据和社交网络数据。

    基于用户注册信息的个性化推荐流程基本如下: 
    (1)获取用户的注册信息 
    (2)根据用户的注册信息对用户分类 
    (3)给用户推荐他所属分类中用户喜欢的物品

    举例说明:假设一个新用户注册,首先获取他的用户信息,比如他是一个24岁的男性,是一个研二学生。然后查询三张离线计算好的相关表:性别-电影相关表,年龄-电影相关表,职业-电影相关表,从这三张表中查询出所有的电影然后按照一定的权重相加,给用户返回推荐列表。 
    (实际应用中还可以考虑组合特征)。

  2. 选择合适的物品启动用户的兴趣 
    解决用户冷启动问题的另一个方法是在新用户第一次访问推荐系统时,不立即给用户展示推荐结果,而是给用户提供一些物品,让用户反馈他们对这些物品的兴趣,然后根据这些用户反馈给用户提供个性化推荐。很多的推荐系统采取了这种方式来解决用户冷启动问题。

    对于这些通过用户给物品的反馈来收集用户兴趣,从而对用户进行推荐,他们需要解决的首要问题就是如何选择物品让用户进行反馈。(一般这种情况下,会影响用户的体验感)

    一般来说,能够用来启动用户兴趣的物品需要具有以下特点: 
    (1)比较热门:如果要让用户对一个物品反馈,前提是用户知道这个物品时什么?以电影为例,如果一开始让用户进行反馈的电影都很冷门,而用户不知道这些电影的情节和内容,也就无法对它们做出准确的反馈。 
    (2)具有代表性和区分性:启动用户兴趣的物品不能是大众化或者流行度很高的,因为这样的物品对用户没有区分性。比如,有一部电影票房很高很受大家欢迎,这样的电影几乎所有的用户都会喜欢,因而无法区分用户的兴趣。 
    (3)启动物品集合需要多样性:在冷启动时,我们不知道用户的兴趣,而用户的兴趣和广泛,可能非常多,为了匹配多样的兴趣,我们需要提供具有很高的覆盖率的启动物品集合。

  3. 利用物品的内容信息 
    物品冷启动需要解决的问题是如何将新加入的物品推荐给对它感兴趣的用户。物品冷启动在新闻网站等时效性很强的网站中非常重要,因为那些网站中时时刻刻都有新加入的物品,而且每个物品必须能够在第一时间展现给用户,否则一段时间后物品的价值就大大降低了。

    在前篇博客中提到两种推荐算法,UserCF和ItemCF。实际上,UserCF对物品冷启动问题不是非常敏感。UserCF在给用户推荐时,会首先找到和用户兴趣相似的一群用户,然后给用户推荐这一群用户喜欢的物品。所以,当一个新物品加入时,总会有一些用户通过某种途径看到过新物品。

    但是,有些网站中推荐列表是用户获取信息的主要途径,比如豆瓣网络电台。那么对于UserCF算法就需要解决第一个用户从哪儿发现了这个新的物品。只要有用户发现并喜欢新的物品,那么UserCF就能将这些物品扩散到更多的用户。解决这个问题的最简单的方法就是将新的物品随机展示给用户,但是这样显然不太个性化,因此可以考虑利用物品的内容信息,将物品先投放给曾经喜欢过和它内容相似的其他物品的用户。 
    而对于ItemCF来说,物品的冷启动就是一个严重的问题。ItemCF算法的原理是给用户推荐他之前喜欢的物品相似的物品,ItemCF每隔一段时间就很利用用户的行为数据计算物品的相似度表。因此,当一个新物品加入时,无法推荐新的物品。为此,可以利用物品内容信息计算物品的相关表,并更新相关表。

    常见的物品信息:物品的内容信息多重多样,不同类型的物品也会有不同的内容信息。例如电影,内容信息一般有标题、导演、演员、国家、年代、还有电影介绍等;例如图书,内容信息一般包括标题、作者、出版社等。

    物品的内容信息可以通过向量空间模型表示,该模型将物品表示成一个关键词向量,如果是文本可以通过关键词抽取计算权重(TF-IDF)。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值