Machine Learning Techniques 笔记:2-15 Matrix Factorization
Radia; Basis Function:它就是一堆相似性的线性组合,这些相似性是基于距离,k-menas
第n个user,给第m个电影的评分Rnm
我们只有电影的编号,以及它的历史评分,如何从中学习到feature?
不同的feature,用0/1来表示。
把原来的feature,转换为还有0/1的vector
第n个用户,给第m部电影,没有评分的位置,留白。评分的部分:分支用含有0/1值的vector来表示。
利用类神经网络,n个输入,经过中间的过程,转换为m个输出,中间的过程,可能能够萃取出我们需要的每个使用者的feature
向量的输入,不完全向量的输出
x:大部分为0,中间一个很小的部分不为0. 中间的tanh funciton不是必须的,只需要把这个不为0的项目传递给下一层即可。
将中间的tanh function换成线性函数。
d quota:中间神经元的个数
m:输出
W: M x d 维
x: N x 1 维
V: d x N 维
用矩阵变换,来代表中间发生的过程。 h(xn)=WV,与中间的过程无关。
灰色的部分为常数项,我们不太关注他。
我们希望实际的评分Rnm与我们预测的WmVn的差距最小。
找出使用者的feature,电影的特征,来进行预测
多个变量的最佳化:按照变量,逐个最佳化
V固定,最佳化w
W固定,最佳化V
user/movie矩阵是对称的。
交互的最佳化的问题,有点像跳tango
第一层W做Encoding
第二层W做decoding
每次只算一个点,比较有效率。但要算好多轮
g
强化时间点近的点。
比如,3年前喜欢某电影,现在就不一定喜欢,给时间点晚的资料以较大的权重,来重新设计算法,这样预测能力更好。