矩阵补充(matrix completion)

这篇具有很好参考价值的文章主要介绍了矩阵补充(matrix completion)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这篇文章介绍矩阵补充(matrix completion),它是一种向量召回通道。矩阵补充的本质是对用户 ID 和物品 ID 做 embedding,并用两个 embedding 向量的內积预估用户对物品的兴趣。值得注意的是,矩阵补充存在诸多缺点,在实践中效果远不及双塔模型。

矩阵补全,推荐系统,矩阵,机器学习,深度学习,推荐算法,人工智能

上篇文章介绍了embedding,它可以把用户ID和物品ID 映射成向量,这张图就是基于embedding做推荐的。模型的输入是用户ID和物品ID,模型的输出是一个实数,是用户对于物品兴趣的预估值,这个数越大表示用户对物品越感兴趣。这张图的左边有一个embedding层,把一个用户ID映射到一个向量,记作a,这个向量是对用户的表征。上篇文章讲了,embedding层的参数是一个矩阵,矩阵中列的数量是用户数量,每一列都是图中a这么大的向量。embedding层的参数数量=用户数量*向量a的大小。右边结构也是一个embedding层,把一个物品ID映射到一个向量,记作b,这个向量是对物品的表征。因为embedding层的参数是一个矩阵,矩阵中列的数量是物品数量,每一列都是图中b这么大的向量。embedding层的参数数量=物品数量*向量b的大小。对向量a和向量b求内积得到一个实数作为模型的输出,这个模型就是矩阵补充模型。

问题来了,这么训练这个模型呢?

 矩阵补全,推荐系统,矩阵,机器学习,深度学习,推荐算法,人工智能

数据集:使用一个(用户ID,物品ID,兴趣分数) 三元组集合

矩阵补全,推荐系统,矩阵,机器学习,深度学习,推荐算法,人工智能

 详细解释一下这个公式,这里的矩阵补全,推荐系统,矩阵,机器学习,深度学习,推荐算法,人工智能是训练集中的一条数据,意思是用户u对物品i的真实兴趣分数y,矩阵补全,推荐系统,矩阵,机器学习,深度学习,推荐算法,人工智能是向量a和b的内积,它是模型对兴趣分数的预估,反映的是第u号用户有多喜欢第i号物品,矩阵补全,推荐系统,矩阵,机器学习,深度学习,推荐算法,人工智能是真实兴趣分数y与预估值之间的差,我们希望这个差越小越好,干脆取差的平方,差的平方越小,证明预估值越接近真实值y。矩阵补全,推荐系统,矩阵,机器学习,深度学习,推荐算法,人工智能对每一条记录的差的平方求和,作为优化的目标函数,矩阵补全,推荐系统,矩阵,机器学习,深度学习,推荐算法,人工智能对目标函数求最小化。

矩阵补全,推荐系统,矩阵,机器学习,深度学习,推荐算法,人工智能

刚才拿绿色位置的数据作为数据集训练出了模型,这个模型又返回来预测出所有灰色位置的分数,即把矩阵中空的位置补全。这就是模型叫矩阵补充的原因。

那么补全到底有什么意义呢?把矩阵补全后就可以做推荐。选出一行中分数最高的几个物品推荐给这一行的这个用户。是不是看起来很高级?其实这个方法是有很大缺点的,它仅仅用了2个embedding层,把用户ID和物品ID 映射成2个向量,仅此而已。以小红书为例,小红书会记录物品属性(类目,关键词,地理位置,作者信息)和用户属性 (性别,年龄,地理位置,感兴趣的类目),这个方法根本没用到这些信息,如果我们能把这些信息应用到召回中,召回会做的更加精准。其次,这个方法做训练的效果很不好,因为用内积不如用余弦相似度,用平方损失(做回归)不如用交叉熵损失(做分类)。

总结一下矩阵补充:

矩阵补全,推荐系统,矩阵,机器学习,深度学习,推荐算法,人工智能

 最后来思考一个比较深入的问题:矩阵分解和矩阵补充有什么区别呢?

矩阵填充是一个task,矩阵分解是一类operation。(填充是目的,分解是手段!)

已知一个部分可观察的矩阵M,用M其他行的已知值(每一行包含一个用户对所有商品的已知评分),来估计并填充某一行的缺失值。若要对所有用户进行预测,便是填充整个矩阵,这是所谓“协同过滤本质是矩阵填充”。

矩阵补全(Matrix Completion)目的是为了估计矩阵中缺失的部分(不可观察的部分),可以看做是用矩阵X近似矩阵M,然后用X中的元素作为矩阵M中不可观察部分的元素的估计。

矩阵分解(Matrix Factorization)是指用 A*B 来近似矩阵M,那么 A*B 的元素就可以用于估计M中对应不可见位置的元素值,而A*B可以看做是M的分解,所以称作Matrix Factorization。

上面有一个词叫『近似』,这个近似的方式是有多种的,有各种不同的loss和不同的表达『近似』的建模方法。

总的来说,通过以上描述可知,矩阵分解可以用于矩阵补全任务。此外,做矩阵分解也可以用于分解一个完全观察的矩阵,比如通过分解来对一个完全观察的矩阵做有损压缩和低维表示等等。而且,矩阵补全也并不总是采用分解的方法



 

 文章来源地址https://www.toymoban.com/news/detail-802970.html

 

 

 

到了这里,关于矩阵补充(matrix completion)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 推荐系统 | 基础推荐模型 | 矩阵分解模型 | 隐语义模型 | PyTorch实现

    基础推荐模型——传送门 : 推荐系统 | 基础推荐模型 | 协同过滤 | UserCF与ItemCF的Python实现及优化 推荐系统 | 基础推荐模型 | 矩阵分解模型 | 隐语义模型 | PyTorch实现 推荐系统 | 基础推荐模型 | 逻辑回归模型 | LS-PLM | PyTorch实现 推荐系统 | 基础推荐模型 | 特征交叉 | FM | FFM |

    2023年04月09日
    浏览(41)
  • 机器学习30:《推荐系统-III》使用 TensorFlow 构建电影推荐系统

    本文将介绍基于 MovieLens 数据集创建一个电影推荐系统的方法。具体而言,包括探索电影数据,训练矩阵分解模型,检查嵌入,矩阵分解中的正则化,Softmax 模型训练等内容。 目录 1.准备工作 1.1 导入依赖模块 1.2 加载数据 1.3 探索电影镜头数据

    2024年02月16日
    浏览(35)
  • 对角矩阵(diagonal matrix)

    对角矩阵(英语:diagonal matrix)是一个 主对角线之外的元素皆为 0 的矩阵。对角线上的元素可以为 0 或其他值。 对角矩阵参与矩阵乘法 矩阵 A 左乘一个对角矩阵 D,是分别用 D 的对角线元素分别作用于矩阵 A 的每一行; 相似地,矩阵 A 右乘一个对角矩阵 D,是分别将 D 的对

    2024年02月11日
    浏览(37)
  • 【推荐系统入门到项目实战】(三):矩阵分解和ALS算法

    🌸个人主页:JOJO数据科学 📝个人介绍: 统计学top3 高校统计学硕士在读 💌如果文章对你有帮助,欢迎✌ 关注 、👍 点赞 、✌ 收藏 、👍 订阅 专栏 ✨本文收录于【推荐系统入门到项目实战】 本系列主要分享一些学习推荐系统领域的方法和代码实现。 之前我们介绍了推荐

    2024年02月06日
    浏览(29)
  • Eigen-Matrix矩阵

    在Eigen中,所有矩阵和向量都是矩阵模板类的对象。向量只是矩阵的一种特殊情况,要么有一行,要么有一列。矩阵就是一个二维数表,可以有多行多列。 Matrix类有六个模板参数,但现在只需要了解前三个参数就足够了。剩下的三个参数都有默认值,我们暂时不碰它们,我们

    2024年03月09日
    浏览(54)
  • leetcode 542. 01 Matrix(01矩阵)

    矩阵中只有0,1值,返回每个cell到最近的0的距离。 思路: 0元素到它自己的距离是0, 只需考虑1到最近的0是多少距离。 BFS. 先把元素1处的距离更新为无穷大。 0的位置装入queue。 从每个0出发,走上下左右4个方向,遇到0不需要处理,遇到1,距离为当前距离+1. 如果当前距离

    2024年02月12日
    浏览(27)
  • Eigen 矩阵Matrix及其简单操作

    在Eigen,所有的矩阵和向量都是Matrix模板类的对象,Vector只是一种特殊的矩阵(一行或者一列)。 Matrix有6个模板参数,主要使用前三个参数,剩下的有默认值。 Scalar是表示元素的类型,RowsAtCompileTime为矩阵的行,ColsAtCompileTime为矩阵的列。 库中提供了一些类型便于使用,比如

    2024年02月12日
    浏览(25)
  • 双目立体匹配中的极线约束(Epipolar Constraint),基础矩阵(Fundamental Matrix),本质矩阵(Essential Matrix),对极几何(2D-2D)

    考虑一个SLAM中一个常见的问题:如果两个相机在不同位置拍摄同一个物体,或者一个运动的相机在不同时刻拍摄同一物体,我们有理由相信两张图片中各点存在着某种几何关系,这种关系可以用对极几何来描述。对极几何描述了两帧图像中各像素的射影关系(或者说是各匹配

    2024年02月05日
    浏览(26)
  • 线性代数 --- 置换矩阵 (Permutation matrix)

            对一个矩阵进行行交换,需要通过置换矩阵(permutation matrix)来完成。         在对一个Ax=b的方程组进行高斯消元的过程中,我们常常会遇到一种情况,也就是消元消不下去的情况。下面,我列出了两个不同的3x3矩阵的消元过程:         上图中的第一行,是一

    2024年02月06日
    浏览(30)
  • 分类模型之混淆矩阵(Confusion Matrix)

    混淆矩阵是ROC曲线绘制的基础,同时它也是衡量分类型模型准确度中最基本,最直观,计算最简单的方法。 可以简单理解为:将一个分类模型的预测结果与正确结果做对比,将预测正确的统计量和预测错误的统计量分别写入一张矩阵图中,得到的这张图就是混淆矩阵了。 混

    2024年02月03日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包