当前位置: 首页 > news >正文

【推荐算法系列十六】:协同过滤

文章目录

  • 参考
  • 原理
    • 基于邻域的协同过滤算法
      • 基于用户的协同过滤(User-Based Collaborative Filtering)
      • 基于内容的协同过滤
    • 基于模型的协同过滤算法
  • 扩展
  • 优缺点

参考

推荐系统之神经协同过滤

原理

基于邻域的协同过滤算法

基于邻域的协同过滤算法又包括
基于用户的协同过滤算法和基于内容的协同过滤算法。
核心思想都一样:收集用户的行为记录,找到用户的偏好并找到与偏好相似的内容,计算比重再推荐给用户。

基于用户的协同过滤(User-Based Collaborative Filtering)

通过分析用户之间的相似性来实现推荐。简单来说,就是根据用户的历史行为(比如浏览、购买、评分等)来找到与其兴趣相似的其他用户,然后向该用户推荐这些相似用户喜欢的商品或内容。

得到用户喜欢物品的共现矩阵
在这里插入图片描述
基于用户的协同过滤算法的优点在于能够捕捉用户的偏好和行为模式,同时也比较容易实现和解释。但该算法也存在一些缺点,如用户数量较多时计算量大、推荐结果容易出现重复等。

  • 为每个用户创建一个兴趣向量,向量中包含该用户浏览、购买、评分等行为对应的商品或内容。
  • 通过计算用户之间的相似度,找到与目标用户相似度最高的一些用户。
  • 根据这些相似用户对商品或内容做出的行为,将对应商品或内容推荐给目标用户。

基于内容的协同过滤

其推荐的对象不是与目标用户相似的其他用户,而是与该用户曾经感兴趣的内容相似的其他内容。

该算法具体的推荐步骤如下。

  • 为每个内容创建一个分类向量,向量中包含了该内容与其他内容的相似度。
  • 根据用户曾经感兴趣的内容,找到这些内容与哪些其他内容相似度比较高。
  • 将这些相似度高的内容推荐给目标用户。

基于模型的协同过滤算法

基于模型的协同过滤(Model-based Collaborative Filtering)是协同过滤方法的一种,它与传统的基于邻域的协同过滤方法不同。基于模型的协同过滤是通过训练一个模型来预测用户对物品的评分或者喜好,而不是直接基于用户或物品之间的相似性来进行推荐。

基于模型的协同过滤通常包括以下步骤:

  • 建立模型:首先,选择一个合适的模型结构,可以是基于统计模型、机器学习模型或深度学习模型。常用的模型包括矩阵分解模型(如隐语义模型)、概率图模型、神经网络模型等。
  • 模型训练:使用已知的用户-物品交互数据进行模型训练。训练的目标是通过拟合已有数据来学习模型参数,使得模型能够准确地预测用户对未知物品的评分或者喜好。
  • 预测评分:训练好模型后,可以使用该模型来预测用户对未知物品的评分或者喜好。根据预测的评分,可以为用户生成个性化的推荐列表。

基于模型的协同过滤相比于基于邻域的协同过滤具有以下优点:

可扩展性:模型训练过程通常可以并行化,因此能够有效地处理大规模数据。
泛化能力:模型可以从数据中学习到用户和物品的隐藏特征,具有更好的泛化能力。
冷启动问题:模型可以利用物品的特征信息进行推荐,因此能够更好地应对冷启动问题(新用户或新物品的推荐)。
常见的基于模型的协同过滤算法包括基于矩阵分解的隐语义模型、基于概率图模型的贝叶斯网络模型、基于神经网络的深度学习模型等。

扩展

根据参考中的内容,
可以使用 矩阵分解和DNN的方式来做隐式向量的获取。

优缺点

协同过滤有一个天然的缺陷,就是其对稀疏数据的处理比较弱,头部效应比较明显,泛化能力比较差。

相关文章:

【推荐算法系列十六】:协同过滤

文章目录 参考原理基于邻域的协同过滤算法基于用户的协同过滤(User-Based Collaborative Filtering)基于内容的协同过滤 基于模型的协同过滤算法 扩展优缺点 参考 推荐系统之神经协同过滤 原理 基于邻域的协同过滤算法 基于邻域的协同过滤算法又包括…...

linux动态库加载相关

linux下动态库搜索规则 (1)编译目标代码时指定的动态库搜索路径,也就是RPATH; (2)环境变量LD_LIBRARY_PATH指定的动态库搜索路径; (3)配置文件/etc/ld.so.conf中指定的动态库搜索路径;配置完毕后需运行ldconfig命令生效; (4)默…...

python 基础绘图函数 实例

简介 在 Python 中,有许多用于绘图的库。以下是一些常用的 Python 绘图库及其基本绘图函数的简要介绍: Matplotlib: matplotlib.pyplot.plot(x, y): 绘制线图。matplotlib.pyplot.scatter(x, y): 绘制散点图。matplotlib.pyplot.bar(x, height): 绘制条…...

28. 找出字符串中第一个匹配项的下标(力扣LeetCode)

文章目录 28. 找出字符串中第一个匹配项的下标题目描述暴力KMP算法 28. 找出字符串中第一个匹配项的下标 题目描述 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。…...

1 开源鸿蒙OpenHarmony niobe407 STM32F407IGT6芯片轻型系统全量源码4.1版本下载流程

开源鸿蒙OpenHarmony niobe407 STM32F407IGT6芯片轻型系统全量源码4.1版本下载流程 作者将狼才鲸日期2024-02-27 一、前景提要 如果通过DevEco Marketplace网站获取下载源码的话,不全,有些板子下不到;OpenHarmony开发板列表,官方…...

洛谷C++简单题小练习day21—梦境数数小程序

day21--梦境数数--2.25 习题概述 题目背景 Bessie 处于半梦半醒的状态。过了一会儿,她意识到她在数数,不能入睡。 题目描述 Bessie 的大脑反应灵敏,仿佛真实地看到了她数过的一个又一个数。她开始注意每一个数码(0…9&#x…...

LabVIEW高精度闭式微小型循环泵性能测试

LabVIEW高精度闭式微小型循环泵性能测试 开发了一套基于LabVIEW的高精度闭式微小型循环泵性能测试系统,旨在通过先进的测试技术和虚拟仪器技术,对微小型循环泵的性能进行精确测量和分析,从而优化泵的设计和性能,提高其在航空、机…...

同局域网共享虚拟机(VMware)

一、前言 首先我们先来了解下 VMware 的三种网络模式桥接模式、NAT模式、仅主机模式,网络类型介绍详情可以参考下我之前的文档 Linux系统虚拟机安装(上)第三章 - 第9步指定网络类型。了解三种网络模式的原理之后,再来剖析下需求&…...

docker学习快速入门

目录 Linux下安装docker配置阿里云镜像加速docker命令部署安装Tomcat、ES容器数据卷DockerFiledocker网络制作tomcat镜像Redis集群部署SpringBoot微服务打包docker镜像拓展 什么是Docker Docker是内核级别的虚拟化,可以在一个物理机上可以运行很多的容器实例。服务…...

大语言模型LLM推理加速:LangChain与ChatGLM3-6B的推理加速技术(LLM系列11)

文章目录 大语言模型LLM推理加速:LangChain与ChatGLM3-6B的推理加速技术(LLM系列11)引言LangChain框架下的推理优化LangChain的核心理念与功能特点分布式计算与知识图谱集成优化推理路径实例分析:使用链式查询与缓存机制提升模型推…...

GSVA -- 学习记录

文章目录 1.原理简介2. 注意事项3. 功能实现代码实现部分 4.可视化5.与GSEA比较 1.原理简介 Gene Set Variation Analysis (GSVA) 基因集变异分析。可以简单认为是样本数据中的基因根据表达量排序后形成了一个rank list,这个rank list 与 预设的gene sets&#xff…...

基于Springboot的旅游网管理系统设计与实现(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的旅游网管理系统设计与实现(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层…...

Docker基础篇(六) dockerfile体系结构语法

FROM:基础镜像,当前新镜像是基于哪个镜像的 MAINTAINER :镜像维护者的姓名和邮箱地址 RUN:容器构建时需要运行的命令 EXPOSE :当前容器对外暴露出的端口号 WORKDIR:指定在创建容器后,终端默认登…...

【Python编程+数据清洗+Pandas库+数据分析】

数据分析的第一步往往是数据清洗,这个过程关键在于理解、整理和清洗原始数据,为进一步分析做好准备。Python 语言通过Pandas库提供了一系列高效的数据清洗工具。接下来,该文章将通过一个简单的案例演示如何利用 Pandas 进行数据清洗&#xff…...

网络安全之防御保护8 - 11 天笔记

一、内容安全 1、攻击可能只是一个点,防御需要全方面进行 2、IAE引擎 3、DFI和DPI技术 --- 深度检测技术 深度行为检测技术分为:深度包检测技术(DPI)、深度流检测技术(DFI) DPI --- 深度包检测技术 --- 主要针对完整的数据包&#xf…...

LiveGBS流媒体平台GB/T28181功能-查看国标设备下通道会话列表直播|回放|对讲|播放|录像|级联UDP|TCP|H264|H265会话

LiveGBS流媒体平台GB/T28181功能-查看直播|回放|对讲|播放|录像|级联UDP|TCP|H264|H265会话 1、会话列表2、会话类型3、搭建GB28181视频直播平台 1、会话列表 LiveGBS-> 国标设备-》点击在线状态 点击会话列表 2、会话类型 下拉会话类型可以看到 直播会话、回放会话、下载…...

Python和Jupyter简介

在本notebook中,你将: 1、学习如何使用一个Jupyter notebook 2、快速学习Python语法和科学库 3、学习一些IPython特性,我们将在之后教程中使用。 这是什么? 这是只为你运行在一个个人"容器"中的一个Jupyter noteboo…...

Linux——静态库

Linux——静态库 静态库分析一下 ar指令生成静态库静态库的使用第三方库优化一下 gcc -I(大写的i) -L -l(小写的l),头文件搜索路径,库文件搜索路径,连接库 今天我们来学习静态库的基本知识。 静态库 在了解静态库之前,我们首先来…...

fastjson序列化MessageExt对象问题(1.2.78之前版本)

前言 无论是kafka&#xff0c;还是RocketMq&#xff0c;消费者方法参数中的MessageExt对象不能被 fastjson默认的方式序列化。 一、查看代码 Override public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs,ConsumeConcurrentlyContext context) {t…...

osi模型,tcp/ip模型(名字由来+各层介绍+中间设备介绍)

目录 网络协议如何分层 引入 osi模型 tcp/ip模型 引入 命名由来 介绍 物理层 数据链路层 网络层 传输层 应用层 中间设备 网络协议如何分层 引入 我们已经知道了网络协议是层状结构,接下来就来了解了解下网络协议如何分层 常见的网络协议分层模型是OSI模型 和 …...

级联双二阶IIR滤波器设计与实现详解

1. 从零理解级联双二阶IIR滤波器设计在数字信号处理领域&#xff0c;IIR&#xff08;无限脉冲响应&#xff09;滤波器因其高效的频率选择特性而广受欢迎。但高阶IIR滤波器直接实现时&#xff0c;系数量化误差会导致严重的稳定性问题。级联双二阶&#xff08;Biquad&#xff09;…...

《重构:改善既有代码的设计》——以Java之名,重拾代码之美

这不是一本读一遍就够的书&#xff0c;这是一本值得放在手边反复翻阅的编程之道。引子&#xff1a;一本改变了无数程序员的书1999年&#xff0c;Martin Fowler的《Refactoring: Improving the Design of Existing Code》首次面世&#xff0c;在软件开发领域投下了一颗重磅炸弹。…...

STM32 DAP 烧录报错-最终解决方法的原理和操作逻辑

STM32 DAP 烧录报错&#xff08;SWD/JTAG Communication Failure / Flash Download failed&#xff09;最终解决方法的原理和操作逻辑针对遇到的 SWD/JTAG Communication Failure、Flash Download failed - Target DLL has been cancelled、Flash Download failed - "Cort…...

电脑存储告急?这款Windows图片压缩工具帮你轻松省出几十GB空间

在日常使用电脑的过程中&#xff0c;你是否经常遇到这样的困扰&#xff1a;硬盘空间越来越少&#xff0c;打开文件管理器时满屏都是几十MB一张的照片&#xff1f;尤其是从事设计、摄影或者内容创作的朋友&#xff0c;电脑里动辄堆积着成千上万张高清原图&#xff0c;存储空间消…...

3步诊断与修复:为什么你的Windows任务栏透明工具开机不启动?

3步诊断与修复&#xff1a;为什么你的Windows任务栏透明工具开机不启动&#xff1f; 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB Tran…...

如何选择最适合实时通信的跨平台开发框架:FastRTC技术栈深度对比指南

如何选择最适合实时通信的跨平台开发框架&#xff1a;FastRTC技术栈深度对比指南 【免费下载链接】fastrtc The python library for real-time communication 项目地址: https://gitcode.com/GitHub_Trending/fa/fastrtc FastRTC是一个专注于实时通信的Python库&#xf…...

Dify快速集成Slack通知、企微审批、AWS Lambda:3步自动化上线,附可运行YAML模板

第一章&#xff1a;Dify低代码集成自动化的核心价值与场景定位 Dify 作为面向开发者的低代码大模型应用编排平台&#xff0c;其核心价值不在于替代编码&#xff0c;而在于显著降低 AI 应用从原型验证到生产集成的路径复杂度。通过可视化工作流编排、内置 RAG 管道、API 一键发布…...

CSS如何实现响应式图片懒加载动画_结合CSS关键帧与占位符技术

...

3分钟搞定上交论文排版:告别格式焦虑的终极解决方案

3分钟搞定上交论文排版&#xff1a;告别格式焦虑的终极解决方案 【免费下载链接】SJTUThesis 上海交通大学 LaTeX 论文模板 | Shanghai Jiao Tong University LaTeX Thesis Template 项目地址: https://gitcode.com/gh_mirrors/sj/SJTUThesis 你是否曾经为了论文格式调整…...

Dify SaaS厂商紧急升级通知:2024Q3起强制要求租户数据物理隔离,你的Dify部署达标了吗?

第一章&#xff1a;Dify SaaS厂商紧急升级通知背景与合规动因近期&#xff0c;多家头部Dify SaaS服务提供商向客户同步发布《紧急安全与合规升级通知》&#xff0c;要求所有租户在2024年Q3前完成平台版本升级至v0.12.3。此次升级并非常规功能迭代&#xff0c;而是响应国家网信办…...