1、冷启动问题简介
冷启动主要分为三类:
- 用户冷启动
- 物品冷启动
- 系统冷启动
对于冷启动问题的一些解决方案:
- 提供非个性化推荐,如热门排行榜,行为数据积累到一定程度以后再用个性化推荐
- 利用用户注册时提供的年龄、性别等数据做粗粒度的个性化
- 利用用户的社交网络账号登录(需要用户授权),导入用户在社交网站上的好友信息,然后给用户推荐其好友喜欢的物品
- 要求用户在登录时对一些物品进行反馈,收集用户对这些物品的兴趣信息,然后给用户推荐那些和这些物品相似的物品
- 对于新加入的物品,可以利用内容信息,将它们推荐给喜欢过和它们相似的物品的用户
- 引入专家的知识,通过一定的高效方式迅速建立起物品的相关度表。
下面分别进行介绍
2、利用用户注册信息
注册信息有三种,这里主要讨论第一种:
- 人口统计学信息 包括用户的年龄、性别、职业、民族、学历和居住地
- 用户兴趣的描述 有一些网站会让用户用文字描述他们的兴趣
- 从其他网站导入的用户站外行为数据
基本推荐流程:
- 获取用户的注册信息
- 根据用户的注册信息对用户分类,有时候也可以考虑组合特征
- 给用户推荐他所属分类中用户喜欢的物品,取最喜欢的topN进行推荐
算法核心问题:计算每种特征的用户对各个物品的喜好程度,α是为了解决稀疏问题。
利用的用户人口统计学特征越多,越能准确地预测用户兴趣
3、选择适合的物品启动用户兴趣
主要问题:如何选择物品让用户进行反馈
选择物品需要如下特点:
- 比较热门
- 具有代表性和区分性
- 启动物品集合需要有多样性
如何选择启动物品集合的系统? - Nadav Golbandi说用决策树解决,这棵树的分裂是以区分度来度量的
4、利用物品的内容信息
UserCF和ItemCF与冷启动问题
- UserCF对物品冷启动问题不敏感。很多网站对用户不止有推荐列表一个曝光位置,基于其他位置的曝光可以得到最初的一些行为数据,基于这些行为数据进行推荐就可以。但是当推荐列表是主要的信息获取途径的时候,就需要考虑利用物品的内容信息。
- ItemCF对物品冷启动问题比较敏感,因此只能利用物品的内容信息计算物品相关表,并且频繁地更新相关表
物品内容表示可以使用向量空间模型
- ei就是关键词, wi是关键词对应的权重。w可以是TF-IDF,也可以是推荐物如电影的时候,演员的重要程度。
- 物品的内容相似度可以通过向量之间的余弦相似度计算
- 具体计算可以考虑协同过滤过程中使用倒排表的手法
ItemCF VS 内容相似度
- 内容相似度会忽视用户行为,以及物品的流行度和用户行为中所包含的规律
- 如果用户的行为受到某一内容属性的影响,那么内容过滤算法可以在精度上超过协同过滤算法,但是这种强内容特征需要丰富的领域知识。
当文本比较短时,话题模型LDA更有用
基本思想:一个人在写一篇文档的时候,会首先想这篇文章要讨论哪些话题,然后 思考这些话题应该用什么词描述,从而最终用词写成一篇文章。因此,文章和词之间是通过话 题联系的。
LDA的计算过程包括初始化和迭代两部分。
- 首先要对z进行初始化,而初始化的方法很简单, 假设一共有K个话题,那么对第i篇文章中的第j个词,可以随机给它赋予一个话题。同时,用NWZ(w,z)记录词w被赋予话题z的次数,NZD(z,d)记录文档d中被赋予话题z的词的个数。
- 在初始化之后,要通过迭代使话题的分布收敛到一个合理的分布上去
在使用LDA计算物品的内容相似度时,我们可以先计算出物品在话题上的分布,然后利用两 个物品的话题分布计算物品的相似度。
计算分布的相似度可以利用KL散度:
5、发挥专家的作用
利用专家进行标注
Jinni的例子:半人工、半自动
- 首先,它让专家对电影进行标记,每个电影都有大约50个基因,这些基因来自大约1000个基因库。
- 然后,使用自然语言理解和机器学习技术,通过分析用户对电影的评论和电影的一些内容属性对电影(特别是新电影)进行自己的标记
- 同时,设计了让用户对基因进行反馈的界面,希望通过用户反馈不断改进电影基因系统