Kiến trúc encoder–decoder

From Systems analysis Wiki
Jump to navigation Jump to search

Mô hình bộ mã hóa-giải mã (tiếng Anh: Encoder-Decoder Models) — là một lớp kiến trúc mạng nơ-ron được thiết kế để giải quyết các bài toán chuyển đổi chuỗi sang chuỗi (sequence-to-sequence, seq2seq). Kiến trúc này bao gồm hai thành phần chính:

  • Bộ mã hóa (Encoder): Xử lý chuỗi đầu vào và nén nó thành một biểu diễn số compact (vector ngữ cảnh hoặc chuỗi các trạng thái ẩn).
  • Bộ giải mã (Decoder): Lấy biểu diễn đó và tạo ra chuỗi đầu ra dựa trên nó.

Kiến trúc này là nền tảng cho nhiều bài toán xử lý ngôn ngữ tự nhiên (NLP) và thị giác máy tính, chẳng hạn như dịch máy, tóm tắt văn bản và chú thích hình ảnh.

Khái niệm

Ý tưởng cốt lõi của kiến trúc Encoder-Decoder là tách biệt hai nhiệm vụ: thấu hiểusinh thành. Bộ mã hóa chịu trách nhiệm hiểu chuỗi đầu vào, trích xuất toàn bộ thông tin ngữ nghĩa cần thiết từ nó. Bộ giải mã chịu trách nhiệm tạo ra chuỗi mới, sử dụng thông tin được cung cấp bởi bộ mã hóa.

Điều này cho phép mô hình làm việc với các chuỗi có độ dài khác nhau ở đầu vào và đầu ra, điều vốn khó thực hiện với các kiến trúc trước đó.

Sự tiến hóa của kiến trúc

Các mô hình ban đầu dựa trên RNN/LSTM

Ban đầu, kiến trúc Encoder-Decoder được triển khai bằng cách sử dụng mạng nơ-ron hồi tiếp (RNN) hoặc biến thể cải tiến của chúng là LSTM.

  • Bộ mã hóa: RNN encoder xử lý chuỗi đầu vào theo từng token và tạo ra một vector ngữ cảnh duy nhất ở đầu ra — trạng thái ẩn sau khi xử lý token cuối cùng, được kỳ vọng chứa đựng thông tin về toàn bộ chuỗi.
  • Bộ giải mã: RNN decoder được khởi tạo bằng vector ngữ cảnh đó và tự hồi quy tạo ra chuỗi đầu ra.

Nhược điểm chính của phương pháp này là vấn đề "nút cổ chai": toàn bộ thông tin từ chuỗi đầu vào phải được nén vào một vector có độ dài cố định duy nhất, dẫn đến mất mát thông tin, đặc biệt với các chuỗi dài.

Giới thiệu cơ chế attention

Bước đột phá xảy ra với việc giới thiệu cơ chế attention (attention mechanism) (Bahdanau et al., 2014).

  • Nguyên lý hoạt động: Thay vì chỉ dựa vào một vector ngữ cảnh duy nhất, bộ giải mã ở mỗi bước sinh "chú ý" đến tất cả các trạng thái ẩn của bộ mã hóa. Nó tính toán các trọng số attention, cho biết phần nào của chuỗi đầu vào có liên quan nhất đến việc tạo ra token đầu ra hiện tại.
  • Ưu điểm: Điều này giải quyết vấn đề "nút cổ chai" và cho phép mô hình làm việc hiệu quả với các chuỗi dài, cải thiện đáng kể chất lượng, đặc biệt trong dịch máy.

Kiến trúc Transformer

Năm 2017, bài báo «Attention Is All You Need» đã giới thiệu kiến trúc Transformer, hoàn toàn từ bỏ tính hồi tiếp để ủng hộ cơ chế attention.

  • Bộ mã hóa Transformer: Bao gồm một ngăn xếp các lớp, mỗi lớp sử dụng self-attention để tạo ra các biểu diễn có ngữ cảnh cho từng token đầu vào.
  • Bộ giải mã Transformer: Bao gồm một ngăn xếp các lớp, mỗi lớp có hai loại cơ chế attention:
    • Masked self-attention: Để xử lý phần chuỗi đầu ra đã được tạo ra.
    • Cross-Attention (Attention chéo): Để "chú ý" đến các biểu diễn đầu ra của bộ mã hóa.

Kiến trúc này đã trở thành tiêu chuẩn cho các bài toán seq2seq nhờ hiệu suất cao và khả năng song song hóa tính toán.

Ứng dụng

Kiến trúc Encoder-Decoder là tiêu chuẩn cho nhiều loại bài toán:

  • Dịch máy: Chuyển đổi câu từ ngôn ngữ này sang ngôn ngữ khác.
  • Tóm tắt văn bản tự động: Tạo nội dung tóm tắt của một tài liệu dài.
  • Hệ thống hội thoại: Tạo ra phản hồi cho lượt nói của người dùng.
  • Chú thích hình ảnh (Image Captioning): Bộ mã hóa (thường dựa trên mạng nơ-ron tích chập) xử lý hình ảnh, còn bộ giải mã (thường là RNN hoặc Transformer) tạo ra mô tả văn bản của nó.
  • Nhận dạng giọng nói: Chuyển đổi tín hiệu âm thanh thành bản ghi chép dạng văn bản.

Các mô hình tiêu biểu

  • Transformer gốc (Vaswani et al., 2017): Mô hình đã giới thiệu kiến trúc này.
  • BART (Bidirectional and Auto-Regressive Transformers): Mô hình từ Facebook, được huấn luyện trước trên bài toán phục hồi văn bản "bị hỏng". Bộ mã hóa là hai chiều (như trong BERT), còn bộ giải mã là tự hồi quy (như trong GPT).
  • T5 (Text-to-Text Transfer Transformer): Mô hình từ Google, thống nhất tất cả các bài toán NLP bằng cách biểu diễn chúng như bài toán chuyển đổi văn bản sang văn bản. T5 đã đạt được kết quả xuất sắc trên nhiều benchmark.

So sánh với các kiến trúc khác

So sánh các kiến trúc chính dựa trên Transformer
Kiến trúc Nhiệm vụ chính Các thành phần Các mô hình tiêu biểu
Encoder-Decoder Chuyển đổi chuỗi sang chuỗi Bộ mã hóa + Bộ giải mã T5, BART, Transformer gốc
Chỉ bộ mã hóa Hiểu văn bản Chỉ bộ mã hóa BERT, RoBERTa
Chỉ bộ giải mã Sinh văn bản Chỉ bộ giải mã

Tài liệu tham khảo

  • Bahdanau, D. et al. (2014). Neural Machine Translation by Jointly Learning to Align and Translate. arXiv:1409.0473.
  • Sutskever, I. et al. (2014). Sequence to Sequence Learning with Neural Networks. arXiv:1409.3215.
  • Luong, M.-T. et al. (2015). Effective Approaches to Attention-based Neural Machine Translation. arXiv:1508.04025.
  • Wu, Y. et al. (2016). Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation. arXiv:1609.08144.
  • Vaswani, A. et al. (2017). Attention Is All You Need. arXiv:1706.03762.
  • Britz, D. et al. (2017). Massive Exploration of Neural Machine Translation Architectures. arXiv:1703.03906.
  • Lewis, M. et al. (2020). BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation. arXiv:1910.13461.
  • Raffel, C. et al. (2020). Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. arXiv:1910.10683.
  • Dong, L. et al. (2019). Unified Language Model Pre-training for Natural Language Understanding and Generation. arXiv:1905.03197.
  • Zhang, J. et al. (2020). PEGASUS: Pre-training with Extracted Gap-Sentences for Abstractive Summarization. arXiv:1912.08777.