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