如何在多个目标上训练神经网络?

数据挖掘 机器学习 神经网络 深度学习 张量流 火炬
2022-02-16 05:40:09

我有一个具有 K 类(产品)的多类神经网络分类器。对于每一行,一次只有一个类是 1。现在,如果我只有一个优化目标,即用户“点击”了这 N 个产品中的哪一个,这种方法可以正常工作。

但是,如果我需要优化第二个目标,即用户“购买”了这 N 个产品中的哪一个,我将如何解决这个问题?

购买事件之前总是有一个点击事件。我显然可以通过训练两个单独的模型来解决这个问题——一个用于点击,另一个用于购买。但是与点击数据相比,购买数据非常低。我们在生产中运行购买模型。它表现不佳。

那么我如何同时获取点击和购买数据,并将我的问题描述为“这 N 个产品中的哪些将被用户点击并可能购买”?并训练一个模型。

这方面的任何资料或论文都会非常有帮助。

1个回答

您所指的是多任务学习,您的目标是让单个网络学习多个任务(在您的情况下为“点击”和“购买”)。

让单个模型学习两个任务的好处是网络可以使用为一个任务提取的信息来提高其在另一个任务上的性能。

从技术上讲,您需要您的网络有两个输出层(即一个用于预测“点击”,一个用于“购买”)和两个损失函数(每个目标一个)。这些损失函数通常对总损失的贡献相同,除非您不想考虑两个同等重要的任务。

如果您使用的是 keras,可以在此处找到多输出模型的示例。