推荐系统:ARL(关联规则学习)

简介: 一家公司的产品内容一般都是非常丰富的,但用户的兴趣往往会针对整个内容集进行筛选,挑选出用户感兴趣的产品,筛选的规则因人而异。为了让用户不迷失在丰富的产品集群中,并根据兴趣领域达到所需的个性化服务,一般都会制作各种过滤器。这些过滤器和算法显示就是我们的“推荐系统”。

上一篇文章我们介绍了推荐算法如何影响我们的生活,今天我们来聊聊如何实现一个简单的推荐系统—关联规则学习。

一家公司的产品内容一般都是非常丰富的,但用户的兴趣往往会针对整个内容集进行筛选,挑选出用户感兴趣的产品,筛选的规则因人而异。为了让用户不迷失在丰富的产品集群中,并根据兴趣领域达到所需的个性化服务,一般都会制作各种过滤器。这些过滤器和算法显示就是我们的“推荐系统”。

市场上流行的推荐系统可以归纳在这 4 个主要实现方式上:

  • 简单推荐系统:利用业务知识或简单的排序技术进行一般性推荐。
  • 关联规则学习:根据关联分析学习到的规则提出推荐内容。
  • 基于内容的过滤:根据产品的相似性提出推荐内容。
  • 协同过滤:根据共同的兴趣对用户或产品进行推荐。它分为基于用户,基于产品和基于模型(深度学习)的3种方式。

本文是推荐系统实现的第一部分,重点将放在简单推荐系统和关联规则学习上。敬请关注基于内容的过滤和协同过滤方法。

简单推荐系统

简单推荐系统不关心用户行为或产品特性。这些系统一般会关注喜欢的、流行的、销量高的、得分最高的产品等,并直接向用户推荐这些产品。比如淘宝或京东的销量最高的,评分最高的等。

关联规则学习

它是一种基于规则的机器学习技术,用于查找数据中的模式。在进行关联规则学习时使用先验算法。Apriori 是一种关联规则挖掘算法,也是最经典的算法,用于揭示产品关联。Apriori 中有 3 个重要指标:

  • 支持:测量一起购买产品 X 和 Y 的频率
Support(X, Y) = Freq(X, Y) / Total Transaction
  • 置信度:购买产品X时购买产品Y的概率
Confidence(X, Y) = Freq(X, Y) / Freq(X)
  • Lift:购买产品X时购买产品Y的概率增加系数。
Lift = Support(X, Y) / (Support(X) * Support(Y))

Apriori 是如何工作的?

Apriori算法根据过程开始时确定的支持度阈值计算可能的产品对,并根据每次迭代确定的支持度值进行淘汰,从而创建最终候选项。

  • 第一步:计算每个产品的支持值。

  • 第 2 步:剔除支持值等于或低于流程开始时确定的支持阈值的产品。

  • 第 3 步:识别可能的产品对并计算支持值。

  • 第4步:根据确定的支持度阈值进行剔除。

  • 第 5 步:确定新的可能产品对并计算支持值。

  • 第6步:根据确定的支持度阈值进行剔除。

  • 第7步:决赛桌

在所有购买的商品中,鸡蛋和啤酒占 40%。67%购买鸡蛋的顾客同时购买啤酒。购买鸡蛋啤酒销量增长1.11倍。根据最终表,可以进行这些评论。

由于我们已经检查了 Apriori 算法的工作逻辑,现在是时候创建一个 Python 项目,我们将在其中使用 Apriori 算法实现关联规则学习。

在这个项目中,我使用的数据是Online Retail II 数据集,大家可以到这里下载相关数据集,Online Retail II 数据集相关属性信息如下:

属性信息

  • Invoice:发票编号,为每笔交易唯一分配的 6 位整数编号。如果此代码以字母“C”开头,则表示取消。
  • StockCode:产品(商品)代码,唯一分配给每个不同产品的 5 位整数。
  • Description:产品(商品)名称。
  • Quantity:每笔交易的每个产品(商品)的数量,数字。
  • InvoiceDate:发票日期和时间,生成交易的日期和时间,数字。
  • UnitPrice : 单价。数字。以英镑 (£) 为单位的产品单价。
  • CustomerID:客户编号,唯一分配给每个客户的 5 位整数号码。
  • Country:国家名称,客户所在国家/地区的名称。

与数据集相关的操作和各种操作已经在前面的部分代码中完成,你可以在这里找到项目的完整代码。

我们要应用 ARL,首先,您应该准备 ARL 数据结构。我们需要一个 0 和 1 的发票项目矩阵,但在创建这个矩阵之前,我将把数据集缩减为一个国家。我选了法国,你可以选别的国家自己试试。

由于我们将数据集缩减为法国,接下来我们可以创建 Invoice-Item 矩阵。我们可以把StockCode和Description都作为Item,但是把Description作为Item会占用内存大,代码运行慢,所以把StockCode作为Item会更友好,而不是把产品名称作为Item。

频繁项集是一组经常一起出现并达到预定义的支持度和置信度的项集。可以使用关联规则找到频繁项集。

antecedents : first product
consequents : second product
antecedent support : proportion of transactions that contains antecedent A
consequent support : proportion of transactions that contains consequent C
support : items’ frequency of occurrence
confidence : conditional probability of purchasing consequents Y 
when antecedents X is purchased
lift : How many times the probability of purchasing consequents Y 
increases when antecedents X is purchased
leverage : similar to lift but it gives priority to higher support.
conviction : expected frequency of antecedents X without consequent Y

创建规则表后,可以根据需要(Support、Confidence、Lift、Leverage)进行排序,然后进行实现推荐过程。

作为最后一步,我们将进行产品推荐。为此,我们将使用一个函数,该函数将规则数据框、产品 ID 和要进行的推荐数量作为参数。

假设我们为商品id为22492的商品推荐2个商品。

通过使用以下函数,我们可以从我们要推荐的产品的 id 中检查产品名称。

推荐系统是一种常见的人工智能应用,其目的是为用户提供个性化的、有价值的内容或商品建议。它通常在电子商务、新闻门户网站、视频流媒体服务和社交媒体平台等场景中使用。

推荐系统通常会利用用户的历史浏览、购买、搜索等行为数据来对用户进行建模,然后根据用户的偏好为其提供建议。这些建议通常是按照用户的可能感兴趣的内容或商品的相关性排序的。

目录
相关文章
|
自然语言处理 搜索推荐 算法
M2GRL:一种用于全网规模推荐系统的多任务多视角图表示学习框架
由阿里云开发者社区联合新零售智能引擎事业群共同打造的《KDD 论文精华解读》电子书重磅发布!覆盖推荐系统、图神经网络预训练、买家秀视频标题生成、在线电视剧的受众竞争力预测和分析等 10+ 内容,免费下载电子书感受科技的震撼!
M2GRL:一种用于全网规模推荐系统的多任务多视角图表示学习框架
|
12天前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的线上学习资源智能推荐系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的线上学习资源智能推荐系统附带文章源码部署视频讲解等
22 5
|
机器学习/深度学习 人工智能 移动开发
人工智能领域:面试常见问题超全(深度学习基础、卷积模型、对抗神经网络、预训练模型、计算机视觉、自然语言处理、推荐系统、模型压缩、强化学习、元学习)
人工智能领域:面试常见问题超全(深度学习基础、卷积模型、对抗神经网络、预训练模型、计算机视觉、自然语言处理、推荐系统、模型压缩、强化学习、元学习)
|
搜索推荐 安全 关系型数据库
基于知识图谱的个性化学习资源推荐系统的设计与实现(论文+源码)_kaic
最近几年来,伴随着教育信息化、个性化教育和K12之类的新观念提出,一如既往的教育方法向信息化智能化的转变,学生群体都对这种不受时间和地点约束的学习方式有浓厚的兴趣。而现在市面上存在的推荐系统给学生推荐资料时不符合学生个人对知识获取的需求情况,以至于推荐效果差强人意。与此同时,这种信息数字化的新学习方法在给学生群体带来方便的同时,也带来了很多其他的问题,例如信息冗杂、形式让人眼花缭乱的问题,导致系统检索变得难以运行。 解决问题的关键是个性化学习推荐系统,它适合于各式各样的用户产生的各式各样的需求。
|
自然语言处理 搜索推荐 计算机视觉
推荐系统中不得不学的对比学习(Contrastive Learning)方法(三)
推荐系统中不得不学的对比学习(Contrastive Learning)方法(三)
410 0
推荐系统中不得不学的对比学习(Contrastive Learning)方法(三)
|
机器学习/深度学习 自然语言处理 搜索推荐
推荐系统[八]算法实践总结V2:排序学习框架(特征提取标签获取方式)以及京东推荐算法精排技术实战
推荐系统[八]算法实践总结V2:排序学习框架(特征提取标签获取方式)以及京东推荐算法精排技术实战
推荐系统[八]算法实践总结V2:排序学习框架(特征提取标签获取方式)以及京东推荐算法精排技术实战
|
人工智能 搜索推荐 算法
AAAI 2023杰出论文一作分享:新算法加持的大批量学习加速推荐系统训练
AAAI 2023杰出论文一作分享:新算法加持的大批量学习加速推荐系统训练
238 0
|
存储 算法 搜索推荐
# 【推荐系统】:关联规则
# 【推荐系统】:关联规则
# 【推荐系统】:关联规则
|
机器学习/深度学习 人工智能 搜索推荐
Google提出用对比学习解决推荐系统长尾问题
Google提出用对比学习解决推荐系统长尾问题
838 0
Google提出用对比学习解决推荐系统长尾问题