编辑:以下对我有用,因为我有隐含的反馈评级,并且只对新用户的产品排名感兴趣 . 更多细节here
您实际上可以使用训练模型获得新用户的预测(不更新):
要在模型中获得用户的预测,可以使用其潜在表示(大小为f(因子数)的向量u),乘以产品潜在因子矩阵(由所有产品的潜在表示形成的矩阵,一堆大小为f)的矢量,并给出每个产品的分数 . 对于新用户,问题在于您无法访问其潜在表示(您只能获得大小为M(不同产品数量)的完整表示,但您可以使用相似度函数来计算类似的潜在表示通过将乘以产品矩阵的转置来表示此新用户 .
即如果你的用户潜在矩阵是u而你的产品潜在矩阵是v,对于模型中的用户i,你可以通过这样做得到分数:u_i * v对于新用户,你没有潜在的表示,所以要充分利用表示full_u和do:full_u * v ^ t * v这将近似新用户的潜在因素,并应给出合理的建议(如果模型已经为现有用户提供了合理的建议)
为了回答训练问题,这允许您为新用户计算预测,而无需对模型进行大量计算,而现在您只能进行一次 . 因此,您可以在晚上进行批处理,并且仍然可以在白天对新用户进行预测 .
注意:MLLIB允许您访问矩阵u和v