当前位置:网站首页>协同过滤(Collaborative Filtering)
协同过滤(Collaborative Filtering)
2022-06-21 16:59:00 【qq_53430308】
协同过滤,顾名思义就是协同大家的反馈、评价和意见一起对海量的信息进行过滤,从中筛选出目标用户可能感兴趣的信息的推荐过程。
协同过滤是推荐系统的重要模型之一,推荐系统是用来向用户推荐物品的。协同过滤分为两种:
1.基于用户的协同过滤。
2. 基于物品的协同过滤。
无论是基于用户还是基于物品都是为了找到用户可能喜欢的物品把它给过滤出来,推荐给用户。
1.基于用户的协同过滤
思想:找到和目标用户相似的用户,推荐该相似用户使用过但该用户没见过的物品。
主要有两个步骤:
1.计算每个用户和目标用户的相似度,并选出n个最相似的(n为一个超参数)
2.根据相似用户对某一物品的评价计算出目标用户对这个物品的评价,设定一个阈值判断是否推荐。
示例:

图1.评分矩阵
这是一个不同用户对于不同物品的评分矩阵,现在要决定是否对Alice推荐物品5,也就是要计算出Alice对物品5的评分。
首先,计算每个用户与Alice的相似度,计算相似度主要有以下几种方式。
1.余弦相似度公式,衡量了用户向量i和用户向量j之间的向量夹角的大小,显然夹角越小,余弦相似度越大,用户相似度越大。

本例中,i和j向量表示两个用户对物品的评分矩阵,||i||和||j||表示向量i和j的长度。
2.皮尔逊相关系数,相比余弦相似度公式皮尔逊相关系数通过使用用户平均分对各独立评分进行修正,减小了用户评分偏置的影响。

其中,Ri,p代表用户i对物品p的评分。R_i代表用户i对所有物品的平均评分,p代表所有物品的集合。
然后根据相似度就能找到与目标用户最相似的n个用户了,之后我们就要计算用户对某个物品的具体评分了。
通常使用加权平均的方法

其中权重Wu,s是用户u和用户s的相似度,Rs,p是用户s对物品p的评分。
至此,计算完目标用户对物品的评分之后就可以根据阈值选择是否向目标用户推荐了,整个协同过滤算法也结束了。
以上介绍的是基于用户的协同过滤,他的缺点有:
1.维护用户的相似度矩阵的成本较高,因为在互联网中用户的数量是远远多于物品的数量的,而且用户的数量增长的飞快,这会使相似度矩阵的空间复杂度以n^2的速度快速增长,这是在线存储系统难以承受的扩展速度。
2.在正反馈获取较难的场景(酒店预订,大件商品的购买等)适用效果不好。例如说一个平台售卖大件商品那么这个商品的历史购买用户一定是较少的,因此找到相似的用户就十分困难。
2.基于物品的协同过滤
思想:找到和历史上用户感兴趣的物品相似的物品进行推荐。
也有两个步骤:
1.计算各个物品之间的相似度,计算方式和用户相似度类似。
2.对于一个用户找出其历史上做出过正反馈的物品(也就是其评价过并且表示喜欢的物品),看正反馈的物品和未作出评价物品之间的相似度并且计算出其评价得分并进行排序,选择得分最大的n个物品进行推荐。
如果在计算最终得分时,未作出评价的物品和正反馈物品中的多个都有相似度那么其最终得分应该是这些物品的累加。

3.总结
协同过滤模型是一个非常直观,可解释性很强的模型,但是其不具备较强泛化能力,它无法将两个物品相似这一信息推广到其它物品相似性的计算上。这会导致热门的物品具有很强的头部效应,容易和大量物品产生相似,而尾部的物品很少和其他物品产生相似导致很少被推荐。
例如说这是一个物品之间的相似度矩阵,我们可以看出A,B,C之间的相似度为0,与A,B,C最相似的物品为D,在基于物品的协同过滤中物品D将会被推荐给所有对A,B,C,有过正反馈的用户。
但其实物品D被推荐,只是因为他是一件热门商品,而A,B,C之间因为缺少相似性计算的直接数据,导致他们之间很难产生相似度,因而被忽略,这是协同过滤的一种天然缺陷。
为了解决这一问题,矩阵分解被提出了。
边栏推荐
- Check information on the Internet after the college entrance examination, and pay attention to prevent websites without SSL certificates
- On two years' study experience in University
- WXML模板语法、WXSS模板样式、全局配置、页面配置和网络数据请求
- Node模块化管理
- 摩尔投票法
- PHP的empty,isset和is_null区别
- 【微服务|Nacos】快速实现nacos的配置中心功能,并完成配置更新和版本迭代
- Typescript的通用类型检查
- 大学物理第9章·振动
- 快速失败和安全失败的区别
猜你喜欢
随机推荐
Byte traffic business experience: realize as soon as possible, sew money bags, and sell all in goods
Some basic features of typescript
How typescript is constructed
PHP输出函数
Redis配置与优化
Node输出方式
MySQL common interview questions
Laravel实现文件(图片)上传
Typescript的泛型
Check information on the Internet after the college entrance examination, and pay attention to prevent websites without SSL certificates
EtherCAT igh master station controls three Delta asdaa2 servo rotating circles
TypeScript的一些基本特征
剑指 Offer 28. 对称的二叉树
Postman association to complete interface automation test
Node的字符处理
大学物理第9章·振动
epoll+threadpool高并发网络IO模型的实现
案例驱动 :从入门到掌握Shell编程详细指南
字節跳動提出輕量級高效新型網絡MoCoViT,在分類、檢測等CV任務上性能優於GhostNet、MobileNetV3!
SQL操作:WITH表达式及其应用








