基于协同过滤算法的推荐

zhaowei121 zhaowei121     2023-02-01     304

关键词:

基于协同过滤算法的推荐

(本实验选用数据为真实电商脱敏数据,仅用于学习,请勿商用)

数据挖掘的一个经典案例就是尿布与啤酒的例子。尿布与啤酒看似毫不相关的两种产品,但是当超市将两种产品放到相邻货架销售的时候,会大大提高两者销量。很多时候看似不相关的两种产品,却会存在这某种神秘的隐含关系,获取这种关系将会对提高销售额起到推动作用,然而有时这种关联是很难通过经验分析得到的。这时候我们需要借助数据挖掘中的常见算法-协同过滤来实现。这种算法可以帮助我们挖掘人与人以及商品与商品的关联关系。

协同过滤算法是一种基于关联规则的算法,以购物行为为例。假设有甲和乙两名用户,有a、b、c三款产品。如果甲和乙都购买了a和b这两种产品,我们可以假定甲和乙有近似的购物品味。当甲购买了产品c而乙还没有购买c的时候,我们就可以把c也推荐给乙。这是一种典型的user-based情况,就是以user的特性做为一种关联。

一、业务场景描述

通过一份7月份前的用户购物行为数据,获取商品的关联关系,对用户7月份之后的购买形成推荐,并评估结果。比如用户甲某在7月份之前买了商品A,商品A与B强相关,我们就在7月份之后推荐了商品B,并探查这次推荐是否命中。

本次实验选用的是PAI-Studio作为实验平台,仅通过拖拽组件就可以快速实现一套基于协同过滤的推荐系统。本实验的数据和完整业务流程已经内置在了PAI首页模板,开箱即用:

技术分享图片

二、数据集介绍

数据源:本数据源为天池大赛提供数据,数据按时间分为两份,分别是7月份之前的购买行为数据和7月份之后的。 
具体字段如下:

字段名含义类型描述
user_id 用户编号 string 购物的用户ID
item_id 物品编号 string 被购买物品的编号
active_type 购物行为 string 0表示点击,1表示购买,2表示收藏,3表示购物车
active_date 购物时间 string 购物发生的时间

数据截图: 
技术分享图片

三、数据探索流程

本次实验选用的是PAI-Studio作为实验平台,仅通过拖拽组件就可以快速实现一套基于协同过滤的推荐系统。

实验流程图: 
技术分享图片

1.协同过滤推荐流程

技术分享图片

首先输入的数据源是7月份之前的购物行为数据,通过SQL脚本取出用户的购买行为数据,进入协同过滤组件,这么做的目的是简化流程,因为购买行为对这次实验分析是最有价值的。协同过滤的组件设置中把TopN设置成1,表示每个item返回最相近的item和它的权重。通过购买行为,分析出哪些商品被同一个user购买的可能性最大。设置图如下:

技术分享图片

协同过滤结果,表示的是商品的关联性,itemid表示目标商品,similarity字段的冒号左侧表示与目标关联性高的商品,右边表示概率:

技术分享图片

比如上图的第一条,itemid1000和item15584的相似度为0.2747133918,相似度越高表示两个物品被同时选择的概率越大。

2.推荐

上述步骤介绍了如何生成强关联商品的对应列表,这里使用了比较简单的推荐规则,比如用户甲某在7月份之前买了商品A,商品A与B强相关,我们就在7月份之后推荐了商品B,并探查这次推荐是否命中。这个步骤是通过下图实现的:

技术分享图片

3.结果统计

技术分享图片

上面是统计模块,左边的全表统计展示的是根据7月份之前的购物行为生成的推荐列表,去重后一共18065条。右边的统计组件显示一共命中了90条,命中率0.4%左右。

根据上文的统计结果可以看出,本次试验的推荐效果比较一般,原因在如下几方面:

1)首先本文只是针对了业务场景大致介绍了协同过滤推荐的用法。很多针对于购物行为推荐的关键点都没有处理,比如说时间序列,购物行为一定要注意对于时效性的分析,跨度达到几个月的推荐不会有好的效果。其次没有注意推荐商品的属性,本文只考虑了商品的关联性,没有考虑商品是否为高频或者是低频商品,比如说用户A上个月买了个手机,A下个月就不大会继续购买手机,因为手机是低频消费品。

2)基于关联规则的推荐很多时候最好是作为最终推荐结果的补充或者是最基础的推荐系统,真正想提高准确率还是要依靠机器学习算法训练模型的方式,具体方法可以参考泛推荐系列的其它文章。

 

阅读原文

更多技术干货 请关注阿里云云栖社区微信号 :yunqiinsight




协同过滤推荐算法简述

...业界的推荐算法。一般,协同过滤推荐分为三种类型。1.基于用户(user-based)的协同过滤基于用户的协同过滤算法,主要考虑的是用户和用户之间的相似度,只要找出与目标用户相似度高的其他用户,根据相似用户喜欢的物品,预... 查看详情

协同过滤推荐算法(代码片段)

...。算法通过对用户历史行为数据的挖掘发现用户的偏好,基于不同的偏好对用户进行群组划分并推荐品味相似的商品。协同过滤推荐算法分为两类,分别是基于用户的协同过滤算法(user-basedcollaboratIvefiltering),和基于物品的协同... 查看详情

推荐算法model-based协同过滤算法(代码片段)

基于模型的协同过滤推荐算法Model-Based协同过滤算法基于K最近邻的协同过滤推荐基于回归模型的协同过滤推荐基于矩阵分解的CF算法Model-Based协同过滤算法随着机器学习技术的逐渐发展与完善,推荐系统也逐渐运用机器学习的... 查看详情

推荐算法的基于协同过滤的推荐

参考技术A基于协同过滤的推荐算法理论上可以推荐世界上的任何一种东西。图片、音乐、样样可以。协同过滤算法主要是通过对未评分项进行评分预测来实现的。不同的协同过滤之间也有很大的不同。基于用户的协同过滤算法:... 查看详情

基于协同过滤推荐算法的图书推荐研究

...围内特别是在互联网领域中取得了巨大成功。文章介绍了基于物品的协同过滤算法的基本思想和实现步骤,以及应用于实际图书推荐项目中的效果和产生的问题。基于物品的协同过滤算法的基本原理是和某用户历史上感兴趣的物... 查看详情

基于sparkmllib平台的协同过滤算法---电影推荐系统

协同过滤算法概述 基于模型的协同过滤应用---电影推荐实时推荐架构分析          一、协同过滤算法概述      本人对算法的研究,目前还不是很深入,这里简单的介... 查看详情

推荐算法简介:基于用户的协同过滤基于物品的协同过滤基于内容的推荐

...,而根本不会考虑到物品本身的属性。可分成两类:1、基于用户(user-based)的协同过滤2、基于商品(item-based)的协同过滤1.1.1、基于用户的协同过滤基本思想:基于用户对物品的偏好找到邻居用户(相似用户),然后将邻居用... 查看详情

毕业设计之---基于协同过滤的商品推荐系统(代码片段)

简介推荐系统,是当今互联网背后的无名英雄。我们在某宝首页看见的商品,某条上读到的新闻,某度上的搜索列表,甚至在各种地方看见的广告,都有赖于推荐算法和系统.本片文章讲述有哪些常用的推荐算法,协同过滤推荐算... 查看详情

推荐算法总结

参考技术A一、协同过滤基于用户协同过滤UserCF基于物品协同过滤ItemCF基于模型协同过滤Mode_based基于用户和基于物品协同过滤都称为以记忆为基础的协同过滤技术,共同缺点是资料稀疏、难以处理大数据量下的即时结果,因此发... 查看详情

2前奏之基于用户的协同过滤算法:usercf

仅仅基于用户行为数据设计的推荐算法一般称为协同过滤算法,方法有:隐语义模型基于图的随机游走算法基于邻域的方法:应用最广泛基于用户的协同过滤算法:给用户推荐和他兴趣相似的其他用户喜欢的物品基于物品的协同... 查看详情

基于协同过滤算法的推荐

基于协同过滤算法的推荐(本实验选用数据为真实电商脱敏数据,仅用于学习,请勿商用)数据挖掘的一个经典案例就是尿布与啤酒的例子。尿布与啤酒看似毫不相关的两种产品,但是当超市将两种产品放到相邻货架销售的时候... 查看详情

基于协同过滤算法的推荐

基于协同过滤算法的推荐(本实验选用数据为真实电商脱敏数据,仅用于学习,请勿商用)数据挖掘的一个经典案例就是尿布与啤酒的例子。尿布与啤酒看似毫不相关的两种产品,但是当超市将两种产品放到相邻货架销售的时候... 查看详情

简单的推荐算法(代码片段)

简单的基于项目的协同过滤算法技术概述协同过滤算法是一种利用集体智慧的方法,它类似与朋友推荐,当你想要看一个电影时,你会去询问跟你有着相同喜好的人有没有自己没看过的好电影。这就是协同过滤的核心思想技术详... 查看详情

2020-05-16基于内容的推荐算法和协同过滤算法

...于答辩完,希望下次不要再忘记学习了!之前一直没分清基于内容的推荐算法和协同过滤算法是咋回事,这几天简单查了下做个简单记录https://www.zhihu.com/question/19971859https://www.jianshu.com/p/5a867ef083ffhttps://baijiahao.baidu.com/s?id=1656209957... 查看详情

推荐系统基础-纪要(代码片段)

...似度计算使用不同相似度计算方式实现协同过滤协同过滤基于模型的算法推荐系统的评价推荐系统的冷启动基于内容的推荐基于内容的推荐基于物品的协同过滤区别矩阵分解基于内容的推荐基于内容推荐流程词向量7天基础推荐... 查看详情

基于回归模型的协同过滤推荐算法(代码片段)

基于回归模型的协同过滤推荐基于回归模型的协同过滤推荐Baseline:基准预测方法一:随机梯度下降法优化step1:梯度下降法推导step2:随机梯度下降step3:算法实现Step4:准确性指标评估方法二:交替最小二... 查看详情

个性化推荐是怎么做的?

...。  目前比较流行的个性化推荐算法有以下几种:  基于内容的推荐:根据内容本身的属性(特征向量)所作的推荐。  基于关联规则的推荐:“啤酒与尿布”的方式,是一种动态的推荐,能够实时对用户的行为作出推荐。... 查看详情

基于用户的协同过滤推荐算法(代码片段)

概述计算机网络技术带给人们的最大贡献之一就是数据的共享,如何使得我们的项目更加“深入人心”是我们需要不断思考的方向。很多的项目都需要给用户提供数据(例如博客、知识等),但是海量的数据从某种程度上会降低... 查看详情