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),即训练量很小,但是预测工作量很大。
可以注意到的是,虽然特征萃取方法简单实用,拟合能力强,但不是凸函数,难以得到最优解,并且容易过拟合。