协同过滤推荐算法

news2024/12/24 9:40:04

协同过滤:利用集体智慧,借鉴相关人群的观点进行推荐。
过去兴趣相似的用户在未来的兴趣也会相似;相似的用户会产生相似的历史行为数据。
根据历史行为,产生相似用户,分析出推荐结果。
用一句大白话说,其实也就是小明喜欢A、B,小红喜欢A、B、C,那么就可以推测出来小明也喜欢C,我们就可以给小明推荐C。

协同过滤算法的基本分类

在这里插入图片描述

协同过滤算法的一般步骤

收集数据—>寻找邻域—>计算推荐结果
在这里插入图片描述

收集用户行为数据:

在这里插入图片描述
显示反馈:用户主动地向系统表达其偏好,一般需要用户在消费完项目后进行额外反馈。
隐式反馈:隐含用户对项目偏好的行为数据,是用户在探索或消费项目过程中正常操作。

User-CF基于用户的协同过滤

基本思想:基于用户对项目的历史偏好找到相邻(相似)的用户,将邻居(相似)用户喜欢的项目推荐给当前用户。

用户兴趣相似度的计算

Jaccard公式和余弦相似度公式,这两个公式仅仅是计算用户的兴趣相似度。
在这里插入图片描述
实例计算:(用户相似度)
在这里插入图片描述

兴趣度预测

(1)先求出与用户u最相似的K个用户
(2)
在这里插入图片描述
计算推荐结果:
在这里插入图片描述

基于User-CF的推荐系统

离线预处理:
(1)计算用户之间的相似度
(2)并据此确定每个用户的邻域(K近邻)
在线推荐:
在这里插入图片描述

用户相似度改进IUF

问题:用户A和B都买过《新华字典》;用户C和D都买过《操作系统》,那么哪组用户更相似呢?
显然是买操作系统的那组用户是更相似的,因为新华字典有很多人买,而操作系统是这个专业的。但如果用以上方法计算相似度,两组相似度是一样的,基于这样的弊端,做出了改建。
逆用户频率
基本思想就是:惩罚热门项目;两个用户对冷门项目有过同样行为更能说明他们的兴趣相似。
相似度计算公式得到改进:
在这里插入图片描述

基于用户的缺点

很多用户两两之间,只有很少的共同反馈,而仅有的共同反馈的项目,往往是热门项目,缺乏区分度。
随着用户行为数据的增加,用户间相似度可能变化很快,离线算法难以瞬间更新推荐结果。

基于物品的协同过滤Item-CF

基本思想:基于用户对项目的反馈(偏好),寻找相似(相关)的项目;根据用户的历史反馈(偏好)行为,为他推荐相似的项目。
就是说,我过去喜欢某类商品,将来还是喜欢这类商品。

项目的相似度计算

在这里插入图片描述

兴趣度预测

在这里插入图片描述

基于Item-CF的推荐系统

离线预处理:计算项目之间的相似度,并据此确定每个项目的邻域。
在线推荐
在这里插入图片描述
计算实例
在这里插入图片描述

项目相似度改进

惩罚活跃用户
基本思想:越活跃的用户对项目相似度的贡献越小。
在这里插入图片描述
惩罚热门项目
在这里插入图片描述

基于邻域的评分预测

这个就是计算对物品的评分。

余弦相似度(用户)

在这里插入图片描述

基于User-CF的评分预测

在这里插入图片描述

Pearson相似度(用户)

在这里插入图片描述
在这里插入图片描述

基于用户的或基于项目的评分预测修正

在这里插入图片描述
在这里插入图片描述

基于二部图的CF

传统邻域方法的缺点

范围限制问题:只考虑和用户有过共同评价(或购买)项目的相邻用户
计算空间复杂度较大:需在内存中保存整个用户-项目反馈(评分)集合(矩阵)
数据稀疏/冷启动问题:用户一般只会评价(或购买)少量项目

基于二部图的协同过滤

在这里插入图片描述
激活扩散
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
物质扩散
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
图扩散
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/64352.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android请求应用权限

文章目录前言参考一、请求应用权限基本原则二、请求权限的流程(官网摘抄)三、请求权限编码1.允许系统管理权限请求代码2.自行管理权限请求代码总结前言 学习Android为什么需要动态申请危险权限 学会Android应用危险权限申请的方式 参考 Android官方文档…

8 种 Python 定时任务的解决方案

在日常工作中,我们常常会用到需要周期性执行的任务,一种方式是采用 Linux 系统自带的 crond 结合命令行实现,另外一种方式是直接使用Python。 最近我整理了一下 Python 定时任务的实现方式,内容较长,建议收藏后学习&a…

uni-app云开发(我直接访问后端)

uniCloud 是 DCloud 联合阿里云、腾讯云,为开发者提供的基于 serverless 模式和 js 编程的云开发平台。 熟悉的js的程序员,轻松搞定前后台整体业务。实现了前端完成前后端工作的可能 用法: 第一步新建uniCloud项目 点击文件 ——>新建—…

Hue编译安装使用

简介 由于大数据框架很多,为了解决某个问题,一般来说会用到多个框架,但是每个框架又都有自己的web UI监控界面,对应着不同的端口号。比如HDFS(9870)、YARN(8088)、MapReduce(19888)等。这个时候有一个统一的web UI界面去管理各个大…

高斯混合模型下的变分推断

大概从下面几个部分学习: 1.EM算法 人人都懂EM算法 - 知乎 (zhihu.com) 18分钟理解EM算法 - 知乎 (zhihu.com) 变分贝叶斯深度学习综述 - 知乎 (zhihu.com) 【未看完】 EM算法存在的意义是什么? - 知乎 (zhihu.com)【八种境界】 EM 算法具备收敛性…

java计算机毕业设计ssm体育赛事管理系统App2qrcr(附源码、数据库)

java计算机毕业设计ssm体育赛事管理系统App2qrcr(附源码、数据库) 项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#x…

[附源码]Python计算机毕业设计Django酒店物联网平台系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,我…

小目标检测文章阅读

无人机上目标检测的特点: 1、图像特点 在多数情况下,无人机的拍摄视野很大,包含丰富的视觉内容,虽然它提供了更全面的场景信息。 缺点: 1)但是待检测的目标对象通常在图像中占比较小,且没有足…

法国巴黎索邦大学博士后—实验物理学

【国外博士后招聘-法国博士后】法国巴黎索邦大学博士后—实验物理学 索邦大学(法文:Sorbonne Universit;英文:Sorbonne University)简称“索邦”(Sorbonne),是一所位于法国巴黎拉丁区…

多线程环境下的单例模式

✨✨hello,愿意点进来的小伙伴们,你们好呐! 🐻🐻系列专栏:【JavaEE初阶】 🐲🐲本篇内容:基于多线程的单例模式 🐯🐯作者简介:一名现大二的三非编程…

Linux虚拟化网络之路由配置

一、Linux路由配置 如果要在不同网段直接通讯,需要添加路由,Linux添加路由命令如下: route [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If] add : 添加一条路由规则;del : 删除一条路由规则;-net …

Win11如何开启移动中心页面的操作方法教学

Win11如何开启移动中心页面的操作方法教学分享。有用户不知道怎么去打开移动中心,开启这个页面我们可以去进行屏幕亮度调整、声音调整、笔记本电池状态、外接显示器/投影仪、以及幻灯片显示模式等功能集中到一个面板上进行管理设置。如何开启这个页面,来…

【教程】超详细通过Shizuku转生支付宝集成XQ_Crystal来自动收能量

转载请注明出处:小锋学长生活大爆炸[xfxuezhang.blog.csdn.net] 通过Shizuku是比应用转生更好更稳定的方法! 可以先看这篇:免Root使用Xposed插件并开启蚂蚁森林自动偷能量,比应用转生好 还不会的,继续往下。看完还不会&#xff…

手机银行APP评测系列:天津银行持续优化手机银行用户体验,但仍需加强细节提升

易观分析:作为银行金融服务线上场景渗透的有效抓手,当前手机银行APP已经成为其触达用户的重要渠道。随着银行发力场景服务平台成为发展趋势,5G技术问世对金融服务场景端提出新要求,用户体验反馈成为银行线上场景化运营的重要一环。…

JavaScript—分支结构和循环结构整理

目录 一、流程控制 二、分支结构 1. if语句 2. if…else语句 3. if…else if语句 4. switch语句 5. 条件表达式构成的选择结构 三、循环结构 1.while循环 2. do-while循环 3. for循环 3.1 for循环转换为while循环 3.2 断点调试 4. 循环嵌套 JavaScript 是一种解释…

微服务框架 SpringCloud微服务架构 16 SpringAMQP 16.6 FanoutExchange

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构16 SpringAMQP16.6 FanoutExchange16.6.1 发布订阅 - Fanout Exchange16.6…

火山引擎DataTester:一个爆款游戏产品,是如何用A/B测试打磨出来的?

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 随着国内游戏用户数量趋于饱和,中国游戏产业也从高速成长期逐渐转型,市场成熟度提升,竞争趋于精细化。 随着游戏出海以及私域流…

Java开发学习(二十六)----SpringMVC返回响应结果

SpringMVC接收到请求和数据后,进行了一些处理,当然这个处理可以是转发给Service,Service层再调用Dao层完成的,不管怎样,处理完以后,都需要将结果告知给用户。 比如:根据用户ID查询用户信息、查询用户列表、…

2022世界杯La‘eeb肖像,python海龟实现啦

努力是为了不平庸~ 学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。 目录 一、Laeeb的身世 二、开始作画 1、准备阶段 2、常用指令 3、开始做画 一、Laeeb的身世 2022年卡塔尔世界杯(英语&#xff1a…

华为机试 - 高效的任务规划

目录 题目描述 输入描述 输出描述 用例 题目解析 算法源码 题目描述 你有 n 台机器,编号为 1~n,每台都需要完成一项工作,机器经过配置后都能完成独立完成一项工作。假设第 i 台机器你需要花 B 分钟进行设置,然后开始运行&a…