以神经网络的误报为推荐系统结果?

数据挖掘 机器学习 神经网络 推荐系统 监督学习 k-nn
2022-03-10 01:41:54

我正在创建一个推荐系统并考虑两种并行的方式来形式化问题。一个经典的,使用接近度(如果最近的 2k+1 个客户的多数票拥有该产品,则向客户推荐该产品),另一个我难以理解但在某种程度上似乎有效的另一个。

我正在考虑的方法是:

1) 为分类任务拟合一个高度正则化的神经网络(以确保它不会过度拟合训练集),该分类任务可以预测该人是否有给定产品

2) 确保测试准确度尽可能接近训练准确度

3) 以对整个数据集(以及训练集)预测的误报(最初没有产品但 NN 预测他们拥有产品的客户)作为结果——我应该向这些人推荐产品

现在,我知道为什么一般人不想采用这种方法,但我也无法准确解释为什么它不会让“应该”以类似方式提供产品的人“靠近”彼此感觉就像基于 KNN 的方法。我不确定如何准确分析这个问题以完全验证、修改或拒绝这个想法。

2个回答

1)是回归,而不是分类。

您应该尝试从决策树的角度而不是 NN 来考虑它。您对客户的属性是该客户的所有产品以及有关该客户的所有附加信息。

由于任务是回归,决策树的所有叶子都将具有标签 0(如果决策路径导致客户没有产品的声明)或标签 1 如果决策路径导致声明客户有产品。

在构建决策树时,我们从根开始,我们必须决定将哪个属性用作第一个节点,所有客户将根据他们所选属性的值从该节点选择相应的分支。该属性是通过使用熵计算具有最高信息增益值的属性来选择的。这仅仅意味着我们选择属性,将客户划分为多个集合,其中每个集合理想情况下具有相同数量的客户,分别为 0 和 1。

对于从父节点分支的每个新节点,只要有一个属性留下的信息增益高于阈值或当树变得很深(因为它是 NP 完全的),就会重复此操作。现在我们在每个叶子上计算零和一的数量,并将叶子标记为 max(0,1)。得出的结论是:如果一个客户虽然是 0,但还是落在了 1 片叶子上,则该客户的最高信息增益属性与通常为 1 的客户具有相同的值。

我将尝试解释这两种方法背后的直觉。客户相似性通常基于与产品的交互(例如,查看、购买)。然后可以使用每个交互作为导致声称高的特征。客户的使用有助于我们避免明确提及产品,甚至避免直接在这个领域工作。P(HarryPotter2|HarryPotter1)

至于第二种方法,我认为它是基于很高的假设。这听起来很合理,如果你有正确的数据,你就可以用数字来确定它。因此,您有一个对所有权进行分类的模型,它是喜欢/购买物品的代理。P(Like|Own)

两种直觉都很好,但魔鬼隐藏在细节中。什么样的客户衡量标准适合您的数据?如何应对所有权的稀疏性。那是在人性更喜欢我们拥有的东西之前……

我认为你应该把你的工作分成小步骤,并在你前进的过程中为你的方向获取支持证据。通过这种方式,您将能够将这种直觉发展成一个工作系统。