seq2seqの目的でKerasの埋め込み層の適切な使用法を少し混乱しています(KerasでTensorFlow se2seq機械翻訳チュートリアルを再構築したいと思います)。私の質問は次のとおりです。
埋め込みレイヤーが文の単語値を固定次元長表現に変換することを理解しています。しかし、埋め込みレイヤーの2つの異なる使用法を観察します。1つは(Keras ブログのこのチュートリアルのように)、weights
パラメーターを介して外部の事前トレーニング済みのword2vecベクトルを利用します。
from keras.layers import Embedding
embedding_layer = Embedding(len(word_index) + 1,
EMBEDDING_DIM,
weights=[embedding_matrix],
input_length=MAX_SEQUENCE_LENGTH,
trainable=False)`
他のケースでは、そのような外部出力はありませんが、ユーザーは、埋め込みベクトルに進んで表現ベクトルを決定します。望ましい結果に関するこれらのアプローチの実際の違いは何ですか?たぶん内部のみのソリューションは意味論的表現ではありませんか?行がすでに固定長である外部マトリックスに埋め込み層を適用するポイントは何ですか?
さらに、trainable
埋め込みレイヤーのパラメーターの目的/効果は何ですか?これをTrueに設定すると、Embeddingレイヤーがインポートされたword2vecの重みを実際のトレーニング例を考慮に入れるように微調整できると思いますか?
さらに、「メタ文字」を適切にエンコードするように埋め込みレイヤーに指示するにはどうすればよいですか?mask_zero
パラメータをTrueに設定すると、パディングゼロを組み込むことができますが、UNK(不明)、EOS(文の終わり)はどうなりますか?(ちなみに、文ベースの入力で文の終わりに明示的に署名するポイントが何であるか理解できません...)
そして最後に、トレーニングセットで表されていない単語の翻訳をモデルがどのように予測できるでしょうか。語彙で「最も近い」ものと近似しようとしていますか?