美文网首页
推荐系统一(矩阵分解)

推荐系统一(矩阵分解)

作者: _爱碎碎碎碎念 | 来源:发表于2019-07-31 16:40 被阅读0次

今天的笔记是关于推荐系统,主要是因为看360秋招的JD里面说要了解推荐系统中的矩阵分解、LDA和受限波兹曼机(完全没有听说过)。矩阵分解作为推荐系统的经典,第一部分当然就是它啦。
参考地址:https://zhuanlan.zhihu.com/p/35262187

概述

推荐系统中最主与经典的技术之一是协同过滤技术(Collaborative Filtering):用户如果对过去的某些项目感兴趣,那么他很可能依然对其保持热枕。协同过滤技术根据是否采用了机器学习思想建模可以划分为基于内存的协同过滤和基于模型的协同过滤。其中,基于模型的协同过滤技术主要是矩阵分解(Matrix Factorization),矩阵分解的可扩展性极好并且易于实现。

推荐系统的场景和矩阵分解的原理

对于推荐系统来说,存在两大推荐场景,评分预测(Rating Prediction)和Top-N推荐(Item Recommendation,Item Ranking)。评分预测场景主要用于预测电影评分、书籍评分等,矩阵分解技术主要就应用于这个常见。Top-N推荐场景主要用于购物网站或者一般拿不到显示评分信息的网站,即通过用户的隐式反馈信息来给用户推荐一个可能感兴趣的列表以供其参考。其中该场景为排序任务,因此需要排序模型对其建模。
其中,推荐系统的评分预测场景可看做是一个矩阵补全的游戏,矩阵补全是推荐系统的任务,矩阵分解是其达到目的的手段(如下图所示,补全?内容)。因此,矩阵分解是为了更好的完成矩阵补全任务(欲其补全,先其分解之)。之所以可以利用矩阵分解来完成矩阵补全的操作,那是因为基于这样的假设:假设UI矩阵是低秩的,即在大千世界中,总会存在相似的人或物,即物以类聚,人以群分,然后我们可以利用两个小矩阵相乘来还原它。值得注意的是,这个矩阵是非常稀疏的(Sparse),稀疏度一般能达到90%以上,因此如何根据极少的观测数据来较准确的预测未观测数据一直以来都是推荐系统领域的关键问题。

矩阵分解.jpg

奇异值分解(singular value decomposition,SVD)

奇异值分解是最简单的矩阵分解形式,变换原理可以联想线性代数里面出现的AX=λX,其中X是A的特征向量,λ是A的特征值。经过一系列的推理化简矩阵A就可以用两组正交基和一个对角矩阵表示。简而言之,SVD就是将一个复杂的矩阵用三个简单矩阵相乘表示。

SVD用于推荐系统

数据集中行代表用户user,列代表物品item,其中的值代表用户对物品的打分。基于SVD的优势在于:用户的评分数据是稀疏矩阵,可以用SVD将原始数据映射到低维空间中,然后计算物品item之间的相似度,可以节省计算资源。
整体思路:先找到用户没有评分的物品,然后再经过SVD“压缩”后的低维空间中,计算未评分物品与其他物品的相似性,得到一个预测打分,再对这些物品的评分从高到低进行排序,返回前N个物品推荐给用户。
具体代码如下,主要分为5部分:

  1. 加载测试数据集;
  2. 定义三种计算相似度的方法;
  3. 通过计算奇异值平方和的百分比来确定将数据降到多少维才合适,返回需要降到的维度;
  4. 在已经降维的数据中,基于SVD对用户未打分的物品进行评分预测,返回未打分物品的预测评分值;
  5. 产生前N个评分值高的物品,返回物品编号以及预测评分值。

SVD用于推荐系统的优势在于:用户的评分数据是稀疏矩阵,可以用SVD将数据映射到低维空间,然后计算低维空间中的item之间的相似度,对用户未评分的item进行评分预测,最后将预测评分高的item推荐给用户。

相关文章

  • 今日份打卡 213/365

    技术文章基于矩阵分解的推荐系统实践

  • MF与embedding

    推荐系统常用的MF(矩阵分解)方法,旨在通过评分矩阵R有损分解得到矩阵U(代表所有用户的feature vecto...

  • 推荐系统一(矩阵分解)

    今天的笔记是关于推荐系统,主要是因为看360秋招的JD里面说要了解推荐系统中的矩阵分解、LDA和受限波兹曼机(完全...

  • 矩阵分解

    矩阵分解 前记 矩阵分解在推荐系统里面应该说是最经典、最有代表性的算法了。除了基础 举证分解方法,后面衍生出了各种...

  • 推荐系统中——矩阵分解

    在推荐系统中,我们经常会拿到一种数据是user—item的表格,然后对应的是每位user对每个item的评分,如下...

  • 推荐系统中 矩阵分解

    https://blog.csdn.net/qq_32742009/article/details/82286434

  • 【转】矩阵分解之SVD和SVD++

    前面的内容是关于近邻推荐的相关知识,来看下另外一种推荐方法:矩阵分解。 为什么需要矩阵分解 协同过滤可以解决我们关...

  • 矩阵分解和FM

    矩阵分解(Matrix Factorization,MF)是推荐系统中非常经典的一个算法,虽然现今工业界直接使用的...

  • 推荐系统算法(传统推荐模型)

    推荐系统经历两个阶段:传统推荐模型和深度学习模型 第一阶段:传统推荐模型(协同过滤,矩阵分解,LR, FM, FF...

  • 从深度学习的角度看矩阵分解:NeuralCF

    作为一个先有深度学习基础,再接触到推荐系统的人来说,我起初理解矩阵分解技术的时候,实际是带有深度学习视角的。矩阵分...

网友评论

      本文标题:推荐系统一(矩阵分解)

      本文链接:https://www.haomeiwen.com/subject/ryptdctx.html