我正在从头开始构建高度个性化的推荐系统,在该系统中,我没有用户和项目之间交互的历史数据。 但是,添加到系统中的用户必须提供项目标签的列表:
然后,基于这些标签,我可以为组1、2和3匹配一些项目。
因此,我正在考虑从组1、2和3中进行抽样,并分别给它们分配目标值1、0和-1,以训练我的神经网络。经过培训之后,我将获得一个针对每个用户的高度个性化的神经网络,尽管我没有历史数据,但我仍可以开始推荐一些与每个用户的偏好相匹配的项目。
当然,当用户开始提供建议项目的反馈时,我将更新网络以匹配他的新偏好。
话虽这么说,这种方法是否有意义,或者神经网络不是最适合此特定情况的?
答案 0 :(得分:5)
首先,您没有清楚地解释您的具体问题,通常会导致您可能没有想到的答案,但是我将尝试给出一些有意义的信息,而不是简单的42。
>您未指定,您希望推荐系统实现什么。现在,根据您打算向用户提供建议的确切范围还不清楚。用户A偏好与应该建议产品的所有其他用户偏好之间是否存在关联,而用户A可能不会看到他可能喜欢的产品?
根据描述,这似乎是最有可能的情况。因此,您正在寻找通常称为Netflix challenge的collaborative filtering解决方案。所描述的模型比Netflix或Amazon的数据要简单得多,但是如果没有任何数据,它仍然无法运行,因此最初的猜测将完全消失并且使用户烦恼。我的一位朋友一直被其他喜欢这部电影的人也看过的推荐而烦恼-他说,即使Netflix有大量数据和全面的推荐引擎,这总是错的。因此,请期待很多挫败感,甚至可能是故意破坏行为(例如,由于推荐质量较差,用户故意提供错误的反馈)。避免这种情况的唯一方法是先收集反馈信息,然后在收集到足够数量的样本后才给出建议。
我们正在慢慢地解决上述实际问题:神经网络是否是完成这项工作的好工具。如果您具有足够的数据量,可以满足您所描述的简单模型的需要,则需要少量的误报(不良建议)和大量的真实肯定(正确建议)。您需要多少数据取决于喜欢和不喜欢的产品数量以及它们之间的相关程度。如果您有2个产品没有关联,那么无论您收集多少数据,都将无济于事。如果您将所有非常相似的产品放在一起,则相关性将很强,但在所有产品之间的相关性均将分散,因此,再次您将无法提供任何有用的建议,除非您收集了大量的数据,而这些数据只会被过滤掉一些差的商品。最好的情况是一种高度相关但又截然不同的产品(例如高端山地自行车和go-pro cam)。这些应该根据其他用户的偏好可靠地链接。
因此,如果没有更多信息,您将不会获得太多有用的见解。您所描述的内容,如果正确地填入了空白是有道理的,但是它将起作用,您将需要多少数据,实际上取决于所涉及产品和用户的具体情况。
希望对您有帮助。