【CF&关联规则】推荐系统常见算法与应用场景分类与比较

本文讨论了在构建内嵌推荐系统时遇到的问题,着重介绍了Java的选择和推荐算法,包括基于购物车的关联规则、item-basedCF、user-basedCF(如knn)、基于内容的推荐(如SVD),以及市场细分中的K-Means聚类。作者还详细解释了关联规则的原理,如支持度和置信度,以及协同过滤在不同场景下的优缺点和适用性。
摘要由CSDN通过智能技术生成

最近在做一个内嵌推荐算法的推荐系统,当时想的是会java多一点就用java做吧(其实也是半瓢水),一做一个不吱声,下面记录一下常见推荐系统里的推荐算法,以及我使用的算法的特点与场景。

1分类概述

推荐分类算法代表算法特点
面向客户需求推荐分类模型(逻辑回归/神经网络)-
基于购物车的推荐关联规则2.1
基于物品相似性的推荐item-based CF2.2.1
基于客户相似性的推荐user-based CF/knn2.2.2
基于内容的推荐关联规则或SVD方法-
市场细分K-Means等聚类-

代表算法特点介绍

2.1应用关联规则到推荐

关联规则其实是一个很方便的发现两样商品关系的算法。共同提升的关系表示两者是正相关,可以作为互补品,如尿不湿和啤酒一起卖是最经典的。

  • 相关概念
    规则 X 的支持度 = 包含规则 X 的交易购物车数 /购物车总数。
    理解:支持度表示规则 X 是否普遍。
    规则 X(A→B) 的置信度 = 包含规则 X 的交易购物车数/规则X中含商品B的交易购物车。
    理解:置信度是一种条件概率,表示购买了A产品的客户再购买B产品的概率。

总体理解:
在这里插入图片描述
支持度的分母都是5,也就是购物车的数量,分子则是选取这个规则中的所有商品同时出现在一个篮子的次数。
以A->D为例,同时包含A和D的篮子有2个,总的交易数量有5个,所以规则A->D的支持度为2/5;
有商品 A 的购物车个数为3,在这三个购物车中,其中2个购物车又包含商品D,所以该规则的置信度(可信度)为2/3。

频繁关联:关联,同时发生;频繁,次数很多,这里的次数多就需要我们认为规定阈值(后序称为支持度阈值或是置信度阈值)。那么就是项集同时发生的次数很多。
频繁项集:该项集的相(绝)对支持度满足最小支持度(计数)阈值。
注:由于频繁项集的子集也是频繁的,因此在存储所有频繁项集时个数太多,因此存储闭得频繁项集或者是极大频繁项集。

由挖掘频繁项集 到 根据频繁项集得到关联规则:

  • 挖掘频繁项集
    具体步骤(伪代码):
    伪代码
  • 由频繁项集产生关联规则(频繁关联规则):
  1. 对于一个频繁项集l,导出所有非空真子集s,我们的关联规则就是s=>(l-s),过程中的所有子集因为是从频繁来的,因此都满足强规则中的满足最小支持度。
  2. 通过是否满足最小置信度来筛选关联规则。
    置信度=支持度计数(s ∪ l-s) / 支持度计数(s)=p(l-s | s)
    解释2
    注:这里的支持度由于我们是从频繁项集推出的关联规则,所以
    支持度= 支持度计数(s ∪ l-s) / 总事务数=p((s ∪ l-s))
    都满足最小支持度阈值

适用场景:无需个性化定制的场景;有销售记录的产品,向老客户推荐;套餐设计与产品摆放。

2.2应用CF到推荐

基于用户和基于物品的协同过滤算法都是常见的推荐系统技术,它们各自有优点和缺点,并适用于不同的推荐场景。

  • 基于用户的协同过滤算法:
    优点:
    简单直观: 基于用户的协同过滤算法易于理解和实现,因为它主要根据用户的行为历史(如评分、喜好)来进行推荐。
    适用性广泛: 基于用户的协同过滤适用于用户数量较多、物品相对稳定的场景,例如电影、音乐等领域。
    个性化程度高: 该算法能够根据用户的个性化偏好进行推荐,从而提供更符合用户兴趣的推荐结果。
    缺点:
    稀疏性问题: 在用户-物品矩阵中,用户对物品的评分数据往往是稀疏的,这会导致难以找到足够相似的用户进行推荐。
    冷启动问题: 对于新用户,缺乏足够的行为数据,因此难以为其进行个性化推荐。
    计算复杂度高: 随着用户数量和物品数量的增加,基于用户的协同过滤算法的计算复杂度也会增加,导致效率低下。

适用场景: 基于用户的协同过滤算法适用于用户数量较多、用户行为数据相对丰富、物品相对稳定的推荐场景,例如电影、音乐、图书等。

  • 基于物品的协同过滤算法:
    优点:
    抗稀疏性: 基于物品的协同过滤算法相对于基于用户的算法更加抗稀疏,因为物品之间的相似度更容易计算。
    适用于物品稳定的场景: 如果物品相对稳定,其属性和特征不会频繁变化,基于物品的算法能够提供稳定且高质量的推荐结果。
    计算复杂度相对较低: 相比于基于用户的算法,基于物品的算法的计算复杂度通常较低,因为物品间的相似度计算相对简单。
    缺点:
    不适用于新物品: 对于新加入系统的物品,基于物品的协同过滤算法可能无法立即为其提供准确的推荐结果,因为它需要一定数量的用户行为数据来计算物品间的相似度。
    不适用于动态物品: 如果物品属性和特征频繁变化,基于物品的算法可能无法及时适应变化,导致推荐结果不准确。

适用场景: 基于物品的协同过滤算法适用于物品相对稳定、用户行为数据较为稀疏的推荐场景,例如电商平台中的商品推荐。

参考文章

https://zhuanlan.zhihu.com/p/161340720
《数据挖掘:概念与技术(原书第3版)》

  • 12
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值