什么是推荐系统以及其基本原理使用案例

目录
  • 基于内容的推荐系统
  • 基于协同过滤的推荐系统
    • (1)基于item的协同过滤
    • (2)基于用户的协同过滤

基于内容的推荐系统

根据每部电影的内容以及用户已经评过分的电影来判断每个用户对每部电影的喜好程度,从而预测每个用户对没有看过的电影的评分。

电影内容矩阵X * 用户喜好矩阵θ = 电影评分表

那么,用户喜好矩阵θ(用户对于每种不同类型电影的喜好程度)如何求解呢?

用户喜好矩阵θ的代价函数:

其中,正则化项为防止过拟合。

  • 优点:

(1)不存在商品冷启动问题

(2)可以明确告诉用户推荐的商品包含哪些属性

  • 缺点:

(1)需要对内容进行透彻的分析

(2)很少能给用户带来惊喜

(3)存在用户冷启动的问题

基于协同过滤的推荐系统

根据电影评分表和用户喜好矩阵θ,来求得电影内容矩阵X。然后,将电影内容矩阵X与用户喜好矩阵θ相乘,这样就得到了一个完整的电影评分表。

所以,基于协同过滤的电影推荐就是根据每个用户对于每种电影类型的喜好程度以及用户已经评过分的电影来推断每部电影的内容,从而预测每个用户对没有看过的电影的评分。

那么,如何求解电影内容矩阵X呢?

电影内容矩阵X的代价函数:

用户喜好矩阵X的获取:

(1)通过在线问卷调查来获取用户对电影的评价,但并不是所有的用户都会填写,就算填写了,也不一定全部是正确信息;

(2)通过一种更高效的方式来同时求解电影内容矩阵X和用户喜好矩阵θ.

通过前面,可以看到电影内容矩阵X和用户喜好矩阵θ,它们的第一项是相同的,因此,我们可以将这两个公式合并为一个公式来同时求解X与θ,这种方法的好处就是只用搜集用户对电影的评分。

目标是最小化这个代价函数,随机初始化X和θ,通过梯度下降法或其他优化算法求解。

(1)基于item的协同过滤

先计算商品之间的相似度,然后根据商品之间的相似度来向用户进行推荐,如:用户购买了硬盘,则很有可能向用户推荐u盘,因为硬盘和u盘具有相似性。

在基于item的协同过滤中,只需要用户对商品的评分,首先需要计算商品之间的相似度。

如何度量商品之间的相似度?

计算出商品之间的相似度之后, 我们就能够预测用户对商品的评分。

:商品i 与其他商品的相似度

:用户u对其他商品的评分

分母:与商品 i 相似的商品的相似度的总和

表达的是:根据用户u对其他和商品 i 相似的商品的评分来推断用户对商品 i 的评分。 当求出用户u对所有商品的预测评分后,将其进行排序,选择得分最高的商品推荐给用户。

(2)基于用户的协同过滤

基本思想:假设我们要对用户A进行推荐,首先要找到与用户相似的其他用户,看其他用户都购买过其他商品,把其他用户购买的商品推荐给用户A。

这时就需要度量用户之间的相似度,与基于item的协同过滤类似:

:用户u对商品 i 的评分

:用户u对这些商品评分的平均值

计算了用户之间的相似度之后就可以预测用户对商品的评分。

商品评分公式:

公式表示:根据与用户u相似的其他用户对商品i 的评分来推断用户u对商品i 的评分。 当求出用户u对所有商品的预测评分后,将其进行排序,选择得分最高的几个商品推荐给用户。

  • 基于协同过滤推荐系统的优点:

(1)能够根据各个用户的历史信息推断出商品的质量

(2)不需要对商品有任何专业领域的知识

  • 缺点:

(1)冷启动问题

(2)gray sheep

(3)协同过滤的复杂度会随着商品数量和用户数量的增加而增加

(4)同义词的影响

(5)shilling attack:对竞争对手的商品专门打低分,对自己的商品打高分

日常生活中,我们每个人其实都直接或者间接接触过推荐系统,也都享受过推荐系统带来的生活上便利。关于推荐系统的介绍就到这里,希望大家以后多多支持我们!

(0)

相关推荐

  • Python基于机器学习方法实现的电影推荐系统实例详解

    推荐算法在互联网行业的应用非常广泛,今日头条.美团点评等都有个性化推荐,推荐算法抽象来讲,是一种对于内容满意度的拟合函数,涉及到用户特征和内容特征,作为模型训练所需维度的两大来源,而点击率,页面停留时间,评论或下单等都可以作为一个量化的 Y 值,这样就可以进行特征工程,构建出一个数据集,然后选择一个合适的监督学习算法进行训练,得到模型后,为客户推荐偏好的内容,如头条的话,就是咨询和文章,美团的就是生活服务内容. 可选择的模型很多,如协同过滤,逻辑斯蒂回归,基于DNN的模型,FM等.我们使用的方式

  • 不到40行代码用Python实现一个简单的推荐系统

    什么是推荐系统 维基百科这样解释道:推荐系统属于资讯过滤的一种应用.推荐系统能够将可能受喜好的资讯或实物(例如:电影.电视节目.音乐.书籍.新闻.图片.网页)推荐给使用者. 本质上是根据用户的一些行为数据有针对性的推荐用户更可能感兴趣的内容.比如在网易云音乐听歌,听得越多,它就会推荐越多符合你喜好的音乐. 推荐系统是如何工作的呢?有一种思路如下: 用户 A 听了 收藏了 a,b,c 三首歌.用户 B 收藏了 a, b 两首歌,这时候推荐系统就把 c 推荐给用户 B.因为算法判断用户 A,B 对音

  • Python用户推荐系统曼哈顿算法实现完整代码

    出租车几何或曼哈顿距离(Manhattan Distance)是由十九世纪的赫尔曼·闵可夫斯基所创词汇 ,是种使用在几何度量空间的几何学用语,用以标明两个点在标准坐标系上的绝对轴距总和. 图中红线代表曼哈顿距离,绿色代表欧氏距离,也就是直线距离,而蓝色和黄色代表等价的曼哈顿距离.曼哈顿距离--两点在南北方向上的距离加上在东西方向上的距离,即d(i,j)=|xi-xj|+|yi-yj|.对于一个具有正南正北.正东正西方向规则布局的城镇街道,从一点到达另一点的距离正是在南北方向上旅行的距离加上在东西

  • 如何用Python来搭建一个简单的推荐系统

    在这篇文章中,我们会介绍如何用Python来搭建一个简单的推荐系统. 本文使用的数据集是MovieLens数据集,该数据集由明尼苏达大学的Grouplens研究小组整理.它包含1,10和2亿个评级. Movielens还有一个网站,我们可以注册,撰写评论并获得电影推荐.接下来我们就开始实战演练. 在这篇文章中,我们会使用Movielens构建一个基于item的简易的推荐系统.在开始前,第一件事就是导入pandas和numPy. import pandas as pd import numpy a

  • 什么是推荐系统以及其基本原理使用案例

    目录 基于内容的推荐系统 基于协同过滤的推荐系统 (1)基于item的协同过滤 (2)基于用户的协同过滤 基于内容的推荐系统 根据每部电影的内容以及用户已经评过分的电影来判断每个用户对每部电影的喜好程度,从而预测每个用户对没有看过的电影的评分. 电影内容矩阵X * 用户喜好矩阵θ = 电影评分表 那么,用户喜好矩阵θ(用户对于每种不同类型电影的喜好程度)如何求解呢? 用户喜好矩阵θ的代价函数: 其中,正则化项为防止过拟合. 优点: (1)不存在商品冷启动问题 (2)可以明确告诉用户推荐的商品包含

  • 揭开AJAX神秘的面纱(AJAX个人学习笔记)第1/5页

    AJAX技术是多种计算机技术的结晶,它的名称来自:Asynchronism(异步).JavaScript.And.XML这4个单词首字母,即异步JavaScript请求处理XML技术.简单的描述就是数据异步传输网页局部刷新的技术.AJAX很流行,WEB程序设计中如果不应用AJAX技术,可以说是不完善的设计.就好象黑白电视机与彩电一样,AJAX就是后者,是一种技术更新的革命! 本人学习AJAX时间并不长,仅10余天,不能说百分之百掌握,但也有所领悟.现在把自己的学习经过和体会写下来,与君共分享.

  • 详解Spring系列之@ComponentScan批量注册bean

    目录 回顾 本文内容 @ComponentScan基本原理和使用 基本原理 使用案例 定义配置类 容器扫描和使用 @ComponentScan进阶使用 源码简析 案例1:使用Filters过滤 案例2:使用自定义的bean名称生成策略 案例3:自定义bean的作用域策略 @Componet及其衍生注解使用 使用元注解和组合注解 总结 回顾 在前面的章节,我们介绍了@Comfiguration和@Bean结合AnnotationConfigApplicationContext零xml配置文件使用S

  • Java SpringSecurity入门案例与基本原理详解

    目录 1.入门案例 1.1.创建SpringBoot项目 1.2.勾选对应的maven依赖 1.3.编写Controller路由 1.4.启动项目 2.基本原理 2.1.Security的本质 2.2.Security装载过程(一) 2.3.Security装载过程(二) 2.4.UsernamePasswordAuthenticationFilter过滤器 总结 1.入门案例 1.1.创建SpringBoot项目 1.2.勾选对应的maven依赖 这里一些依赖可以没有,最主要是要有Web和Se

  • Spring AOP注解案例及基本原理详解

    切面:Aspect 切面=切入点+通知.在老的spring版本中通常用xml配置,现在通常是一个类带上@Aspect注解.切面负责将 横切逻辑(通知) 编织 到指定的连接点中. 目标对象:Target 将要被增强的对象. 连接点:JoinPoint 可以被拦截到的程序执行点,在spring中就是类中的方法. 切入点:PointCut 需要执行拦截的方法,也就是具体实施了横切逻辑的方法.切入点的规则在spring中通过AspectJ pointcut expression language来描述.

  • CSS hack用法案例详解

    之前一直很狭隘的对CSS hack持有偏见,觉得写得规范的代码不应该使用这些"邪门歪道",可最近产品发布一个小问题却让我头疼了很久,最后查了一下资料,竟然使用CSS hack轻松解决了,不得不服啊,对付神奇的IE就得使用这些利器. 什么是CSS hack 由于不同的浏览器,甚至同一浏览器的不同版本对CSS的解析认识不一样,导致生成的页面效果不一致,写出针对不同浏览器CSS code就称为CSS hack. 常用的CSS hack 有三种方式,CSS 内部hack.选择器hack.HTM

  • 详解C++中的ANSI与Unicode和UTF8三种字符编码基本原理与相互转换

    目录 1.概述 2.Visual Studio中的字符编码 3.ANSI窄字节编码 4.Unicode宽字节编码 5.UTF8编码 6.如何使用字符编码 7.三种字符编码之间的相互转换(附源码) 7.1.ANSI编码与Unicode编码之间的转换 7.2.UTF8编码与Unicode编码之间的转换 7.3.ANSI编码与UTF8编码之间的转换 8.Windows系统对使用ANSI窄字节字符编码的程序的兼容 9.字符编码导致程序启动失败的案例 1.概述 在日常的软件开发过程中,会时不时地去处理不同

  • 利用Python实现K-Means聚类的方法实例(案例:用户分类)

    目录 K-Means聚类算法介绍 K-Means聚类算法基础原理 K-Means聚类算法实现流程 开始做一个简单的聚类 数据导入 数据探索 开始聚类 查看输出结果 聚类质心 K-Means聚类算法的评估指标 真实标签已知 真实标签未知 实用案例:基于轮廓系数来选择最佳的n_clusters 结果对比 优化方案选择 K-Means聚类算法介绍 K-Means又称为K均值聚类算法,属于聚类算法中的一种,而聚类算法在机器学习算法中属于无监督学习,在业务中常常会结合实际需求与业务逻辑理解来完成建模: 无

  • 图神经网络GNN算法基本原理详解

    目录 前言 1. 数据 2. 变量定义 3. GNN算法 3.1 Forward 3.2 Backward 4.总结与展望 前言 本文结合一个具体的无向图来对最简单的一种GNN进行推导.本文第一部分是数据介绍,第二部分为推导过程中需要用的变量的定义,第三部分是GNN的具体推导过程,最后一部分为自己对GNN的一些看法与总结. 1. 数据 利用networkx简单生成一个无向图: # -*- coding: utf-8 -*- """ @Time : 2021/12/21 11:

  • Golang template 包基本原理分析

    目录 template 概述 解析流程 Parse阶段 Execute阶段 小结 template 概述 最近在做脚手架相关的内容, 研究了一下 Go 的 text/template 包, 接下来跟大家分享下 template 的基本原理. 在 Golang 的标准库中, 有两个和 template 有关的包, 一个是 html/template, 另外一个是 text/template, 这两个包的主要区别是 html 版本加入了很多对 js字符串 和 html标签 的处理, 下面我们主要用

随机推荐