推荐系统知识的文摘和总结1

2024-05-13 05:48

本文主要是介绍推荐系统知识的文摘和总结1,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

     感觉自己这个初学者也许太急功近利了。之前的一些基本概念看得都忘了差不多了,今晚特此总结。希望可以得到更深刻的理解和认识。我是参考IBM的《探索推荐引擎内部的秘密》这里面第一部分---推荐引擎初探来总结。下面是主要内容:

    1.分清楚搜索引擎和推荐引擎的区别。

     搜索引擎就是你有个固定的关键词,然后你在百度,google里面去搜索,得到你想要的资料。也就是你有个明确的目标,这样找肯定可以很快的找到。但是,事情总是变化的,有时候你想找的东西总是不好描述,也就是你的目标不明确,这样寻找对于搜索引擎来说就很麻烦了。所以就出现了推荐引擎,它或许可以帮助大家解决问题。随着推荐引擎的出现,用户获取信息的方式从简单的目标明确的数据的搜索转换到更高级更符合人们使用习惯的信息发现。

    备注:区别就是目标是明确的还是不明确的。记得一个人的搜索能力是很重要,你不可能掌握很多的知识和事情,但是当你不知道你可以借助网络来帮你解答。这个就是你需要准备定位你的关键词或者推荐引擎很好都可以帮助你更快的找到问题的答案。还有个需要说明的,文章中说了这是个信息极度爆炸的时代,也就是大数据的时代,我们需要根据这些数据来帮助我们解决问题。

    2.推荐系统的工作原理。

 

这个是推荐系统的工作原理图。我们可以把推荐系统当做一个黑盒,来考虑输入和输出。输入是推荐的数据源,数据源包括:

  • 要推荐物品或内容的元数据,例如关键字,基因描述等;
  • 系统用户的基本信息,例如性别,年龄等
  • 用户对物品或者信息的偏好,根据应用本身的不同,可能包括用户对物品的评分,用户查看物品的记录,用户的购买记录等。

推荐引擎根据不同的推荐机制可能用到数据源中的一部分,然后根据这些数据,分析出一定的规则或者直接对用户对其他物品的喜好进行预测计算。这样推荐引擎可以在用户进入的时候给他推荐他可能感兴趣的物品。这样,一个推荐引擎就可以了。

  3.推荐引擎的分类。

   3.1推荐引擎是不是为不同的用户推荐不同的数据

   根据这个可以分为:基于大众的推荐引擎和个性化的推荐引擎。这个应该比较好理解,就是某天你打开一个网站,你看看他为你推荐的,然后你转个身看你座位旁边的推荐,如果和你一样拿就是基于大众的推荐引擎,不一样那就是个性化的推荐引擎。基于大众的推荐引擎比较简单,也可以看到用的地方,比如一些比较门的东西或者季节性的东西。显然,每个人的兴趣和爱好什么的都不会一样,这样它的缺点也就出来了。所以出现了个性化的推荐引擎。后面讨论的大多数是个性化的推荐引擎,这才智能化,呵呵……

  3.2根据推荐引擎的数据源

分为三个:

    1.根据用户的基本信息发现用户的相关性,称为基于人口统计学的推荐(Demographic-based Recommendation)。

    2.根据物品或者内容发现物品或者内容的相关性,称为基于内容的推荐(Content-based Recommendation)。

    3.根据用户对物品或者内容的偏好,发现物品或者内容的相关性,或者发现用户的相关性,称为基于协同过滤的推荐(Collaborative Filtering-based Recommendation)。

  3.3根据推荐模型的建立方式

    1.基于物品和用户本身的,就是把每个用户和每个物品都看做是个独立的个体,预测每个用户对每个物品的喜欢程度。我们可以用二维矩阵来描述,很明显是个稀疏矩阵。我们不可能对每个物品都感兴趣。当然这也是个巨大的矩阵,计算起来比较复杂。所以,为了减少计算量,我们可以对物品和用户进行聚类,然后记录和计算一类用户对一类物品的喜欢程度。但是这样的模型肯定在准确性上有损失,但只要我们能接受就可以。

    2.基于关联规则的推荐。典型的就是购物篮的问题和啤酒和尿布的实例。通过关联规则来分析用户经常把哪些物品在一起购买。我们可以基于这些规则来推荐。大家可以在购物网站上看到买这个物品的人还买了什么的推荐或者是还浏览了什么的推荐。这个就是典型的基于关联规则的推荐。

    3.基于模型的推荐。这是个机器学习的问题,可以把已有的用户爱好数据作为训练样本,训练出一个预测用户爱好的模型。下次,只要用户进入系统,就可以用这个模型给予推荐。这种方法在于我们怎么样去寻找模型,从而得到更好的准确度。

     介绍完分类,说一个比较重要的问题。其实在现在的推荐系统中,很少有只使用了一个推荐策略的推荐引擎,一般都是在不同的场景下使用不同的推荐策略从而达到最好的推荐效果,例如 Amazon 的推荐,它将基于用户本身历史购买数据的推荐,和基于用户当前浏览的物品的推荐,以及基于大众喜好的当下比较流行的物品都在不同的区域推荐给用户,让用户可以从全方位的推荐中找到自己真正感兴趣的物品。

 

感觉有点多了,至于具体的模型总结放在下篇博客吧。欢迎大家指正。

 

 

 

 

这篇关于推荐系统知识的文摘和总结1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/984841

相关文章

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

linux系统中java的cacerts的优先级详解

《linux系统中java的cacerts的优先级详解》文章讲解了Java信任库(cacerts)的优先级与管理方式,指出JDK自带的cacerts默认优先级更高,系统级cacerts需手动同步或显式... 目录Java 默认使用哪个?如何检查当前使用的信任库?简要了解Java的信任库总结了解 Java 信

macOS彻底卸载Python的超完整指南(推荐!)

《macOS彻底卸载Python的超完整指南(推荐!)》随着python解释器的不断更新升级和项目开发需要,有时候会需要升级或者降级系统中的python的版本,系统中留存的Pytho版本如果没有卸载干... 目录MACOS 彻底卸载 python 的完整指南重要警告卸载前检查卸载方法(按安装方式)1. 卸载

Oracle数据库在windows系统上重启步骤

《Oracle数据库在windows系统上重启步骤》有时候在服务中重启了oracle之后,数据库并不能正常访问,下面:本文主要介绍Oracle数据库在windows系统上重启的相关资料,文中通过代... oracle数据库在Windows上重启的方法我这里是使用oracle自带的sqlplus工具实现的方

Python中logging模块用法示例总结

《Python中logging模块用法示例总结》在Python中logging模块是一个强大的日志记录工具,它允许用户将程序运行期间产生的日志信息输出到控制台或者写入到文件中,:本文主要介绍Pyt... 目录前言一. 基本使用1. 五种日志等级2.  设置报告等级3. 自定义格式4. C语言风格的格式化方法

Spring 依赖注入与循环依赖总结

《Spring依赖注入与循环依赖总结》这篇文章给大家介绍Spring依赖注入与循环依赖总结篇,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Spring 三级缓存解决循环依赖1. 创建UserService原始对象2. 将原始对象包装成工

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境