【推荐系统】了解推荐系统的生态(重点:推荐算法的主要分类)

news2024/10/2 22:15:51

【大家好,我是爱干饭的猿,本文重点介绍推荐系统的关键元素和思维模式、推荐算法的主要分类、推荐系统常见的问题、推荐系统效果评测。
后续会继续分享其他重要知识点总结,如果喜欢这篇文章,点个赞👍,关注一下吧】

上一篇文章:《【SparkSQL】SparkSQL的运行流程 & Spark On Hive & 分布式SQL执行引擎》

1. 了解推荐系统的生态

本章带你了解推荐系统的生态,让你从思维上重塑对推荐系统的认知。了解推荐系统是由哪些关键元素支撑的,推荐算法的分类以及什么才算一个好的推荐系统。

1.1 推荐系统的关键元素和思维模式

推荐系统是一个系统工程
在这里插入图片描述

1. 推荐系统的关键元素-数据

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

  • 数据是整个推荐系统的基石 - 清洗和预处理
  • 用户行为能真实的反映每个用户的偏好和习惯
  • 显式反馈数据会比较稀疏,隐式反馈数据蕴含大量的信息

2. 推荐系统的关键元素-算法

  • 基于流行度的推荐算法 - 根据PVUV进行推荐,无个性推荐
  • 基于协同过滤的推荐算法
  • 基于内容的推荐算法 - 标签、特征向量
  • 基于模型的推荐算法 - 解决协同过滤算法的数据稀疏性的问题
  • 混合算法

3. 推荐系统的关键元素-领域知识

  • 不同领域,不同行业有自己的知识体系和评价准则
  • 泛化的推荐无法满足具体领域中特定的用户需求
  • 结合领域知识定制推荐系统
    在这里插入图片描述

4. 推荐系统的关键元素-UI

  • 推荐结果的最终呈现给用户的展示位置,提供了哪些信息
  • 不同物品的推荐,根据用户的关注点,展现的方案也要不同
    在这里插入图片描述

5. 推荐系统的思维模式

  • 要有不确定的思维 - 推荐算法都是概率算法
  • 目标思维 - 追求的是指标的增长

1.2 推荐算法的主要分类

在这里插入图片描述

1. 基于关联规则的推荐算法

  • 基于Apriori 的算法

    • Apariori是无监督学习算法
    • Apariori是挖掘一堆数据集中数据之间的某种关联
    • 数据集很大时,Apariori运行效率很低 - FP-Growth解决此问题
  • 基于FP-Growth的算法

    • FP-Growth 不产生候选集 - 和Apriori的两个不同点
    • FP-Growth只需要扫描⒉次数据集 - 和Apriori的两个不同点
    • 数据集映射到一颗FP树上,再从这棵树挖掘频繁项集 - 思路

关联分析算法应用场景关联分析算法应用场景

  • 购物篮分析:
    通过放入购物篮的不同商品之间的联系,分析顾客的购物习惯
    • 例子:购买鞋子的顾客,10%的会同时购买袜子
      帮助商家能制定营销策略,货架摆放

2. 基于内容的推荐算法

  • 推荐内容相似的物品 - 文章、商品类目及文本信息

在这里插入图片描述

  • TF-IDF算法步骤: - 基于自然语言
    • 提取关键词及其TFIDF值
    • 将共同关键词的TFIDF值的积并求和
    • 获取相似度的值

在这里插入图片描述

3. 基于协同过滤的推荐算法

在这里插入图片描述

  • 基于用户的协同过滤:兴趣相近的用户会对同样的物品感兴趣
  • 基于物品的协同过滤:推荐给用户他们喜欢的物品相似的物品
  • 基于物品的协同过滤,要基于用户的方式 - 不能简单推荐相似物品

在这里插入图片描述

  • 缺点:

    • 数据稀疏性和冷启动问题
  • 优点:

    • 挖掘用户的潜在兴趣
    • 仅需要评分矩阵来训练矩阵分解模型
  • SVD++是最流行的协同过滤模型 - 解决数据稀疏的问题

  • 基于概率的矩阵分解PMF - 解决SVD模型过于复杂的问题

  • Spark内置的推荐算法是基于隐语义模型的协同过滤 - ALS
    在这里插入图片描述

4. 基于模型的推荐算法

  • 模型 - 基于深度学习

5. 基于混合的推荐算法

  • 加权的混合:多种推荐算法按照权重组合起来
  • 分层的混合:多种推荐算法,前一个推荐结果作为下一个的输入
  • 分区的混合:多种推荐机制,将不同的推荐结果分不同的区推荐

1.3 推荐系统常见的问题

  • 冷启动
  • 数据稀疏
  • 不断变化的用户喜好
  • 不可预知的事项

1. 冷启动

在这里插入图片描述
冷启动问题解决方法:

  • 根据用户注册信息对用户进行分类

  • 推荐热门的排行榜

  • 基于深度学习的语义理解模型

  • 引导用户把自己的属性表达出来

  • 利用用户在社交媒体的信息

方案:

  • 文本分析
  • 主题模型
  • 给物品打标签
  • 推荐排行榜单

2. 数据稀疏

  • 用户喜欢的物品,与其相似的用户也喜欢这个物品 - 协同过滤
  • 用户-物品矩阵是稀疏矩阵 - 计算不准确

解决方案:

  • 降低矩阵维数能降低数据稀疏性 - 奇异值分解
    • 弊端:降低矩阵维数会丢失有效数据,使得预测的评分不准确
  • 假设用户对其感兴趣物品相似的物品也感兴趣 - 数据填充
    • 弊端:固定填充没有考虑到项目的属性,对推荐带来偏差
  • 基于深度学习的语义理解模型 - 基于物品本身的信息

3. 不断变化的用户喜好

解决方案:

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

4. 什么是好的推荐系统?

  • 推荐给用户的是用户感兴趣的内容
  • 满足所有内容都被推荐给感兴趣的用户
  • 能预测用户的行为
  • 帮助用户发现那些他们可能会买,但不容易发现的东西

1.4 推荐系统效果评测

  • 模型离线实验
  • A/B Test在线实验
  • 用户调研和用户反馈

1. 模型离线实验

  • 将数据集分为训练集和测试集
  • 在训练集上训练推荐模型,在测试集上进行预测
  • 通过预定的指标来评测测试集上的预测结果

2. A/B Test在线实验

  • A/B Test在线实验是以正交分桶为基础(随机将用户划分几组)
  • 根据分桶执行不同的算法得出差异化的指标
  • 取其中较优的算法

在这里插入图片描述

  • A/B Test可以在各个桶间进行多层多类的AB Test测试
  • A/B Test 也可以作为针对特定用户进行个性化的推荐

3. 用户调研和用户反馈

  • 预测准确率高不代表用户满意度高
  • 用户调研需要有一些真实的用户,需要他们完成一些的任务
  • 缺点是用户调研成本高,一般情况下很难进行大规模的用户调查

4. 评测指标

4.1 预测准确度

预测准确度:度量预测用户行为的能力

4.1.1 评分预测
  • 评分预测:用户对物品的评分行为
  • 预测准确度:均方根误差(RMSE)和平均绝对误差(MAE)

在这里插入图片描述

4.1.2 TopN推荐
  • TopN推荐:个性化推荐列表
  • 预测准确度:准确率/召回率

在这里插入图片描述

  1. 训练集(PHP, Java,C,C++)
  2. 测试集T(u)(Ruby,R,Python)
  3. 推荐列表R(u) (R,Python,Java,Vue)
  4. R(u)和T(u)的交集=2,准确率=2/4,召回率=2/3
4.2 覆盖率
  • 覆盖率:描述推荐系统对物品长尾的发掘能力
    在这里插入图片描述
4.3 多样性
4.4 新颖性
4.5 惊喜度
4.6 信任度
4.7 实时性
4.8 健壮性

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

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

相关文章

【webpack】应用篇

基础应用 代码分离常用的代码分离方法方法一:配置入口节点方法二:防止重复方法三:动态导入 缓存原因解决思路 缓存第三方库原因解决思路 将所有js文件单独存放文件夹拆分开发环境和生产环境配置公共路径环境变量和区分环境代码压缩 拆分配置文…

2023五岳杯量子计算挑战赛数学建模思路+代码+模型+论文

目录 计算力网络(CPN)是一种新型的信息基础设施,完整论文代码见文末 问题描述 2.1 问题1 2.2 问题2 2.3 问题3 问题1的解答过程: 问题3的解答过程: 决策优化应用场景:人工智能模型超参数调优 背景信…

HarmonyOS系统架构及项目结构浅析

语雀知识库地址:语雀HarmonyOS知识库 飞书知识库地址:飞书HarmonyOS知识库 基本概念 UI框架 HarmonyOS提供了一套UI开发框架,即方舟开发框架(ArkUI框架)。方舟开发框架可为开发者提供应用UI开发所必需的能力&#xf…

深度学习实战66-基于计算机视觉的自动驾驶技术,利用YOLOP模型实现车辆区域检测框、可行驶区域和车道线分割图

大家好,我是微学AI,今天给大家介绍一下深度学习实战66-基于计算机视觉的自动驾驶技术,利用YOLOP模型实现车辆区域检测框、可行驶区域和车道线分割图。本文我将介绍自动驾驶技术及其应用场景,并重点阐述了基于计算机视觉技术下的自动驾驶。自动驾驶技术是一种利用人工智能和…

在jupyter notebook中修改其他文件的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

探索Vue小程序框架的底层原理

最近晚上有时间复盘之前研究小程序框架的相关内容,总结文章记录一下。 本篇文章主要介绍百度19年开源的Mars小程序开发框架,和Taro、mpvue、uniapp类似,都是编译型小程序框架,都是通过将 Vue 或 React 源码直接编译为小程序源码&a…

基于FPGA的温度控制系统设计(论文+源码)

1.系统设计 本次基于FPGA的智能温度控制系统,以FPGA为控制核心,采用自顶向下的设计方法,按照模块化设计的思路分别实现各个模块,再加以整合实现整个系统,从而达到了温度控制的目的。系统以水箱为被控对象,…

深入探索C语言中的二叉树:数据结构之旅

引言 在计算机科学领域,数据结构是基础中的基础。在众多数据结构中,二叉树因其在各种操作中的高效性而脱颖而出。二叉树是一种特殊的树形结构,每个节点最多有两个子节点:左子节点和右子节点。这种结构使得搜索、插入、删除等操作…

《机器学习实战》MNIST 数据集的导入方法

1、在网上下载数据集 mnister 数据集有两个类型, (1)一个是手写的阿拉伯数字图片:MNIST 下载地址: 链接:https://pan.baidu.com/s/1dd-I-laysPbT8wxbyvxTvg 提取码:1234 (2…

深度解析 Kafka 消息保证机制

Kafka作为分布式流处理平台的重要组成部分,其消息保证机制是保障数据可靠性、一致性和顺序性的核心。在本文中,将深入探讨Kafka的消息保证机制,并通过丰富的示例代码展示其在实际应用中的强大功能。 生产者端消息保证 1 At Most Once &quo…

Android 13 Settings蓝牙列表卡顿问题排查及优化过程

一.背景 此问题是蓝牙列表界面息屏后再点击亮屏蓝牙界面卡住,划不动也不能返回,在人多的时候(附近开启的蓝牙设备过多的时候)会卡住大概四五秒才能滑动. 优化前效果见资源: 二.查找耗时点 根据Android Studio的Profiler工具进行排查,查找主线程时间线比较长的方法,如下:…

记录 | centos源码编译bazel

tensorflow的源码编译依赖于 bazel 这里进行 bazel 的源码编译 1、安装依赖 sudo yum install -y java-11-openjdk sudo yum install -y java-11-openjdk-devel sudo yum install -y protobuf-compiler zip unzip2、知悉要安装的 bazel 的版本 务必安装受支持的 Bazel 版本…

展望2024年供应链安全

2023年是开展供应链安全,尤其是开源治理如火如荼的一年,开源治理是供应链安全最重要的一个方面,所以我们从开源治理谈起。我们先回顾一下2023的开源治理情况。我们从信通院《2023年中国企业开源治理全景观察》发布的信息。信通院调研了来自七…

linux安装mysql5.7(一遍过)

之前安装的时候遇到了很多问题,浪费了一些时间。整理出这份教程,照着做基本一遍过。 这是安装包: 链接:https://pan.baidu.com/s/1gBuQBjA4R5qRYZKPKN3uXw?pwd1nuz 1.下载安装包,上传到linux。我这里就放到downloads目录下面…

软著项目推荐 疫情数据分析与3D可视化 - python 大数据

文章目录 0 前言1 课题背景2 实现效果3 设计原理4 部分代码5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 大数据全国疫情数据分析与3D可视化 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐&#xff0…

Google Bard vs. ChatGPT 4.0:文献检索、文献推荐功能对比

在这篇博客中,我们将探讨和比较四个不同的人工智能模型——ChatGPT 3.5、ChatGPT 4.0、ChatGPT 4.0插件和Google Bard。我们将通过三个问题的测试结果来评估它们在处理特定任务时的效能和响应速度。 导航 问题 1: 统计自Vehicle Routing Problem (VRP)第一篇文章发…

【Flink系列二】如何计算Job并行度及slots数量

接上文的问题 并行的任务,需要占用多少slot ?一个流处理程序,需要包含多少个任务 首先明确一下概念 slot:TM上分配资源的最小单元,它代表的是资源(比如1G内存,而非线程的概念,好多…

设备制造行业CRM:提升客户满意度,驱动业务增长

设备制造行业客户需求多样化、服务链路长,企业在关注APS、EMS等工业软件之余还要以客户为中心,做好客户服务。设备制造行业CRM管理系统是企业管理客户关系的利器,设备制造行业CRM的作用有哪些?一文带您看懂。 设备制造行业需要解…

【深度学习】强化学习(一)强化学习定义

文章目录 一、强化学习问题1、交互的对象1. 智能体(Agent)2. 环境(Environment) 2、强化学习的基本要素1. 状态 𝑠2. 动作 𝑎3. 策略 𝜋(𝑎|𝑠)4. 状态转移概率 &#x1…

elk(filebeat)日志收集工具

elk(filebeat)日志收集工具 elk:filebeat日志收集工具 和logstash相同 filebeat是一个轻量级的日志收集工具,所使用的系统资源比logstash部署和启动时使用的资源要小得多 filebeat可以运行在非Java环境。他可以代理logstash在…