Encoder (Transformer) (VI)

From Systems analysis Wiki
Jump to navigation Jump to search

Bộ mã hóa (tiếng Anh: Encoder) — trong Machine Learning và học sâu, đây là thành phần của Neural Network có nhiệm vụ chính là chuyển đổi chuỗi dữ liệu đầu vào (ví dụ: văn bản hoặc hình ảnh) thành một biểu diễn số phong phú, thường được gọi là trạng thái ẩn, vector ngữ cảnh hoặc embedding. Biểu diễn này nắm bắt các đặc trưng và ngữ nghĩa quan trọng của dữ liệu đầu vào dưới dạng thuận tiện cho quá trình xử lý tiếp theo.

Theo nghĩa rộng hơn, trong lý thuyết thông tin, bộ mã hóa là bất kỳ thiết bị hoặc thuật toán nào chuyển đổi thông tin từ định dạng này sang định dạng khác, thường nhằm mục đích nén hoặc truyền tải.

Khái niệm và mục đích

Mục tiêu chính của bộ mã hóa trong Neural Network là trích xuất các đặc trưng hữu ích từ dữ liệu đầu vào và "mã hóa" chúng thành một vector dày đặc có độ dài cố định. Quá trình này có thể được coi là một dạng giảm chiều phi tuyến, trong đó dữ liệu đầu vào có chiều cao và thưa thớt (ví dụ: văn bản được biểu diễn bằng các vector one-hot) được chuyển đổi thành không gian vector có chiều thấp nhưng giàu thông tin (không gian tiềm ẩn).

Vector được mã hóa này sau đó có thể được sử dụng:

  • Bởi bộ giải mã để tạo ra chuỗi mới (ví dụ: trong dịch máy).
  • Bởi bộ phân loại để giải quyết các bài toán phân tích (ví dụ: xác định sắc thái cảm xúc của văn bản).
  • Cho các bài toán yêu cầu hiểu toàn bộ ngữ cảnh đầu vào.

Bộ mã hóa trong các kiến trúc khác nhau

Bộ mã hóa trong autoencoder

Một trong những ví dụ điển hình là kiến trúc autoencoder. Nó bao gồm hai phần:

  1. Bộ mã hóa: Nén dữ liệu đầu vào thành biểu diễn ẩn có chiều thấp hơn (mã tiềm ẩn).
  2. Bộ giải mã: Cố gắng tái tạo lại dữ liệu gốc từ biểu diễn nén này.

Bằng cách huấn luyện mạng như vậy để giảm thiểu lỗi tái tạo, bộ mã hóa học cách trích xuất các đặc trưng quan trọng nhất từ dữ liệu.

Bộ mã hóa trong mạng Neural hồi quy (RNN/LSTM)

Trước khi kiến trúc Transformer ra đời, các bộ mã hóa trong các bài toán xử lý chuỗi (seq2seq) được xây dựng dựa trên mạng Neural hồi quy (RNN) hoặc biến thể cải tiến của chúng là LSTM.

  • Nguyên lý hoạt động: Bộ mã hóa RNN xử lý chuỗi đầu vào từng token một. Ở mỗi bước, nó cập nhật trạng thái ẩn của mình, kết hợp thông tin về token hiện tại và trạng thái trước đó. Trạng thái ẩn cuối cùng thu được sau khi xử lý toàn bộ chuỗi được coi là vector mã hóa ý nghĩa của toàn bộ chuỗi đầu vào. Vector này thường được gọi là vector ngữ cảnh hay "vector suy nghĩ" (thought vector).

Bộ mã hóa trong kiến trúc Transformer

Cuộc cách mạng trong xử lý ngôn ngữ tự nhiên gắn liền với sự xuất hiện của bộ mã hóa dựa trên kiến trúc Transformer. Khác với RNN, nó xử lý tất cả các token của chuỗi một cách song song.

Bộ mã hóa Transformer bao gồm một ngăn xếp (N) các lớp giống hệt nhau. Mỗi lớp có hai lớp con chính:

  1. Cơ chế tự chú ý đa đầu (Multi-Head Self-Attention): Cơ chế này cho phép mỗi token trong chuỗi đầu vào "chú ý" đến tất cả các token khác và đánh trọng số tầm quan trọng của chúng để hình thành biểu diễn ngữ cảnh của chính nó. Điều này cho phép mô hình nắm bắt các phụ thuộc phức tạp giữa các từ, bất kể vị trí của chúng.
  2. Mạng Neural kết nối đầy đủ (Feed-Forward Network): Được áp dụng riêng cho biểu diễn của từng token để thực hiện biến đổi phi tuyến tiếp theo.

Điểm khác biệt chính của bộ mã hóa Transformer so với bộ mã hóa RNN là ở đầu ra, nó không tạo ra một vector ngữ cảnh duy nhất mà là một chuỗi các vector được ngữ cảnh hóa — một vector cho mỗi token đầu vào. Mỗi vector như vậy chứa thông tin về token của nó trong ngữ cảnh của toàn bộ chuỗi.

Các loại mô hình dựa trên bộ mã hóa

Mô hình encoder-decoder

Đây là kiến trúc cổ điển cho các bài toán chuyển đổi chuỗi sang chuỗi (seq2seq), chẳng hạn như dịch máy hoặc tóm tắt văn bản.

  • Nguyên lý hoạt động: Bộ mã hóa xử lý toàn bộ chuỗi đầu vào (ví dụ: câu trong ngôn ngữ nguồn). Các biểu diễn đầu ra của nó sau đó được truyền cho bộ giải mã, bộ này sử dụng chúng để tạo ra chuỗi đầu ra theo kiểu hồi quy tự động (câu trong ngôn ngữ đích). Bộ giải mã "nhìn" vào đầu ra của bộ mã hóa thông qua cơ chế đặc biệt gọi là cross-attention (chú ý chéo).
  • Ví dụ: Transformer gốc, T5, BART.

Mô hình chỉ-encoder (Encoder-Only)

Các mô hình này sử dụng duy nhất ngăn xếp encoder của Transformer.

  • Nguyên lý hoạt động: Chúng được thiết kế cho các bài toán đòi hỏi hiểu sâu ngữ cảnh của toàn bộ văn bản đầu vào. Nhờ bản chất hai chiều của cơ chế tự chú ý, chúng tạo ra các biểu diễn ngữ cảnh phong phú cho từng token.
  • Ứng dụng: Lý tưởng cho các bài toán phân tích và hiểu ngôn ngữ (NLU), chẳng hạn như:
    • Phân loại văn bản (ví dụ: phân tích sắc thái cảm xúc).
    • Nhận dạng thực thể có tên (NER).
    • Trả lời câu hỏi (Question Answering), trong đó câu trả lời là một đoạn trích từ văn bản.
  • Ví dụ: BERT và các biến thể của nó (RoBERTa, ALBERT).

Mối quan hệ với bộ giải mã

Trong kiến trúc encoder-decoder, bộ mã hóa và bộ giải mã thực hiện các vai trò bổ sung cho nhau:

  • Bộ mã hóa chịu trách nhiệm hiểu chuỗi đầu vào.
  • Bộ giải mã chịu trách nhiệm tạo ra chuỗi đầu ra.

Mắt xích liên kết chính giữa chúng là cơ chế cross-attention (chú ý chéo) bên trong bộ giải mã. Ở mỗi bước tạo sinh, bộ giải mã hình thành một truy vấn (Query) dựa trên phần chuỗi đầu ra đã được tạo ra và sử dụng nó để "chú ý" đến các biểu diễn đầu ra của bộ mã hóa (đóng vai trò là khóa và giá trị — Key và Value). Điều này cho phép bộ giải mã tập trung vào các phần liên quan nhất của chuỗi đầu vào để tạo ra token tiếp theo.

Tài liệu tham khảo

  • Hinton, G. E.; Salakhutdinov, R. R. (2006). Reducing the Dimensionality of Data with Neural Networks. Science. DOI:10.1126/science.1127647.
  • Cho, K. et al. (2014). Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation. arXiv:1406.1078.
  • Sutskever, I.; Vinyals, O.; Le, Q. V. (2014). Sequence to Sequence Learning with Neural Networks. arXiv:1409.3215.
  • Bahdanau, D.; Cho, K.; Bengio, Y. (2015). Neural Machine Translation by Jointly Learning to Align and Translate. arXiv:1409.0473.
  • Kingma, D. P.; Welling, M. (2014). Auto-Encoding Variational Bayes. arXiv:1312.6114.
  • Vaswani, A. et al. (2017). Attention Is All You Need. arXiv:1706.03762.
  • Devlin, J. et al. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. arXiv:1810.04805.
  • Dai, Z. et al. (2019). Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context. arXiv:1901.02860.
  • Raffel, C. et al. (2020). Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. arXiv:1910.10683.
  • Brown, T. B. et al. (2020). Language Models Are Few-Shot Learners. arXiv:2005.14165.
  • Dosovitskiy, A. et al. (2020). An Image is Worth 16×16 Words: Transformers for Image Recognition at Scale. arXiv:2010.11929.

Xem thêm

  • BERT