因子分解机
FM的优势
(1)FM可以在非常稀疏的数据下进行参数评估。
(2)FM的复杂度为线性复杂度,利于优化。
(3)其他的分解模型输入数据是有限制的,但是FM可以可以用在一些real valued特征向量上。
解释一下文中的例子
以上图片中分为六个区域:(每一行代表一个用户对某一部电影做出的评价)
(1)蓝色区域代表用户,列代表一个用户对多少部电影做出过评价,行中的1代表当前用户
(2)红色区域代表电影(项目),列代表一部电影被多少个用户评价过,行中1代表当前电影
(3)黄色区域表示额外的信息,指其他用户对电影的评分
(4)绿色区域表示用户评分的时间
(5)棕色区域代表用户评价的当前电影的前一个评分的电影
(6)最后的区域代表用户对电影的预测评分
FM将类似与图中的特征向量当做输入。
公式解释
这是一个2阶的因子分解机
(1)其中w0代表了全局偏置
(2)wi表示为第i个变量的权重,意思是对第i个变量建模
(3)<Vi, Vj>建模了第i个变量和第j个变量之间的交互
其中
这里的Vi和Vj是通过矩阵分解(MF)对xixj的权重矩阵wij进行了分解,一行vi表示有k个隐因子的第i个变量,同理vj与vi类似。
在计算<Vi, Vj>时,使用(a+b+c)^2− a^2− b^2− c^2求解
模型训练
模型训练时采用的是随机梯度下降发进行优化
总结
FM的思路是来源于MF的,通过矩阵分解将权重矩阵分解为两个包含相同隐因子的矩阵,以此来降低计算复杂度,并且计算特征的两两组合。
光看公式还是不行的,后续还会分析一下代码是怎么实现FM的。
新手一个,有问题请及时指出。