在没有历史数据的情况下训练神经网络

Training a neural network without historical data

我正在从头构建一个高度个性化的推荐系统,我没有用户和项目之间交互的历史数据。 然而,添加到系统的用户必须提供项目的标签列表:

  1. 他很喜欢;
  2. 他没有意见;
  3. 他不喜欢

然后,根据这些标签,我可以为第 1 组、第 2 组和第 3 组匹配一些项目

所以,我正在考虑从组 1.、组 2. 和组 3. 中抽样项目,并分别为它们分配目标值 1、0 和 -1,以训练我的神经网络。在训练步骤之后,我将获得一个针对每个用户高度个性化的神经网络,这将使我能够在没有历史数据的情况下开始推荐一些符合每个用户偏好的项目。

当然,当用户开始为推荐项目提供反馈时,我会更新网络以匹配他的新偏好。

话虽如此,这种方法有意义还是神经网络不是最适合这种特定情况的方法?

首先,你没有足够清楚地解释你的具体问题,这通常会导致你可能没有预料到的答案,但我会尽量提供一些有意义的信息,而不是简单的 42。

您没有说明,您希望推荐系统实现什么。现在还不清楚您打算根据什么向用户提供建议。用户 A 的偏好与所有其他应该推荐产品的用户偏好之间是否存在相关性,而用户 A 可能没有看到他可能喜欢的产品?

根据描述,这似乎是最有可能的情况。因此,您正在寻找 Netflix challenge usually called collaborative filtering 的某种解决方案。您所描述的模型比 Netflix 或 Amazon 拥有的数据简单得多,但它仍然无法在没有任何数据的情况下运行,因此最初的猜测将完全不成立并惹恼用户。我的一个朋友经常对其他喜欢这部电影的人也看过这部电影的推荐感到恼火——他说即使 Netflix 拥有大量数据和全面的推荐引擎,这总是错误的。因此,预计会有很多挫败感,甚至可能会遭到破坏(例如,当用户因推荐质量低下而故意提供不正确的反馈时)。避免这种情况的唯一方法是先通过征求反馈来收集数据,然后在收集到足够数量的样本后才给出建议。

我们正在慢慢解决所陈述的实际问题:神经网络是否是完成这项工作的好工具。如果您有足够数量的数据可以适合您描述的简单模型,并且有少量误报(不良建议)和大量真阳性(正确建议)。您需要多少数据取决于产品的数量以及它们之间被喜欢和不喜欢的相关强度。如果您有 2 个没有相关性的产品,那么无论您收集多少数据都没有用。如果你把非常相似的产品放在一起,相关性会很强,但在所有产品之间平均分布,所以在你收集大量数据之前你将无法提供任何有用的建议,这些数据会被简单地过滤掉一些劣质货。最好的情况是一种高度相关但又截然不同的产品(比如高端山地自行车和 go-pro cam)。这些应该根据其他用户偏好可靠地链接起来。

因此,如果没有进一步的信息,您将无法获得很多有用的见解。您所描述的内容(如果空白部分已在一定程度上正确填写)是有道理的,但它是否有效以及您需要多少数据将真正取决于所涉及的产品和用户的具体情况。

希望对您有所帮助。