1.概论:
推荐系统应该有不同种的模型,就我现在所知道的,有以下两种:
第一种就是在监督学习下,预测出的概率,推荐出概率最大的物品。其中,
表示物品的特征,
表示事件:用户会点击物品。
第二种应该多和电影推荐有关,属于无监督学习:给出电影以及用户的评分矩阵(每一行代表一个电影,不同用户对其的评分组成
的一行;每一列代表一个用户,一个用户对不同电影的评价组成
的每一列),其中
的元素有些是空缺的,推荐系统的目标就是补全矩阵
,然后向用户推荐在自己那一列中比较大的元素。
这篇博客只讨论第二种情况。在这种情况下,问题就是一个盲矩阵的求解问题。
一个标准的盲矩阵求解表示如下:对于
,仅数据向量
已知,
未知。更通俗的情况如下:
对于
,仅
已知,
未知。对于这样形式上的问题,在
满列秩且
满行秩的情况下,问题是可以求解出来的。
求解的方法有子空间法和非负矩阵分解(NMF)等。NMF还未学习,搞不来。
子空间法对应的现实问题就是ICA,在ICA中,
的所有元素都是已知的,只需要求解出
即可。
而与ICA不同的是,在推荐系统中,,
本身并不是完全知道,我们需要做的是补全
,而补全
的策略是:
通过中所有已知的元素,求解一个优化问题,得到
,最后使用
去补全
。
通过向用户推荐中元素较大的电影或者与已知电影更相似的电影(即
大一些)完成推荐系统的目的。
2.优化问题及求解:
标量形式如下:
矩阵形式如下:记,
表示电影的个数,
表示用户的个数,
就是本质的特征数。(在电影的推荐中,可以看作是电影的类数)
就是用户的评分,元素为1-5分或是残缺。
与Y有着相同的维数,是0-1矩阵,Y中残缺对应的
为0。
在优化之前,需要做的一个技巧是:Mean normalization ,如果不这样做,优化后的解会出现负元素,是无法解释的。
所以需要先做这一步,最后再加上之前算出来的均值使结果非负。目标如下:
,
算梯度,得到:,
使用梯度下降法迭代求解即可。
3.思考:
NMF现在还未学习,那个应该和矩阵补全也有关系。此外,低秩应该也和矩阵补全有关,但是在课程中没有涉及,过段时间学的东西多了,应该就明白了,到时候再补吧。
4.参考:
(1)吴恩达coursera机器学习
(2)矩阵分析与应用