码迷,mamicode.com
首页 > 编程语言 > 详细

矩阵分解在协同过滤推荐算法中的应用

时间:2018-02-26 23:23:11      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:bubuko   inf   原因   png   ref   href   输入   alt   log   

一般在推荐系统中,数据往往是使用 用户-物品 矩阵来表示的。用户对其接触过的物品进行评分,评分表示了用户对于物品的喜爱程度,分数越高,表示用户越喜欢这个物品。而这个矩阵往往是稀疏的,空白项是用户还未接触到的物品,推荐系统的任务则是选择其中的部分物品推荐给用户。
技术分享图片
(markdown写表格太麻烦了,直接上传图片吧)

对于这个 用户-物品 矩阵,可以利用非空项的数据来预测空白项的数据,即预测用户对于其未接触到的物品的评分,并根据预测情况,将评分高的物品推荐给用户。预测评分的方式有很多,本篇主要讲述如何使用矩阵分解来进行这个预测。

1.奇异值分解SVD

想详细理解SVD,推荐一篇博客 奇异值分解(SVD)原理与在降维中的应用
此时可以将这个 用户-物品 对应的m×n矩阵 M 进行 SVD 分解,并通过选择部分较大的一些奇异值来同时进行降维,也就是说矩阵M此时分解为:
技术分享图片
(不知道如何在 markdown 中输入公式,先用图片代替)
其中,m 是用户的维度,n 是物品的维度,k 是矩阵 M 的较大的 k 个奇异值,k 往往远小于 m 和 n,这也是 SVD 可以用来降维的原因。
如果我们要预测第 i 个用户对第 j 个物品的评分 mij ,则只需要计算 技术分享图片 即可。通过这种方法,我们可以将评分表里面所有没有评分的位置得到一个预测评分。通过找到最高的若干个评分对应的物品推荐给用户。

——待续——

矩阵分解在协同过滤推荐算法中的应用

标签:bubuko   inf   原因   png   ref   href   输入   alt   log   

原文地址:https://www.cnblogs.com/libaoquan/p/8476157.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!