天天看点

FM算法为什么适用于稀疏数据

FM的原理https://zhuanlan.zhihu.com/p/37963267

原理

FM的表达式,包含常数项,一阶项,二阶项

FM算法为什么适用于稀疏数据

正常情况下,

FM算法为什么适用于稀疏数据

只有当

FM算法为什么适用于稀疏数据

不为0的情况下,

FM算法为什么适用于稀疏数据

才能被训练到

同样的,

FM算法为什么适用于稀疏数据

只有当

FM算法为什么适用于稀疏数据

都不为0的情况下,

FM算法为什么适用于稀疏数据

才能被训练到,再加上数据稀疏,

FM算法为什么适用于稀疏数据

不为0的情况非常少,所以

FM算法为什么适用于稀疏数据

就很难被训练到。

解决办法

FM算法为什么适用于稀疏数据

是矩阵计算出来的值,不再是单纯一个值。

FM算法为什么适用于稀疏数据

是有下面矩阵计算出来的

FM算法为什么适用于稀疏数据

这也是矩阵分解的结果。

最后经过一系列的化简

FM算法为什么适用于稀疏数据

然后求偏导

FM算法为什么适用于稀疏数据

为什么适用于稀疏

在优化的时候有

FM算法为什么适用于稀疏数据

,同样的当

FM算法为什么适用于稀疏数据

为0的时候,

FM算法为什么适用于稀疏数据

还是不能训练到。

但是,此时交叉项的系数是有矩阵组成的,V1=[v12, v13, ..., v1k],只要有x不为全为0,偏导的结果就不为0,这个参数就能训练到。

此时有一个特征为空就不能训练---》变成了全部特征为空才能不训练,

也就是即使是稀疏数据的情况下,矩阵依然能够迭代,从而矩阵计算出的

FM算法为什么适用于稀疏数据

也在迭代。

继续阅读