博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
矩阵分解方法
阅读量:7034 次
发布时间:2019-06-28

本文共 983 字,大约阅读时间需要 3 分钟。

一、矩阵分解概述

  我们都知道,现实生活中的User-Item矩阵极大(User数量极大、Item数量极大),而用户的兴趣和消费能力有限,对单个用户来说消费的物品,产生评分记录的物品是极少的。这样造成了User-Item矩阵含有大量的空值,数据极为稀疏。矩阵分解的核心思想认为用户的兴趣只受少数几个因素的影响,因此将稀疏且高维的User-Item评分矩阵分解为两个低维矩阵,即通过User、Item评分信息来学习到的用户特征矩阵P和物品特征矩阵Q,通过重构的低维矩阵预测用户对产品的评分。由于用户和物品的特征向量维度比较低,因而可以通过梯度下降(Gradient Descend)的方法高效地求解,分解示意图如下所示。

二、基本矩阵分解

  如上所述,User-Item评分矩阵维度较高且极为稀疏,传统的奇异值分解方法只能对稠密矩阵进行分解,即不允许所分解矩阵有空值。因而,若采用奇异值分解,需要首先填充User-Item评分矩阵,显然,这样造成了两个问题。

  • 其一,填充大大增加了数据量,增加了算法复杂度。
  • 其二,简单粗暴的数据填充很容易造成数据失真。

  这些问题导致了传统的SVD矩阵分解表现并不理想。之后,Simon Funk在博客上公开发表了一个只考虑已有评分记录的矩阵分解方法,称为,也就是被Yehuda Koren称为隐语义模型的矩阵分解方法。他简单地认为,既然我们的评价指标是均方根误差(Root Mean Squared Error, RMSE),那么可以直接通过训练集中的观察值利用最小化RMSE学习用户特征矩阵P和物品特征Q,并用通过一个正则化项来避免过拟合。其需要优化的函数为

 

  其中K为已有评分记录的(u,i)对集合,rui为用户u对物品i的真实评分,最后一项为防止过拟合的正则化项,λ为正则化系数。假设输入评分矩阵为RM×N维矩阵,通过直接优化以上损失函数得到用户特征矩阵P(M×K)和物品特征矩阵Q(K×N),其中KM,N。优化方法可以采用交叉最小二乘法或随机梯度下降方法。其评分预测方法为

 

  其中pu和qi分别为用户u和物品i的特征向量,两者的内积即为所要预测的评分。

三.总结

  R = PQ,PQ的内积来表示预测的评分,用RMSE作评价,不过不分先后顺序:在最小化RMSE约束下,来分解R矩阵,加入正则化项,防止过拟合。

转载地址:http://mwnal.baihongyu.com/

你可能感兴趣的文章
做一个好的程序猿
查看>>
Testlink安装使用
查看>>
Android系统性能调优工具介绍
查看>>
Greenplum如何激活、同步、删除Standby恢复原始Master
查看>>
技术往事:改变世界的TCP/IP协议(珍贵多图、手机慎点)
查看>>
减少tcp连接中的time_wait
查看>>
国内一款仅需150M内存的开源JAVA企业网站系统-MiinE
查看>>
基于maven使用IDEA创建springboot多模块项目
查看>>
才上线的第一个iphone app私人相簿(加密保护您的隐私),请大家支持下
查看>>
资源下载地址
查看>>
gnu autotools
查看>>
Sizeof与Strlen的区别与联系
查看>>
Tomcat的三种模式及并发优化
查看>>
Linux系统的Web网站服务
查看>>
oracle的环境配置-oracle10g的安装过程
查看>>
设计模式(创建型)之工厂模式
查看>>
Spring 3: 核心技术之AOP配置
查看>>
我的友情链接
查看>>
中小企业是否需要邮件服务器系统
查看>>
关机命令
查看>>