1

我正在从事一项分类任务,我想将推文分类为 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层。有没有办法将每条推文的这些矩阵传递给嵌入层以进行进一步优化,如示例中所示?谢谢阅读。

4

0 回答 0