推荐系统实战——冷启动

简介

前一篇博文的介绍,可见大量用户行为数据是推荐系统的先决条件。那么,如何在没有大量用户数据的情况下设计个性化推荐系统并让用户对推荐结果满意而增加用户粘性,这就是本文所介绍的冷启动问题。

思维导图

coldstart

用户注册信息

基于用户注册信息的推荐算法其核心问题是计算每种特征的用户喜
欢的物品,将 p(f,i)定义为喜欢物品i的用户中具有特征f的比例,$$ p(f,i)=\frac{\left | N(i)\bigcap U(f) \right |}{\left | N(i) \right | + \alpha} $$,参数$\alpha$(较大的数)的目的是解决数据稀疏问题。

如何选择合适的物品启动用户的兴趣

Nadav Golbandi的算法通过建立物品区分度的决策树,来启动用户的兴趣,下图是Nadav Golbandi算法的举例,
Nadav Golbandi

物品内容信息

内容相似度计算简单,能频繁更新,而且能够解决物品冷启动问题,那么为什么还需要协同过滤的算法?

  • 内容过滤算法忽视了用户行为,从而也忽视了物品的流行度以及用户行为中所包含的规律,所以它的精度比较低,但结果的新颖度却比较高。
  • 如果用户的行为强烈受某一内容属性的影响,那么内容过滤的算法还是可以在精度上超过协同过滤算法的。

所以,通常将这两种算法融合,可获得比单独使用这两种算法更好的效果。

话题模型(topic model)

“推荐系统的动态特性”和“基于时间的协同过滤算法研究”,这两篇文章title关键词不同,但关键词所属话题相同。这种情况下,先知道文章的话题分布,然后才能准确地计算文章的相似度。

KL散度

定义:
对于离散空间两个概率分布P和Q,从Q到P的KL散度为lisan_KL
对于连续空间的两个概率分布P和Q,从Q到P的KL散度为:lianxu_KL,p和q是概率分布P和Q的概率密度。
简单例子计算:
比如有四个类别,一个方法P得到四个类别的概率分别是0.1,0.2,0.3,0.4。另一种方法Q(或者说是事实情况)是得到四个类别的概率分别是0.4,0.3,0.2,0.1,那么这两个分布的 KL 散度就是:
KL_eg
实际案例
参考附录2
[1]项亮,推荐系统实战.
[2] KL散度(从动力系统到推荐系统)

分享