keras:在源内部计算出权重以输入乘法

时间:2019-04-18 19:17:26

标签: python tensorflow keras collaborative-filtering

直觉:

我创建了一个Autoencoder,尽管它是针对电影用户的评分矩阵。我正在尝试使用协作过滤(CF)在预测时重新创建输出。

数据集:

下面的数据集是输入的方式。我在这里将其转换为Pivot矩阵: 我们将其称为 for c in df.columns: df[c] = df[c].fillna(df["sensor3"]) df

A_set

还将创建其转置,其中MovieId 1 2 3 4 5 6 7 ... UserId 0 5.0 0.0 0.0 0.0 2.0 0.0 0.0 ... 1 0.0 0.0 0.0 2.0 2.0 0.0 0.0 ... 2 5.0 0.0 1.0 0.0 0.0 0.0 0.0 ... 3 1.0 0.0 0.0 0.0 3.0 0.0 3.0 ... 在行中,MovieIds在列中。我们将其称为 UserIds

调查问卷:

在此之上,我有以下查询:

  • 在神经网络中为自动编码器(使用Keras制造)提供输入时,什么集合(A / B)可以称为协作过滤(CF)?
  • 我试图区分基于用户的CF和基于项目的CF
  • 现在我在内部知道下面的公式如何在数学上起作用。我只是不确定在Keras / TF代码中是否也能以相同的方式工作。我应该考虑将哪一个(A / B组)作为我的CF?
  

Y = Theta(转置)。输入(X)+ C

  • Theta是权重矩阵,我需要查看代码是否转置了Theta矩阵,然后求解方程式,或者它已经转置了,因此我给出的输入必须为 B_set 为CF伸张正义。

我尝试提供 B_set 作为输入,然后还在对输入进行训练/建模后检查权重。检查代码段:

A_set

现在这很有道理,这可能是在Keras源代码中的某个地方进行转置(请指出我的位置!),否则Matrix乘法将是不可能的。然而,关于哪个(A / B集)可以称为CF的问题仍然悬而未决。

0 个答案:

没有答案