【第三章】推荐系统冷启动问题
推荐系统需要根据用户的历史行为和兴趣预测用户未来的行为和兴趣,在没有足够初始数据的情况下,设计个性化推荐系统并且让用户对推荐结果满意从而愿意使用推荐系统,就是冷启动的问题。
3.1 冷启动问题简介
- 用户冷启动:新用户没有历史数据
- 物品冷启动:将新物品推荐给可能对它感兴趣的用户
- 系统冷启动:没有用户,也没有用户行为,只有一些物品的信息,但是要让用户有个性化体验
3.2 利用用户注册信息
基于注册信息的个性化推荐流程基本如下:
- 获取用户的注册信息;
- 根据用户的注册信息对用户分类;
- 给用户推荐他所属分类中用户喜欢的物品。
基于用户注册信息的推荐算法其核心问题是计算每种特征的用户喜欢的物品。也就是说,对于每种特征f,计算具有这种特征的用户对各个物品的喜好程度\(p (f, i )\)
其中\(N(i )\)是喜欢物品i的用户集合,\(U( f)\)是具有特征f的用户集合
但是,热门的物品会在各种特征的用户中都具有比较高的权重,也就是\(|N(i)|\)高的物品\(p(f, i)\)一般都比较高,所以分母可以除一个\(N(i)\):
这里分母中使用参数\(\alpha\)的目的是解决数据稀疏问题。比如有一个物品只被1个用户喜欢过,而这个用户刚好就有特征\(f\),那么就有\(p( f, i)=1\)。但是,这种情况并没有统计意义,因此我们为分母加上一个比较大的数,可以避免这样的物品产生比较大的权重。
3.3 选择合适的物品启动用户的兴趣
解决用户冷启动问题的另一个方法是在新用户第一次访问推荐系统时,不立即给用户展示推荐结果,而是给用户提供一些物品,让用户反馈他们对这些物品的兴趣,然后根据用户反馈给提供个性化推荐。
一般来说,能够用来启动用户兴趣的物品需要具有以下特点:
- 比较热门:如果要让用户对一个物品进行反馈,前提是用户知道这个物品是什么东西
- 具有代表性和区分性:用一部票房很高且广受欢迎的电影做启动物品,可以想象的到的是几乎所有用户都会喜欢这部电影,因而无法区分用户个性化的兴趣。
- 启动物品集合需要有多样性:在冷启动时,我们不知道用户的兴趣,而用户兴趣的可能性非常多,为了匹配多样的兴趣,我们需要提供具有很高覆盖率的启动物品集合,这些物品能覆盖几乎所有主流的用户兴趣。
如何设计一个选择启动物品集合的系统——决策树
区分度D(i):
其中,\(N^+(i)\)是喜欢物品i的用户集合,\(N^+(i)\)是不喜欢物品i的用户集合,\(\bar{N}(i)\)是没有对物品i评分的用户集合。
Nadav Golbandi的算法首先会从所有用户中找到具有最高区分度的物品i,然后将用户分成3类。然后在每类用户中再找到最具区分度的物品,然后将每一类用户又各自分为3类,也就是将总用户分成9类,然后这样继续下去,最终可以通过对一系列物品的看法将用户进行分类。而在冷启动时,我们从根节点开始询问用户对该节点物品的看法,然后根据用户的选择将用户放到不同的分枝,直到进入最后的叶子节点,此时我们就已经对用户的兴趣有了比较清楚的了解,从而可以开始对用户进行比较准确地个性化推荐。
例子