我正在使用Keras(tensorflow后端),想知道如何在Keras Sequential模型中添加多个嵌入层。
更具体地说,我的数据集中有几列具有分类值,我考虑使用独热编码,但已确定分类项的数量达到了数百个,导致列的数量太大且过于稀疏。寻找解决方案时,我发现Keras的嵌入层似乎非常优雅地解决了这个问题。然而,大多数示例(以及Keras文档)仅说明了一种具有单个嵌入层的简单情况。
不幸的是,我不知道如何将多个嵌入层整合成单个模型的输入。
我的代码看起来像这样,但它不起作用,我猜测多个嵌入层会依次执行(第一个嵌入层作为第二个嵌入层的输入等),而不是成为模型的多个输入源:
model = Sequential()
model.add(Embedding(500, 64, input_length=10)) # categorical col 1
model.add(Embedding(100, 64, input_length=10)) # categorical col 2
model.add(Embedding(500, 64, input_length=10)) # categorical col 3
model.add(Flatten...
model.add(Dense...
我的问题是如何建立一个Keras序列模型,使我能够使用上面显示的三个嵌入层。具体在第一层和最后一层之间应该放什么:
model = Sequential()
#
# What goes here?
#
model.add(Dense...
我是否走在正确的道路上,或者我的方法不正确,需要用不同的方式建立模型?欢迎提供任何建议/示例!