Tensorflow:如何在每个训练实例中查找和平均不同数量的嵌入向量,并且每个小批量有多个训练实例?

时间:2018-09-27 22:09:22

标签: tensorflow embedding-lookup

在推荐系统设置中:假设我想学习使用Youtube's recommender system启发的方法,根据用户过去的购买量来预测将来的商品购买量:

enter image description here

具体来说,我有一个基于内容的可训练的网络,该网络接收一项作为输入,并根据其内容返回该项目的嵌入。现在,假设每个用户过去购买了可变数量的商品(有些用户可能购买了5件商品,其他用户可能购买了1件商品,其他用户可能购买了10件商品,某些离群用户也许购买了100件,等等)。我想生成一个用户向量,一个候选项目向量,然后一个用户项目匹配分数,如下所示:

  1. 我使用可训练的基于内容的网络将该用户购买的每个商品映射到其嵌入式商品向量中
  2. 我计算所有嵌入项目向量的平均值(如图所示)
  3. 我在此平均值的基础上应用了几个ReLu层,从而获得了用户向量
  4. 我使用步骤1中相同的基于内容的可训练网络将候选项目(建议)映射到其嵌入式项目矢量(此网络的权重始终是共享的,就像暹罗网络一样)可以这么说)
  5. 最后,我计算用户向量和候选项目向量之间的点积,在训练过程中应用交叉熵损失,等等。

所以我的问题是有关如何使用Tensorflow实施嵌入查询以及每个用户可变数量的嵌入式项目向量的平均值的技术细节。例如,考虑一个具有100个训练实例的小批量生产。迷你批次中的每个培训实例可能由不同的用户组成,过去该用户具有不同数量的购买商品。尽管上下文有所不同,但我的问题与this one非常相似,但是很遗憾,到目前为止,没有人回答过这个问题。

0 个答案:

没有答案