使用 Tensorflow 进行在线学习

我的问题与构建推荐系统有关。我正在使用 tensorflow 来训练具有 user_features、item_features 和交互的模型。

我如何处理新数据?

例如,每当用户点击一个项目时,我想立即记录该交互并从该交互中学习(仅针对该交互训练模型)。我怎样才能做到这一点?

当前实施

现在,我正在遵循先训练模型然后从中进行预测的传统方法。为了处理新的交互,我必须重新初始化图形并使用所有数据重新训练以使其工作。


动漫人物
浏览 248回答 2
2回答

不负相思意

您不需要重新初始化图形。当您请求输出张量时,Tensorflow 并没有明确知道您是在进行训练还是测试阶段。相反,只要您评估优化器(例如 tf.train.AdamOptimizer、tf.train.GradientDescentOptimizer 等)的最小化操作,就会发生反向传播。通常您不会在测试期间这样做,因为您试图预测它在看不见的数据上的表现如何。但是,如果您想在进行初始预测后将该数据添加到训练集中,只要您有办法获得真实值以便计算误差张量,您就可以自由地这样做。即使在非在线学习中,穿插训练和测试通道也是很常见的:如果您使用验证集来确定提前停止,则您会在训练批次(您进行反向传播)和验证批次(您不进行反向传播)之间交替。

肥皂起泡泡

从你描述的情况来看:例如,每当用户点击一个项目时,我想立即记录该交互并从该交互中学习(仅针对该交互训练模型)。我怎样才能做到这一点?您可能想做的是在预训练模型之上进行某种强化学习。接下来要研究的是 OpenAIgym包。如何推荐系统可以与强化学习带来的指南给出了这里的第一次讲座(免费审计)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python