矩阵分解ALS-交替最小二乘法

ALS(alternating least squares)

ALS是交替最小二乘的简称。在机器学习中,ALS特指使用交替最小二乘求解的一个协同推荐算法。如:将用户(user)对商品(item)的评分矩阵分解成2个矩阵:

在这里插入图片描述
把原来的矩阵拆分成:
在这里插入图片描述
如何从评分矩阵中分解出User矩阵和Item矩阵,

  • 只有左侧的评分矩阵R是已知的
  • User矩阵和Item矩阵是未知
  • 学习出User矩阵和Item矩阵,使得User矩阵*Item矩阵与评分矩阵中已知的评分差异最小 => 最优化问题
我们最终的目的是使求得的打分矩阵loss最小

在这里插入图片描述

这里讲一下算数平均值,我们做实验经常用到算数平均值,其实算数平均值最终的原理也是最小二乘法

为什么算数平均值为实际值
在这里插入图片描述
导数为0的时候为最小值,因此
在这里插入图片描述
也就是:
在这里插入图片描述
所以:
在这里插入图片描述
最小二乘法是一种重要的数据拟合技术
可以应用于线性回归,非线性回归
在这里插入图片描述

之所以叫交替最小二乘法,是因为同时求X和Y两个矩阵,所以需要固定X求Y,再固定Y求X

1、固定Y优化X
在这里插入图片描述
将目标函数转化为矩阵表达形式
在这里插入图片描述
在这里插入图片描述

对目标函数 յ关于 xu 求梯度,并令梯度为零,得
在这里插入图片描述
求解后,得:
在这里插入图片描述
x u = ( Y u Y T + λ I ) − 1 Y u R u x_u=(Y_uY^T + \lambda I) ^{-1}Y_uR_u xu=(YuYT+λI)1YuRu

2、固定X优化Y
同理,求解得
y i = ( X u X T + λ I ) − 1 X u R u y_i=(X_uX^T + \lambda I) ^{-1}X_uR_u yi=(XuXT+λI)1XuRu

然后交替迭代:
  • 初始化X,Y
  • 利用for u=1,…,n do ∂ L o s s ( X , Y ) ∂ x u \frac{\partial^{}Loss(X, Y)}{\partial x_u^{}} xuLoss(X,Y)=0 去得到xu
  • 利用for i=1,…,m do ∂ L o s s ( X , Y ) ∂ y i \frac{\partial^{}Loss(X, Y)}{\partial y_i^{}} yiLoss(X,Y)=0 去得到yi
  • 重复2和3,不断去更新直到均方根误差RMSE收敛
    在这里插入图片描述
  • 8
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值