转自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经过专家系统和机器学习相结合的方法进行电影基因工程以解决系统冷启动问题。学习