推荐系统笔记:基于矩阵分解(总结篇)
推荐系统笔记:基于潜在因子模型的协同过滤(latent factor model)_UQI-LIUWJ的博客-CSDN博客
推荐系统笔记:无任何限制的矩阵分解_UQI-LIUWJ的博客-CSDN博客
推荐系统笔记:基于SVD的协同过滤_UQI-LIUWJ的博客-CSDN博客
推荐系统笔记:基于非负矩阵分解的协同过滤_UQI-LIUWJ的博客-CSDN博客
1 矩阵分解 X 协同过滤 家族
很明显,前面几节中各种形式的矩阵分解有很多共同点。 所有上述优化公式都使残差矩阵的 Frobenius 范数最小化,与此同时因子矩阵 U 和 V 需要满足各种特定的约束。 对因子矩阵的不同约束实现了不同的可解释性属性。
事实上,更广泛的矩阵分解模型系列可以使用任何其他目标函数或约束来强制逼近。 这个更广泛的家庭可以写成如下形式:
在大多数情况下,正则化项被添加到目标函数中以防止过拟合。
1.1 不同的约束
各种约束通常对因素施加不同类型的可解释性。 这种可解释性的两个例子是正交性(SVD分解,提供几何可解释性)和非负性(非负矩阵分解,提供’部分总和‘可解释性)。
此外,即使这些约束增加了观测值上的误差,当它们具有有意义的语义解释时,它们有时也可以改善未观察条目的准确度。 这是因为约束减少了未观察条目的方差,同时增加了偏差。 因此,该模型具有更好的泛化性。
例如,将 U 和 V 中的各一列中的条目固定为1几乎总是会导致更好的性能。
推荐系统笔记:无任何限制的矩阵分解_UQI-LIUWJ的博客-CSDN博客
选择要使用的正确约束通常取决于数据,并且需要深入了解手头的应用和目标。
2 PLSA
存在其他形式的因式分解,其中可以为因子分配概率可解释性。
例如,考虑一个非负一元评级矩阵 R 被视为相对频率分布的场景,其条目总和为 1。
我们可以很容易地将R矩阵规约化到条目之和为1(每个条目除以 条目总和)
这种矩阵R的分解可以用一种和SVD类似,但是不是SVD的方法来进行
这种分解只是长得像SVD分解,但实际的内容和SVD分解还是相差甚远:
- 此时Qk的列、Pk的列不用再是正交的
- Qk的每一列、Pk的每一列值都是非负的,每一列数值之和为1
- 对角矩阵Σk的每个条目(对角线上的值)也均为非负,它们的和也是1
这里我们说明一下,比如我们令此时Qk为,Pk为,Σk为
满足如下式子
这个矩阵所有条目的和为:
=1
这种因式分解具有概率解释:矩阵 Qk、Pk 和 Σk 包含创建评分矩阵的生成过程的概率参数。这种方法被称为概率潜在语义分析(PLSA),它可以被视为非负矩阵分解的概率变体。
显然,这种分解的概率性质为其提供了不同类型的可解释性。
3 汇总
这里汇总了几种较为主流的MF模型。需要注意的是,模型的选择取决于问题设置、数据中的噪声以及所需的可解释性水平。没有单一的解决方案可以实现所有这些目标。仔细理解问题域对于选择正确的模型很重要。
模型 | 限制 | 目标函数 | 优点 | 缺点 |
无限制矩阵分解 | 无 | frobenius 范数 |
对于有观测值的条目,可以有很好的准确度 适用于大多数情况 |
对于没有观测值的条目,不一定有很好的准确度 缺乏可解释性 |
SVD | U和V各自的列向量正交 | frobenius 范数 |
很好的几何解释性 外推推荐 稠密矩阵效果很好 |
稀疏矩阵效果一般 |
非负矩阵分解 | 所有条目非负 | frobenius 范数 |
很好的语义可解释性 适用于隐式反馈矩阵 |
|
PLSA |
所有条目非负 所有条目之和为1 |
有观测值的这些条目的最大概率 |
很好的语义可解释性 适用于隐式反馈矩阵 |
推荐系统笔记:基于矩阵分解(总结篇)相关推荐
- 推荐系统笔记:矩阵分解+基于邻居的模型
由于其启发式性质,基于邻域的方法通常被认为与其他优化模型具有内在的不同. 尽管如此,结果表明基于邻域的方法也可以嵌入在其他优化模型的上下文中. 这是一个相当方便的框架,因为它为邻域模型与其他优化模型( ...
- SVD++:推荐系统的基于矩阵分解的协同过滤算法的提高
1.背景知识 在讲SVD++之前,我还是想先回到基于物品相似的协同过滤算法.这个算法基本思想是找出一个用户有过正反馈的物品的相似的物品来给其作为推荐.其公式为: 其中 rui 表示预测用户u对物品i的 ...
- 基于hadoop的商品推荐系统_【论文笔记】基于矩阵分解的推荐系统
本文是对经典论文的阅读笔记,大部分为论文的中文翻译内容(笔者英语水平也就六级飘过的水准,不喜勿喷) 论文标题:Matrix factorization techniques for recommend ...
- 协同过滤与隐语义模型推荐系统实例3: 基于矩阵分解(SVD)的推荐
[ 协同过滤与隐语义模型推荐系统实例1: 数据处理 ] [ 协同过滤与隐语义模型推荐系统实例2: 基于相似度的推荐 ] 隐语义模型推荐 基于矩阵分解(SVD)的推荐 # 先计算歌曲被当前用户播放量/用 ...
- 基于矩阵分解的推荐系统
基于矩阵分解的推荐算法 1.概述 基于用户和基于项的协同过滤推荐算法,难以实现大数据量下的实时推荐.这时我们可以使用基于模型的协同过滤算法,矩阵分解(Matrix Factorization,M ...
- 自己动手写一个推荐系统,推荐系统小结,推荐系统:总体介绍、推荐算法、性能比较, 漫谈“推荐系统”, 浅谈矩阵分解在推荐系统中的应用...
自己动手写一个推荐系统 废话: 最近朋友在学习推荐系统相关,说是实现完整的推荐系统,于是我们三不之一会有一些讨论和推导,想想索性整理出来. 在文中主要以工程中做推荐系统的流程着手,穿插一些经验之谈,并 ...
- 基于矩阵分解的推荐算法,简单入门
摘自:http://www.cnblogs.com/kobedeshow/p/3651833.html 本文将要讨论基于矩阵分解的推荐算法,这一类型的算法通常会有很高的预测精度,也活跃于各大推荐系统竞 ...
- 推荐系统知识梳理——矩阵分解
隐语义模型与矩阵分解 协同过滤算法的特点就是完全没有利用到物品本身或者是用户自身的属性, 仅仅利用了用户与物品的交互信息就可以实现推荐,是一个可解释性很强, 非常直观的模型, 但是也存在一些问题, 第 ...
- numpy 矩阵 秩_大规模电商推荐数据分析-基于矩阵分解的召回
前面两篇文章回顾了我们团队做天池数据比赛<CIKM 2019 EComm AI:用户行为预测>的复赛方案,现在让我们的目光回到初赛.初赛数据组织和复赛一样,只是数据量差异较大.(初赛才2G ...
- 推荐系统中的矩阵分解技术
推荐系统中的矩阵分解技术 本文翻译自Koren Y, Bell R, Volinsky C. Matrix Factorization Techniques for Recommender Syste ...
最新文章
- vue怎么给html元素加类选择器,Vue.js——获取Dom对象的类选择器名(className)
- DotNetAnywhere:可供选择的 .NET 运行时
- 修复IE下相对定位子元素溢出Bug
- java applet布局_Java:Applet布局问题
- 第十五章:交互式界面(十一)
- 安装官方原版win10系统
- java rsa模块_【HAVENT原创】NodeJS 两个模块进行 RSA 加密解密(匹配Java RSA)
- C++后台开发学习路线
- 超棒的电烙铁的焊接方法图解
- 公众号降权了可以养好嘛,微信公众号降权了多久能恢复
- 解决ctrl+win+left/right失效问题(windows10桌面切换快捷键)
- javascript编码调试环境-ide和调试工具
- 教师职称论文发表在哪些杂志有效
- 【Android实现返回主页,禁止返回上一层等功能】
- 啥是单点登陆?淘宝和天猫是如何实现同时登陆的?
- 教你“偷偷”的获取微信小游戏好友关系链数据
- Codeforces 1278 B. A and B (思维题)
- 植物大战僵尸java圣诞版,植物大战僵尸圣诞版-植物大战僵尸2圣诞节版v1.9.1 安卓版-腾牛安卓网...
- 网吧服务器固态硬盘使用,无盘服务器初次使用SSD固态硬盘应注意使用备用盘
- 图像处理;C++求已知两直线方程交点
热门文章
- Mybatis(三) 映射文件详解
- Silverlight Telerik RadGridView动态增删行及行列操作(转载)
- 构建全程电子商务,创新企业经营模式(2)
- Asp.net中动态在中加入Scrpit标签
- 树莓派用服务方式设置开机启动
- PAT甲级1109 Group Photo:[C++题解]双指针
- ambari hive mysql_ambari方式安装hadoop的hive组件遇到的问题
- distinct作用于后面所有的列吗_InnoDB索引允许NULL对性能有影响吗
- echarts 刻度 双y轴_ECharts 解决双Y轴刻度不一致问题
- matlab求一个方程组的系数矩阵,【求解】matlab求解非齐次方程组,但是系数矩阵是复数,求帮忙...