改进点(跟SVD比):

一句话总结改进点和优化点:改进SVD的计算效率问题、数据稀疏问题;将矩阵R分解为两个低维矩阵,通过重构的低维矩阵预测用户对物品的评分,目标函数中加入正则,控制模型方差。


FunkSVD是在传统SVD面临计算效率问题时提出来的,既然将一个矩阵做SVD分解成3个矩阵很耗时,同时还面临稀疏的问题,那么我们能不能避开稀疏问题,同时只分解成两个矩阵呢?也就是说,现在期望我们的矩阵R这样进行分解:

这种简化的矩阵分解不再是分解为三个矩阵,而是分解为两个低秩的用户和物品矩阵,其实就是把用户和物品都映射到一个 k 维空间中,这个 k 维空间对应着 k 个隐因子,我们认为用户对物品的评分主要是由这些隐因子影响的,所以这些隐因子代表了用户和物品一部分共有的特征,在物品身上表现为属性特征,在用户身上表现为偏好特征。只不过这些隐因子并不具有实际意义,也不一定具有非常好的可解释性,每一个维度也没有确定的标签名字,所以叫做 “隐因子”。

主要思想:

核心思想认为用户的兴趣只受少数几个因素的影响,因此将稀疏且高维的User-Item评分矩阵分解为两个低维矩阵,即通过User、Item评分信息来学习到的用户特征矩阵P和物品特征矩阵Q,通过重构的低维矩阵预测用户对产品的评分。由于用户和物品的特征向量维度比较低,因而可以通过梯度下降(Gradient Descend)的方法高效地求解。

目标函数

FunkSVD如何将矩阵R分解为P和Q呢?这里便用到了到了机器学习算法,实际上是应用线性回归的思想,我们的目标是让用户已有评分和用矩阵乘积得到的评分残差尽可能的小,所以用均方差作为损失函数,来寻找最终的 P 和 Q。即通过 User-Item 评分信息来学习到的用户特征矩阵 P 和物品特征矩阵 Q,通过重构的低维矩阵预测用户对物品的评分。

假设某一用户 

【矩阵分解二】FunkSVD相关推荐

  1. 机器学习(37)之矩阵分解在协同过滤推荐中的应用

    微信公众号 关键字全网搜索最新排名 [机器学习算法]:排名第一 [机器学习]:排名第一 [Python]:排名第三 [算法]:排名第四 前言 在协同过滤推荐算法总结(机器学习(36)之协同过滤典型算法 ...

  2. 深度学习(二十四)矩阵分解之基于k-means的特征表达学习

    矩阵分解之基于k-means的特征表达学习 原文地址:http://blog.csdn.net/hjimce/article/details/50429317 作者:hjimce 一.相关理论 因为最 ...

  3. 基于矩阵分解的CF算法实现(二):BiasSvd

    基于矩阵分解的CF算法实现(二):BiasSvd BiasSvd其实就是前面提到的Funk SVD矩阵分解基础上加上了偏置项. BiasSvd 利用BiasSvd预测用户对物品的评分, k k k表示 ...

  4. 【Python学习系列二十三】Scikit_Learn库降维方法(矩阵分解)-PCAFA

    1主成分分析PCA 1.1 精确PCA和似然估计 PCA基于最大方差的正交变量分解多维数据集.在scikit-learn库中,PCA的实现是先通过fit方法计算n维的特征值和特征向量,然后通过tran ...

  5. 矩阵分解——三角分解(二)

    矩阵分解--三角分解(Cholesky 分解) 三角矩阵的性质 下三角矩阵 L∈Rn×nL\in \mathbb{R}^{n\times n}, Lij=⎧⎩⎨⎪⎪对角,下三角,上三角,i=ji> ...

  6. mf模型 svd++_算法小板报(六)——初探MF(矩阵分解)和FM模型

    一.简介 矩阵分解(Matrix Factorization,MF)是推荐系统中非常经典的一个算法,虽然现今工业界直接使用的较少,但其背后蕴含的编码降维思想,得以广泛应用于推荐领域之中.本文则主要来梳 ...

  7. 推荐系统组队学习——矩阵分解和FM

    文章目录 一.矩阵分解 1.隐语义模型与矩阵分解 2.矩阵分解算法的原理 3.Basic SVD 4.SVD++ 5.优化方法 1.交替最小二乘原理 (ALS) 2.加权交替最小二乘(Weighted ...

  8. 推荐系统——矩阵分解

    一.隐因子模型(Latent Factor Model,LFM) LFM是推荐系统中的经典模型,它也就是2006年Simon Funk在博客中公开的算法,当时背景是Netflix Prize比赛.LF ...

  9. 推荐系统的矩阵分解和FM模型

    文章目录 一. 隐语义模型与矩阵分解 1 .矩阵分解理解 2. 隐语义模型 3. 矩阵分解算法的原理 4. 矩阵分解算法的求解 6. 编程实现 7.矩阵分解的优缺点分析 二.FM模型算法 1.FM模型 ...

最新文章

  1. linux vim6,VIM6:linux终端下的英文字典--SDCV
  2. React Nativi 参考文章
  3. 现代中产男人必备的8种气质[zt] 来自9G群里发的,据说是BF推荐给9G的
  4. html5实现圆圈里带一个三角形,HTML5 Canvas圆圈里面的三角形变换动画
  5. python论坛app_理解python web开发,轻松搭建web app!
  6. 网络编程:Socket编程从IPv4转向IPv6支持
  7. yolov 论文发表在什么期刊上_joe期刊是什么期刊_joe是什么意思_joe牌子
  8. 只有一个文件的开源富文本编辑器,麻雀虽小五脏俱全就是它了
  9. 【R语言】如何进行英文分词统计(以《爱丽丝漫游奇境》词频统计为例)(20年3月22日复习笔记)
  10. c计算机怎么读音发音英语,CACD是什么意思
  11. NOI WC 2019 小结
  12. 移动机器人全覆盖路径规划及仿真(三.地图分割)
  13. 浅谈为什么倒序遍历List删除元素没有问题
  14. 解耦的概念、spring实现解耦的概述
  15. 【eMMC学习记录】emmc相关名词解释和基础概念
  16. Oracle EBS Interface/API(28) - 客制化开发AP付款API
  17. Go 语言 IDE 之 VSCode 配置使用
  18. 教你用rsync同步
  19. Java 中带包的类的编译与运行
  20. 图文详解:7000 字哈希表总结

热门文章

  1. Go执行CMD或者Shell命令并且实时输出到控制台,效果和CMD执行结果方式完全一样
  2. 领域驱动设计在讲什么
  3. matlab2020年期末,科学计算与MATLAB语言超星2020年期末考试大全答案
  4. 工业4.0时代:世界不再是你过去所知道的那样
  5. oracle 字符串转数组
  6. 试谈`RNN`中`门`的变迁
  7. 80行python代码查询你想要的英雄信息
  8. JS拖动水晶球特效代码
  9. 3.8妇女节到了,来用Python做个贺卡吧
  10. java中数学函数的使用