推荐算法的主要分类

推荐算法方案架构图_算法


我这边主要说基于协同过滤的算法:但是还是会简单介绍下其它的

关联规则推荐算法

首先是关联规则算法:即:Apariori以及一个对前者的补充:FP-Growth

概念我就暂时不说了,直接举例子吧

借用慕课网的一个例子:

下面一张表,列举了A、B、C、D四个用户购买商品的清单:

推荐算法方案架构图_spark_02


设置支持度为 2

支持度:Apariori算法中支持度是其重要参数,也就是说在商品每一个组合中如果它的支持度是小于2的那么这个商品的组合就不是一个频繁集,就被淘汰。还有一个至信度,暂时不考虑。

列出商品的单一组合

推荐算法方案架构图_算法_03


每个商品的购买人数都大于2,所以所有商品都保留。然后我们看下两两组合:

推荐算法方案架构图_推荐算法方案架构图_04


通过组合,看到有小于2的,代表要被淘汰,所以只留下了面包、麦片的组合。最后得到频繁项集。

推荐算法方案架构图_数据挖掘_05


然后我们来看看FP-Growth算法。

推荐算法方案架构图_spark_06


推荐算法方案架构图_算法_07

基于内容的推荐算法:

  • 推荐内容相似的物品
    方法:

    TF-IDF算法步骤:
  1. 提取关键词及其TFIDF值
  2. 将共同关键词的TFIDF值的积并求和
  3. 获取相似度的值

属于自然语言范围。

还有一个分类算法:

推荐算法方案架构图_数据挖掘_08


暂时点到就好了,以后如果用到的话我会写写~~

基于协同过滤的推荐算法(重点)

推荐算法方案架构图_spark_09

协同过滤算法有三种:

  • 基于用户的推荐
  • 基于物品的推荐
  • 基于模型的推荐{SVD/SVD++模型、基于概率的矩阵分解、隐语义模型(LFM)





    由于SVD太过于复杂,所以提出了基于概率的矩阵分解。

推荐系统常见的问题:

集中在数据处理(冷启动)和算法优化上(数据稀疏)。
集中在人心的发掘(不算变化的用户爱好、不可预知的事项)。

冷启动:
用户冷启动 ->给新用户做个性化推荐
物品冷启动 ->把新物品推荐给特定的用户
系统冷启动 ->新系统让用户感受到推荐效果

  • 根据用户注册信息对用户进行分类

电话号码、性别、地区

  • 推荐热门排行榜单
  • 基于深度学习模型推荐

解决方案:

推荐算法方案架构图_spark_10


冷启动问题解决方案:

  • 文本分析
  • 主题模型
  • 给物品打标签
  • 推荐排行榜




    好的推荐系统:
  • 推荐给用户的是用户感兴趣的
  • 满足所有内容都推荐给感兴趣的用户
  • 能预测用户行为
  • 帮助用户去发现可能感兴趣但是不容易发现的东西。

推荐系统效果评测:

推荐算法方案架构图_推荐系统_11


推荐算法方案架构图_推荐系统_12