基于用户的协同过滤

image.png基于用户的推荐
image.png
A, C 相似 并且用户B(相似度很低)不一样 C购买了物品D 则可以把物品D推荐给用户A

  1. 算法思想是对用户进行聚类, 推荐和你相似的用户喜欢的无哦
  2. 优点

    1. 有推荐新信息的能力, 可以返现用户潜在但尚未发现的爱好
    2. 推荐个性化, 自动化程度高

      如何计算用户相似度

  3. 欧氏距离

    1. image.png
  4. 余弦相似度
    1. image.png
  5. 皮尔逊相关系数
    1. image.png

推荐过程

  1. 生成用户-物品评价矩阵
  2. 计算目标用户和所有用户的相似度 找出k个最相似用户集
  3. 生成推荐

    补充知识点

  4. 向量的模

    1. 空间向量(x,y,z),其中x,y,z分别是三轴上的坐标,模长是 [3]

协同过滤 - 图6

基于物品得协同过滤(item-based)

基于用户得协同过滤得缺点

  1. 用户数目较大, 计算用户相似度矩阵越困难
  2. 用户-物品评价矩阵数据非常稀疏,难以找到相似用户集

    思想理解

    image.png

    实现步骤

  3. 用户-物品排序

image.png

  1. 构建用户-物品倒排序表

image.png
接着构建同现矩阵

  1. 构建同现矩阵

image.png

  1. 兴趣 以C为列子

image.png

  1. 计算出兴趣度

image.png

计算公式

image.png

物品相似度

  1. 两个物品相似度越高 越共同被很多用户喜欢
  2. 用户对物品的打分

    基于物品的协同过滤算法步骤

  3. 计算用户-物品打分矩阵

  4. 计算物品相似度矩阵
  5. 用户-物品打分矩阵*物品相似度矩阵=推荐列表

    基于模型的协同过滤

    基于模型的协同过滤

  6. 基于分解

  7. 基于隐语义

    1. 基于分解

    分解相似度矩阵

  8. 特征值分解

  9. 奇异值分解(a-b-c 准确度提高 复杂度增加 效率降低)
    1. 缺点
      1. 需要很大的储存空间
      2. 特别复杂
      3. SVD
      4. SVD++
      5. 时间敏感模型
  10. 基于概率的矩阵分解

    1. MF矩阵分解模型
      1. 基本矩阵分解
      2. 正则化矩阵分解
      3. 基于概率的矩阵分解

        分解评分矩阵

        2. 基于隐语义

        LFM(FuncSVD)

        利用梯度下降法对SVD进行了改进

        缺点

  11. 无法解决冷启动

  12. 无法实时推荐