SVD recommendation systems

news2024/12/24 20:43:43

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.coloradmin.cn/o/1265812.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

物理层之三种数据交换方式(电路交换、报文交换、分组交换(数据报方式、虚电路方式))

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需…

idea打开.class文件没有反编译

1 问题描述 新安装的idea开发工具,打开.class文件查看内容时发现没有将文件进行反编译,所以具体的代码实现看不到。如图所示: 尝试了各种办法解决,最终都没有解决我的问题,其他同事的idea开发工具都可以打开.class文件…

mac电脑下载Netflix Mac(奈飞客户端)安装教程

Netflix Mac,奈飞官方客户端,带给您无限的电影和剧集体验!与朋友分享最新热门剧集、电影,与家人一起享受高品质的流媒体内容。 通过Netflix Mac,您可以轻松地搜索、浏览和观看各种类型的影片,包括剧情片、…

【RESTful API】RESTful接口设计练习

参考: BV1Ps4y1J7Ve ---------------------------------------------------------------------------------------------------------- 一、RESTful框架 常见的有SpringMVC,jersey,play 二、API测试工具 Postman,Insomnia 三、RESTful接口设计练习 3.1 项目准备 构…

java设计模式 开闭原则

开闭原则(Open-Closed Principle,OCP)是面向对象设计中的一个重要原则,它指导着我们如何设计和组织代码,以便使系统在扩展性和可维护性方面更加优秀。 开闭原则的定义是:软件实体(类、模块、函数…

json处理由fastjson换jackjson

fastjson没有jackjson稳定,所以换成jackjson来处理对象转json和json转对象问题。 首先下载jackjson包,三个都要引用 然后修改实现类 package JRT.Core.Util;import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.ja…

【精选】Spring整合MyBatis,Junit 及Spring 事务Spring AOP面向切面详解

Spring整合MyBatis 搭建环境 我们知道使用MyBatis时需要写大量创建SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession等对象的代码,而Spring的作用是帮助我们创建和管理对象,所以我们可以使用Spring整合MyBatis,简化MyBatis开发。 …

真空工艺腔内潮湿有什么危害?

在半导体制程中,真空工艺腔被广泛使用。薄膜沉积,干法刻蚀,光刻,退火,离子注入等工序均需要在相应的真空腔室中完成相应制程。真空工艺腔在半导体制程中起着至关重要的作用,它能够提供一个高度控制的环境&a…

再探Java集合系列—ArrayList

适用于什么场景? 检索比较多的场景,例如学生成绩管理系统,老师对学生的成绩进行排名或查询操作 ArrayList有哪些特点? 1、ArrayList集合底层采用了数组数据结构,是Object类型 2、动态数组。ArrayList的默认初始容量…

【模电】单结晶体管

单结晶体管 单结晶体管的结构和等效电路工作原理和特性曲线应用举例 单结晶体管的结构和等效电路 在一个低掺杂的N型硅棒上利用扩散工艺形成一个高掺杂P区,在P区与N区接触面形成PN结,就构成单结晶体管(UJT)。其结构示意图如下图所示。   P型半导体引出…

【SK-learn学习】1.16 概率校准

一、说明 概率校准,指的是对于分类器而言,对应多种类别,概率最大就将样本归入,这个事实没有考虑置信度的问题。sklearn的calibration就是指的这种情形,参考本文。 二、关于sklearn.calibration的概念 执行分类时&#…

Java如何有效避免空指针

shigen日更文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。 hello,伙伴们,shigen又来了,这篇稿子是周末的时候写出来的。今天的话题是&a…

Linux处理文本常见命令

目录 1 vim 2 echo 3 tee 4 cat 1 vim 编辑文本类的内容,使用的时候 vim [文件名],比如 vim A.txt 进入vim界面后,按i可以开启编辑模式,按ESC可以关闭编辑模式,关闭编辑模式后:wq!保存并退出 2 echo ech…

SSM项目管理系统开发oracle10g数据库web结构java编程计算机网页源码eclipse项目

一、源码特点 SSM项目管理系统是一套完善的信息系统,结合springMVC框架完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和数据库,系统 主要采用B/S模式开…

【九】linux下部署frp客户端服务端实践

linux下部署frp客户端服务端实践 简介: 今天有一个这样的需求,部署在公司内部局域网虚拟机上的服务需要在外网能够访问到,这不就是内网穿透的需求吗,之前通过路由器实现过,现在公司这块路由器不具备这个功能了&#x…

科东快讯 | Intewell鸿道工业操作系统亮相丝路峰会暨中国新工业博览会

近日,第十六届中国工业论坛丝路峰会暨中国新工业博览会在陕西西安临空会展中心圆满落幕! 峰会围绕“十四五”工业经济高质量发展的新使命、新担当,以“新工业新动能新格局”为主题,聚焦新兴工业领域,突出新工业产业集…

想学计算机视觉入门的可以看过来了

文章写了有一段时间了,期间不少小伙伴来咨询如何自学入门AI,或者咨询一些AI算法。 90%的问题我都回复了,但有时确实因为太忙,没顾得过来。 在这个过程中,我发现很多小伙伴问的问题都类似:比如如何入门计算…

一名技术Leader应该是创作者

今天看了一本书叫做《黑客与画家》。它里面提到一个很重要的概念就是黑客(优秀的程序员)是一名建筑师,而不是一名工程师。 传统的主管和互联网的Leader 这两者有什么区别呢?关键点在于建筑师是思考做什么,而工程师是…

浅析函数防抖节流

防抖和节流都是前端开发中常用的优化性能的技术。 一、定义 防抖: 防抖指的是在事件触发后,在规定的时间内若再次触发,则重新计时,直到规定时间内没有再次触发事件,才执行事件处理。这样可以避免在短时间内频繁地触发…

信创实时云渲染,Paraverse平行云LarkXR适配多个国产操作系统

近日,Paraverse平行云企业级实时云渲染解决方案LarkXR,现已全面支持国产信创技术路线。这一进展不仅是3D/XR领域国产软件领域在操作系统兼容的一次进步,也是对国家自主创新战略的有力响应,展示了Paraverse平行云在推动国产软件发展…