我正在使用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)