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

文章目录

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

参考

推荐系统之神经协同过滤

原理

基于邻域的协同过滤算法

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

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

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

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

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

基于内容的协同过滤

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

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

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

基于模型的协同过滤算法

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

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

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

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

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

扩展

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

优缺点

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

雾锁王国服务器怎么建?雾锁王国服务器搭建方法

雾锁王国Enshrouded服务器搭建怎么搭建?非常简单,阿里云计算巢雾锁王国程序,可以一键搭建雾锁王国多人联机服务器,腾讯云是基于雾锁王国镜像系统,阿里云服务网aliyunfuwuqi.com汇总雾锁王国服务器搭建,超简…

【学习总结】什么是弹性负载均衡? LB和ELB的区别

[Q&A] 什么是 LB (Load Balancer) 负载均衡器: 这是一个广泛的概念,泛指任何用于在网络流量进入时进行分配以实现服务器集群间负载均衡的设备或服务。传统的负载均衡器可以是硬件设备,也可以是软件解决方案,其基本目标是将客…

常见的主流媒体有哪些?主流媒体报道的优势

传媒如春雨,润物细无声,大家好,我是51媒体胡老师。 主流媒体通常指的是具有广泛影响力和权威性的媒体机构,它们在新闻报道、舆论引导等方面扮演着重要角色。 常见的主流媒体包括但不限于: 电视媒体:如总台…

JavaScript最新实现城市级联操作,json格式的数据

前置知识&#xff1a; <button onclick"doSelect()">操作下拉列表</button><hr>学历&#xff1a;<select id"degree"><option value"0">--请选择学历--</option><option value"1">专科<…

可观测性在威胁检测和取证日志分析中的作用

在网络中&#xff0c;威胁是指可能影响其平稳运行的恶意元素&#xff0c;因此&#xff0c;对于任何希望避免任何财政损失或生产力下降机会的组织来说&#xff0c;威胁检测都是必要的。为了先发制人地抵御来自不同来源的任何此类攻击&#xff0c;需要有效的威胁检测情报。 威胁…

IDEA如何开启Dashboard

普通的面板 Run Dashboard面板 修改配置文件 找到项目的.idea文件夹 点击编辑workspace.xml文件 添加下方代码 <component name"RunDashboard"><option name"ruleStates"><list><RuleState><option name"name" valu…

第 2 章 微信小程序的构成 (代码导读)断更,后续继续更新

2.1 小程序项目的基本结构 Hello World&#xff01;程序.mp4 文泉云盘 -- 图书二维码资源管理系统兆泰源二维码管理系统https://www.wqyunpan.com/resourceDetail.html?id284928&openIdoUgl9wdyNYHu9EcAe-GEwbQdZilY&qrcodeId242916&signc2lnbm1PUmNxSndPWGFOck…

Nginx反向代理ip透传与负载均衡

前言 上篇介绍了nginx服务器单向代理和动静分离等相关内容&#xff0c;可参考Nginx重写功能和反向代理-CSDN博客&#xff0c;这里就ip透传和负载均衡对nginx反向代理做进一步了解。 目录 一、客户端ip透传 1. 概述 2. 一级代理 2.1 图示 2.2 操作过程 3. 二级代理 3.…

Nginx——安装和反向代理

Nginx安装与应用 1.1 Nginx介绍 Nginx 是一个高性能的HTTP和反向代理服务器,特点是占有内存少&#xff0c;并发能力强 Nginx可以作为静态页面的web服务器&#xff0c;同时还支持CGI协议的动态语言&#xff0c;比如perl、php等。但是不支持java。Java程序只能通过与tomcat配合…

Java最新面试宝典 SpringMVC面试题)

Java最新面试宝典 SpringMVC面试题 前言1、什么是SpringMVC&#xff1f;2、SpringMVC 的优点&#xff1f;3、Spring MVC配置步骤&#xff1f;4、SpringMVC工作原理了解吗&#xff1f;5、Spring MVC 核心组件的功能&#xff1f;6、B/S 系统标准的三层架构是什么&#xff1f;7、C…

python 基础绘图函数 实例

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

【kubernetes】关于k8s集群的声明式管理资源

目录 一、声明式管理方法 二、资源配置清单管理 1、导出资源配置清单 2、修改资源配置清单并应用 2.1离线修改 2.2在线修改 三、通过资源配置清单创建资源对象 获取K8S资源配置清单文件模板&#xff1f; 关于配置清单常见的字段 方案一&#xff1a;手写yaml配置文件 …

css常用的选择器介绍

CSS&#xff08;层叠样式表&#xff09;选择器是CSS规则的一部分&#xff0c;它用于选择和定位网页上的元素&#xff0c;以便将样式应用到这些元素上。CSS选择器的种类繁多&#xff0c;每种选择器都有其特定的用途、特点和效率。在这篇文章中&#xff0c;我们将讨论一些常用的C…

EMR StarRocks实战——Mysql数据实时同步到SR

文章摘抄阿里云EMR上的StarRocks实践&#xff1a;《基于实时计算Flink使用CTAS&CDAS功能同步MySQL数据至StarRocks》 前言 CTAS可以实现单表的结构和数据同步&#xff0c;CDAS可以实现整库同步或者同一库中的多表结构和数据同步。下文主要介绍如何使用Flink平台和E-MapRed…

免费的Git图形界面工具sourceTree介绍

阅读本文同时请参阅-----代码库管理工具Git介绍 sourceTree是一款免费的Git图形界面工具&#xff0c;它简化了Git的使用过程&#xff0c;使得开发者可以更加方便地下载代码、更新代码、提交代码和处理冲突。下面我将详细介绍如何使用sourceTree进行这些操作。 1.下载和…

GEE数据集——数字地球澳大利亚海岸线(更新)

数字地球澳大利亚海岸线 澳大利亚数字地球海岸线是一个大陆数据集&#xff0c;包括从 1988 年至今整个澳大利亚海岸线的年度海岸线和海岸变化率。该产品将澳大利亚地球科学组织的 "澳大利亚数字地球 "计划提供的卫星数据与潮汐模型相结合&#xff0c;绘制出每年平均海…

Vue自定义指令directives

1. 使用<script setup> <template><input v-focus"11111" /><input v-obj"{ id: 1, name: 这里是name }" /> </template> <script setup> //定义一个变量vFocus //命名方法使得DOM元素中可以用v-focus来显示 let vFo…

GPT 的基础 - T(Transformer)

我们知道GPT的含义是&#xff1a; Generative - 生成下一个词 Pre-trained - 文本预训练 Transformer - 基于Transformer架构 我们看到Transformer模型是GPT的基础&#xff0c;这篇博客梳理了一下Transformer的知识点。 BERT:通过自监督的方式,在大规模语料上预训练得到的Tran…

05 动力云客之分页查询用户 + 查询用户详情 + 新增用户

1. 用户列表分页查询实现 核心 使用pageHelper实现分页 GetMapping(value "api/users")//分页的参数可以不传, 不传就默认设置为1public R userPage(RequestParam(value "current", required false) Integer current) {if (current null) {current …

数据服务安全的重要性

数据服务安全在当今信息化社会显得尤为重要。随着大数据、云计算、人工智能等技术的飞速发展&#xff0c;数据已经成为企业和组织的核心资产&#xff0c;数据服务安全也面临着前所未有的挑战。本文将从数据服务安全的重要性、常见威胁、防护策略以及未来发展趋势等方面进行探讨…