Matrix Factorization
#Matrix Factorization ###①linearNetwork Hypothesis 机器学习的作用就是要从一堆数据中学习到学习到某种能力,然后用这种skill来预测未来的结果。比如一个电影推荐的例子,我们手上有很多的电影数据,现在就需要训练一个机器学习的模型来使得这个模型可以预测一个新来的用户会喜欢什么电影,然后推荐过去。或者是对用户没有看过的电影进行评分预测。
Nefix公司曾经举办过一场比赛,包含了大量的电影数据信息和近一亿个排名信息。用?x_n = (n)?那么,问题来了,第几个用户的这个n是没有什么实际意义的,也就是一个抽象特征,意味着只是一个编号,随便给只要不重复即可。但是输出方面就是很正常了:?y_n = r_{nm}?表示的就是第n个用户对第m部电影的排名预测。 仔细看一下这些ID特征,通常就是数字表示,比如1126,5566,6211等。这些数字编号并没有什么太大的意义,都只是一种ID编号而已。这类特征,被称为类别特征,比如:ID号,blood type,programming languages等等,而许多机器学习模型都是数值特征,比如linear model,都是一串的数据,决策树例外,可以是类别区分。所以要建立一个推荐系统的机器学习模型,就要把用户的ID号这些categorical features转换成numerical features,这种转换其实就是一个编码的过程了。 一种比较简单的就是binary vector encode。也就是说,如果输入样本有N个,就构造一个维度为N的向量。对应第n个样本那么第n个位置就是1其他都是0,比如下面的一个例子: 有点像one-hot向量,但不是。编码之后,那么用户的ID就是binary vector了。要注意的是用户是不一定对每一个电影都会进行评分,可以就是评了一部分而已: 我们就是要预测那些没有被评分的电影。**对于这个过程,我们要做的就是掌握每一个用户对于不同电影的喜爱程度,掌握这个电影的各种特征factor,比如有多少的喜剧,有多少的悬疑等等。这其实就是一个特征提取的过程。**这里使用的是?N - d - M?的网络,N就是输入的个数,d就是隐藏层的个数,也就是提取出特征的个数,M就是最后输出类别的个数。这个结构和之前我们所看的autoencode非常像,但是不同的就是autoencode是最后输出尽可能的要拟合输入。中间还有一个小问题,中间有一个非线性的函数,目的就是要使得整个模型nonlinear化,可以处理非线性的数据,**但是在这里需不需要呢?**其实是不需要的,因为输入的向量是encoding得到的,大部分是0,小部分是1,那么就意味着这后面乘上的W权值其实就是只用一行有用,其他都是0,相当于只有一个权重值进入到tanh函数进行运算。从效果上来说,tanh(x)与x是无差别的,只是单纯经过一个函数的计算,并不影响最终的结果,修改权重值即可得到同样的效果。因为进入计算之后,修改权值就可以达到效果了,而之前需要的原因是,之前的结果都是需要多个权值就行组合,不加tanh就是线性组合了,所以加来变成非线性。这里就只有一个,不存在什么组合,所以直接使用即可。 改进一下,就是下面的图像了:
对于这种结构,自然就是linearNetwork了,这个网络结构里面:?W_{ni}^{(1)}?就是Nxd,用V来表示,其实应该是?V^T?V的转置,隐藏层到输出层:?W_{im}^{(2)}?是dxM,所以进行线性模型之后:
###②Basic Matrix Factorization 上面的变换VX我们看做是一种特征转换,φ(x),那么就可以变成这样: 我们需要做的就是看看排名WV和y的结果要差不多,也就是做拟合,所以error function就是square error function: 上式中,灰色的部分是常数,并不影响最小化求解,所以可以忽略。接下来,我们就要求出Ein最小化时对应的V和W解。 根据上式的分解:上一篇: 如何购买 Prime Video?
推荐阅读
-
Matrix Factorization
-
Matrix Factorization
-
Python 实现的因子分解机 (Factorization Machine) 代码示例
-
在使用limma包的contract matrix中,比较各因素之间的差异问题探讨
-
在Android中,如何有效地保存Matrix对象及其内容(AKSK对象存储方法)
-
Leetcode 3033. Modify the Matrix
-
Feature-Based Matrix Factorization
-
requirement traceability matrix (rtm) example
-
requirements traceability matrix template pmp
-
requirements traceability matrix tools