协同过滤推荐算法(1)

一、协同过滤思想简介

二、协同过滤算法原理介绍

三、基于用户的协同过滤算法描述

四、基于物品的协同过滤算法

基于物品的协同过滤算法的优缺点


一、协同过滤思想简介

==========

协同过滤,从字面上理解,包括协同过滤两个操作。首先我们在外出和朋友吃饭的时候肯定会问身边的朋友哪些饭店味道比较好,看看最近有什么美食推荐,而我们一般更倾向于从口味比较类似的朋友那里得到推荐。这就是协同过滤的核心思想。

所谓协同就是利用群体的行为来做决策(推荐),生物上有协同进化的说法,通过协同的作用,让群体逐步进化到更佳的状态。对于推荐系统来说,通过用户的持续协同作用,最终给用户的推荐会越来越准。而过滤,**就是从可行的决策方案中将用户喜欢的方案找出来,**协同过滤就是对从群体的行为中来寻找存在的普遍相似性,通过相似性来对用户做出决策和推荐。

协同过滤利用了两个非常朴素的自然哲学思想:“群体的智慧”和“相似的物体具备相似的性质”,群体的智慧从数学上讲应该满足一定的统计学规律,是一种朝向平衡稳定态发展的动态过程,越相似的物体化学及物理组成越一致,当然表现的外在特性会更相似。虽然这两个思想很简单,也很容易理解,但是正因为思想很朴素,价值反而非常大。所以协同过滤算法原理很简单,但是效果很不错,而且也非常容易实现。

协同过滤推荐算法分为两类,分别是基于用户的协同过滤算法(user-based collaboratIve filtering),和基于物品的协同过滤算法(item-based collaborative filtering)。

二、协同过滤算法原理介绍

============

简单的说就是:**物以类聚,人以群分。**所谓物以类聚,就是计算出每个物品最相似的物品列表,可以为用户推荐相似的物品。所谓人以群分,就是我们可以将与该用户相似的用户喜欢过的物品推荐给该用户。

三、基于用户的协同过滤算法描述


基于用户的协同过滤算法的实现主要分为两个步骤:

  • 1)如何找到和你有相似爱好的人,也就是要计算数据的相似度:

  • 2)通过相似爱好的人来推荐商品

计算相似度需要根据数据特点的不同选择不同的相似度计算方法,有几个常用的计算方法:

我们在寻找有有相同爱好的人的时候,可能会找到许多个,例如几百个人都喜欢A商品,但是这几百个人里,可能还有几十个人与你同时还喜欢B商品,他们的相似度就更高,我们通常设定一个数K,取计算相似度最高的K个人称为最相邻的K个用户,作为推荐的来源群体。

这里存在一个小问题,就是当用户数据量十分巨大的时候,在所有人之中找到K个基友花的时间可能会比较长,而且实际中大部分的用户是和你没有什么关系的,所以在这里需要用到反查表

所谓反查表,就是比如你喜欢的商品有A、B、C,那就分别以ABC为行名,列出喜欢这些商品的人都有哪些,其他的人就必定与你没有什么相似度了,从这些人里计算相似度,找到K个人

通过这K个人推荐商品

ABCD
X(相似度30%)
Y(相似度40%)

我们假设找到的人的喜好程度如下,那么对于产品ABCD,推荐度可以计算为:

  • A:1*0.3=0.3

  • B:1*0.3=0.3

  • C:1*0.4=0.4

  • D:1*0.3+1*0.4=0.7

很明显,我们首先会推荐D商品,其次是C商品,再后是其余商品

当然我们也可以采用其他的推荐度计算方法,但是我们一定会使用得到的相似度0.3和0.4,也即一定是进行加权的计算

基于用户的协同推荐算法的步骤可以总结为:

1.计算其他用户的相似度,可以使用反查表除掉一部分用户

2.根据相似度找到最相似的K个用户

3.在这些邻居喜欢的物品中,根据与你的相似度算出每一件物品的推荐度

4.根据相似度推荐物品

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)

有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!**

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值