项亮老师的《推荐系统实践》学习笔记。
目录
- 1、冷启动问题简介
- 2、利用用户注册信息
- 3、选择合适的物品启动用户的兴趣
- 4、利用物品的内容信息
- 5、发挥专家的作用
推荐系统需要根据用户的历史行为和兴趣预测用户未来的行为和兴趣,因此大量的用户行为数据就成为推荐系统的重要组成部分和先决条件。
但是对于很多在开始阶段就希望有个性化推荐应用的网站来说,对于没有大量的用户数据的情况下,就需要考虑冷启动问题了。
1、冷启动问题简介
冷启动问题(cold start)主要分3类。
- 用户冷启动
主要解决如何给新用户做个性化推荐的问题。 - 物品冷启动
主要解决如何将新的物品推荐给可能对它感兴趣的用户这一问题。 - 系统冷启动
主要解决如何在一个新开发的网站上(还没有用户,也没有用户行为,只有一些物品的信息)设计个性化推荐系统,从而在网站刚发布时就让用户体验到个性化推荐服务这一问题。
对于这3种不同的冷启动问题,有不同的解决方案。一般来说,可以参考如下解决方案。
- 提供非个性化的推荐
热门排行榜 - 利用用户注册时提供的年龄、性别等数据做粗粒度的个性化
- 利用用户的社交网络账号登录,获取社交网站的好友信息
- 用户在登录时对一些物品进行反馈,进而收集用户的兴趣信息
- 对于新加入的物品,可以利用内容信息推荐给喜欢他们相似物品的用户
- 在系统冷启动时,可以引入专家的知识,建立物品的相关度表
2、利用用户注册信息
利用用户的注册信息可以很好地解决注册用户的冷启动问题。在绝大多数网站中,年龄、性别一般都是注册用户的必备信息。
用户的注册信息分3种:
- 人口统计学信息
包括用户的年龄、性别、职业、民族、学历和居住地。 - 用户兴趣的描述
有一些网站会让用户用文字描述他们的兴趣。 - 从其他网站导入的用户站外行为数据
通过用户的其他网站获取一些行为数据和社交网络数据
人口统计学特征包括年龄、性别、工作、学历、居住地、国籍、民族等,这些特征对预测用户的兴趣有很重要的作用,比如男性和女性的兴趣不同, 不同年龄的人兴趣也不同。
基于注册信息的个性化推荐流程基本如下:
(1) 获取用户的注册信息;
(2) 根据用户的注册信息对用户分类;
(3) 给用户推荐他所属分类中用户喜欢的物品。
基于用户注册信息的推荐算法其核心问题是计算每种特征的用户喜欢的物品。也就是说,对于每种特征,计算具有这种特征的用户对各个物品的喜好程度。
可以简单地定义为物品i在具有f的特征的用户中的热门程度:
其中是喜欢物品i的用户集合,是具有特征f的用户集合。
上面这种定义可以比较准确地预测具有某种特征的用户是否喜欢某个物品。但是,在这种定义下,往往热门的物品会在各种特征的用户中都具有比较高的权重。也就是说具有比较高的的物品会在每一类用户中都有比较高的。给用户推荐热门物品并不是推荐系统的主要任务,推荐系统应该帮助用户发现他们不容易发现的物品。因此,我们可以将定义为喜欢物品的用户中具有特征的比例:
这里分母中使用参数的目的是解决数据稀疏问题。
3、选择合适的物品启动用户的兴趣
解决用户冷启动问题的另一个方法是在新用户第一次访问推荐系统时,不立即给用户展示推荐结果,而是给用户提供一些物品,让用户反馈他们对这些物品的兴趣,然后根据用户反馈给提供个性化推荐。
一般来说,能够用来启动用户兴趣的物品需要具有以下特点。
- 比较热门
- 具有代表性和区分性
- 启动物品集合需要有多样性
上面这些因素都是选择启动物品时需要考虑的,但如何设计一个选择启动物品集合的系统呢?Nadav Golbandi在论文中探讨了这个问题,提出可以用一个决策树解决这个问题。
首先,给定一群用户,Nadav Golbandi用这群用户对物品评分的方差度量这群用户兴趣的一致程度。如果方差很大,说明这一群用户的兴趣不太一致,反之则说明这群用户的兴趣比较一致。令为用户集合中所有评分的方差,Nadav Golbandi的基本思想是通过如下方式度量一个物品的区分度:
其中,是喜欢物品i的用户集合,是不喜欢物品i的用户集合,是没有对物品i评分的用户集合。是喜欢物品i的用户对其他物品评分的方差,是不喜欢物品i的用户对其他物品评分的方差,是不喜欢物品i的用户对其他物品评分的方差。如果这3类用户集合内的用户对其他的物品兴趣很不一致,说明物品i具有较高的区分度。
4、利用物品的内容信息
物品冷启动需要解决的问题是如何将新加入的物品推荐给对它感兴趣的用户。
物品的内容信息多种多样,不同类型的物品有不同的内容信息。如果是电影,那么内容信息一般包括标题、导演、演员、编剧、剧情、风格、国家、年代等。如果是图书,内容信息一般包含标题、作者、出版社、正文、分类等。
常见物品的常用内容信息:
一般来说,物品的内容可以通过向量空间模型表示,该模型会将物品表示成一个关键词向量。如果物品的内容是一些诸如导演、演员等实体的话,可以直接将这些实体作为关键词。但如果内容是文本的形式,则需要引入一些理解自然语言的技术抽取关键词。
如果物品是文本,我们可以用信息检索领域著名的TF-IDF公式计算词的权重。
如果物品是电影,可以根据演员在剧中的重要程度赋予他们权重。
向量空间模型的优点是简单,缺点是丢失了一些信息,比如关键词之间的关系信息。不过在绝大多数应用中,向量空间模型对于文本的分类、聚类、相似度计算已经可以给出令人满意的结果。
在给定物品内容的关键词向量后,物品的内容相似度可以通过向量之间的余弦相似度计算。
得到物品的相似度之后,可以利用ItemCF算法的思想,给用户推荐和他历史上喜欢的物品内容相似的物品。
向量空间模型在内容数据丰富时可以获得比较好的效果。以文本为例,如果是计算长文本的相似度,用向量空间模型利用关键词计算相似度已经可以获得很高的精确度。但是,如果文本很短,关键词很少,向量空间模型就很难计算出准确的相似度。
在这种情况下,首先需要知道文章的话题分布,然后才能准确地计算文章的相似度。如何建立文章、话题和关键词的关系是话题模型(topic model)研究的重点。
代表性的话题模型有LDA。
5、发挥专家的作用
很多推荐系统在建立时,既没有用户的行为数据,也没有充足的物品内容信息来计算准确的物品相似度。那么,为了在推荐系统建立时就让用户得到比较好的体验,很多系统都利用专家进行标注。
个性化网络电台Pandora雇佣了一批懂计算机的音乐人使用400多个特征来标注每一首音乐。每首歌都可以表示为400维的向量,可以通过向量相似度来计算出歌曲的相似度。
电影推荐网站Jinni在电影基因工程中采用了半人工、半自动的方式来对电影进行标注。Jinni通过专家和机器学习相结合的方法解决了系统冷启动问题。