Градиентный спуск и обратное распространение ч / б встраиваемый слой в Keras и Word2Vec от Gensim - PullRequest
0 голосов
/ 28 июня 2018

Я работал над набором данных Amazon Sentiment Classification, где я должен предсказать настроение на основе предоставленных отзывов. Однако я экспериментировал с двумя методами, один с обычным слоем Embedding от Keras, и это моя архитектура:

model = Sequential()
model.add(Embedding(MAX_NB_WORDS, 128))
model.add(LSTM(128, dropout=0.2, recurrent_dropout=0.2,input_shape=(1,)))
model.add(Dense(1, activation='sigmoid'))

А следующий, который я пробовал с Word2Vec из gensim.models. Вот мой код:

from gensim.models import Word2Vec
word_model = Word2Vec(df['reviewText'], size=200, min_count = 1, window = 5,sg=0, negative=5)
WV_DIM = 100
nb_words = min(MAX_NB_WORDS, len(word_vectors.vocab))
# we initialize the matrix with random numbers
wv_matrix = (np.random.rand(nb_words, WV_DIM) - 0.5) / 5.0
for word, i in word_index.items():
    if i >= MAX_NB_WORDS:
        continue
    try:
        embedding_vector = word_vectors[word]
        # words not found in embedding index will be all-zeros.
        wv_matrix[i] = embedding_vector
    except:
        pass    
model = Sequential()
model.add(Embedding(nb_words,
                     WV_DIM,
                     mask_zero=False,
                     weights=[wv_matrix],
                     input_length=MAX_SEQUENCE_LENGTH,
                     trainable=False))
model.add(LSTM(128, dropout=0.2, recurrent_dropout=0.2,input_shape=(1,)))
model.add(Dense(1, activation='sigmoid'))

Но я не могу понять, в чем разница ч / б, просто используя model.add(Embedding(..)) и word2vec вместе с Embedding. Я хочу знать математику, стоящую за работой слоя Embedding Кераса, и как работает word2vec + Embedding.

Я прочитал этот пост , чтобы понять, как работает слой встраивания Keras, но я хочу понять для него градиентный спуск и обратное распространение, а также комбинацию word2vec и Embedding.

P.S. Для обоих кодов, которые я дал, я пропустил части tokenize и pad_sequence.

...