SVD在推荐系统中的应用

推荐系统 - 矩阵分解(SVD)原理和实战 一. 特征分解 1.1 特征求解: 1.2 标准化: 1.3 特征分解条件 二. SVD 2.1 定义 2.2 求解方法 2.3 相关特性  2.4 SVD的python实现 2.5 SVD在PCA中的应用 三. 推荐系统中的SVD 3.1 问题定义 3.2 SVD应用 3.2.1 traditional-SVD 3.2.2FunkSVD 3.2.3 BiasSVD 3.2.4SVD++ 3.3 矩阵分解推荐小结 3.4 SVD实现用户评分预测(MovieLens数据 阅读详情

1.SVD简介

SVD 技术是线性代数中的一种用于降低数据维度的矩阵分解技术,将高维的用户-项目评分矩阵分解成了低维的用户特征向量矩阵、项目特征向量矩阵以及包含奇异值的对角矩阵。

 2.关于SVD的分解原理

说明:具体的特征值、SVD分解的几何意义请参考博客。

奇异值分解(SVD)原理与在降维中的应用 - 刘建平Pinard - 博客园奇异值分解(Singular Value Decomposition,以下简称SVD)是在机器学习领域广泛应用的算法,它不光可以用于降维算法中的特征分解,还可以用于推荐系统,以及自然语言处理等领域。是https://www.cnblogs.com/pinard/p/6251584.html

SVD的分解公式如下:

 

 其中\large U为\large {\rm{m}} \times m\正交矩阵,\large S为\large m\times n对角阵,\large V为\large n\ \times n正交矩阵。

其分解示意图如下:

 

奇异值分解保证了原矩阵中的信息量,得到秩为k的最佳逼近矩阵,即包含原矩阵信息量超过特定阈值的近似矩阵。阈值 \large \sigma可以定义为前 k 个较大奇异值的平方和与全部奇异值平方和的比值,当\large \sigma给定时就可以求出k 值,从而得到最佳逼近矩阵。阈值\large \sigma的计算公式如下:

 \large \sigma = \frac{​{P{}_k}}{p}\

 其中\large {P{}_k}\为对角矩阵S的前 k 个较大奇异值的平方和,\large P为对角矩阵S所有奇异值的平方和。

大多数情况下,只需要对角阵Σ前 10%的奇异值就能够拥有原矩阵 99%以上的信息量,根据如下公式可以算出k的大小

\large \sigma = \frac{​{P{}_k}}{p} > 99\% \

其中k是满足上式的最小整数,一般远小于m、n。

然后取出对角阵S的前 k 个奇异值构造新的对角阵\large {S_K}\,并从U 和V中取出对应的奇异值特征向量,组成两个新的正交矩阵,组成两个新的正交矩阵\large {U_k}\和\large V_k,因此可以得到预测矩阵\large R_k,\large R_k是带有预测评分的矩阵近似于\large R',公式如下:

 \large R'\approx {R_k} = {U_k}{S_k}V_k^T

其分解示意图如下:

 上图中浅颜色表示原始数据,深颜色表示矩阵近似计算需要的数据。

 3.SVD在推荐系统中的应用举例

步骤一首先构造出一个用户对于电影的评分矩阵,如下图:

 步骤二对该矩阵进行分解,建议使用在线SVD计算器(下面是网址)

 在线奇异值分解(SVD)icon-default.png?t=L892http://www.yunsuan.info/cgi-bin/singular_value_decomp.py

计算之后求得对应\large R' 的非零奇异值为{ \large \sigma _1 = 29.3,\large \sigma _2= 5.9,\large \sigma _3= 3.1,\large \sigma _4= 2.5, ⋯ },,由于奇异值下降的速度非常快所以矩阵的信息量集中分布在前几个较大的特征值上,我们取前两个特征值。

前两个特征值对应右奇异矩阵的特征向量为:

 前两个特征值对应左奇异矩阵的特征向量为:

 接下来我们利用公式{r_{ui}} = {U_k}(u){S_k}V_k^T(i)和下图来计算用户u对于电影i的预测评分

 我们可以计算出王耳朵对于午夜凶铃的评分为2.62,怪小孩对于釜山行的评分为4.00。

 

步骤三结果测评

王耳朵的观影历史显示其对喜剧类的电影评分较高,对恐怖电影普遍评分较低,因此可以推测她应该是不喜欢看午夜凶铃的,SVD模型给出的评分为2.62,与实际情况是相符的。

怪小孩的观影历史显示其对恐怖类的电影评分较高,对喜剧电影普遍评分较低,因此可以推测他应该是喜欢看釜山行的,SVD模型给出的评分为4.00,与实际情况是相符的。

机器学习-奇异值分解 文章目录第一章 数学基础1.1 向量和矩阵1.1.1 标量、向量、矩阵、张量之间的联系1.1.2 张量与矩阵的区别1.1.3 矩阵和向量相乘结果1.1.4 向量和矩阵的范数归纳1.1.5 如何判断一个矩阵为正定1.2 导数和偏导数1.2.1 导数偏导计算1.2.2 导数和偏导数有什么区别?1.3 特征值和特征向量1.3.1 特征值分解与特征向量1.3.2 奇异值与特征值有什么关系1.4 概率分布与随机变量1.4.1 机器学习为什么要使用概率1.4.2 变量与随机变量有什么区别1.4.3 随机变量与概率分布的 阅读详情

相关推荐

SVD在推荐系统中的应用详解以及算法推导

前面文章SVD原理及推导已经把SVD的过程讲的很清楚了,本文介绍如何将SVD应用于推荐系统中的评分预测问题。其实也就是复现Koren在NetFlix大赛中的使用到的SVD算法以及其扩展出的RSVD、SVD++。 记得刚接触SVD是在大二,那会儿跟师兄在做项目的时候就用到这个东西,然后到大三下学期刚好百度举办了一个电影推荐算法大赛,跃跃欲试地参加了,当时就用的SVD而且只会用这个,后来觉得效果还不错,接着就又找来了Koren的论文,看了一下把SVD++也实现了,把两者结果融合得到不少的提升。下面是最终比

学无常师,负笈不远险阻 6万+

【推荐系统入门到项目实战】(五):SVD矩阵分解

奇异值分解(SVD)可以对矩阵进行无损分解在实际中,我们可以抽取前K个特征,对矩阵进行降维,使得只使用较少的特征就可以包含大部分信息**(10%的特征包含99%的信息)**在评分预测中我们使用funkSVD,只根据实际评分误差进行目标最优化,这里其实就是我们上一章所用的矩阵分解方法,只不过在这里我们使用的优化方法不再是ALS而是SGD(随机梯度下降)在funkSVD的基础上,加入用户/商品偏好=>BiasSVD,这里可以类比上一章介绍的baseline方法。在BiasSVD的基础上,考虑。

阿里云专家博主、数据科学领域优质创作者、统计er在读 2万+

SVD在推荐系统中的应用(资源汇总)

关于SVD在推荐系统中的应用一些比较好的资源 博文[1]给出了一个具体的实例分析,能够很好的理解SVD在推荐系统中应用对推荐结果所起的作用。 博文[2]从强调SVD应用到推荐系统领域中的思想出发,详细介绍了SVD模型的思想和原理,并从改进和实际应用思想的角度结合图               形分析介绍了几种SVD模型的变形,能够很好的理解SVD模型及各种变形。 博文[3]主要介绍了矩阵

流年染指,回忆春秋 的博客 1284

【机器学习】使用奇异值分解(SVD)构建推荐系统

今天将和大家一起学习如何仅使用奇异值分解来构建推荐系统。如果你对奇异值分解不是很熟悉,推荐阅读戳????这次终于彻底理解了奇异值分解(SVD)原理及应用奇异值分解是一种非常流行的线性代数技术,用于将矩阵分解为几个较小矩阵的乘积。该技术用途广泛。可以使用 SVD 来挖掘项目之间的关系,由此构建推荐系统。本文主要介绍如何对矩阵进行奇异值分解如何解释奇异值分解的结果单个推荐系统需要...

fengdu78的博客 3918

SVD在推荐系统中的应用与实现(c++)

主要参考论文《A Guide to Singular Value Decomp osition for Collab orative Filtering》 其实一开始是比较疑惑的,因为一开始没有查看论文,只是网上搜了一下svd的概念和用法,搜到的很多都是如下的公式:其中假设C是m*n的话,那么可以得到三个分解后的矩阵,分别为m*r,r*r,r*n,这样的话就可以大大降低存储代价,但是这里特别需要

wangyuquanliuli的专栏 9012

优化推荐系统:掌握SVD算法提高推荐效果

总体而言,SVD推荐算法适用于物品比较固定、用户数量较少的推荐系统,能够提高推荐系统的准确性和效率。但需要注意的是,在实际应用中需要结合用户行为数据和业务场景等多方面因素综合考虑,以达到最优化的推荐效果。

洛阳泰山的博客 1919

掌握奇异值分解(SVD)技术及其在推荐系统中的应用

稀疏矩阵是一种矩阵,在这种矩阵中大部分元素的值为零。在数据科学领域,特别是在处理大规模数据时,稀疏性是一个常见的特征。稀疏矩阵的非零元素数目与整个矩阵的元素总数相比非常小,通常用非零元素的密度表示,即非零元素数除以矩阵总元素数。稀疏矩阵的一个关键特点是它的存储方式和常规矩阵不同,常规矩阵需要存储所有的元素,即使它们是零,而稀疏矩阵只存储非零元素,大大节省了内存和计算资源。稀疏矩阵是一个矩阵,在这个矩阵中大部分的元素值是零。由于零元素不需要存储,稀疏矩阵的存储需求大大低于相同维度的密集矩阵。

weixin_32445049的博客 1277

SVD应用于推荐系统的评分预测实战

奇异值分解(SVD)是线性代数中一个强大的工具,它在降维、数据压缩和特征提取等多个领域中都发挥了重要作用。SVD将一个给定的矩阵分解为三个特殊矩阵的乘积,这些矩阵分别是正交矩阵、对角矩阵和另一个正交矩阵的转置。数学表达如下:给定矩阵 ( A ) ,存在分解 ( A = U\Sigma V^T ),其中:- ( U ) 和 ( V ) 是正交矩阵(即其转置等于其逆矩阵),它们的列向量分别是 ( A ) 的左奇异向量和右奇异向量。

weixin_42510243的博客 826
上一篇: 强化学习基础知识详解
下一篇: 图卷积神经网络(GCN)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值