LFM建模公式

这里p(u,i)表示user与item对,如果user点击了item,那么p(u,i)就是1;如果user没有点击item,那么p(u,i)就是0。

模型的输出为user的向量和item的向量,也就是这里的

和

,这里的f为维度,最终就是两个向量的点乘

这里user和item的向量如上所示,这里user和item向量中的数值表示user对item的喜好程度,而维度由我们来设定,包括哪些维度,如是否有图片,品牌,模特的长相等等......比如我们统计出来有7个,那么就把向量维度设置成7。我们知道,两个向量的乘积是一个标量,如果将每一个user和item乘起来的结果都能够与点击矩阵中的结果无限接近,那么就说明这个模型的效果就越好。
LFM损失函数(LFM loss function)

这里p(u,i)是user对item真实的点击情况,又叫训练样本label。而

就是模型的产出,即模型预估的user对item喜好程度,也就是前面所说的模型产出的参数

和

转置的乘积。这里的D是所有的训练样本的集合。可以看到如果模型预估的数值与label越接近的话,损失函数数值越小,反之则越大。这里为了防止过拟合,增加了正则化项,并进行展开,得到如下:

这里

是正则化系数,是用来平衡平方损失与正则化项,这里采用的是L2正则化,正则化目的是为了让模型更加简单化,防止由于

和

过度拟合训练样本中的数据使模型的参数过度复杂,造成泛化能力减弱。关于正则化可以参考https://zhuanlan.zhihu.com/p/29360425,以后在机器学习篇中会加以说明。

和

分别是两个向量的模。
LFM算法迭代

是一个二元函数
我们分别对

和

求偏导



是一个复合函数,令A=

,

为自变量,则A'=-

,则

对

的导数为

对

求偏导与上面相同。