矩阵分解算法

本文介绍了奇异值分解(SVD)这一矩阵分解方法,它在推荐系统中用于预测用户对物品的评分。SVD将矩阵分解为正交矩阵U、对角阵W和正交矩阵V的乘积,通过保留对角阵中最大的k个奇异值来降低维度。这种方法利用全局信息生成隐向量,具备更好的泛化能力,相比协同过滤能处理冷启动问题。通过对共现矩阵的全局拟合,SVD能够预测任意用户和物品之间的评分,即使在原始数据中不存在交互记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SVD奇异值分解

下面是矩阵分解的一种方法——奇异值分解,设矩阵M是一个mXn的矩阵,则一定存在一个分解M=UWV,其中U是mXm的正交矩阵,V是nXn的正交矩阵,W是mXn的对角阵。如下图:

取对角阵中较大的k个元素作为隐含特征,删除对角阵中其他维度以及U和V中对应的维度,矩阵M就被分解为下面三个矩阵相乘,至此完成了隐向量维度为k的矩阵分解。

如果共现矩阵中1行5列的元素值为空,那个这个位置的元素值(也就是评分)就等于下图中横线位置的向量相乘。据此,就可预测出该位置用户对该物品的评分数值。

      在矩阵分解中,由于隐向量的存在,任意的用户和物品之间都可以得到预测分值,而隐向量的生成过程实际上是对共现矩阵进行全局拟合的过程,因此隐向量其实是利用全局信息生成的,有更强的泛化能力。而对协同过滤来讲,如果两个用户没有没有相同的历史行为,两个物品没有相同的人购买,那么这两个用户和两个物品的相似度都为0(协同过滤只能利用用户和物品自己的信息进行相似度计算,这就使得协同过滤不具备泛化利用全局信息的能力)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值