第三章 推荐系统冷启动问题
如何在没有大量用户数据的情况下设计个性化推荐系统并且让用户对推荐系统结果满意从而愿意使用推荐系统就是冷启动问题.
3.1 冷启动问题简介
冷启动问题主要分为以下三类:
(1) 用户冷启动 主要解决如何给新用户做个性化推荐的问题
(2) 物品冷启动 主要解决如何将新的物品推荐给可能对其感兴趣的用户
(3) 系统冷启动 主要解决如何在新开发的网站上设计个性化推荐系统
主要解决方法:
(1) 提供非个性化的推荐(用的比较多的是热门推荐)
(2) 利用用户注册时提供的年龄、性别等数据做粗粒度的个性化
(3) 利用用户的社交网络账号登录(需要用户授权),导入用户在社交网站上的好友信息,然后给用户推荐好友喜欢的商品
(4) 要求用户在登录时对一些物品进行反馈,收集用户对这些物品的兴趣信息
(5) 对于新加入的物品,可以利用内容信息,将它们推荐给喜欢过和它们相似的物品的用户。
(6) 在系统冷启动时,可以引入专家的知识,通过一定的高效方式迅速建立起物品的相关度表。
3.2 利用用户注册信息
用户注册信息分为三种:
(1) 人口统计学信息 包括用户的年龄、性别、职业、民族、学历和居住地。
(2) 用户兴趣的描述
(3) 从其他网站导入的用户站外行为数据
基于注册信息的个性化推荐系统基本流程如下:
(1) 获取用户的注册信息;
(2) 根据用户的注册信息对用户分类;
(3) 给用户推荐他所属分类中用户喜欢的物品。
核心问题为计算具备每种特征的用户喜欢的物品,p(f,i)可以简单地定义为物品i在具备特征f的用户群中的热门程度:其中N(i)表示喜欢物品i的用户集合,U(f)表示具有特征f的用户集合.考虑到具有比较高|N(i)|的物品在每一类用户中都会具有较高的p(f,i)(不能光推荐热门物品),重新定义
这里分母中使用参数$alpha$的目的是解决数据稀疏问题。比如有一个物品只被 1 个用户喜欢过,而这个用户刚好就有特征 f ,那么就有 p ( f , i ) = 1 。但是,这种情况并没有统计意义,因此我们为分母加上一个比较大的数,可以避免这样的物品产生比较大的权重。
小结:利用的用户人口统计学特征越多,越能准确地预测用户兴趣
3.3 选择合适的物品启动用户的兴趣
不直接给用户展示推荐结果而是给用户提供一些物品,让用户反馈他们对物品的兴趣,然后根据反馈的情况进行个性化推荐.
启动用户兴趣的物品具备的特性:
(1) 比较热门
(2) 具有代表性和区分性
(3) 启动物品集合要具备多样性
如何选择启动物品
用一个用户群对物品评分的方差来度量这群用户兴趣一致的程度,方差大则说明兴趣不太一致.令$sigma_{u} {in} U^,$为用户集合$U^,$中所有评分的方差定义一个物品的区分度$D(i) = sigma_{u {in} N^+(i)} + sigma_{u{in}N^-(i)} + sigma_{uinoverline{N}(i)}$
3.4 利用物品的内容信息
对于userCF而言,物品的冷启动不是大问题.因为用户总会通过某种途径接触新的物品,如果有用户对新的物品作出了反馈,那么新的物品便可以通过用户的圈子扩散开.对于itemCF而言,物品的冷启动是一个大问题,itemCF一般的做法是一天计算一次物品的相似矩阵,对于实时加入的新物品,如果过要及时的推荐,就需要重新计算相似矩阵,通过用户行为重新计算物品相似矩阵是不合理的,因为新加入的物品并没有用户对其产生行为.只能通过计算物品的内容更新相似矩阵.
物品的内容可以通过向量空间模型表示,该模型将模型表示为一个关键词向量,生成关键词向量的流程如下所示:
对物品d,它的内容可表示为一个关键词向量: 其中$e_i$表示关键词,$w_i$表示关键词对应的权重.如果物体是文本,可以用TF-IDF公式计算词的权重:$w_i = frac{TF(e_i)}{logDF(e_i)}$.TF表示一个给定词语t在一篇给定文档d中出现的频率,IDF(Inverse Document Frequency,逆向文件频率)的主要思想是:如果包含词语t的文档越少,则IDF越大,说明词语t在整个文档集层面上具有很好的类别区分能力.简而言之,TF-IDF的核心思想为如果一个单词在该文章出现的频率很高而在其他文章中出现的次数很少,则这个词具有较好的分类特性.
内容推荐算法和协同过滤算法相比,如果用户的行为强烈受某一内容属性的影响,那么内容过滤的算法还是可以在精度上超过协同过滤算法的。
LDA(Latent Dirichlet Allocation 这个要深入了解的时候统计学习上先补一下)主要有三个元素--文档,话题以及词语.每篇文章表示为词的集合,这称为词袋模型,每一个词在一篇文章中属于一个话题.令D为文章集合,D[i]表示第i篇文档.w[i][j]表示第i篇文档中的第j个词.z[i][j]指的是第i篇文章第j个词属于的话题.具体LDA的过程刘留一个坑,LDA可以较好的对词进行聚类.在使用LDA计算物品的相似度的时候,我们可以先计算出物品在话题上的分布,然后利用两个物品对应话题的分布来计算相似读.分布的相似度计算当然是用KL散度啦.
3.5 发挥专家的作用
利用专业认识对该领域的认识来对特定的数据进行人工标注.例如音乐基因工程项目.