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'=-
,则
对
的导数为
对
求偏导与上面相同。