Ich bin etwas verwirrt über die ordnungsgemäße Verwendung der Einbettungsebene in Keras für seq2seq-Zwecke (ich möchte das Tutorial zur maschinellen Übersetzung von TensorFlow se2seq in Keras rekonstruieren ). Meine Fragen sind folgende:
Ich verstehe, dass durch das Einbetten von Ebenen Wortwerte in einem Satz in eine Darstellung mit fester Dimension umgewandelt werden. Ich beobachte jedoch zwei unterschiedliche Verwendungsmöglichkeiten von Einbettungsebenen: Eine auf der einen Seite (wie dieses Tutorial im Keras-Blog ) verwendet externe vorab trainierte word2vec-Vektoren über den weights
Parameter:
from keras.layers import Embedding
embedding_layer = Embedding(len(word_index) + 1,
EMBEDDING_DIM,
weights=[embedding_matrix],
input_length=MAX_SEQUENCE_LENGTH,
trainable=False)`
In anderen Fällen gibt es keine solche externe Ausgabe, aber die Benutzer verlassen einfach die Einbettungsebene, um die Darstellungsvektoren zu bestimmen. Ich verstehe nicht, was der wirkliche Unterschied zwischen diesen Ansätzen in Bezug auf das gewünschte Ergebnis ist. Vielleicht ist die nur interne Lösung keine semantische Darstellung? Was bringt es, eine Einbettungsschicht auf eine externe Matrix anzuwenden, deren Zeilen bereits eine feste Länge haben?
Was ist außerdem der Zweck / die Wirkung des trainable
Parameters der Einbettungsschicht? Bin ich richtig davon ausgegangen, dass diese Einstellung auf True die Einbettungsebene die importierten word2vec-Gewichte fein abstimmen lässt, um die tatsächlichen Trainingsbeispiele zu berücksichtigen?
Wie kann man die Einbettungsschicht anweisen, "Metazeichen" richtig zu codieren? Wenn Sie den mask_zero
Parameter True setzen, kann er Auffüllnullen enthalten, aber was ist mit UNK (unbekannt), EOS (Ende des Satzes)? (Übrigens kann ich nicht verstehen, wozu das Satzende in einer satzbasierten Eingabe explizit signiert werden soll ...)
Und schließlich: Wie könnte ein Modell die Übersetzung eines Wortes vorhersagen, das nicht im Trainingssatz enthalten ist? Versucht es, es mit dem "nächsten" im Vokabular zu approximieren?