1.来源

矩阵分解算法(MF)是为了解决协同过滤算法(CF)在以下两点上的不足而提出的。

  • CF处理稀疏矩阵的能力弱。
  • CF中相似度矩阵的维护难度大。
    e.g. user矩阵为mm,item矩阵为nn,当m与n很大时,维护起来难度大

2.解决


张三,李四,王五分别对音乐A,B,C进行了打分,其中标红的为应用MF预测的分数,根据线代知识我们可以知道,只要知道了图1 矩阵A
图2 矩阵B
两个矩阵,便可以得到
图3 矩阵C
矩阵。因此,MF的目的便是学习得到前两个矩阵。
在矩阵A、B、C中,小清新等叫做隐向量,给每个用户每首音乐打上标签。

下面针对稀疏矩阵来看MF

在实际的应用场景中,我们不可能知道每个用户对每首音乐的偏好与打分情况,因此,我们需要用MF来进行预测。如果能把共现矩阵R拆解成为用户矩阵U与物品矩阵V,并且用一定的K1,K2…等隐向量来表示U与V矩阵,则可以进行打分预测。

  • 矩阵是稀疏的
  • List item隐向量的个数决定了隐向量的表达能力的强弱,K的个数越多,表达能力就越强,理解起来就是把用户的兴趣和物品的分类划分的越详细
  • 这里的k,即隐向量是不可解释的,即我们不知道具体的含义,需要模型自己去学习
  • 通过用户矩阵和物品矩阵,预测评分。公式:

3.总结

推荐系统经典算法之——MF(矩阵分解)相关推荐

  1. python实现lfm_推荐系统召回算法之——LFM(矩阵分解)

    目录 1.LFM算法原理 2.LFM数学原理 3.应用场景 4.python实现 5.总结 算法原理:LFM(later factor model)是一种基于矩阵分解的召回算法,输入UI点展矩阵,输出 ...

  2. TensorFlow2实现协同过滤算法中的矩阵分解(首家基于TS2版本)

    目标: 用TensorFlow2,实现协同过滤算法中的矩阵分解.网上找的绝大部分是基于一个模板复制出来的,且基于TensorFlow1,因此本人亲自动手,用TensorFlow2实现. 好奇为什么Te ...

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

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

  4. 矩阵sum_推荐系统——从协同过滤到矩阵分解

    本文简单扼要地介绍推荐算法中的两种经典算法:协同过滤和矩阵分解.内容有以下三部分 协同过滤算法 矩阵分解 协同过滤与矩阵分解的关系 早期的推荐系统以业务理解为核心,通过复杂的规则描述来向用户推荐商品, ...

  5. 矩阵奇异值分解特征值分解_推荐系统中的奇异值分解与矩阵分解

    矩阵奇异值分解特征值分解 Recently, after watching the Recommender Systems class of Prof. Andrew Ng's Machine Lea ...

  6. 推荐系统组队学习03、矩阵分解

    矩阵分解 矩阵分解 矩阵分解算法的原理 **矩阵分解算法的求解** Basic SVD 编程实现 补充 协同过滤算法: 特点: 仅利用了用户与物品的交互信息就可以实现推荐,是一个可解释性很强, 非常直 ...

  7. 推荐系统--联邦学习下的矩阵分解(6)

    推荐系统–矩阵分解(1) 推荐系统–矩阵分解(2) 推荐系统–矩阵分解(3) 推荐系统–矩阵分解(4) 推荐系统–矩阵分解(5) 推荐系统–矩阵分解(6) 9 应用于联邦学习的矩阵分解 这个部分主要参 ...

  8. 矩阵分解java_推荐系统基础:使用PyTorch进行矩阵分解进行动漫的推荐

    我们一天会遇到很多次推荐--当我们决定在Netflix/Youtube上看什么,购物网站上的商品推荐,Spotify上的歌曲推荐,Instagram上的朋友推荐,LinkedIn上的工作推荐--列表还 ...

  9. 推荐系统经典算法之协同过滤

    讲推荐算法,就不得不提协同过滤,协同过滤是推荐系统中比较经典的推荐算法之一,我们常用的协同过滤算法共有两种,既 基于物品的协同过滤.基于用户的协同过滤:它们的效果由训练模型的数据特征选取.训练过程中的 ...

最新文章

  1. mysql乐观锁总结和实践
  2. 小白重装系统教程_怎么一键重装系统:安装win10系统详细图文教程
  3. 【android-tips】adb 常用命令汇总(持续更新中)
  4. sessionState 配置方案
  5. JavaEE实战班第16天
  6. Hadoop平台优化综述(一)
  7. GDAL库进度信息编写示例
  8. Windows服务器nginx多个二级域名部署ssl证书超详细步骤(https)
  9. apizza开发工具
  10. Ubuntu常用C语言IDE,Ubuntu下常用IDE的安装
  11. 学习笔记(02):程序员的数学:微积分-常用导数(二):最常用到的技巧
  12. Windows NTSTATUS Values 进程终止消息标识符
  13. Prometheus最佳实践 Summary和Histogram
  14. MySQL 报错InnoDB: Cannot allocate memory for the buffer poo处理方法
  15. USB TypeC接口和USB PD快充协议,有何区别?
  16. 2. 样式,大纲和目录
  17. Unity碰撞检测/触发器触发问题
  18. Hibernate-模板模式
  19. 苹果手机解压缩软件_360压缩大师360 推出的免费 macOS 解压缩软件
  20. html中怎样插入视频博客园,关于博客园内嵌入bilibili视频

热门文章

  1. Java中将String类型依照某个字符分割成数组
  2. 2022年制冷与空调设备运行操作考试题库模拟考试平台操作
  3. 奥马电器赵国栋转让股份兜底钱包金融展期项目,奥马获国资输血
  4. bagging通过bootstrap构建集成分类器
  5. 【教学类-30-02】10以内加法题不重复(一页两份)(包括6以内、7以内、8以内、9以内、10以内加法题 只抽取25个)
  6. 产品生命周期,鸿沟理论和CNCF项目孵化
  7. 视频号账号定位怎么做?如何做微信视频号定位
  8. 扦插技术图解_扦插葡萄生根最快方法(图解)
  9. VMware下centos/Linux鼠标移动闪烁解决办法(两种办法100%解决)
  10. Spring项目使用H2内存数据库做单元测试