【基于协同过滤算法的推荐系统项目实战-2】了解协同过滤推荐系统

news/2025/2/27 21:02:17/

本文目录

  • 1、推荐系统的关键元素
    • 1.1 数据
    • 1.2 算法
    • 1.3 业务领域
    • 1.4 展示信息
  • 2、推荐算法的主要分类
    • 2.1 基于关联规则的推荐算法
      • 基于Apriori的算法
      • 基于FP-Growth的算法
    • 2.2 基于内容的推荐算法
    • 2.3 基于协同过滤的推荐算法
  • 3、推荐系统常见的问题
    • 1、冷启动
    • 2、数据稀疏
    • 3、不断变化的用户喜好
  • 4、推荐系统效果评测
    • 4.2 模型离线实验
    • 4.2 用户A\B Test在线实验

1、推荐系统的关键元素

1.1 数据

数据是整个推荐系统的基石,我们需要对数据进行清洗和预处理。

用户行为能够真实的反映每个用户的偏好和习惯,其中的显示反馈数据会比较稀疏,隐式的反馈数据蕴含了大量的信息。
在这里插入图片描述
在这里插入图片描述

1.2 算法

基于流行度的推荐算法:是基于PV、UV来进行推荐,没有个性推荐。

基于协同过滤的推荐算法:是目前比较主流的一个推荐算法。

基于内容的推荐算法:是通过打标签进行推荐的,可以基于特征向量对内容自动打标签。(以前是人工打标签,现在可以自动打标签了)

基于模型的推荐算法:解决协同过滤算法的数据稀疏性的问题。

1.3 业务领域

不同的领域,不同的行业都会有自己的知识体系,所以泛化的一些推荐系统是无法满足具体领域中的特定的用户需求,所以需要结合知识去特定一些推荐系统。

例如在:
金融领域是基于风险偏好的个性化推荐方法。
社交领域是基于社交信息的用户行为挖掘方法。
电商领域是基于情境感知的个性化偏好的挖掘方法。

1.4 展示信息

可以理解为展示UI,也就是前端数据可视化,你需要把什么样的信息、哪些信息展示给用户,才能做到吸引,高质量的吸引是重要的, 不能过于繁杂,也不能过于少, 要精准。

2、推荐算法的主要分类

在这里插入图片描述

2.1 基于关联规则的推荐算法

应用场景:购物篮分析。
通过放入购物篮的不同商品之间的联系,分析顾客的购物习惯。

基于Apriori的算法

Aparior是无监督学习算法,挖掘一堆数据集中的数据之间的某种关联。但是会存在一些明显的缺点,如数据集很大的时候,运行效率很低。

假设有四种单品,那如果两两组合,那少于某个特定值的就会淘汰,这个特定值叫做 支持度。只有当支持度大于某个特定值的时候,才能认为是有效的。
在这里插入图片描述

基于FP-Growth的算法

FP-Growth不产生候选集。另外只需要扫描2次数据集,这是和Apriori最大的两个不同点。

2.2 基于内容的推荐算法

简而言之,就是推荐内容相似的物品。

通过打标签tag来找内容相似的物品,也可以通过文本相似度来找内容相似的物品。

通过自然语言挖掘:文本相似度是通过TF-IDF算法来完成的:提取关键词及其TFIDF值,将共同关键词的TFIDF的值的积并求和,然后获取相似度的值。

最后,也能通过分类算法来分类。
在这里插入图片描述

2.3 基于协同过滤的推荐算法

在这里插入图片描述
基于用户的协同过滤:是指兴趣相近的用户会对同样的物品感兴趣。
基于物品的协同过滤:是指推荐给用户他们喜欢的物品相似的物品。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
协同过滤是为了解决数据稀疏,为此我们进行特征分解,把评分矩阵不全,进行降维。通过奇异值分解来进行特征分解,提出了SVD,但是SVD过于复杂,又提出了PMF。

3、推荐系统常见的问题

1、冷启动

在这里插入图片描述
根据用户注册信息对用户进行分类,如手机号运营商、邮箱等等可以适当解决用户冷启动。

也可以通过推荐热门的排行榜、基于深度学习的语义模型理解来解决。

所以需要引导用户把自己的属性表达起来。

对于物品冷启动,则需要通过文本分析、主题模型、给物品打标签、排行榜单等来做到。

2、数据稀疏

用户-物品矩阵是稀疏矩阵。其解决方案如下:
在这里插入图片描述
但降低维度也会有一定丢失属性。

3、不断变化的用户喜好

需要对用户行为的存储有实时性,另外推荐算法要考虑到用户近期行为和长期行为,并且不断的挖掘用户新的兴趣爱好。

4、推荐系统效果评测

4.2 模型离线实验

1、模型离线实验:将数据集分为训练数据和测试数据集。在训练集上训练推荐模型,在测试集上进行预测。最后通过预定的指标来评测测试集上的预测结果。
在这里插入图片描述
模型离线实验是推荐系统中的一个基石,路径短,方便完成闭环以此来完成快速迭代,同时不会影响线上的用户体验。
最大的优点就是无需真实的用户参与。

但最大的缺点也是没有用户数据集真实,无法获得真实的用户关心指标。

4.2 用户A\B Test在线实验

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


http://www.ppmy.cn/news/33367.html

相关文章

Spark SQL函数定义【博学谷学习记录】

1 如何使用窗口函数窗口函数格式:分析函数 over(partition by xxx order by xxx [asc|desc] [rows between xxx and xxx])学习的相关分析函数有那些? 第一类: row_number() rank() dense_rank() ntile()第二类: 和聚合函数组合使用 sum() avg() max() min() count()第三类: la…

博客系统实现自动化测试

目录 一、设计博客系统的测试用例 二、利用测试用例进行测试 测试登录页面 界面测试 功能测试 测试博客列表页 界面测试 功能测试 测试博客详情页 界面测试 功能测试 博客编辑页测试 界面测试 功能测试 一、设计博客系统的测试用例 二、利用测试用例进行测…

微信小程序项目实例——扫雷

今日推荐💁‍♂️ 2023许嵩演唱会即将到来🎤🎤🎤大家一起冲冲冲🏃‍♂️🏃‍♂️🏃‍♂️ 🔮🔮🔮🔮🔮往期优质项目实例&#x1f52e…

【JavaEE初阶】第八节.网络原理网络层和数据链路层,应用层

文章目录 前言 一、网络层协议 1.1 IP协议 1.2 IP地址; 1.3 路由选择; 二、数据链路层 2.1 以太网协议; 三、应用层; 3.1 应用层协议DNS; 3.2 DNS是如何完成转换的; 3.3 如何解决DNS访问量太高的…

学习28个案例总结

学习前 对于之前遇到的问题没有及时总结,导致做什么事情都是新的一样。没有把之前学习到接触到的内容应用上。通过这次对28个案例的学习。把之前遇到的问题总结成自己的经验,在以后的开发过程中避免踩重复性的坑。多看帮助少走弯路。 学习中 对28个案例…

C/C++每日一练(20230319)

目录 1. 反转链表 II 🌟🌟 2. 解码方法 🌟🌟 3. 擅长编码的小k 🌟🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 …

函数(上)——“Python”

各位CSDN的uu们你们好呀,今天小雅兰的内容是Python的函数呀,下面,就让我们进入函数的世界吧 首先可以选择性地看一下小雅兰很久之前写的C语言函数章节的知识: 函数——“C”_认真学习的小雅兰.的博客-CSDN博客 函数递归&#xf…

【批处理】- 批处理自动安装Mysql与Redis

前言 在全新环境中安装MySQL与Redis操作是挺麻烦的,于是就想使用脚本来自动安装,使用批处理进行一步到位的安装,后面还能使用工具进行打包成exe可执行文件,一键安装,最后能够更好的部署项目到windows系统的服务器。 …