Neural network 使用神经网络提供建议

Neural network 使用神经网络提供建议,neural-network,deep-learning,artificial-intelligence,recommendation-engine,fann,Neural Network,Deep Learning,Artificial Intelligence,Recommendation Engine,Fann,所以我开始使用FANN()来创建一个简单的推荐引擎 比如说, 用户X与ID为[1,2,3] 其他用户与以下ID有关系: 用户A:[1,2,3,4] 用户B:[1,2,3,4] 因此,很自然,用户X也有可能对id为4的记录感兴趣,并且它应该是推荐引擎的期望输出 感觉这将是一个神经网络可以完成的事情。然而,通过试用FANN和谷歌搜索,似乎需要和数据和结果建立某种数学关系。这里有ID,没有;ID也可以是任何符号 问题:是否可以用神经网络解决此类问题?我应该从哪里开始寻找解决方案 你要找的是某种递归

所以我开始使用FANN()来创建一个简单的推荐引擎

比如说,

用户X与ID为
[1,2,3]

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

  • 用户A:
    [1,2,3,4]
  • 用户B:
    [1,2,3,4]
因此,很自然,用户X也有可能对id为
4
的记录感兴趣,并且它应该是推荐引擎的期望输出

感觉这将是一个神经网络可以完成的事情。然而,通过试用FANN和谷歌搜索,似乎需要和数据和结果建立某种数学关系。这里有ID,没有;ID也可以是任何符号


问题:是否可以用神经网络解决此类问题?我应该从哪里开始寻找解决方案

你要找的是某种递归神经网络;以某种方式存储“上下文”的网络。这类网络的例子将是和。因此,基本上,您必须按顺序输入数据。根据上下文和当前输入,网络将预测最可能的标签

似乎需要与数据和结果建立某种数学关系。这里有ID,没有;ID也可以是任何符号

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

那么它是如何工作的呢?首先,您需要对输入和输出进行热编码。因此,基本上,您要预测哪个标签最有可能位于用户已经交互过的一组标签之后

如果您有5个标签:A、B、C、D、E,这意味着您将有5个输入和输出:
[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
你应该训练网络,使INt的输出为INt+1