林轩田之机器学习课程笔记( distilling hidden features之matrix factorization)(32之31)

欢迎转载,可以关注博客:http://blog.csdn.net/cqy_chen
推荐FM和FFM文章,现在主要用于推荐系统中:https://tech.meituan.com/deep-understanding-of-ffm-principles-and-practices.html
深度学习书籍推荐:https://item.jd.com/12128543.html
深度学习课程推荐:https://www.coursera.org/learn/neural-networks/home/welcome
TensorFlow:http://www.tensorfly.cn/ http://www.tensorflow.org/
题目可能不全,因为有字数限制,不好意思,可以参考:
https://www.csie.ntu.edu.tw/~htlin/course/ml15fall/

概要

上节讲到了RBF网络,核心在于找出一堆中心点,然后计算数据到中心点的距离,最后做线性组合。本节主要讲矩阵因子分解。

线性网络假设空间

现在来看一个问题,https://www.netflixprize.com/
这是netfix举办的一个比赛,The Netflix Prize sought to substantially improve the accuracy of predictions about how much someone is going to enjoy a movie based on their movie preferences.
预测一个人对于一部电影的喜好程度。
给出的数据是这样一笔笔的数据 (id,) ,那么我们就是想要从抽象的输入数据:用户id,提取出用户的特征,比如用户喜欢什么题材的电影等,然后拿去做预测。
由于用户id是类别型,需要转换成数字型,因为很多模型基本只能处理类别型,只有像树之类的模型才能直接处理类别。
这里介绍一种简单的转换——独热编码。
比如有三种血型: A,AB,B,O 可以编码成:

A=[0,0,0,1]T,B=[0,0,1,0]T,AB=[0,1,0,0]T,O=[1,0,0,0]T

每一个类别占据一个位置。
同时我们将数据再处理下,每个人的数据进行拼接得到:
这里写图片描述
我们可以想想用神经网络来提取特征,常数项这里去掉了,方便推导。网络构造如下:
这里写图片描述
所以我们的矩阵:
Vd˜×nWd˜×m

最后我们的网络函数为:
h(xn)=WTVxn

当随机的提取一个x,比如 x1=[1,0,0,0,0,......]T ,那么这个时候
Vx1 其实就是提取了 V 矩阵的第一列,其实就是得到这个用户的特征嘛,然后通过W矩阵的线性组合得到最后结果。
现在的核心就是求解两个矩阵数据

基本的矩阵因子分解

对于第m个电影来说其实就是 W 矩阵的第m行的转换。
设:rnm表示第n个人对第m部电影的评价。
所以最后想要的是: rnm=ynwTmvn
最后的损失函数如下:
这里写图片描述
因为上面的公式前面是常数,故而标记为灰色。
这里写图片描述
就如下:
这里写图片描述
所以最优化的式子可以写成:
这里写图片描述
首先每部电影有很多资料,对于这些资料做最优话,然后对每部电影做最优化。这个其实和k-means的想法类似。优化就是交叉的优化啦。

1)先固定 vn ,那么每个人的特征被固定了,那么就是只需要优化后面一层的网络,那就是个线性回归模型嘛。
2)固定 w 求解v呢?因为v和w是对称的,其实看看网络结构就可以了,倒过来嘛。

这个被称之为交叉最小二乘算法。流程如下:
这里写图片描述
这个和线性的自动编码机其实是类似得:
这里写图片描述

随机梯度下降求解

上面采用了交叉最小二乘法进行优化,如果损失函数改变,岂不是麻烦。所以如果能通过梯度下降求解就好了。
其实在GBDT就是在Adaboost上修改了损失函数通过梯度来进行求解。所以可以看到到处都是相似的影子。
这里还是以平方损失为例,对于一笔资料的损失是:
这里写图片描述
通过梯度下降进行更新的步骤如下:
这里写图片描述

有这样一个问题,假如用于测试的资料总是在相对时间后面,那么不管怎么做训练,验证的资料还是没有和测试资料保持一个比较同意的环境。怎么办呢?对于SGD我们知道是随机的从一笔资料中计算梯度,然后走向谷底。我们可以按照时间的顺序来通过SGD的方式进行训练,按照时间上的GD算法。
这也是台湾大学在2011年获得kddcup冠军的一个技巧。

特征提取模型总结

通过特征提取的模型就是将特征转换隐层到变量之中,最后通过线性的模型融合得到。
这里写图片描述

通过各种方法提取数据特征。这些方法的优化方法如下:
这里写图片描述

通过自动的特征提取有好处有坏处。
好处:
1)能够自动的提取特征,使用方便
2)模型复杂度比较高,能做的事情比较多
坏处:
1)通常最佳化比较麻烦
2)由于模型复杂度比较高,容易过拟合。
3)提取的特征通常可解释性比较差。

欢迎转载,可以关注博客:http://blog.csdn.net/cqy_chen

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值