矩阵分解与梯度下降

有如图一矩阵U(5,4),表示5个用户user对四部电影进行打分,最高可打5分;“-”表示用户未对该电影进行打分。那么如何知道用户user对该电影的评分呢? 

通过学习矩阵分解可以预测用户user对该电影的评分;

矩阵分解理论

首先,了解到离散数学中有矩阵乘法:设A为的矩阵m*pB为的矩阵p*n,那么m*n称的矩阵C为矩阵AB的乘积,记作C=AB,其中矩阵C中的第i行第j列元素可以表示为:

那么根据矩阵乘法矩阵分解可以理解为:  如果矩阵R(m,n)可以分解成两个矩阵P(m,k)Q(k,n)的条件相乘;那么我们可以假设真实矩阵R(m,n)可分解成两个矩阵P(m,k)Q(k,n)相乘,当然真实矩阵是不知道的,所以可由预测矩阵R^(m,n)来代替,就有R(m,n)≈P(m,k)*Q(k,n)=R^(m,n)

要想使得预测值更好的替代真实值,那么就要真实值减去预测值R-R^的值ℰ越小越好,这样就要保证预测值更加接近真实值,即(R-R^)^2<ℰ,ℰ越小预测值R^越接近真实值R;

(R-R^)^2<ℰ 这个式子又称为损失函数(Loss),而得到该式子的过程称之为构造损失函数;

为了求预测值R^必须先求分解后的两个矩阵P和Q;

如何求分解后的两个矩阵P和Q:

1.求第i行第j列的真实值r(i,j)的预测值r^(i,j);则得

2.构建损失函数;假设真实值r(i,j)已知,则预测值r^(i,j)的误差平方和为:

 使得误差平方和e^{2}_{ij}尽可能的小;

3.要使e^{2}_{ij}尽可能的小,并得到分解后的P和Q,就需要用到梯度下降方法;  

  梯度下降:可以理解为将函数f(x)比作一座山,我们站在某个山坡上下山,从哪个方向走一小步,能够下降的最快的问题;只有延着最陡的方向,下山才会最快,而下山最陡的方向,是梯度的负方向;

梯度:表示某一函数在该点处的方向导数沿着该方向取得较大值,即函数在当前位置的导数

\frac{\partial f(x)}{\partial x}

假设山上有一点Xold,其中,Xold是自变量参数,即下山位置坐标,η是步进长度(已知),Xnew是更新后的Xold,即下山移动一小步之后的位置。

\Delta x=\left | Xnew-Xold \right |< \xi           

  Xnew=Xold-\eta \frac{\partial f(x)}{\partial x}

Xnew=\frac{\partial f(Xold)}{\partial x}不断迭代下去,直到\Delta x=\left | Xnew-Xold \right |< \xi;

 4.不断进行迭代,直到(R-R^)^2<ℰ ,最后R=P*Q;

代码

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值