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