推荐系统-召回阶段:协同过滤(CF)【基于近邻的协同过滤:UserCF、ItemCF】【基于模型的协同过滤:矩阵分解(MF)ModelCF】【仅能利用用户物品交互信息;无法引入用户、商品具体特征信息】
系统 基于 利用 用户 模型 信息 无法 推荐
2023-09-27 14:20:39 时间
协同过滤(Collaborative Filtering,CF)模型通过对大量用户给出的物品评分协同处理给出推荐,协同过滤的基本思想是根据已知的评分预测未知的评分 [31] ,已知评分和用户和物品息息相关。
协同过滤又可以细分为:
- 基于近邻的协同过滤
- 基于模型的协同过滤,
基于近邻的协同过滤是在近邻的基础上,根据用户或物品的相似度选出与目标用户最相似的用户的评分对未评分的物品进行评分预测,如两个用户,他们有相似的喜好物品,两人都给出评分时,评分的数值应该是非常相近的,他们之间的相似度可以通过算法计算出来,根据相似度为物品预测评分。通过用户与用户之间或物品与物品之间的存在的关联性作出预测,好处是易于实现,可以解释为何推荐,但是基于近邻的方法不能处理评分矩阵稀疏的情况,若不能通过评分信息找到相似用户或物品,则不能准确的预测评分。
- 基于用户(user-based)的协同过滤主要思想是找到与目标用户兴趣相似的用户群,将相似用户偏好的若干个物品推荐给目标用户。可以使用 K 近邻算法进行实现,基于目标用户的 k 个邻居的历史喜好数据,为当前用户做推荐。
- 基于物品 (item-based)的协同过滤的主要思想是根据目标用户对某些物品的偏好,计算偏好物品与其他物品之间的相似度,将物品相似度最高的几个物品推荐给用户。若用户在 E-Learning 平台学习了数据挖掘相关的课程,等下次用户登录平台时会推荐一系列数据挖掘,数据分析相关的课程,这里用到了基于物品的协同过滤思想。
基于模型的协同过滤基本思想是利用用户偏好信息来训练模型,涉及到机器学习常用的一些的算法如:关联规则,聚类,分类,回归,矩阵分解,奇异值分解和隐语义模型等。通过详细设计和优化算法创建训练模型,模型的参数通过优化框架学习得出,使用模型能估算出稀疏矩阵中缺失的值,通过离线计算实现推荐。
基于模型的协同过滤在以下几方面都优于基于近邻的协同过滤:
- 空间复杂度低。通过学习得到的模型的大小远小于初始的评分矩阵,因此对空间需求不高,基于用户协同过滤的算法和基于物品的协同过滤算法的空间复杂度分别为为 O(m 2 ) 和 O(n 2 ) [34] ,其中 m 表示为用户的数量、n 为物品的数量。
- 预测速度快。基于近邻的方法预处理环节需要用户数或物品数的平方级别时间,而基于模型的系统在建立训练模型的预处理环节需要的时间往往要少的多,并且通过对模型的优化能够加快预测。
- 避免过拟合。过拟合在很多机器学习算法中是非常严重的问题。在这些算法预测结果会被一些随机因素影响。此类问题在分类和回归模型中同样存在。在基于模型的方法中运用总结方法有助于避免过拟合。协同过滤算法的分类图如图 2.2 所示。
协同过滤(CF)缺点:
- user-item interactions
- cold start
相关文章
- 基于ESP32的竞赛裁判系统功能调试-计时线圈功能
- 基于ESP32模块利用检测线圈检测车模停止时间,室内视觉AI裁判系统
- 基于MATLAB的MIMO-OFDM系统的理论详细解析和源码
- 【FPGA教程案例95】机器学习2——基于FPGA的SVM支持向量机二分类系统实现之Verilog编程设计
- 【一级倒立摆】基于simulink的一级倒立摆控制器系统仿真
- 【神经网络解耦】基于matlab的神经网络解耦系统仿真
- 【LTE】LTEMIMO系统的MATLAB仿真
- 基于FPGA的MPPT系统开发
- 一文看懂推荐系统:排序11:Deep & Cross Network(DCN)
- 《信息物理融合系统(CPS)设计、建模与仿真——基于 Ptolemy II 平台》——2.5 如何操作大模型
- Linux 有问必答:如何在桌面版 Ubuntu 中用命令行更改系统代理设置
- Windows 禁用 security center,Windows Defender,打开文件安全警告, 切换到系统到英文,修改日期格式,禁用自动更新
- 使用Kafka、Elasticsearch、Grafana搭建业务监控系统(三)Elasticsearch
- 基于python的PC电脑报警系统
- 基于Java+Python+MySQL实现的(Web)选题系统【100010569】
- 基于 C++实现(控制台)网购系统【100010119】
- Android 系统稳定性 - ANR(一)
- 基于人脸识别的考勤系统 — Flask App — With GUI — with source code
- Qt编写安防视频监控系统65-子模块9数据调试
- 零基础,一周内基于Vue3写出一个CURD系统
- 基于SpringCloud+BinLog的广告系统设计总结
- ASP.NET综合管理ERP系统100%源代码+所有开发文档
- WindTalker系统能让黑客通过WiFi信号盗取个人数据
- yarn : 无法加载文件 C:Users1AppDataRoamingnpmyarn.ps1,因为在此系统上禁止运行脚本