Làm thế nào là lớp nhúng được đào tạo trong lớp nhúng Keras? (nói sử dụng phụ trợ kéo căng, nghĩa là nó tương tự như word2vec, găng tay hoặc fasttext)
Giả sử chúng tôi không sử dụng nhúng nhúng trước.
Làm thế nào là lớp nhúng được đào tạo trong lớp nhúng Keras? (nói sử dụng phụ trợ kéo căng, nghĩa là nó tương tự như word2vec, găng tay hoặc fasttext)
Giả sử chúng tôi không sử dụng nhúng nhúng trước.
Câu trả lời:
Các lớp nhúng trong Keras được đào tạo giống như bất kỳ lớp nào khác trong kiến trúc mạng của bạn: chúng được điều chỉnh để giảm thiểu chức năng mất bằng cách sử dụng phương pháp tối ưu hóa đã chọn. Sự khác biệt chính với các lớp khác, là đầu ra của chúng không phải là một hàm toán học của đầu vào. Thay vào đó, đầu vào của lớp được sử dụng để lập chỉ mục một bảng với các vectơ nhúng [1]. Tuy nhiên, công cụ phân biệt tự động cơ bản không có vấn đề gì để tối ưu hóa các vectơ này để giảm thiểu chức năng mất ...
Vì vậy, bạn không thể nói rằng lớp Nhúng trong Keras đang hoạt động giống như word2vec [2]. Hãy nhớ rằng word2vec đề cập đến một thiết lập mạng rất cụ thể, cố gắng học cách nhúng để nắm bắt ngữ nghĩa của các từ. Với lớp nhúng của Keras, bạn chỉ đang cố gắng giảm thiểu chức năng mất, vì vậy, nếu bạn đang làm việc với một vấn đề phân loại tình cảm, thì việc nhúng có thể sẽ không nắm bắt được ngữ nghĩa từ hoàn chỉnh mà chỉ là sự phân cực cảm xúc của họ ...
Ví dụ, hình ảnh sau đây được lấy từ [3] cho thấy việc nhúng ba câu với lớp Nhúng Keras được đào tạo từ đầu như một phần của mạng được giám sát được thiết kế để phát hiện các tiêu đề clickbait (trái) và nhúng word2vec được đào tạo trước (phải). Như bạn có thể thấy, các từ nhúng word2vec phản ánh sự giống nhau về ngữ nghĩa giữa các cụm từ b) và c). Ngược lại, các phần nhúng được tạo bởi lớp Nhúng của Keras có thể hữu ích cho việc phân loại, nhưng không nắm bắt được sự tương đồng về ngữ nghĩa của b) và c).
Điều này giải thích tại sao khi bạn có số lượng mẫu đào tạo hạn chế, có thể nên khởi tạo lớp Nhúng của bạn với trọng số word2vec , vì vậy ít nhất mô hình của bạn nhận ra rằng "Alps" và "Himalaya" là những thứ tương tự, ngay cả khi chúng không Cả hai xảy ra trong câu của tập dữ liệu đào tạo của bạn.
[1] Lớp 'Nhúng' của Keras hoạt động như thế nào?
[2] https://www.tensorflow.org/tutorials/word2vec
[3] https://link.springer.com/article/10.1007/s10361-017-1109-7
LƯU Ý: Trên thực tế, hình ảnh hiển thị kích hoạt của lớp sau lớp Nhúng, nhưng với mục đích của ví dụ này, điều đó không quan trọng ... Xem thêm chi tiết trong [3]
Lớp nhúng chỉ là một hình chiếu từ 1-vector-nóng rời rạc và rời rạc vào một không gian tiềm ẩn liên tục và dày đặc. Nó là một ma trận của (n, m) trong đó n là kích thước từ vựng của bạn và n là kích thước không gian tiềm ẩn mong muốn của bạn. Chỉ trong thực tế, không cần thực sự nhân ma trận, và thay vào đó bạn có thể tiết kiệm tính toán bằng cách sử dụng chỉ mục. Vì vậy, trong thực tế, nó là một lớp ánh xạ các số nguyên dương (chỉ số tương ứng với các từ) thành các vectơ dày đặc có kích thước cố định (các vectơ nhúng).
Bạn có thể huấn luyện nó để tạo ra một nhúng Word2Vec bằng cách sử dụng Skip-Gram hoặc CBOW. Hoặc bạn có thể huấn luyện nó về vấn đề cụ thể của mình để có được sự phù hợp cho nhiệm vụ cụ thể trong tay. Bạn cũng có thể tải các phần nhúng được đào tạo trước (như Word2Vec, GloVe, v.v.) và sau đó tiếp tục đào tạo về vấn đề cụ thể của bạn (một hình thức học chuyển giao).