iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >什么是推荐系统以及其基本原理使用案例
  • 683
分享到

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

2024-04-02 19:04:59 683人浏览 安东尼
摘要

目录基于内容的推荐系统基于协同过滤的推荐系统(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:对竞争对手的商品专门打低分,对自己的商品打高分

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

--结束END--

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

本文链接: https://www.lsjlt.com/news/132453.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 什么是推荐系统以及其基本原理使用案例
    目录基于内容的推荐系统基于协同过滤的推荐系统(1)基于item的协同过滤(2)基于用户的协同过滤基于内容的推荐系统 根据每部电影的内容以及用户已经评过分的电影来判断每个用户对每部电影...
    99+
    2024-04-02
  • Linux系统性能评测基准系统配置及其原理是什么
    今天就跟大家聊聊有关Linux系统性能评测基准系统配置及其原理是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。概要开发人员在高性能系统的性能调优过程中,经常会碰到各种背景的噪声干...
    99+
    2023-06-16
  • Java内存模型的原理以及其用法是什么
    Java内存模型的原理以及其用法是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。为什么要有内存模型在介绍 Java 内存模型之前,我们先来看一下到底什么是计算机内存模型...
    99+
    2023-06-02
  • RabbitMQ原理以及使用场景是什么
    本篇文章给大家分享的是有关RabbitMQ原理以及使用场景是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一. RabbitMQ 简介MQ...
    99+
    2024-04-02
  • Linux系统中安装lynis及基本使用方法是什么
    今天就跟大家聊聊有关Linux系统中安装lynis及基本使用方法是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Lynis简介:Lynis是经过考验的安全工具,适用于运行Linu...
    99+
    2023-06-28
  • Linux文件系统的基本原理是什么及常见类型有哪些呢
    Linux文件系统的基本原理是什么及常见类型有哪些呢,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。在计算机出现之前其实就有文件系统的概念了,此时的文件系统是指用于管理(存储...
    99+
    2023-06-16
  • python列表推导式的原理是什么及怎么使用
    这篇文章主要介绍“python列表推导式的原理是什么及怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python列表推导式的原理是什么及怎么使用”文章能帮助大家解决问题。偶尔会在python...
    99+
    2023-06-29
  • haproxy实现功能以及keepalived的使用原理是什么
    这篇文章将为大家详细讲解有关haproxy实现功能以及keepalived的使用原理是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。haproxy能够实现的功能4层负载均衡,透明代理,7...
    99+
    2023-06-05
  • Linux系统中VIM最基本的使用方法是什么
    Linux系统中VIM最基本的使用方法是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。vim是linux下一款非常强大的文本编辑器,每一个程序员都应该熟练使...
    99+
    2023-06-28
  • 使用cache改善系统性能的依据是什么原理
    这篇文章给大家分享的是有关使用cache改善系统性能的依据是什么原理的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。使用cache改善系统性能的依据是程序的局部性原理。当CPU需要读取数据时,首先在cache中查找...
    99+
    2023-06-15
  • Linux系统文本处理工具less的使用方法是什么
    这篇文章主要为大家分析了Linux系统文本处理工具less的使用方法是什么的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Linux系统文本处理工具less的...
    99+
    2023-06-28
  • golang pprof监控系列go trace统计原理与使用方法是什么
    这篇文章主要介绍“golang pprof监控系列go trace统计原理与使用方法是什么”,在日常操作中,相信很多人在golang pprof监控系列go trace统计原理与使用方法是什么问题上存...
    99+
    2023-07-05
  • SAP R/3系统的R和3分别代表的含义以及负载均衡的实现原理是什么
    本篇文章给大家分享的是有关SAP R/3系统的R和3分别代表的含义以及负载均衡的实现原理是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1972年,SAP诞生,推出了RF系...
    99+
    2023-06-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作