推荐算法之NMF算法

推荐算法之NMF算法在例如Netflix或MovieLens这样的推荐系统中,有用户和电影两个集合。给出每个用户对部分电影的打分,希望预测该用户对其他没看过电影的打分值,这样可以根据打分值为其做出推荐。NMF(non-negativematrixfactorization)的基本思想可以简单描述为:对于任意给定的一个非负矩阵A,NMF算法能够寻找到一个非负矩阵U和一个非负矩阵V,将一个非负的矩阵分解为左右…

大家好,又见面了,我是你们的朋友全栈君。

在例如Netflix或MovieLens这样的推荐系统中,有用户和电影两个集合。给出每个用户对部分电影的打分,希望预测该用户对其他没看过电影的打分值,这样可以根据打分值为其做出推荐。

推荐算法之NMF算法

NMF(non-negative matrix factorization)的基本思想可以简单描述为:对于任意给定的一个非负矩阵A,NMF算法能够寻找到一个非负矩阵U和一个非负矩阵V,将一个非负的矩阵分解为左右两个非负矩阵的乘积,将矩阵的维数进行降低,对大量的数据进行压缩。NMF属于一个无监督学习的算法,其中限制条件就是W和H中的所有元素都要大于0。

推荐算法之NMF算法

由于分解前后的矩阵中仅包含非负的元素,因此,原矩阵V中的某一列向量(如上图V中的虚线列向量)可以解释为对左矩阵W中所有列向量(基向量)的加权和,而权重系数为右矩阵V中对应列向量中的元素(权重)。 

推荐算法之NMF算法

为什么分解的矩阵式非负的呢,网上流传一种很有利的解释就是非负为了使数据有效,负数对于数据是无效的。这种方法我个人认为有道理,但论文作者实际的解释是:

  • 非负性会引发稀疏
  • 非负性会使计算过程进入部分分解

总结

以上虽使用NMF实现了推荐算法,但是根据Netfix的CTO所说,NMF他们很少用来做推荐,用得更多的是SVD。对于矩阵分解的推荐算法常用的有SVD、ALS、NMF。对于那种更好和对于文本推荐系统来说很重要的一点是搞清楚各种方法的内在含义。

好啦,简单来说一下SVD、ALS、NMF三种算法在实际工程应用中的区别。

  • 对于一些明确的数据使用SVD(例如用户对item 的评分)
  • 对于隐含的数据使用ALS(例如 purchase history购买历史,watching habits浏览兴趣 and browsing activity活跃记录等)
  • NMF用于聚类,对聚类的结果进行特征提取。在上面的实践当中就是使用了聚类的方式对不同的用户和物品进行特征提取,刚好特征可以看成是推荐间的相似度,所以可以用来作为推荐算法。但是并不推荐这样做,因为对比起SVD来说,NMF的精确率和召回率并不显著。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149867.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • vs2008中英文版下载-VS2008注册码序列号–vs2008激活成功教程方法[通俗易懂]

    vs2008中英文版下载-VS2008注册码序列号–vs2008激活成功教程方法[通俗易懂]vs2008中英文版下载-VS2008注册码序列号–vs2008激活成功教程方法一、VisualStudio2008TeamSuite(90天试用版)下载地址:1.VS2008英文版3.83GBISO文件http://download.microsoft.com/download/d/8/9/d89c9839-ac45-4a6c-b25f-2f60b190e356/VS20

    2022年8月10日
  • Linux 下MySQL备份[通俗易懂]

    Linux 下MySQL备份[通俗易懂]Linux下MySQL数据库备份和恢复Linux下MySQL数据库有逻辑备份和物理备份,也可以分为完全备份、部分备份。·完全备份是指备份整个数据集(即整个数据库)·部分备份是指备份部分数据集(只备份一个表)逻辑备份最大优点是对于各种存储引擎,都可以使用同样的方法来备份。而物理备份则不同,不同的存储引擎有着不同的备份方法。mysqldump基本语法mysqldump-uUs…

    2022年6月16日
  • 第十八篇 项目范围管理__六个过程[通俗易懂]

    第十八篇 项目范围管理__六个过程[通俗易懂]项目范围管理包括以下过程

    2022年9月22日
  • mysql分析慢查询_开启慢查询日志

    mysql分析慢查询_开启慢查询日志一、生成实验数据原理:sql蠕虫复制(这种生成数据方式同样适用于数据表中有主键的情况)。insertintocomic(name,pen_name,cover)selectname,pen_name,coverfromcomic 二、慢查询日志设置当语句执行时间较长时,通过日志的方式进行记录,这种方式就是慢查询的日志。1、临时开启慢查询日志(如果需要长时间…

    2022年10月14日
  • “儿子,千万别帮老婆做家务!”爸爸写的这封信火了

    文 | 十二朵女王 · 主播 | 维维 儿子,明天就是你的婚礼了。 我必须提醒你,一旦结了婚,你就有了自己的新家,我和你妈不用你操心,你只用竭尽全力照顾好你自己…

    2021年6月21日
  • xshell连接虚拟机IP[通俗易懂]

    xshell连接虚拟机IP[通俗易懂]xshell连接虚拟机IP说明标题对ens33文件进行操作:说明一、标题个人能力有限,不做拓展说明,有说的不全的或者不对的请自行斟酌使用或者留言交流。问题:用xshell连接虚拟机需要知道IP地址但是找了好久都没找到?要的是ens33后面的inet二、在虚拟机中,发现使用ipaddr和ifconfig都无法正确查看到虚拟机的IP地址,后面发现是CentOS默认不开启ens33网卡的原因:即:在ens33后面找不到inet:ip。效果如下三、在装虚拟机安装centOS7系统的过程中会有一

    2022年9月15日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号