首页 > 代码库 > 推荐系统之冷启动问题

推荐系统之冷启动问题

转自http://blog.csdn.net/zhangjunjie789/article/details/51379127

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

冷启动问题主要分为三类: 
(1) 用户冷启动:如何给新用户做个性化推荐的问题,新用户刚使用网站的时候,系统并没有他的行为数据; 
(2) 物品冷启动:解决如何将新的物品推荐给可能对它感兴趣的用户; 
(3) 系统冷启动:如何在新开发网站设计个性化推荐系统,此时网站上用户很少,用户行为也少,只有一些商品的信息。

冷启动的主要解决方案: 
(1) 提供非个性化推荐:如热门排行榜推荐,等到用户数据收集到一定程度时,切换到个性化推荐; 
   用户的注册信息分为3种: 
  1)人口统计学信息:年龄、性别、职业、民族、学历和居住地等;典型代表是Bruce Krulwich开发的Lifestyle Finder 
  2)用户兴趣的描述:有些网站要求用户填写; 
  3)从其他网站导入的用户站外行为数据。 
   有两个推荐系统数据集包含了人口统计学信息:BookCrossing数据集和Lastfm数据集。 
   利用的用户人口统计学特征越多,越能准确地预测用户兴趣。 
(2) 利用用户注册信息:如性别,年龄,做粗粒度的个性化; 
   基于注册信息的个性化推荐流程: 
  1) 获取用户的注册信息; 
  2) 根据用户的注册信息对用户分类; 
  3) 给用户推荐他所属分类中用户喜欢的物品。 
   基于用户注册信息的推荐算法其核心问题是计算每种特征的用户喜欢的物品。也就是说,对于每种特征f,计算具有这种特征的用户对各个物品的喜好程度 技术分享. 
   技术分享 可以简单定义为物品i在具有f的特征的用户的热门程度: 
   技术分享 
   其中, 技术分享是喜欢物品i的用户集合, 技术分享是具有特征f的用户集合。 
   但是在这种定义下,热门的物品会在各种特征的用户中都具有比较高的权重,给用户推荐热门物品并不是推荐系统的主要任务,推荐系统应该帮助用户发现他们不容易发现的物品。因此,我们可以把 技术分享定义为喜欢物品i的用户中具有特征f的比例:

   这里分母中的 技术分享的目的是解决数据稀疏的问题。如果有一个用户只被1个用户喜欢过,而这个用户刚好有特征f,那么p(f,i)=1.但是这种情况并没有统计意义。我们为分母加上一个比较大的数字,可以避免对这样的物品产生比较大的权重。 
(3) 利用用户的社交网络账号登录(需要用户进行授权),导入用户在社交网站上的好友信息,然后给用户推荐其好友喜欢的物品; 
(4) 选择合适的物品启动用户的兴趣:要求用户在登录时对一些物品进行反馈,收集用户对这些物品的兴趣信息,然后给用户推荐那些和这些物品相似的物品; 
   一般来说,能够用来启动用户兴趣的物品需要具有以下特点: 
  1) 比较热门:用户需要知道这个物品是什么东西,才会做出准确地反馈; 
  2) 具有代表性和区分性; 
  3) 启动物品集合需要有多样性:因为用户的兴趣的可能性可能非常多。 
  Nadav Golbandi在论文中探讨了一个基于决策树算法的选择启动物品集合的系统。 
(5) 利用物品的内容信息:对于新加入的物品,可以利用内容信息,将他们推荐给喜欢过和它们相似的物品的用户; 
物品冷启动对诸如新闻网站等时效性很强的网站的推荐非常重要,因为那些网站中时时刻刻都有新加入的物品,而且每个物品必须能够在第一时间展现给用户,否则经过一段时间后,物品的价值就大大降低了。 
UCF对物品冷启动问题并不非常敏感。只要有一小部分人能够发现并喜欢新的物品,UCF就能将这些物品扩散到更多的用户中。但是对于主要靠推荐列表获取信息的用户,解决第一推动力(即第一个用户)的最简单的方法是将新的物品随机展示给用户,也可以考虑将新物品先投放给曾经喜欢过和它内容相似的其它物品的用户。 
对于ICF来说,物品冷启动就是一个比较严重的问题了,因为ICF的原理是给用户推荐与他之前喜欢的物品相似的物品。需要频繁更新物品相似度表,由于用户行为日志非常庞大,通过行为日志是计算不出包含新物品的相关矩阵的,只有利用物品的内容信息计算物品相关表,并且频繁地更新相关表。 
一般来说,物品的内容可以通过内容向量空间模型表示,该模型会将物品表示成一个关键词向量。 
对于物品d,它的内容表示成一个关键词向量如下: 
技术分享 
其中, 技术分享是关键词, 技术分享是关键词对应的权重,如果物品是文本,我们可以用信息检索领域著名的TF-IDF公式计算词的权重: 
技术分享 
如果物品是电影,我们可以根据演员在剧中的重要程度赋予他们权重。 
向量空间模型的优点是简单,缺点是丢失了一些信息,比如关键词之间的关系信息。 
在给定物品内容的关键词向量后,物品的内容相似度可以通过向量之间的余弦相似度计算: 
技术分享 
但是这种算法的时间复杂度很高,假设有N个物品,每个物品平均有m个实体表示,那么这个算法的复杂度是 技术分享,我们可以首先建立关键词-物品的倒排表加速这一计算过程。 
内容过滤算法ContentItemKNN忽视用户行为,物品的流行度以及用户行为中所包含的规律,所以在一些数据集上它的精度较低,但是新颖度却比较高。 
所数据集中有比较强的内容特征,算法的各项指标会比较好。 
向量空间模型在内容数据丰富时可以获得比较好的效果。 
代表性的话题模型有LDA。话题模型的基本思想是,一个人在写一篇文档的时候,会首先想这篇文章要讨论哪些话题,然后思考这些话题应该用什么词描述,从而用词写一篇文章。因此,文章和词之间是通过话题联系的。LDA有三种元素:文档、话题和词语,每一篇文档都会表现为词的集合,这称为词袋模型(bag of words)。每个词在一篇文章中属于一个话题。令D为文档集合,D[i]是第i篇文档。W[i][j]是第i篇文档中的第j个词。Z[i][j]是第i篇文档中第j个词属于的话题。LDA的计算包括初始化和迭代两部分。LDA可以很好地将词组组合成不同的话题。在使用LDA计算物品的内容相似度时间,我们可以先计算物品在话题上的分布,然后利用话题的分布计算物品的相似度。比如,两个物品的话题分布相似,我们则认为两个物品具有较高的相似度,反之则认为两个物品的相似度较低。计算分布的相似度可以利用KL散度: 
技术分享 
其中,p和q是两个分布,KL散度越大说明分布的相似性越低。 
6) 发挥专家的作用:在系统冷启动时,可以引入专家的知识,通过一定的高效方式迅速建立起物品的相关度表。 
代表系统是个性化网络电台Pandora和电影推荐网站Jinni。 
音乐之间的相似度是比较难计算的,技术门槛比较高,Pandora雇佣了一些懂计算机的音乐人进行了一项称为音乐基因的项目,他们使用了400维的向量。 
Jinni通过专家系统和机器学习相结合的方法进行电影基因工程以解决系统冷启动问题。

推荐系统之冷启动问题