目前推荐系统的实现使用 TF 1.8 和WALS算法。该模型使用 self.fit(input_fn=input_fn) 和运行时版本 1.8 的 ML Engine 进行训练。数据集是使用 tensorflow.train.Example(...) 从下面显示的训练日志中提取的示例形成的。
使用一些默认参数执行拟合。损失值在第二次评估时确实下降了。然而,此后的损失并没有改变。本次训练最终的 Root 加权平方误差 (rwse) 变为 0.126。
稍后进行超参数调整,并在后续训练中使用最佳参数集。该训练的结果如下所示。
树的事情要注意这里。首先,开始的损失值低于后面的评估步骤。一开始的低值很可能是由于从超参数调整的结果中选择了参数。后来损失值的增加看起来很奇怪。第二,第二次评估后损失值不变。当 self.fit(input_fn=input_fn) 用于模型训练时,此模式保持不变。第三,在使用相同参数集 rwse=0.015 进行超参数调优期间,本次训练的最终 rwse 变为 0.487。
问题是是否有人观察到类似的事情?是否可以使用 WALSMatrixFactorization 类和 self.fit(input_fn=input_fn, steps=train_steps) 来提高算法的性能?在此先感谢您的帮助。