使用Tensorflow在线学习

时间:2018-09-03 07:02:26

标签: python tensorflow machine-learning reinforcement-learning

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

我该如何处理新数据?

例如,每当用户单击某个项目时,我想立即记录该交互并从该交互中学习(仅针对该交互训练模型)。我该怎么办?

当前实施方式

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

我希望对此有一些解决方案。

谢谢

2 个答案:

答案 0 :(得分:3)

您不需要重新初始化图形。当请求输出张量时,Tensorflow不会明确知道您是在训练阶段还是测试阶段。相反,每当您评估优化器的操作(例如tf.train.AdamOptimizer,tf.train.GradientDescentOptimizer等)时,都会发生反向传播。

通常,您不会在测试期间执行此操作,因为您试图预测它在看不见的数据上的表现如何。但是,如果您想在做出初始预测后将这些数据添加到训练集中,则可以自由地这样做,只要您有一种获取真实值的方式即可计算误差张量。

即使在非在线学习中,也经常散布训练和测试通过:如果您使用验证集来确定提早停止,则在训练批次(您在进行反向传播)和验证批次(在您不这样做的情况下)之间进行交替t。

答案 1 :(得分:0)

根据您的描述:

例如,每当用户单击某个项目时,我都想立即记录该交互并从该交互中学习(仅为该交互训练模型)。我该怎么办?

  

您可能想做的是某种强化学习,   预训练模型的顶部。

接下来要研究的是OpenAI gym软件包。

在第一堂课中,here提供了有关如何将推荐系统与强化学习结合在一起的教程(免费审核)。