《推荐系统实践》第三章 推荐系统冷启动问题

3.1 冷启动问题简介

冷启动问题(cold start)主要分3类。

(1)用户冷启动:用户冷启动主要解决如何给新用户做个性化推荐的问题。

(2)物品冷启动:物品冷启动主要解决如何将新的物品推荐给可能对它感兴趣的用户这一问题。

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

一般来说,可以参考如下解决方案。

(1)提供非个性化的推荐:非个性化推荐的最简单例子就是热门排行榜。

(2)利用用户注册时提供的年龄、性别等数据做粗粒度的个性化。

(3)利用用户的社交网络账号登录(需要用户授权),导入用户在社交网站上的好友信息,然后给用户推荐其好友喜欢的物品。

(4)要求用户在登录时对一些物品进行反馈,收集用户对这些物品的兴趣信息,然后给用户推荐那些和这些物品相似的物品。

(5)对于新加入的物品,可以利用内容信息,将它们推荐给喜欢过和它们相似的物品的用户。

(6)在系统冷启动时,可以引入专家的知识,通过一定的高效方式迅速建立起物品的相关度表。

3.2 利用用户注册信息

用户的注册信息分3种。

a、人口统计学信息:包括用户的年龄、性别、职业、民族、学历和居住地。

b、用户兴趣的描述:有一些网站会让用户用文字描述他们的兴趣。

c、从其他网站导入的用户站外行为数据

基于注册信息的个性化推荐流程基本如下:

(1) 获取用户的注册信息;

(2) 根据用户的注册信息对用户分类;

(3) 给用户推荐他所属分类中用户喜欢的物品。

基于用户注册信息的推荐算法其核心问题是计算每种特征的用户喜欢的物品。也就是说,对于每种特征f,计算具有这种特征的用户对各个物品的喜好程度p(f, i)。

p( f ,i)可以简单地定义为物品i在具有f的特征的用户中的热门程度:

,其中N(i)是喜欢物品i的用户集合,U( f ) 是具有特征f的用户集合。

为了消减热门物品的影响,我们可以将p( f ,i)定义为喜欢物品i的用户中具有特征f的比例:

\alpha的目的是解决数据稀疏问题。

我们按照不同的粒度给用户分类,对比了4种不同的算法。

(1)MostPopular:给用户推荐最热门的歌手。

(2)GenderMostPopular:给用户推荐对于和他同性别的用户最热门的歌手,这里我们将用户分成男女两类。

(3)AgeMostPopular:给用户推荐对于和他同一个年龄段的用户最热门的歌手,这里我们将10岁作为一个年龄段,将用户按照不同的年龄段分类。

(4)CountryMostPopular:给用户推荐对于和他同一个国家的用户最热门的歌手。

(5)DemographicMostPopular:给用户推荐对于和他同性别、年龄段、国家的用户最热门的歌手。

结果显示:利用的用户人口统计学特征越多,越能准确地预测用户兴趣。

DemographicMostPopular > CountryMostPopular > AgeMostPopular > GenderMostPopular > MostPopular

3.3 选择合适的物品启动用户的兴趣

对于这些通过让用户对物品进行评分来收集用户兴趣,从而对用户进行冷启动的系统,它们需要解决的首要问题就是如何选择物品让用户进行反馈。

能够用来启动用户兴趣的物品需要具有以下特点。

(1)比较热门:如果要让用户对一个物品进行反馈,前提是用户知道这个物品是什么东西。

(2)具有代表性和区分性:启动用户兴趣的物品不能是大众化或老少咸宜的,因为这样的物品对用户的兴趣没有区分性。

(3)启动物品集合需要有多样性:在冷启动时,我们不知道用户的兴趣,而用户兴趣的可能性非常多,为了匹配多样的兴趣,我们需要提供具有很高覆盖率的启动物品集合,这些物品能覆盖几乎所有主流的用户兴趣。

如何设计一个选择启动物品集合的系统呢?可以用一个决策树解决这个问题。(参考文献:“ Adaptive Bootstrapping of Recommender Systems Using Decision Trees”,下载地址为 http://research.yahoo.com/pub/3502)

给定一群用户,用这群用户对物品评分的方差度量这群用户兴趣的一致程度。如果方差很大,说明这一群用户的兴趣不太一致,反之则说明这群用户的兴趣比较一致。通过如下方式度量一个物品的区分度D(i):

其中,N^{+}(i)是喜欢物品i的用户集合,N^{-}(i)是不喜欢物品i的用户集合,N(i)是没有对物品i评分的用户集合。

如果这3类用户集合内的用户对其他的物品兴趣很不一致,说明物品i具有较高的区分度。

首先会从所有用户中找到具有最高区分度的物品i,然后将用户分成3类。然后在每类用户中再找到最具区分度的物品,然后将每一类用户又各自分为3类,也就是将总用户分成9类,然后这样继续下去,最终可以通过对一系列物品的看法将用户进行分类。而在冷启动时,我们从根节点开始询问用户对该节点物品的看法,然后根据用户的选择将用户放到不同的分枝,直到进入最后的叶子节点。

3.4 利用物品的内容信息

UserCF算法对物品冷启动问题并不非常敏感。UserCF算法就需要解决第一推动力的问题,即第一个用户从哪儿发现新的物品。只要有一小部分人能够发现并喜欢新的物品,UserCF算法就能将这些物品扩散到更多的用户中。解决第一推动力最简单的方法是将新的物品随机展示给用户,但这样显然不太个性化,因此可以考虑利用物品的内容信息,将新物品先投放给曾经喜欢过和它内容相似的其他物品的用户。

对于ItemCF算法来说,物品冷启动就是一个严重的问题了。我们只能利用物品的内容信息计算物品相关表,并且频繁地更新相关表(比如半小时计算一次)。

一般来说,物品的内容可以通过向量空间模型表示,该模型会将物品表示成一个关键词向量。

在给定物品内容的关键词向量后,物品的内容相似度可以通过向量之间的余弦相似度计算:

在具体计算物品之间的内容相似度时,最简单的方法当然是对两两物品都利用上面的余弦相似度公式计算相似度,但这种算法的时间复杂度很高。可以首先通过建立关键词—物品的倒排表加速这一计算过程。

从MovieLens数据集上的结果可以发现,ContentItemKNN的准确率和召回率仅仅优于Random算法,明显差于ItemCF算法,甚至比MostPopular算法还要差。不过在覆盖率和流行度指标上ContentItemKNN却优于ItemCF。这主要是因为内容过滤算法忽视了用户行为,从而也忽视了物品的流行度以及用户行为中所包含的规律,所以它的精度比较低,但结果的新颖度却比较高。

如果看GitHub数据集的结果,我们会发现完全相反的现象——ContentItemKNN在所有指标上都优于ItemCF。这主要是因为GitHub提供了一个非常强的内容特征,就是开源项目的作者。

如果用户的行为强烈受某一内容属性的影响,那么内容过滤的算法还是可以在精度上超过协同过滤算法的。

3.5 发挥专家的作用

为了在推荐系统建立时就让用户得到比较好的体验,很多系统都利用专家进行标注。这方面的代表系统是个性化网络电台Pandora和电影推荐网站Jinni。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值