1.25 推荐系统(矩阵补全)与盲矩阵求解

11 篇文章 1 订阅

1.概论:
推荐系统应该有不同种的模型,就我现在所知道的,有以下两种:

第一种就是在监督学习下,预测出p(y=1|x)的概率,推荐出概率最大的物品。其中,x表示物品的特征,y=1表示事件:用户会点击物品。

第二种应该多和电影推荐有关,属于无监督学习:给出电影以及用户的评分矩阵Y(每一行代表一个电影,不同用户对其的评分组成Y的一行;每一列代表一个用户,一个用户对不同电影的评价组成Y的每一列),其中Y的元素有些是空缺的,推荐系统的目标就是补全矩阵Y,然后向用户推荐在自己那一列中比较大的元素。

这篇博客只讨论第二种情况。在这种情况下,问题就是一个盲矩阵的求解问题。

一个标准的盲矩阵求解表示如下:对于\mathbf{Ax=b},仅数据向量\mathbf{b}已知,\mathbf{A,x}未知。更通俗的情况如下:

对于\mathbf{Y=AS},仅\mathbf{Y}已知,\mathbf{A,S}未知。对于这样形式上的问题,在\mathbf{A}满列秩且\mathbf{S}满行秩的情况下,问题是可以求解出来的。

求解的方法有子空间法和非负矩阵分解(NMF)等。NMF还未学习,搞不来。

子空间法对应的现实问题就是ICA,在ICA中,\mathbf{Y}的所有元素都是已知的,只需要求解出\mathbf{S}即可。

而与ICA不同的是,在推荐系统中,Y=X\Theta^T,Y本身并不是完全知道,我们需要做的是补全Y,而补全Y的策略是:

通过Y中所有已知的元素,求解一个优化问题,得到X,\Theta,最后使用X\Theta^T去补全Y

通过向用户推荐Y中元素较大的电影或者与已知电影更相似的电影(即similarity(\mathbf{x_i,x_j})大一些)完成推荐系统的目的。

2.优化问题及求解:

标量形式如下:

矩阵形式如下:记Y_{n_m \times n_u},R_{n_m \times n_u},X_{n_m \times r},\Theta_{n_u \times r}n_m表示电影的个数,n_u表示用户的个数,r就是本质的特征数。(在电影的推荐中,可以看作是电影的类数)

Y_{n_m \times n_u}就是用户的评分,元素为1-5分或是残缺。R_{n_m \times n_u}与Y有着相同的维数,是0-1矩阵,Y中残缺对应的R_{n_m \times n_u}为0。

在优化之前,需要做的一个技巧是:Mean normalization ,如果不这样做,优化后的解会出现负元素,是无法解释的。

所以需要先做这一步,最后再加上之前算出来的均值使结果非负。目标如下:

min \ J(X,\Theta)=\frac{1}{2}||(X\Theta^T-Y)\odot R||^2_F+\frac{\lambda}{2}(||\Theta||^2_F+||X||^2_F),

算梯度,得到:\triangledown _X J =((X\Theta^T-Y)\odot R)\Theta+\lambda X,    \triangledown _{\Theta} J =((X\Theta^T-Y)\odot R)^TX+\lambda \Theta

使用梯度下降法迭代求解即可。

3.思考:

NMF现在还未学习,那个应该和矩阵补全也有关系。此外,低秩应该也和矩阵补全有关,但是在课程中没有涉及,过段时间学的东西多了,应该就明白了,到时候再补吧。

4.参考:

(1)吴恩达coursera机器学习

(2)矩阵分析与应用

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值