推荐系统的关键元素

推荐系统基本知识 - 图1

数据

数据分类

  1. 用户
    1. 用户信息
    2. 用户行为
      1. 显式反馈
      2. 隐式反馈
    3. 用户关系
      1. 显式关系
      2. 隐式关系
  2. 物品

    推荐算法

  3. 基于流行度的推荐算法

  4. 基于协同过滤的推荐算法(重点)
  5. 基于内容的推荐算法
  6. 基于模型的推荐算法
  7. 混合算法

    领域知识

    不通行业有自己的知识体系 使用不同的推荐放啊

    UI

  8. 推荐结果的最终呈现给用户的展示位置 提供了哪些信息

  9. 不同物品的推荐 根据用户的关注点 展现的方案也要不同

    推荐系统的思维模式

  10. 不确定的思维 (概率)

  11. 目标思维

    推荐算法的分类

    大纲

  12. 基于关联规则的推荐算法

    1. Apriori 关联分析算法
      1. 无监督学习
      2. 数据量大 运行效率很低
    2. Fp-Growth 关联分析算法
    3. 应用场景(购物篮 购物车的分析)
  13. 基于内容的推荐算法
    1. 打标签
    2. 文本相似度(TF-IDF 算法 提取关键词)
    3. 分类算法
      1. knn
      2. 决策树
        1. 随机森林
        2. XGBoost
      3. 线性分类算法
        1. 逻辑回归
        2. SVM
      4. 朴素贝叶斯算法
    4. 比如文章推荐
  14. 基于协同过滤的推荐算法 (通过人与人 物与物)
    1. 基于用户的推荐(兴趣相近的用户会对同样的物品感兴趣)
    2. 基于物品的推荐 (推荐用户他们喜欢的物品相似的物品)
    3. 基于模型的推荐 (要基于用户的方式 不能简单推荐相似物品)
      1. SVD/SVD++ 模型
      2. 基于概率的矩阵分解(PMF)
      3. 隐语义模型(LFM)
  15. 基于模型的推荐算法
    1. 深度学习

      基于协同过滤的推荐系统不同方式区别

      | | 基于用户的协同过滤 | 基于物品的协同过滤 | | —- | —- | —- | | 性能 | 适用于用户较少的场合 | 适用于物品少于用户的场合 | | 领域 | 用户个性化不明显 | 个性化需求强烈 | | 实时性 | 用户新型为不一定引起推荐变化 | 用户新型为必定引起推荐变化 | | 冷启动 | 需要一段时间的离线计算 | 新用户对物品产生行为即可以推荐 |

基于协同过滤的推荐算法优缺点

缺点:

  1. 数据稀疏性和冷启动的问题

    有点

  2. 挖掘用户的潜在兴趣

  3. 仅需要评分矩阵来训练矩阵分解模型

    协同过滤

    SVD++ 是最流行的协同过滤模型(解决数据稀疏的问题)
    基于概率的矩阵分解PMF(解决SVD过于复杂的问题)
    spark内置的推荐算法是基于隐语义模型的协同过滤 (ALS)
    image.png

混合推荐算法

  1. 加权的混合(重新分配权重)
  2. 分层的混合 多种推荐算法
  3. 分区的混合 多种推荐机制 将不同的推荐结果份不同的区推荐

    推荐系统常见的问题

  4. 冷启动

  5. 数据稀疏
  6. 不断变化的用户喜好
  7. 不可预知

    冷启动

  8. 用户冷启动 给新用户做个性推荐

  9. 物品冷启动 把新的物品推荐个特定的用户
  10. 系统冷启动 新系统让用户感受到个性化推荐

    冷启动的解决方案

    用户冷启动

  11. 根据用户的注册信息对用户进行分类

  12. 推荐热门的排行榜
  13. 基于深度学习的语义模型
  14. 引导用户把自己的属性表达出来
  15. 利用用户在社交媒体的信息

    物品冷启动

  16. 文本分析

  17. 主题模型(训练出模型)
  18. 给物品打标签
  19. 推荐排行榜单

    数据稀疏解决

  20. 降低矩阵维数能降低(奇异值分解 PCA分解)

    1. 降低矩阵维数会丢失有效数据 但是是主要解决办法
  21. 假设用户对其感兴趣物品相似的物品也感兴趣(数据填充)
    1. 固定填充没有考虑到项目的属性 对推荐带来偏差
  22. 基于深度学习的语义理解模型

    推荐系统效果评测方案

  23. 模型离线实验

  24. A/B Test 在线实验
  25. 用户调研和用户反馈

    模型离线实验

  26. 将数据集分为训练集和测试集

  27. 训练集训练模型 测试集进行预测
  28. 通过预测结果 来评估 精确度 准确度等等

    优缺点:

    1. 优点无真实用户参与
  29. 缺点 依赖给定的用户数据集 无法获取业务关心的指标

    A/B Test 在线实验

  30. A/B Test 在线实验是以正交分桶为基础

  31. 根据分桶执行不同的算法得出差异化的指标
  32. 取其中较优的算法

    用户调研

  33. 预测准确率高不代表用户满意度高

  34. 用户调研需要一些真实的用户需要他们完成一些的任务
  35. 缺点是用户调研成本高 一般情况下很难进行大规模的用户调查

    评测指标

    image.png
    覆盖率