我正在从事一项分类任务,我想将推文分类为 5 个不同的类别。我正在关注用于构建模型的Keras Github IMDB 分类示例,但想修改Embedding
此模型中的层。我没有将用于初始化的权重传递给Embedding
层,而是使用 word2vec 权重来查找我的数据集中的每条推文,因此我可以为每条推文构造一个 (tweet_words x vector_dimension) 矩阵。
例如,“我已经厌倦了听到关于这次选举#tuningout”的推文将表示为如下矩阵:
vector_dim1 vector_dim2 vector_dim3 ... vector_dimN
I'm value1 value2 value3 valueN
so value1 value2 value3 valueN
tired (... and so on...)
of
hearing
about
this
election
#tuningout
我正在执行此查找,因为我有针对不同国家/地区分别学习的嵌入,并且我想根据推文的位置查找特定的嵌入,而不是将权重从联合嵌入传递到Embedding
层进行初始化。我可以使用以下 Keras 架构将这样的矩阵直接传递给一个非常简单的 LSTM:
model = Sequential()
# layer here would normally be:
# model.add(Embedding())
model.add(LSTM(width, input_shape=(max_len, 100), dropout_W=0.2, dropout_U=0.2))
model.add(Dense(class_size))
model.add(Activation(activation))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
但是,与链接中的示例相比,它的缺点是该架构无法进一步优化Embedding
层。有没有办法将每条推文的这些矩阵传递给嵌入层以进行进一步优化,如示例中所示?谢谢阅读。