本章的思维导图如下:
1、冷启动问题简介
如何在没有大量用户数据的情况下设计个性化推荐系统并且让用户对推荐结果满意从而愿意使用推荐系统, 就是冷启动的问题。冷启动问题主要分为三类:
1)用户冷启动:用户冷启动主要解决如何给新用户做个性化推荐的问题。
2)系统冷启动:系统冷启动主要解决如何在一个新开发的网站上(还没有用户,也没有用户行为,只有一些物品的信息)设计个性化推荐系统。
3)物品冷启动:物品冷启动主要解决如何将新的物品推荐给可能对它感兴趣的用户这一问题。
对于这3种不同的冷启动问题,有不同的解决方案。一般来说,可以参考如下解决方案。
1)提供非个性化的推荐,非个性化推荐的最简单例子就是热门排行榜。
2)利用用户注册时提供的年龄、性别等数据做粗粒度的个性化。
3)利用用户的社交网络账号登录(需要用户授权),导入用户在社交网站上的好友信息,然后给用户推荐其好友喜欢的物品。
4)要求用户在登录时对一些物品进行反馈,收集用户对这些物品的兴趣信息,然后给用户推荐那些和这些物品相似的物品。
5)对于新加入的物品,可以利用内容信息,将它们推荐给喜欢过和它们相似的物品的用户。
6)在系统冷启动时,可以引入专家的知识,通过一定的高效方式迅速建立起物品的相关度表。
2、利用用户注册信息
用户的注册信息分3种。
1)人口统计学信息 ,包括年龄、性别、职业、民族、学历和居住地。
2)用户兴趣的描述,有一些网站会让用户用文字描述他们的兴趣。
3)从其他网站导入的用户站外行为数据,比如一些来自豆瓣或新浪微博的行为数据和社交网络数据
基于用户注册信息的推荐算法其核心问题是计算每种特征的用户喜 欢的物品。也就是说,对于每种特征f,计算具有这种特征的用户对各个物品的喜好程度p(f, i)。p( f ,i) 可以简单地定义为物品i在具有f的特征的用户中的热门程度:
其中 N(i) 是喜欢物品i的用户集合,U( f ) 是具有特征f的用户集合。 上面这种定义可以比较准确地预测具有某种特征的用户是否喜欢某个物品。但是,在这种定义下,往往热门的物品会在各种特征的用户中都具有比较高的权重。也就是说具有比较高的 N(i) 的物品会在每一类用户中都有比较高的 p( f ,i) 。给用户推荐热门物品并不是推荐系统的主要任 务,推荐系统应该帮助用户发现他们不容易发现的物品。因此,我们可以将 p( f ,i) 定义为喜欢物品i的用户中具有特征f的比例:
这里使用α的目的是解决系数问题,比如一个物品只被一个用户喜欢过,而这个用户刚好就有特征f,那么有 p( f ,i) =1.但是这种情况没有统计意义,因此我们为分母加上一个比较大的数,可以避免这样的物品产生比较大的权重。
3、选择合适的物品启动用户的兴趣
解决用户冷启动问题的另一个方法是在新用户第一次访问推荐系统时,不立即给用户展示推荐结果,而是给用户推荐一些物品,让用户反馈他们对这些物品的兴趣,然后根据用户反馈提供个性化推荐。一般来说,能够来启动用户兴趣的物品需要具有以下的特点:
比较热门:如果要让用户对一个物品进行反馈,前提是用户知道这个物品是什么东西。
具有代表性和区分性:启动用户兴趣的物品不能是大众化或老少咸宜的,因为这样的物品 对用户的兴趣没有区分性。
启动物品集合需要有多样性:在冷启动时,我们不知道用户的兴趣,而用户兴趣的可能 性非常多,为了匹配多样的兴趣,我们需要提供具有很高覆盖率的启动物品集合,这些物品能覆盖几乎所有主流的用户兴趣。
4、利用物品的内容信息
物品冷启动需要解决的问题是如何将新加入的物品推荐给对它感兴趣的用户。物品冷启动在 新闻网站等时效性很强的网站中非常重要。一般来说,物品的内容可以通过向量空间模型1表示,该模型会将物品表示成一个关键词向 量。如果物品的内容是一些诸如导演、演员等实体的话,可以直接将这些实体作为关键词。但如 果内容是文本的形式,则需要引入一些理解自然语言的技术抽取关键词。下图展示了从文本生 成关键词向量的主要步骤。对于中文,首先要对文本进行分词,将字流变成词流,然后从词流中检测出命名实体(如人名、地名、组织名等),这些实体和一些其他重要的词将组成关键词集合,最后对关键词进行排名,计算每个关键词的权重,从而生成关键词向量。
对于物品d,它的内容表示成一个关键词向量如下:
其中,ei 就是关键词,wi 是关键词对应的权重。如果物品是文本,我们可以用信息检索领域著 名的TF-IDF公式计算词的权重:
如果物品是电影,可以根据演员在剧中的重要程度赋予他们权重。向量空间模型的优点是简单,缺点是丢失了一些信息,比如关键词之间的关系信息。不过在绝大多数应用中,向量空间模型对于文本的分类、聚类、相似度计算已经可以给出令人满意的结果。
在给定物品内容的关键词向量后,物品的内容相似度可以通过向量之间的余弦相似度计算:
得到物品的相似度之后,可以利用ItemCF算法的思想,给用户推荐和他历史上 喜欢的物品内容相似的物品。
一般来说,基于物品的内容信息进行推荐,忽视了用户行为,从而也忽视了物品的流行度以及用户行为中所包含的规律,所以它的精度比较低,但结果的新颖度却比较高,因为它可能推荐出用户所没有听说过的物品。但有时,基于物品内容的推荐的精度可能超过协同过滤算法,如果用户的行为强 烈受某一内容属性的影响,那么内容过滤的算法还是可以在精度上超过协同过滤算法的。不过这 种强的内容特征不是所有物品都具有的,而且需要丰富的领域知识才能获得,所以很多时候内容 过滤算法的精度比协同过滤算法差。