【协同过滤】ItemCF协同过滤方法简介

一、ItemCF协同过滤方法

ItemCF 是基于物品相似度进⾏推荐的协同过滤算法。

通过计算共现矩阵中物品列向量的相似度得到物品之间的相似矩阵, 再找到⽤户的历史正反馈物品的相似物品进⾏进⼀步排序和推荐,Item CF的具体步骤如下:

  1. 构建共现矩阵:基于历史数据,构建以⽤户(假设⽤户总数为m)为⾏坐 标,物品(物品总数为n)为列坐标的m×n维的共现矩阵。
  2. 计算物品相似度矩阵:计算共现矩阵两两列向量间的相似性(相似度的计算⽅式与 ⽤户相似度的计算⽅式相同),构建n×n维的物品相似度矩阵。
  3. 找出相似的Top k个物品:利⽤物品相似度矩阵,针对⽬标⽤户历史⾏为中的正反馈物品,找出相似的Top k个物品,组成相似物品集合。
  4. 排序:对相似物品集合中的物品,利⽤相似度分值进⾏排序,⽣成 最终的推荐列表。如果⼀个物品与多个⽤户⾏为历史中的正反馈物品相似,那么该物品最终的相似度应该是多个相似度的累加其中, H是⽬标⽤户的正反馈物品集合, wp,h是物品 p与物品h的 物品相似度, Ru,h是⽤户u对物品h的已有评分。

二、与UserCF应用区别

  • 由于UserCF基于⽤户相似度进⾏推荐,使其具备更强的 社交特性,⽤户能够快速得知与⾃⼰兴趣相似的⼈最近喜欢的是什 么,即使某个兴趣点以前不在⾃⼰的兴趣范围内,也有可能通过“朋 友”的动态快速更新⾃⼰的推荐列表。这样的特点使其⾮常适⽤于新闻 推荐场景。因为新闻本⾝的兴趣点往往是分散的,相⽐⽤户对不同新 闻的兴趣偏好,新闻的及时性、热点性往往是其更重要的属性,⽽Use rCF正适⽤于发现热点,以及跟踪热点的趋势。
  • ItemCF更适⽤于兴趣变化较为稳定的应⽤,⽐如在Amazon的电商场景中,⽤户在⼀个时间段内更倾向于寻找⼀类商品,这 时利⽤物品相似度为其推荐相关物品是契合⽤户动机的。在 Netflix的 视频推荐场景中,⽤户观看电影、电视剧的兴趣点往往⽐较稳定,因 此利⽤ ItemCF 推荐风格、类型相似的视频是更合理的选择。

三、协同过滤方法缺点

泛化能力弱:协同过滤⽆法将两个物品相似这⼀信息推⼴到其他物品的相似性计算上。

推荐结果的头部效应较明显,处理稀疏向量的能⼒弱:用户特征向量⾮常稀疏,缺乏相似性计算的直接数据。所以可能会出现热门物品具有很强的头部效应,容易跟⼤量物品产⽣相似性; ⽽尾部的物品由于特征向量稀疏,很少与其他物品产⽣相似性,导致 很少被推荐。

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

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

相关文章

测试项目实战——安享理财1(测试用例)

说明: 1.访问地址: 本项目实战使用的是传智播客的安享理财项目(找了半天这个项目能免费用且能够满足测试实战需求) 前台:http://121.43.169.97:8081/ 后台:http://121.43.169.97:8082/ (点赞收藏…

Python turtle绘制图形详解

Python 的 Turtle 模块是一个简单而直观的绘图工具,可以帮助初学者理解基本的图形绘制概念。 1.导入 Turtle 模块: import turtle 2.创建 Turtle 对象: t turtle.Turtle() 3.绘制图形: 4.移动Turtle对象:t.forward(di…

点击短信链接唤起Android App实战

一.概述 在很多业务场景中,需要点击短信链接跳转到App的指定页面。在Android系统中,想要实现这个功能,可以通过DeepLink或AppLink实现。二.方案 2.1 DeepLink 2.1.1 方案效果 DeepLink是Android系统最基础、最普遍、最广泛的外部唤起App的方式,不受系统版本限制。当用户…

腾讯云优惠券领取指导及优惠券使用指南详解

在当今云计算市场,腾讯云以其出色的性能和服务质量受到了广大用户的青睐。为了回馈用户,腾讯云经常推出各种优惠活动,其中就包括优惠券的发放。那么,如何领取腾讯云优惠券,并正确地使用它们呢?本文将为您详…

虚拟机镜像文件qcow2格式转vmdk

一、在esxi上虚拟机导出qcow2镜像文件 1、卸载数据盘、网卡 2、登录虚拟机所在物理服务器,查找系统盘名为vm-101-disk-0的文件位置 find / -name "vm-101-disk-0"使用命令导出qcow2镜像(进度条走完就完成了): qemu…

JAVA----Thread(2

Thread 提供的属性和方法 目录 Thread 提供的属性和方法一.构造方法1.Thread() :2.Thread(Runnable target) :3.Thread(String name) :main 线程 4.Thread(Runnable target, String name) : 二.属性1.ID (getId)2.名称(getName)3.状态(getState)4.优先级 (getPriority)5.是否后…

leetcode-岛屿数量-99

题目要求 思路 1.使用广度优先遍历,将数组中所有为1的元素遍历一遍,遍历过程中使用递归,讲该元素的上下左右四个方向的元素值也置为0 2.统计一共执行过多少次,次数就是岛屿数量 代码实现 class Solution { public:int solve(vec…

线程安全问题、同步代码块、同步方法

线程安全问题就是 用线程同步来解决线程安全问题 同步:一个线程接着一个线程等待执行 同步代码块: 通过锁来解决卖到重复票的问题:卖票问题和存钱取钱问题(见其他两篇文章) 同步方法:

【算法练级js+java】旋转字符串判断是否相等

每一天一道算法题训练,努力打开编程思维,才能进大厂光明正大的泡心仪的小姐姐!!(手动捂脸) 题目 /** * 给定字符创A和B * 旋转字符串A,就是把最左边的移动到最右边 * 比如A‘abcde’,在移动一次之后结果就是bcdea * 如果若干次之…

最全网络安全学习路线!涵盖所有知识点,看这一篇掌握网安技能!

目录 零基础小白,到就业!入门到入土的网安学习路线! 建议的学习顺序: 一、夯实一下基础,梳理和复习 二、HTML与JAVASCRIPT(了解一下语法即可,要求不高) 三、PHP入门 四、MYSQL…

加密/解密--数字信封/数字签名/数字证书

what 加密 加密:加密就是对原来为明文的文件或数据按某种算法进行处理,使其成为一 段不可读的代码,通常称为 “密文”。从而达到保护数据不被非法窃取的目的。 解密 数据加密的逆向过程,将加密的数据转换为明文 加/解密工作机…

C语言队列的含义与队列数据操作代码详解!

引言:于本篇博客当中,我们将讲到数据结构——队列的有关知识。而对于这次的队列,我们将会在单链表的基础上实现。 更多有关C语言和数据结构知识详解可前往个人主页:计信猫 一,队列的含义 队列是一种特殊的线性表&#…

使用 SSH 连接 GitHub Action 服务器

前言 Github Actions 是 GitHub 推出的持续集成 (Continuous integration,简称 CI) 服务它提供了整套虚拟服务器环境,基于它可以进行构建、测试、打包、部署项目,如果你的项目是开源项目,可以不限时使用服务器硬件规格&#xff1…

DrissionPage

声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!本文章未经许…

Java请求第三方接口的一些步骤

一、前言 Java请求第三方接口的一些步骤。 在Java中请求第三方接口通常涉及以下步骤。这些步骤涵盖了从准备请求到处理响应的整个过程。 1. 确定接口详情 接口URL:你要请求的URL。请求方法:如GET、POST、PUT、DELETE等。请求参数:包括URL…

微型显示器可以实时监测大脑活动

美国团队开发基于LED的设备,以可视化大脑活动,在脑外科手术中指导神经外科医生 来自加州大学圣地亚哥分校和马萨诸塞州总医院的工程师和医生开发了一种薄膜显示设备,该设备结合了电极网格和特殊的GaN LED,可以在手术过程中实时跟…

多线程学习Day07

共享模型之不可变 从一个日期转换的问题开始 Slf4j(topic "c.Test1") public class Test1 {public static void main(String[] args) {SimpleDateFormat sdf new SimpleDateFormat("yyyy-MM-dd");for (int i 0; i < 10; i) {new Thread(() -> {…

buuctf-misc题目练习二

ningen 打开题目后是一张图片&#xff0c;放进winhex里面 发现PK&#xff0c;PK是压缩包ZIP 文件的文件头&#xff0c;下一步是想办法进行分离 Foremost可以依据文件内的文件头和文件尾对一个文件进行分离&#xff0c;或者识别当前的文件是什么文件。比如拓展名被删除、被附加…

元素设置 flex:1,但是会被内部长单词宽度超出拉伸

初始布局如上图&#xff0c;left中是代码编辑器&#xff0c;实际上是个文本域&#xff0c;当输入长文本过长时&#xff0c;left宽度会被拉伸。 右侧容器被挤压。 解决方案&#xff1a;width&#xff1a;0&#xff1b; .left{flex:1; width:0} 当输入长文本过长时&#xff0c…

保姆级零基础微调大模型(LLaMa-Factory,多卡版)

此处非常感谢https://github.com/hiyouga/LLaMA-Factory这个项目。 看到网上的教程很多都是教如何用webui来微调的,这里出一期命令行多卡微调教程~ 1. 模型准备 模型下载比较方便的方法: 1. modelscope社区(首选,速度很高,并且很多需要申请的模型都有)注意要选择代码…