式中为用户u对物品i的真实评分。加号前的部分控制着模型的偏差,防止“欠拟合”。加号后的部分采用正则化项控制着模型的方差,让模型执行推荐任务时稳定发挥,防止“过拟合”的发生。
我们采用梯度下降优化算法,慢慢朝着梯度的反方向不断迭代得到使损失函数最小的参数值,得到的参数值就是我们要求的每一个用户、物品的k维隐因子向量。
下面具体讨论下如何应用梯度下降算法,首先我们要搞清楚:
每一个样本是什么
未知参数是什么
我们要拟合的对象是用户物品关系矩阵,可以把矩阵中的每一个元素看成一个样本,每个样本就是用户对物品的评分,我们的预测过程就是让用户的隐因子向量与物品的隐因子向量做点积得到的预测分数逼近样本,隐因子向量之间的点积可以表示为:
其中,分别代表,中的每一个元素中的元素值,是分解后的子矩阵,中的元素值,也就是我们一直在寻找的未知参数。
我们分别对,求偏导数:
,为实际值与预测值之间的误差;