使用Keras向序列添加其他信息

时间:2018-08-21 09:19:45

标签: python neural-network keras lstm

我正在使用Keras LSTM构建推荐系统。我有[0, 0, 0, 0, 1, 1, 3]padding='pre'形式的用户意见。每个整数值(0除外)都是商品ID,整个矢量都是用户的观看历史记录。我需要预测下一项。网络:

model = Sequential()
model.add(Embedding(vocab_size, 100, input_length=max_length-1))
model.add(LSTM(64))
model.add(Dense(vocab_size, activation='softmax'))

vocab_size是一组所有唯一项。总共大约有200万个商品,但现在我使用的是100K。

我想向网络添加其他信息(项目标签)。共有1M个唯一标签。使用Keras将项目和一组标签配对的最佳方法是什么?例如,这不起作用(我认为),因为我们不知道哪个项目具有哪个标签集:

x_id_input = Input(shape=...)
x_id_emb = Embedding(id_vocab_size, 100)(x_id_input)
x_tag_input = Input(shape=...)
x_tag_emb = Embedding(tag_vocab_size, 100)(x_tag_input)
x = concatenate([x_id_emb, x_tag_emb])
x = LSTM(64)(x)
x_output = Dense(vocab_size, activation='softmax')(x)
model = Mode(inputs=[x_id_input, x_tag_input], outputs=x_output)

0 个答案:

没有答案