SVD recommendation systems

SVD recommendation systems

为什么在推荐系统中使用SVD

一个好的推荐系统一定有小的RMSE
R M S E = 1 m ∑ i = 1 m ( Y i − f ( x i ) 2 RMSE = \sqrt{\frac{1}{m} \sum_{i=1}^m(Y_i-f(x_i)^2} RMSE=m1i=1m(Yif(xi)2
希望模型能够在已知的ratings上有好的结果的同时,也希望在未知ratings上能够表现很好(比如用户还没有见过一部电影)。ratings的意思见:GLOCAL-K
假设有m个items,n个users,我们可以对rating matrix R进行近似,这里R有m行,n列
R ≈ Q ⋅ P T R \approx Q \cdot P^T RQPT
其中Q为mk,P^T为kn,这个可以理解为隐空间是k维。
这样我们就可以利用Q和P去预测R中的缺失值。
r ^ x i = q i ⋅ p x T = ∑ f q i f ⋅ p x f \hat{r}_{xi} = q_i \cdot p_x^T = \sum_fq_{if} \cdot p_{xf} r^xi=qipxT=fqifpxf
SVD的介绍SVD
在这里
A = R , Q = U , P T = Σ V T A = R,\\ Q=U,\\ P^T=\Sigma V^T A=R,Q=U,PT=ΣVT
我们知道SVD可以得到最小的重建损失(Sum of Squared Errors):
min ⁡ U , V , Σ ∑ i , j ∈ A ( A i j − [ U Σ V T ] i j ) 2 \min_{U,V,\Sigma}\sum_{i,j\in A}(A_{ij}-[U\Sigma V^T]_{ij})^2 U,V,Σmini,jA(Aij[UΣVT]ij)2

  • SSE和RMSE是相关的
    R M S E = 1 c S S E RMSE = \frac{1}{c}\sqrt{SSE} RMSE=c1SSE
    也就是说SVD也最小化RMSE
  • 但是SVD是所有entrys的,目前R是有缺失值,所以做出改变。
    目标函数:
    m i n P , Q ∑ ( i , x ) ∈ R ( r x i − q i ⋅ p x T ) 2 min_{P,Q}\sum_{(i,x)\in R}(r_{xi}-q_i \cdot p^T_x)^2 minPQ(i,x)R(rxiqipxT)2
    防止过拟合,需要正则化
    m i n P , Q ∑ ( i , x ) ∈ R ( r x i − q i ⋅ p x T ) 2 + λ [ ∑ x ∣ ∣ p x ∣ ∣ 2 + ∑ i ∣ ∣ q i ∣ ∣ 2 ] min_{P,Q}\sum_{(i,x)\in R}(r_{xi}-q_i \cdot p^T_x)^2+\lambda [\sum_x||p_x||^2+\sum_i||q_i||^2] minPQ(i,x)R(rxiqipxT)2+λ[x∣∣px2+i∣∣qi2]

增加偏执的SVD

每个人都有自己的打分准则,有的人打分就很高,有的人打分偏低,同样的像一些经典电影就会有很高的评分,所以需要增加偏置来解决这个问题。
r ^ u i = μ + b i + b u + p u ⋅ q i T \hat{r}_{ui} = \mu + b_i+ b_u+p_u \cdot q_i^T r^ui=μ+bi+bu+puqiT
其中, μ \mu μ表示全局均值,bu表示用户偏见,bi表示物品偏见。
如果一个用户比网站全局评分小0.5分,那么bu=-0.5,u=3.5,泰坦尼克号的平均分比全局平均分要高1分bi=1.

SVD++

最特别的是加了隐式反馈,不仅考虑评分值,还考虑用户对哪些电影进行了评分,1表示评分,0表示未评分
r ^ u i = μ + b i + b u + ( p u + ∣ N ( u ) ∣ − 0.5 ∑ i ∈ N ( u ) y i ) ⋅ q i T \hat{r}_{ui} = \mu + b_i+ b_u+(p_u+|N(u)|^{-0.5}\sum_{i \in {N(u)}}y_i) \cdot q_i^T r^ui=μ+bi+bu+pu+N(u)0.5iN(u)yiqiT
其中 ∣ N ( u ) ∣ |N(u)| N(u)表示行为物品集,y_j表示物品j所表达的隐式反馈。

timeSVD++

增加了时间的考虑,因为对电影的喜爱会根据时间变化,同时一个电影也会随着时间变化,变得更受欢迎或不受欢迎。
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot整合redis+自定义注解+反射+aop实现分布式锁

1.定义注解 import java.lang.annotation.*; import java.util.concurrent.TimeUnit;/** Author: best_liu* Description:* Date: 16:13 2023/9/4* Param * return **/ Retention(RetentionPolicy.RUNTIME) Target({ElementType.METHOD}) Documented public interface RedisLo…

Ubuntu系统Springboot项目Nginx安装(编译安装方式)

1.下载 nginx官网下载 Index of /download/ 2.解压 这里我下载的1.25.3版本,系统是ubuntu 解压 tar -zxvf nginx-1.25.3.tar.gz 3.编译安装 安装前需要执行安装一些系统依赖 3.1安装PCRE库 ubuntu:执行以下命令 sudo apt-get install libpcre…

MOSFET安全工作区域SOA

Safe Operating Area(SOA)即安全工作区:描述了当MOSFET工作在饱和区时可以处理的最大功率。超出安全工作区,则可能导致元件损坏。 SOA分为五个单独的界限,分别是RDS(on)限制 On Resistance(RDS(on)&#…

Kafka系列 - Kafka一篇入门

Kafka是一个分布式流式处理平台。很多分布式处理系统,例如Spark,Flink等都支持与Kafka集成。 Kafka使用场景 消息系统:Kafka实现了消息顺序性保证和回溯消费。存储系统:Kafka把消息持久化到磁盘,相比于其他基于内存的…

⑨【Stream】Redis流是什么?怎么用?: Stream [使用手册]

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ ⑨Redis Stream基本操作命令汇总 一、Redis流 …

苹果mac屏幕投屏镜像工具AirServer2024

airserver 是什么软件?AirServer 是一款 Airplay Mac屏幕镜像应用,AirServer可以通过 mac 实时接收iPhone、iPad以及Android设备的实时屏幕画面。AirServer 可以将一个简单的大屏幕或投影仪变成一个通用的屏幕镜像接收器。在您的大屏幕上启用 AirServer …

八股文面试day6

什么是代理?为什么要用动态代理? 代理模式大概意思是:为其他对象提供一个代理项或者是占位符,以控制对这个对象的访问 代理模式核心思想:创建一个代理对象,在客户端和目标对象之间的一个中介,…

MySQL与Redis如何保证数据的一致性

文章目录 MySQL与Redis如何保证数据的一致性?不好的方案1. 先写 MySQL,再写 Redis2. 先写 Redis,再写 MySQL3. 先删除 Redis,再写 MySQL 好的方案4. 先删除 Redis,再写 MySQL,再删除 Redis5. 先写 MySQL&am…

实现极坐标图表QPolarChart的角度轴范围是[0,360]时,0度在水平右侧

目录 参考角度轴范围是[0,360]时,0度在水平右侧.h.cpp 参考 Qt数据可视化(QPolarChart雷达图) 默认QPolarChart的范围是[0,360]时,0度在垂直上方 如官方例子QValueAxis角度轴范围是[-100,100] 角度轴范围是[0,360]时,0度在水平右侧 原理&am…

如何在GO中写出准确的基准测试

一般来说,我们不应该对性能进行猜测。在编写优化时,会有许多因素可能起作用,即使我们对结果有很强的看法,测试它们很少是一个坏主意。然而,编写基准测试并不简单。很容易编写不准确的基准测试,并且基于这些…

C语言进阶之笔试题详解(1)

引言: 对指针知识进行简单的回顾,然后再完成笔试题。 ✨ 猪巴戒:个人主页✨ 所属专栏:《C语言进阶》 🎈跟着猪巴戒,一起学习C语言🎈 目录 引言: 知识简单回顾 指针是什么 指针变…

vue项目中使用jsonp跨域请求百度联想接口

一. 内容简介 vue项目中使用jsonp跨域请求百度联想接口 二. 软件环境 2.1 Visual Studio Code 1.75.0 2.2 chrome浏览器 2.3 node v18.14.0 三.主要流程 3.1 代码 核心代码 // 这个是请求函数doLeno() {// 挂载回调函数,不挂载,会报不存在window…

React入门使用 (官方文档向 Part1)

文章目录 React组件:万物皆组件 JSX: 将标签引入 JavaScriptJSX 规则1. 只能返回一个根元素2. 标签必须闭合3. 使用驼峰式命名法给 ~~所有~~ 大部分属性命名!高级提示:使用 JSX 转化器 在 JSX 中通过大括号使用 JavaScript使用引号传递字符串使用大括号&…

性能优化中使用Profiler进行内存泄露的排查及解决方式

文章目录 一、前言二、内存泄露的排查方式三、参考链接 一、前言 对于常规意义上的线程使用要及时关闭,数据库用完要及时关闭,数据用完要及时清空等等这里不再赘述,但是在开发中总会有不熟悉的api,开发进度过快,开发人…

【工具】Zotero|使用Zotero向Word中插入引用文献(2023年)

版本:Word 2021,Zotero 6.0.30 前言:两年前我找网上插入文献的方式,网上的博客提示让我去官网下个插件然后才能装,非常麻烦,导致我对Zotero都产生了阴影。最近误打误撞发现Zotero自带了Word插件&#xff0c…

随时随地,打开浏览器即可体验的在线PS编辑器

即时设计 即时设计是国产的专业级 UI 设计工具,不限平台不限系统,在浏览器打开即用,能够具备 Photoshop 的设计功能,钢笔、矢量编辑、矩形工具、布尔运算等设计工具一应俱全,是能够在线使用的 Photoshop 免费永久工具…

DjiTello + YoloV5的无人机的抽烟检测

一、效果展示 注:此项目纯作者自己原创,创作不易,不经同意不给予搬运权限,转发前请联系我,源码较大需要者评论获取,谢谢配合! 1、未启动飞行模型无人机的目标检测。 DjiTello YOLOV5抽烟检测 …

Exchange意外登录日志

最近在审计Exchange邮件系统的时候,发现大量用户半夜登录的日志。而且都是成功的,几乎没有失败的情况。其中Logon Type 8表示用户从网络登录。 Logon type 8: NetworkCleartext. A user logged on to this computer from the network. The user’s pas…

c语言-数据结构-链式二叉树

目录 1、二叉树的概念及结构 2、二叉树的遍历概念 2.1 二叉树的前序遍历 2.2 二叉树的中序遍历 2.3 二叉树的后序遍历 2.4 二叉树的层序遍历 3、创建一颗二叉树 4、递归方法实现二叉树前、中、后遍历 4.1 实现前序遍历 4.2 实现中序遍历 4.3 实现后序遍历 5、…

【服务器能干什么】二十分钟搭建一个属于自己的 RSS 服务

如果大家不想自己捣鼓,只是想尝尝鲜,可以在下面留言,我后台帮大家开几个账号玩一玩。 哔哩哔哩【高清版本可以点击去吐槽到 B 站观看】:【VPS服务器到底能干啥】信息爆炸的年代,如何甄别出优质的内容?你可能需要自建一个RSS服务!_哔哩哔哩_bilibili 前言 RSS 服务 市…