暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
50丨推荐系统(下):如何通过SVD分析用户和物品的矩阵?.pdf
128
9页
0次
2023-09-15
25墨值下载
50 | 推荐系统(下):如何通过SVD分析用户和物品的矩阵?
2019-04-10 黄申
程序员的数学基础课
进入课程
讲述:黄申
时长 09:13 大小 8.45M
你好,我是黄申。
上一节,我们讲了如何使用矩阵操作,实现基于用户或者物品的协同过滤。实际上,推荐系
统是个很大的课题,你可以尝试不同的想法。比如,对于用户给电影评分的案例,是不是可
以使用 SVD 奇异值的分解,来分解用户评分的矩阵,并找到“潜在”的电影主题呢?如果
在一定程度上实现这个目标,那么我们可以通过用户和主题,以及电影和主题之间的关系来
进行推荐。今天,我们继续使用 MovieLens 中的一个数据集,尝试 Python 代码中的
SVD 分解,并分析一些结果所代表的含义。
SVD 回顾以及在推荐中的应用
下载APP
在实现 SVD 分解之前,我们先来回顾一下 SVD 的主要概念和步骤。如果矩阵 是对称的
方阵,那么我们可以求得这个矩阵的特征值和特征向量,并把矩阵 分解为特征值和特征
向量的乘积。
假设我们求出了矩阵 个特征值 ,以及这 个特征值所对应的
特征向量 ,那么矩阵 可以表示为:
其中, 是这 个特征向量所张成的 维矩阵,而 是这 个特征值为主对角线
维矩阵。这个过程就是特征分解(Eigendecomposition)。
如果我们会把 的这 个特征向量进行标准化处理,那么对于每个特征向量 ,就有
,而这表示 ,此时 个特征向量为标准正交基,满足
, 也就是说, 为酉矩阵,有 。这样一来,我们就可以把特征分
解表达式写作:
可是,如果矩阵 不是对称的方阵,那么我们不一定能得到有实数解的特征分解。但是,
SVD 分解可以避免这个问题。
我们可以把 的转置 做矩阵乘法,得到一个 维的对称方阵 ,并
对这个对称方阵进行特征分解。分解的时候,我们得到了矩阵 个特征值和对应
个特征向量 ,其中所有的特征向量叫作 的右奇异向量。通过所有右奇异向量我
们可以构造一个 维的矩阵
类似地,如果我们把 做矩阵乘法,那么会得到一个 维的对称方阵
。由于 也是方阵,因此我们同样可以对它进行特征分解,并得到矩阵
个特征值和对应的 个特征向量 ,其中所有的特征向量向叫作 的左奇异向量。通
过所有左奇异向量我们可以构造一个 的矩阵
现在,包含左右奇异向量的 都求解出来了,只剩下奇异值矩阵 了。 除了对
角线上是奇异值之外,其他位置的元素都是 0,所以我们只需要求出每个奇异值 就可以
了。之前我们已经推导过, 可以通过两种方式获得。第一种方式是计算下面这个式子:
of 9
25墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜