推荐系统学习总结

2023-11-06

前段时间参加了泰迪杯数据挖掘挑战赛,选的是B题电视产品营销推荐。由于涉及到推荐系统这一块比较大的知识领域,之前没有学过,于是在比赛之初找了一些网上的资料自学了几天,有了一些初步的了解与认识。因实训的项目中推荐系统仍是很重要的一部分,故重新再复习一遍,加之比赛中的一些感悟作此总结。

附上原版链接,挑选了两个比较不错的链接,通俗易懂,可做入门用。

1.5类系统推荐算法,非常好使,非常全 - CSDN博客

https://blog.csdn.net/u010670689/article/details/71513133

2.探索推荐引擎内部的秘密,第 1 部分: 推荐引擎初探

https://www.ibm.com/developerworks/cn/web/1103_zhaoct_recommstudy1/index.html#icomments

探索推荐引擎内部的秘密,第 2 部分: 深入推荐引擎相关算法 - 协同过滤

https://www.ibm.com/developerworks/cn/web/1103_zhaoct_recommstudy2/index.html?ca=drs-

探索推荐引擎内部的秘密,第 3 部分: 深入推荐引擎相关算法 - 聚类

https://www.ibm.com/developerworks/cn/web/1103_zhaoct_recommstudy3/index.html?ca=drs-

所谓推荐,我们联系一下现实,无论是自己给别人推荐还是别人给自己推荐,归根结底是通过寻找相似或者说关联来推荐。以相似和关联这两条主线来理解推荐机制就很容易接受了。

相似:人的相似与物的相似。

基于人口统计学的推荐机制  与  基于内容的推荐机制

基于人口统计学的推荐机制


基于内容的推荐机制


关联:用户为主的关联与物品为主的关联。

基于用户的协同过滤推荐 与 基于项目的协同过滤推荐

基于用户的协同过滤推荐


基于项目的协同过滤推荐



基于物品和用户本身的,这种推荐引擎将每个用户和每个物品都当作独立的实体,预测每个用户对于每个物品的喜好程度,这些信息往往是用一个二维矩阵描述的。由于用户感兴趣的物品远远小于总物品的数目,这样的模型导致大量的数据空置,即我们得到的二维矩阵往往是一个很大的稀疏矩阵。同时为了减小计算量,我们可以对物品和用户进行聚类,然后记录和计算一类用户对一类物品的喜好程度,但这样的模型又会在推荐的准确性上有损失。

——节选自 探索推荐引擎内部的秘密,第 1 部分: 推荐引擎初探
https://www.ibm.com/developerworks/cn/web/1103_zhaoct_recommstudy1/index.html#icomments 推荐引擎的分类

在做泰迪杯的时候,对推荐系统了解不多,只用最简单的想法去进行编程,最终得出1000多名用户与20多个标签的对应矩阵和1000多部电视产品与20多个标签的对应矩阵,看似成功就在眼前,然而在计算用户相似度和产品相似度的时候却因为矩阵的过于稀疏以及算法的简陋,运算时间远超预想,难以实现。

总结教训,在此次实训中必须要考虑如何聚类分析,对于大量的数据,如果牺牲一定的准确性可以换来运算效率的大幅提升的话,这样的牺牲是很有必要的。

混合的推荐机制

在现行的 Web 站点上的推荐往往都不是单纯只采用了某一种推荐的机制和策略,他们往往是将多个方法混合在一起,从而达到更好的推荐效果。关于如何组合各个推荐机制,这里讲几种比较流行的组合方法。

加权的混合(Weighted Hybridization): 用线性公式(linear formula)将几种不同的推荐按照一定权重组合起来,具体权重的值需要在测试数据集上反复实验,从而达到最好的推荐效果。

切换的混合(Switching Hybridization):前面也讲到,其实对于不同的情况(数据量,系统运行状况,用户和物品的数目等),推荐策略可能有很大的不同,那么切换的混合方式,就是允许在不同的情况下,选择最为合适的推荐机制计算推荐。

分区的混合(Mixed Hybridization):采用多种推荐机制,并将不同的推荐结果分不同的区显示给用户。其实,Amazon,当当网等很多电子商务网站都是采用这样的方式,用户可以得到很全面的推荐,也更容易找到他们想要的东西。

分层的混合(Meta-Level Hybridization): 采用多种推荐机制,并将一个推荐机制的结果作为另一个的输入,从而综合各个推荐机制的优缺点,得到更加准确的推荐。

——节选自 探索推荐引擎内部的秘密,第 1 部分: 推荐引擎初探

https://www.ibm.com/developerworks/cn/web/1103_zhaoct_recommstudy1/index.html#icomments 推荐引擎的应用 

可以应用在项目实训的推荐里面,考虑一下分区混合的应用。





本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

推荐系统学习总结 的相关文章

随机推荐

  • JDBC步骤(以查询为例)

    JDBC 全称为java database connectivity 也就是Java数据库连接 这是一个Java连接SQL数据库的标准 包含了常用的API 让我们能方便的连接和管理SQL数据库 每个数据库厂商都会提供相应的JDBC驱动程序
  • js取backgroundPositionX的值

    如果有内联样式通过elem style backgroundPosition可以取得backgroundPositionX和backgroundPositionY两个值 但是如果没有内联样式通过计算样式getComputedStyle el
  • 网络原理,以及对VMware Workstation虚拟网络VMnet0、VMnet1、VMnet8的图解

    网络原理 以及对VMware Workstation虚拟网络VMnet0 VMnet1 VMnet8的图解 借鉴了 http hi baidu com whitelocus blog item d091ded88ac669e038012f5
  • Spring 启动过程,bean到底是什么时候通过反射生成实例的

    Spring 启动时最重要的方法refresh 1 在obtainFreshBeanFactory 中创建所有对象的BeanDefinition 2 在finishBeanFactoryInitialization beanFactory
  • 堆(什么是堆以及怎样自己创建堆)

    我们不必非常聪明才能改变世界 我们只需要比绝大多数人更早地认识到问题 并付诸行动 毛里茨 萨克斯 作者 不能再留遗憾了 关于作者 博主正在学习C和Java 目前有些关于leetcode刷题的专栏leetcode刷题 该专栏主要是关于数据结构
  • 深度学习apex包安装失败的问题

    文章目录 一 前言 二 正确的安装方法 2 1 从github上下载 2 2 切换到下载后的路径 2 3 进行安装 一 前言 在进行论文复现的时候 发现缺了一个重要的包 apex包 这是NVIDIA开发的基于PyTorch的混合精度训练加速
  • 【Java】RestTemplate下载远程文件到本地

    一 什么是RestTemplate RestTemplate 是 Spring 框架提供的一个用于访问 REST 服务的组件 底层对 HTTP 请求及响应进行了封装 提供了很多访问远程REST服务的方法 可简化代码开发 二 实例化RestT
  • 在同一台机器上部署多个tomcat

    文章引用地址 https www cnblogs com wryu p 7327298 html 安装tomcat步骤 1 下载apache tomcat 8 0 30 下载下来的文件为apache tomcat 8 0 30 window
  • React Native —— webstorm搭建React Native开发环境

    1 下载安装node js 安装之前检查是否已有node js环境 cmd 命令下输入node v 出现版本号 说明已经成功安装了node js环境 如下图所示 2 安装 react native 脚手架工具 如果之前全局安装过旧的reac
  • Windows Keras load_model报错及解决

    1 报错 ValueError Unknown metric function psnr superResModel load model config SUPER RES MODEL 解决 设置custom objects superRe
  • 学生派生类

    学生派生类 10 分 根据所给的类Student定义其派生类 并利用构造函数进行数据初始化 使程序能按照 样例 的格式进行输出 类定义 include
  • 机器学习_周志华_问题汇总_第2周

    问题 Q1 如果我想分析一下文本分类错误的原因 应该从哪些方面入手 可以去分析一下哪个类别错误率高 然后看看这个类别的是否不平衡 针对这个类别看看能不能进行改进 还有就是数据量过少 或是数据质量较差 比如人为标注的样本可能类别是不正确的 都
  • 构建时 flatten-maven-plugin报错问题

    ERROR Failed to execute goal org codehaus mojo flatten maven plugin 1 2 4 flatten flatten on project 构建项目时发生以上错误 最后成功解决
  • 来,创建一个高效的IMEI编码生成器

    0x1 起因 话说 今天下午群里面有个同学求助一段代码 他想问的是 这个 tempimei j 2 0x30 是啥子意思 0x2 其实这是很常见的一种写法 我们留意到 tempimei 这个变量其实是一个字符串 在 NET中 对一个字符串取
  • Yolo 推测的候选框NMS笔记

    YOLOV3 NMS笔记 1 参数 假设当前网络输入大小为416 416 分类为3个 a b c 每个YOLO层3个anchor 输入图像 img 1 3 416 416 代表这个批次内一张图片 通道为3 经过降采样最大的YOLO层后 yo
  • TortoiseGit更换用户名和密码

    选择 TortoisGit 然后选择 设置 选择 已保存数据 然后 清除 认证数据 清除后 重新 pull 拉取 数据 会让重新输入用户名和密码
  • 微信小程序授权登录,跳转页面后在跳回首页不用再次登录

    小程序授权登录要使用wx getUserProfile 获得用户投头像后 做一些页面跳转功能 但是如果需要再次跳转首页的话 小程序就会有回到登录前的状态 这样体验感会很差 要想不用再次登录 也不难 只需要判断userInfo是否还存有信息就
  • 三种方式部署单机版Minio,10行命令干就完了~

    必要步骤 安装MinIO 拉取MinIO镜像 docker pull quay io minio minio 创建文件挂载点 mkdir home docker MinIO data 文件挂载点映射 默认是 mydata minio dat
  • JS中splice的详细用法介绍

    splice 是一个用于修改数组的方法 它可以实现添加 删除或替换数组中的元素 下面是 splice 方法的中文解释 splice 方法的语法如下 array splice start deleteCount item1 item2 参数说
  • 推荐系统学习总结

    前段时间参加了泰迪杯数据挖掘挑战赛 选的是B题电视产品营销推荐 由于涉及到推荐系统这一块比较大的知识领域 之前没有学过 于是在比赛之初找了一些网上的资料自学了几天 有了一些初步的了解与认识 因实训的项目中推荐系统仍是很重要的一部分 故重新再