Coursera 机器学习 第9章(下) Recommender Systems 学习笔记
9.5 Predicting Movie Ratings
9.5.1 Problem Formulation
推荐系统。
推荐系统的问题表述:电影推荐。根据用户对已看过电影的打分来推测用户对其未打分的电影将会打什么分。下面对一部电影的打分区间是[0,5]。
做道题:
9.5.2 Content Based Recommendations
推荐系统的一种实现:基于内容的推荐。
对于每个用户i训练一个参数向量Θ(i),对于每部电影j训练一个特征向量x(j)(其中默认x0=1,实际上特征抽取是不容易的),那么(Θ(i))Tx(k)就是用户i可能对电影k的打分。
下面用线性回归解决上面的问题:
注意min式子的正则化部分的Θ有n+1维,但是是从Θ0维度开始计算的。抽离m(j)不影响最小化的结果。
对于每个用户也就是
对于整体也就是
那么可以这么做(梯度下降法等):
做道题:
D
9.6 Collaborative Filtering
9.6.1 Collaborative Filtering
协同过滤(Collaborative Filtering)。协同过滤能够自行学习所要使用的特征。
协同过滤是执行一个算法时,通过一大堆用户得到的数据,由参数矩阵得出特征,再由特征优化参数矩阵。
最小化下面的式子得到特征矩阵:
基于内容的推荐是最小化下面的式子:
注意两者的区别。
做2道题:
A
D
9.6.2 Collaborative Filtering Algorithm
协同过滤算法(Collaborative Filtering Algothrim)。
将对于参数矩阵和特征矩阵的优化结合:下面有3个式子,第一个式子最优化参数矩阵,第二个式子最优化特征矩阵,最后一个式子将两者结合。
这里注意最后一个式子中的Θ(j)和x(i)都是n维向量,没有默认初始的Θ0和x0,和上面的两个式子不一样。
协同过滤算法:
做道题:
9.7 Low Rank Matrix Factorization
9.7.1 Vectorization: Low Rank Matrix Factorization
协同过滤算法的向量化实现以及协同过滤算法的使用实例。
协同过滤算法的向量化实现(低秩矩阵分解):
协同过滤算法的使用实例:比如当前用户买了A电影的票,判断对于电影B,他是否有可能买。
做道题:
9.7.2 Implementational Detail: Mean Normalization
均值归一化:可以使算法运行得更加有效。
例子:如果有一位用户对所有电影都没有评分,为了推测出该用户对某一个具体电影的评分,需要用到均值归一化。
下图中对于某一部电影i,求已经评分的用户j评分Yij的平均数ui,然后Yij=Yij-ui,得到新的矩阵Y。用新的Y来训练得到参数Θ(j),然后Yi5=(Θ(j))T(X(5))+ui
做道题:
练习:
不知道这题为什么错: