# 协同过滤

根据用户对物品的行为数据进行推荐

# 基于近邻的协同过滤

# 基于用户的协同过滤(User-CF)

  • 基于用户的协同过滤的基本原理是,根据所有用户对物品的偏好,发现与当前用户口味和偏好相似的近邻用户,并推荐近邻所偏好的物品

  • 在一般的应用中采用的是knn算法,基于k个邻居的历史偏好信息,为当前用户推荐

  • User-CF和基于人口统计学的机制

    • 两者都是计算用户的相似度,并基于相似邻居用户群计算推荐
    • 它们不同的是如何计算用户的相似度,基于人口统计学的机制只考虑用户本身的特征,而基于用户的协同过滤机制在用户历史偏好的数据上计算用户的相似度,它的基本驾驶是喜欢相似物品的用户可能有相似的偏好

# 基于物品的协同过滤(Item-CF)

基于项目的协同过滤推荐的基本原理与基于用户的相似,只是使用所有用户对物品的偏好,发现物品和物品之间的相似度,然后根据用户的历史偏好信息,将类似的物品推荐给用户

  • Item-CF和基于内容的推荐
    • 都是基于物品相似度预测,只是相似度计算方法不一样,前者是从用户历史偏好推断,后者是基于物品本身的属性特征信息
  • 协同过滤如何选择Item or User CF
    • 电商、电影、音乐网站、用户数远大于物品数(Item CF)用户多的时候,物品相对比较稳定
    • 新闻网站,物品数远大于用户数(User CF)物品多的时候,用户相对比较稳定

# 比较

同样是协同过滤,该如何选择

  • Item-CF

    • 基于物品的推荐机制是Amazon在基于用户的机制上改良策略。因为在大部分web站点上, 物品的个数远小于用户的个数,而且物品的个数和相似度相对稳定,基于物品的机制比基于用户的实时性更好,因此Item-CF是目前的主流
  • User-CF

    • 在新闻等推荐系统中,物品(新闻)的个数远大于用户数,而且新闻更新的程度很快,所以相似度不稳定,此时用User-CF比较好

# 优缺点

# 优点

  • 不需要对物品或者用户进行严格的建模,而且不要求对物品特征的描述是机器可理解的

  • 这种计算出来的推荐是开放的,可以公用他人的经验,更好支持用户发现潜在的偏好

# 缺点

  • 方法基于历史数据,因此对新物品或者新用户都有冷启动问题
  • 推荐的效果依赖历史偏好数据的多少和准确性
  • 在大部分实现中,用户的历史偏好是稀疏的,因此在稀疏矩阵上计算有明显问题,包括少数人的错误偏好会对推荐的准确度有很大的影响等等
  • 对一些特殊品味的用户不能很好的推荐

# 基于模型的协同过滤

  • 基本思想

    1. 用户具有一定的特征,影响偏好选择
    2. 物品有一定的特征,影响用户是否选择
    3. 用户之所以选择某个商品,是因为用户特征和物品特征的匹配
  • 基于这种思想,模型的建立相当于从行为数据中提取特征,给用户和物品同时打上标签,这和基于人口统计学的用户标签,基于内容方法的物品标签本质上一样,都是特征提取和匹配

  • 有显性特征时,比如用户标签、物品分类标签,可以直接匹配作出推荐,没有时,可以根据已有的偏好数据,去发掘隐藏特征,需要用到隐语义模型(LFM)

基于模型的协同过滤,就是基于样本的用户偏好,训练一个推荐模型,然后根据实时的用户喜好信息进行预测新物品的得分,计算推荐

# 基于近邻的推荐和基于模型的推荐

  • 基于近邻的推荐时在预测时直接使用已有的用户偏好数据,通过近邻数据来预测对新物品的偏好(类似分类)
  • 基于模型的方法是使用偏好来训练模型,用模型做预测(类似回归)

训练模型时,可以基于标签内容来提取物品特征,也可以让模型去发掘物品的潜在特征,这样的模型时隐语义模型(LFM)

# 一些特征选取

# User—Item

# User

# Item特征