Tôi hơi bối rối về cách sử dụng đúng cách của lớp Nhúng trong Keras cho mục đích seq2seq (Tôi muốn xây dựng lại hướng dẫn dịch máy Se2seq của TensorFlow trong Keras). Câu hỏi của tôi là như sau:
Tôi hiểu rằng các lớp Nhúng biến các giá trị từ trong câu thành biểu diễn có chiều dài cố định. Nhưng tôi quan sát hai cách sử dụng khác nhau của các lớp Nhúng: một mặt (như hướng dẫn này trên Blog của Keras ) sử dụng các vectơ word2vec được đào tạo bên ngoài thông qua weights
tham số:
from keras.layers import Embedding
embedding_layer = Embedding(len(word_index) + 1,
EMBEDDING_DIM,
weights=[embedding_matrix],
input_length=MAX_SEQUENCE_LENGTH,
trainable=False)`
trong khi trong các trường hợp khác không có đầu ra bên ngoài như vậy nhưng người dùng chỉ cần rời khỏi lớp Nhúng để quyết định các vectơ đại diện. Tôi không hiểu sự khác biệt thực sự giữa các phương pháp này liên quan đến kết quả mong muốn là gì? Có lẽ giải pháp chỉ nội bộ không phải là một đại diện ngữ nghĩa? Điểm áp dụng lớp nhúng vào một ma trận bên ngoài mà các hàng đã có chiều dài cố định là gì?
Hơn nữa, mục đích / tác dụng của trainable
tham số của lớp Nhúng là gì? Tôi có đoán đúng rằng tập hợp này thành True cho phép lớp Nhúng tinh chỉnh trọng số word2vec đã nhập để xem xét các ví dụ đào tạo thực tế không?
Hơn nữa, làm thế nào để hướng dẫn lớp Nhúng để mã hóa đúng "siêu ký tự"? Đặt mask_zero
tham số Đúng, nó có thể kết hợp các số 0 đệm nhưng còn UNK (chưa biết), EOS (Kết thúc câu) thì sao? (Nhân tiện, tôi không thể hiểu đâu là điểm cần ký rõ ràng kết thúc câu trong đầu vào dựa trên câu ...)
Và cuối cùng: làm thế nào một người mẫu có thể dự đoán bản dịch của một từ không được trình bày trong tập huấn luyện? Có phải nó đang cố gắng xấp xỉ nó với từ "gần nhất" trong từ vựng không?