coursera机器学习技法笔记(15)——Matrix Factorization

15 Matrix Factorization

15.1 Linear Network Hypothesis

  将类别数据转换成向量数据,然后以每个样本的向量数据作为输入,评分数据作为输出,利用3层神经网络进行特征萃取。
  由于向量特征数据大量稀疏,因此中间层的 tanh 函数并不会起什么作用,可以直接换成线性模型,即Linear Network。
  将第 1/2 层网络的权重设为 VT ,第2/3层网络权重设为 W ,则该模型可以表述为:

h(x)=WTVx

如果 x 是一个只有1个元素为1的向量,则该式可以写成:
h(x)=WTvn

15.2 Basic Matrix Factorization

  对于电影 m 来说, h(x)=wmTvn ,因此,我们希望做的事是令 h(x)rmn 。将该损失函数写成平方损失函数,即矩阵分解。其解法是固定 v m ,然后固定 m v ,最终收敛。可以看出原评分矩阵分成了2个矩阵 W V ,因此称为矩阵分解。

15.3 Stochastic Gradient Descent

  本节讲述了将随机梯度下降应用于MF中。即随机选择一个 rmn ,并对 vn wm 做一次更新,更新值为 v w 的梯度。另外,如果数据带有时间属性,可以考虑在最后几轮中着重更新时间靠后的数据。

15.4 Summary of Extraction Models

  总结一下之前讲到过的特征萃取模型:
  (1)神经网络\深度学习:用前几层的权重以及神经元转换来萃取特征,用最后一层的权重线性组合来得到结果。
  (2)RBF神经网络:用到中心点的相似度来进行特征转换,并最后进行线性组合。
  (3)矩阵分解:分别萃取用户和项目的特征。
  (4)Adaptive/Gradient Boosting:用g_t来进行特征转换,最后用加权的方式进行线性组合。
  (5)k邻近:根据到最近邻居的距离来作为萃取特征,邻居样本标签作为权重。
  总结一下特征萃取技术:
  (1)神经网络\深度学习:随机梯度下降(即BP算法),autoencoder。
  (2)RBF网络:k-means聚类。
  (3)矩阵分解:随机梯度下降,交替误差下降。
  (4) Adaptive/Gradient Boosting:函数梯度。
  (5)k邻近:懒惰学习(lazy learning),即训练量很小,但是预测工作量很大。
  可以注意到的是,虽然特征萃取方法简单实用,拟合能力强,但不是凸函数,难以得到最优解,并且容易过拟合。

你可能感兴趣的:(机器学习,Matrix,SGD)