Архитектура encoder–decoder

From Systems analysis Wiki
Jump to navigation Jump to search

Модели енкодер-декодер (англ. Encoder-Decoder Models) — това е клас архитектури на невронни мрежи, предназначени за решаване на задачи преобразуване на последователност в последователност (sequence-to-sequence, seq2seq). Тази архитектура се състои от два основни компонента:

  • Енкодер (кодировщик): Обработва входната последователност и я компресира в компактно числово представяне (контекстен вектор или последователност от скрити състояния).
  • Декодер (декодировщик): Взема това представяне и генерира на негова основа изходна последователност.

Тази архитектура е в основата на много задачи за обработка на естествен език (NLP) и компютърно зрение, като машинен превод, суммаризация на текст и надписи към изображения.

Концепция

Основната идея на архитектурата енкодер-декодер се състои в разделянето на задачите за разбиране и генериране. Енкодерът отговаря за разбирането на входната последователност, като извлича от нея цялата необходима семантична информация. Декодерът отговаря за генерирането на нова последователност, използвайки информацията, предоставена от енкодера.

Това позволява на модела да работи с последователности с различна дължина на входа и изхода, което беше затруднено при по-ранните архитектури.

Еволюция на архитектурата

Ранни модели на базата на RNN/LSTM

Начално архитектурата енкодер-декодер беше реализирана с използването на рекурентни невронни мрежи (RNN) или тяхна усъвършенствана версия LSTM.

  • Енкодер: RNN-енкодерът обработваше входната последователност токен по токен и на изхода произвеждаше един контекстен вектор — скритото състояние след обработката на последния токен, което трябваше да съдържа информация за цялата последователност.
  • Декодер: RNN-декодерът се инициализираше с този контекстен вектор и авторегресионно генерираше изходна последователност.

Основният недостатък на такъв подход беше проблемът с „тясното гърло": цялата информация от входната последователност трябваше да бъде компресирана в един вектор с фиксирана дължина, което водеше до загуба на информация, особено при дълги последователности.

Въвеждане на механизма за внимание

Пробивът настъпи с въвеждането на механизма за внимание (attention mechanism) (Bahdanau et al., 2014).

  • Принцип на работа: Вместо да разчита на един контекстен вектор, декодерът на всяка стъпка на генериране „обръща внимание\" на всички скрити състояния на енкодера. Той изчислява тегла на вниманието, които показват кои части от входната последователност са най-релевантни за генерирането на текущия изходен токен.
  • Предимства: Това реши проблема с „тясното гърло\" и позволи на модела да работи ефективно с дълги последователности, значително подобрявайки качеството, особено при машинния превод.

Архитектура Transformer

През 2017 година в статията „Attention Is All You Need\" беше представена архитектурата Transformer, която напълно се отказа от рекурентността в полза на механизма за внимание.

  • Енкодер на Transformer: Състои се от стек от слоеве, всеки от които използва самовнимание (self-attention) за създаване на контекстуализирани представяния за всеки входен токен.
  • Декодер на Transformer: Състои се от стек от слоеве, всеки от които има два вида механизми за внимание:
    • Маскирано самовнимание: За обработка на вече генерираната част от изходната последователност.
    • Кръстосано внимание (Cross-Attention): За „обръщане на внимание\" към изходните представяния на енкодера.

Тази архитектура се превърна в стандарт за задачи seq2seq благодарение на своята висока производителност и възможността за паралелизиране на изчисленията.

Приложение

Архитектурата енкодер-декодер е стандарт за широк кръг от задачи:

  • Машинен превод: Преобразуване на изречение от един език на друг.
  • Автоматично реферирране на текст: Създаване на кратко съдържание на дълъг документ.
  • Диалогови системи: Генериране на отговор на реплика на потребителя.
  • Надписи към изображения (Image Captioning): Енкодерът (често на базата на свиваща невронна мрежа) обработва изображението, а декодерът (често RNN или Transformer) генерира неговото текстово описание.
  • Разпознаване на реч: Преобразуване на аудио сигнал в текстова транскрипция.

Основни модели

  • Оригинален Transformer (Vaswani et al., 2017): Моделът, който представи тази архитектура.
  • BART (Bidirectional and Auto-Regressive Transformers): Модел от Facebook, който се предварително обучава на задачата за възстановяване на „повреден\" текст. Енкодерът е двупосочен (като в BERT), а декодерът — авторегресионен (като в GPT).
  • T5 (Text-to-Text Transfer Transformer): Модел от Google, който унифицира всички задачи по NLP, представяйки ги като проблем за преобразуване на текст в текст. T5 показа изключителни резултати на множество benchmark-и.

Сравнение с други архитектури

Сравнение на ключови архитектури на базата на Transformer
Архитектура Основна задача Компоненти Типични модели
Енкодер-декодер Преобразуване на последователност в последователност Енкодер + Декодер T5, BART, оригинален Transformer
Само-енкодер Разбиране на текст Само енкодер BERT, RoBERTa
Само-декодер Генериране на текст Само декодер

Литература

  • 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.