0

所以我开始玩FANN(http://leenissen.dk/)以创建一个简单的推荐引擎。使用神经网络提供建议

例如,

用户X与IDS关系记录[1, 2, 3]

其他用户有关系到以下ID:

  • 用户A:[1, 2, 3, 4]
  • 用户B:[1, 2, 3, 4]

这将是自然的,那么,有一些机会,用户X将有兴趣与ID 4以及记录,它应该是推荐引擎所需的输出。

感觉这将是一个神经网络可以完成的事情。然而,从试用FANN和Google搜索,似乎似乎需要与数据和结果形成一些数学关系。这里的ID没有; ID也可以是任何符号。

问题:是否有可能用神经网络来解决这类问题,我应该从哪里开始寻找解决方案?

回答

1

你在找什么是某种形式的递归神经网络;以某种方式或另一种方式存储“上下文”的网络。这种网络的例子是LSTMGRU。所以基本上,你必须依次输入你的数据。根据上下文和当前输入,网络将预测哪个标签最有可能。

似乎似乎需要与数据和结果有一些数学关系。这里的ID没有; ID也可以是任何符号。

数据和结果之间有明确的关系,这可以通过权重和偏差来表达。

那么它会如何工作?首先你需要编码你的输入和输出。所以基本上,您想要预测用户已经与之交互过的一组标签之后哪个标签最有可能。

如果您有5个标签:A,B,C,D,E,这意味着您将有5个输入和输出:[0, 0, 0, 0, 0]

如果您的标签为A,则数组将为[1, 0, 0, 0, 0],如果是D,则将为[0, 0, 0, 1, 0]

因此,LSTM和GRU的关键是数据应该是连续的。所以基本上,你输入所有看到的标签一个接一个。因此,如果用户已经观看了A,B和C:

activate: [1,0,0,0,0] 
activate: [0,1,0,0,0] 

// the output of this activation will be the next predicted label 
activate: [0,0,1,0,0] 
// output: [0.1, 0.3, 0.2, 0.7, 0.5], so the next label is D 

而且你应该总是训练网络,从而使在输出为吨+ 1