SVD,MF,WMF

简单SVD算法

矩阵分解,就是把用户和物品都映射到一个K维空间上(一般K要比用户和物品数量药要小),这个k维空间不是直接看到的,通常称为潜在因子SVD其实是一种机器学习算法,而不是推荐算法

SVD的损失函数是这样定义的,后面的为正则化项

整个SVD的学习过程就是:

1)准备好用户物品的评分矩阵

2)给分解后的U矩阵和V矩阵随机初始化元素值,随机初始

3)用U和V计算预测后的分数

4)  计算预测的分数和实际的分数误差

5)按照梯度下降的方向更行U和V中的元素值(梯度下降法和交替最小二乘法)

6)重复步骤3到5,直到达到停止条件

得到分解后的矩阵之后,实质上就是得到每个用户和每个物品的潜在因子向量(不用太在意每一个潜在因子的含义),根据这两个矩阵就可以计算出打分值,简单来说就是拿着物品和用户两个向量相乘,积就是推荐分数。矩阵分解并不等于SVD,只能说矩阵分解是SVD方法之一。

 

在某些情况下我们使用加权矩阵分解(WMF weighted matrix factorization)来学习潜在因子向量,他是一种针对于隐性反馈改进的矩阵分解算法

其他方法:1.没评分的都是负反馈2.按正反馈的比例进行负反馈,重点是那些很热门却没有被评分的

 cui=1+arui

对每一对用户物品对,定义一个偏好变量pui,定义一个信心变量cui。rui是用户u对歌曲i的播放次数,I(x)是指示函数(指示函数就表示如果满足后面那个条件,就是1,不满足就是0),是超参数

pui表示用户u是否听过歌曲i,如果这个值是1,就假定用户喜欢这首歌。cui衡量我们对这种特定偏好的确定程度。如果用户播放这个音乐次数越多,则c就越高,没播放过则c就很低。

 

WMF目标函数公式是

两种方法进行迭代

梯度下降法(不适用于加权)

求导加迭代

 

交替最小二乘法

x和y交替进行更新

不加权的算法(也不加正则化项)

加权

I是恒矩阵,对角线为1的方阵

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值