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),即训练量很小,但是预测工作量很大。

  可以注意到的是,虽然特征萃取方法简单实用,拟合能力强,但不是凸函数,难以得到最优解,并且容易过拟合。

时间: 2024-10-09 13:31:32

coursera机器学习技法笔记(15)——Matrix Factorization的相关文章

coursera机器学习技法笔记(13-14)——deep learning & RBFNetwork

13 Deep Learning 13.1 Deep Neural Network 将神经网络的层数增大,即称为深度学习.深度学习一般在输入数据为row data的时候使用,因为这些数据很难人为构造出合适的特征.深度学习一般面临如下挑战: (1)神经网络结构的决定:一般只能通过人的主观领域知识来决定神经网络结构,例如图像识别中的convolutional NNet,即认为相邻的像素才有必要连接到下一层的同一神经元. (2)模型复杂度:由于高层神经网络会有很多变量,因此显然会提高模型复杂度.但是一

coursera机器学习技法笔记(12)——Neural Network

12 Neural Network 12.1 Motivation 在神经网络的节点上使用感知机,那我们可以把神经网络看作是通过不同感知机以及常数的线性组合得到一个新的特征,将新的特征加上一个常数再进行线性组合得到结果.其原理和aggregation类似,但是在神经网络中进行了多层级的aggregation. 从生物的角度来说神经网络模拟了人脑神经网络. 12.2 Neural Network Hypothesis 如果神经元节点都用线性回归的话,那么无论怎么组合最终都是个线性回归,模型的能力没

coursera机器学习技法笔记(9-11)——decision tree & Random forest & GBDT

9 Decision Tree 9.1 Decision Tree Hypothesis 本节主要讲述了决策树的两种解释,一种是决策树是由叶子节点和路径组成的,当选择叶子节点对应的路径时采用对应的叶子节点结果:另一种观点是由分叉的树递归组成,当选择某一分支时将采用分支对应的子树的演算法结果. 决策树的优点在于可解释性强,高效.缺点是理论保证不足,并且算法多样. 9.2 Decision Tree Algoithm 决策树主要有4个关键部分: (1)分支分成几支? (2)该怎么分支? (3)什么时

coursera机器学习技法笔记(7-8)——blending and bagging & Adaptive Boosting

7 Blending and Bagging 7.1 Motivation of Affregation 之前都是通过特征转换达到更好的分类目的,而有另一种思路就是将多个模型的分数线性组合起来以期得到更好的效果.它们的权重应为x的函数,这样能包含投票.取最大等多种情况. 7.2 Uniform Blending 本节从理论上探讨了blend的可行性: G(x)=1T∑Tt=1gt(x) 则: avg((gt?f)2)=avg((gt?G2))+(G?f)2 可以看出,任选一个g_t其误差期望是大

机器学习基石笔记15——机器可以怎样学得更好(3)

转载请注明出处:http://www.cnblogs.com/ymingjingr/p/4271742.html 目录 机器学习基石笔记1——在何时可以使用机器学习(1) 机器学习基石笔记2——在何时可以使用机器学习(2) 机器学习基石笔记3——在何时可以使用机器学习(3)(修改版) 机器学习基石笔记4——在何时可以使用机器学习(4) 机器学习基石笔记5——为什么机器可以学习(1) 机器学习基石笔记6——为什么机器可以学习(2) 机器学习基石笔记7——为什么机器可以学习(3) 机器学习基石笔记8

Coursera机器学习week9 笔记

Anomaly detection(异常检测) Problem motivation 给定数据集,先假设它们都是正常的,如果有一新的数据,想知道是不是异常,即这个测试数据不属于该组数据的几率如何. 在上图中,在蓝色圈内的数据属于该组数据的可能性较高,而越是偏远的数据,其属于该组数据的可能性就越低. 这种方法称为密度估计 Gaussian distribution 用高数函数来检测是否异常,一般正常的数据都会集中在某个范围,如果一个数据出现在密度很疏密的地方,那么就有很大的几率是异常的. 类似与高

Coursera机器学习week10 笔记

Large scale machine learning Learning with large datasets 如果我们有一个低方差的模型,增加数据集的规模可以帮助你获得更好的结果.我们应该怎样应对一个有 100 万条记录的训练集? 以线性回归模型为例,每一次梯度下降迭代,我们都需要计算训练集的误差的平方和,如果我们的学习算法需要有 20 次迭代,这便已经是非常大的计算代价. 首先应该做的事是去检查一个这么大规模的训练集是否真的必要,也许我们只用 1000 个训练集也能获得较好的效果,我们可

Coursera机器学习week11 笔记

Application example:Photo OCR Problem description and pipeline 图像文字识别应用所作的事是,从一张给定的图片中识别文字.这比从一份扫描文档中识别文字要复杂的多. 为了完成这样的工作,需要采取如下步骤: 1. 文字侦测(Text detection)——将图片上的文字与其他环境对象分离开来 2. 字符切分(Character segmentation)——将文字分割成一个个单一的字符 3. 字符分类(Character classifi

机器学习技法 笔记六 Support Vector Regressssion

今天要说的是SVR 上一次提到了kernel logistic rgeression 1.kernel ridge regression 同时也提到了,对于任何的L2-regularized linear model,它的w都可以用资料的线性组合来表示 对于以前学的linear regression ,我们的error,是用的squared error,即差值的平方来达到regression 如果把这个regression配合上regularization的话,那么就是ridge regress