基于内容的推荐
需要分析内容,无需考虑其他用户的行为,例如基于用户喜欢的item的属性/内容进行推荐
通常使用在文本相关产品上进行推荐
使用词袋模型来衡量不同文本的相似度,每个词的权重可以使用频率或者tf-idf表示
相似度计算公式一般使用余弦相似度
协同过滤(CF)
基于用户的协同过滤
找到和用户最近的其他用户,找到其他用户看过或者买过但当前用户没有看过或者买过的item,根据用户与其他用户距离的远近进行打分,找到得分最高的item进行推荐。
Tip: 基于用户的协同过滤求相似度时应该先去均值
基于物品的协同过滤
根据用户对商品或者内容的行为,计算item与item的相似度,找到和当前item最近的进行推荐
相似度/距离度量方法
欧式距离:
Jaccard相似度:
余弦相似度:
Pearson相似度:
User CF vs Item CF
工业上一般使用Item CF,应为一般情况下用户太多,远多于商品的数量,并且Item CF更加稳定,例如随着时间的推移,物品之间的相似度基本不发生变化,而由于个人兴趣的改变,User CF的用户之间的相似度很可能发生较大的变化。
CF优缺点
协同过滤优点
基于用户行为,因此对推荐内容无需先验知识
只需要用户和商品关联矩阵即可,结构简单
在用户行为丰富的情况下,效果好
协同过滤缺点
需要大量的显性/隐性用户行为
需要通过完全相同的商品关联,相似的不行
假定用户的兴趣完全取决于之前的行为,而和当前上下文环境无关
在数据稀疏的情况下受影响。可以考虑二度关联。(如U1与U2无关联,而U1、U2与U3都关联)
冷启动问题
对于新用户,所有推荐系统对于新用户都有这个问题,一般的解决办法:
1) 推荐非常热门的商品,收集一些信息
2) 在用户注册的时候收集一些信息
3)在用户注册完之后,用一些互动游戏等确定喜欢与不喜欢
4)对于新商品,根据本身的属性,求与原来商品的相似度。Item-based协同过滤可以推荐出去。