推荐系统实践 0x0a 冷启动问题

什么是冷启动问题

如何在没有大量用户数据的情况下设计个性化推荐系统并且让用户对推荐结果满意从而愿意使用推荐系统,就是冷启动问题。冷启动问题主要分为三类:

  • 用户冷启动
  • 物品冷启动
  • 系统冷启动
    下面我们将分别介绍这三种冷启动情况。

用户冷启动

用户冷启动主要解决如何给新用户做个性化推荐的问题。当新用户到来时,我们没有他的行为数据,所以也无法根据他的历史行为预测其兴趣,从而无法借此给他做个性化推荐。那么,我们可以利用用户的注册信息来解决冷启动问题。用户信息通常分为三种:

  • 人口统计学信息
    主要是用户的年龄、性别、国际、籍贯、学历等等。这些特征对预测用户的兴趣有很重要的作用,比如男性和女性的兴趣不同, 不同年龄的人兴趣也不同。

  • 用户兴趣的描述
    有一些网站会直接让用户描述自己的兴趣。

  • 从其他网站导入的用户站外行为数据
    比如豆瓣、微博等用户注册时会使用他们的行为数据或者社交信息。

另外要解决用户冷启动问题,可以给用户提供一些物品,让用户提供反馈,这样根据用户的反馈再提供个性化的推荐。比如,在电影推荐网站,用户注册时需要先对提供的电影进行评分,这样推荐网站才能给用户做出推荐。通常来说,提供的物品具有以下特点:

  • 热门。
    用户会了解所提供的物品。

  • 具有代表性和区分性。
    作为个性化推荐的依据,使得物品需要有一定的区分性。

  • 多样性。
    为了匹配多样的兴趣,我们需要提供具有很高覆盖率的启动物品集合,这些物品能覆盖几乎所有主流的用户兴趣。

Nadav Golbandi的算法首先会从所有用户中找到具有最高区分度的物品\(i\),然后将用户分成3类。然后在每类用户中再找到最具区分度的物品,然后将每一类用户又各自分为3类,也就是将 总用户分成9类,然后这样继续下去,最终可以通过对一系列物品的看法将用户进行分类。而在冷启动时,我们从根节点开始询问用户对该节点物品的看法,然后根据用户的选择将用户放到不同的分枝,直到进入最后的叶子节点,此时我们就已经对用户的兴趣有了比较清楚的了解,从而可以开始对用户进行比较准确地个性化推荐。

物品冷启动

之前的博文讲到了UserCF算法,UserCF算法对物品冷启动问题并不非常敏感。因为,UserCF在给用户进行推荐时,会首先找到和用户兴趣相似的一群用户,然后给用户推荐这一群用户喜欢的物品。在很多网站中,推荐列表并不是给用户展示内容的唯一列表,那么当一个新物品加入时,总会有用户从某些途径看到这些物品,对这些物品产生反馈。那么,当一个用户对某个物品产生反馈后,和他历史兴趣相似的其他用户的推荐列表中就有可能出现这一物品,从而更多的人就会对这个物品产生反馈,导致更多的人的推荐列表中会出现这一物品,因此该物品就能不断地扩散开来,从而逐步展示到对它感兴趣用户的推荐列表中。

解决第一推动力最简单的方法是将新的物品随机展示给用户,但这样显然不太个性化,因此可以考虑利用物品的内容信息,将新物品先投放给曾经喜欢过和它内容相似的其他物品的用户。那么什么算是物品内容信息呢?

物品的内容信息多种多样,不同类型的物品有不同的内容信息。如果是电影,那么内容信息一般包括标题、导演、演员、编剧、剧情、风格、国家、年代等。如果是图书,内容信息一般包含标题、作者、出版社、正文、分类等。我们可以由文本到分词,到实体检测,到关键词排名,再到关键词向量。

系统冷启动

系统冷启动主要解决如何在一个新开发的网站上(还没有用户,也没有用户行为,只有一些物品的信息)设计个性化推荐系统,从而在网站刚发布时就让用户体验到个性化推荐服务这一问题。

很多推荐系统在建立时,既没有用户的行为数据,也没有充足的物品内容信息来计算准确的物品相似度。那么,为了在推荐系统建立时就让用户得到比较好的体验,很多系统都利用专家进行标注。结合专家标注,系统就可以对用户进行物品推荐。

posted @ 2020-12-02 20:19  NoMornings  阅读(266)  评论(0编辑  收藏  举报