Architektura encoder–decoder (CS)

From Systems analysis Wiki
Jump to navigation Jump to search

Modely enkodér-dekodér (angl. Encoder-Decoder Models) — je třída architektur neuronových sítí určených k řešení úloh transformace sekvence na sekvenci (sequence-to-sequence, seq2seq). Tato architektura se skládá ze dvou hlavních komponent:

  • Enkodér (kodér): Zpracovává vstupní sekvenci a komprimuje ji do kompaktní číselné reprezentace (kontextový vektor nebo sekvence skrytých stavů).
  • Dekodér: Přebírá tuto reprezentaci a na jejím základě generuje výstupní sekvenci.

Tato architektura je základem pro mnoho úloh zpracování přirozeného jazyka (NLP) a počítačového vidění, jako je strojový překlad, sumarizace textu a popisky k obrázkům.

Koncepce

Základní myšlenka architektury enkodér-dekodér spočívá v oddělení úloh porozumění a generování. Enkodér je zodpovědný za porozumění vstupní sekvenci tím, že z ní extrahuje veškeré potřebné sémantické informace. Dekodér je zodpovědný za generování nové sekvence s využitím informací poskytnutých enkodérem.

To umožňuje modelu pracovat se sekvencemi různé délky na vstupu i výstupu, což bylo pro starší architektury obtížné.

Evoluce architektury

Rané modely na základě RNN/LSTM

Architektura enkodér-dekodér byla původně implementována s využitím rekurentních neuronových sítí (RNN) nebo jejich vylepšené varianty LSTM.

  • Enkodér: RNN enkodér zpracovával vstupní sekvenci token po tokenu a na výstupu produkoval jeden kontextový vektor — skrytý stav po zpracování posledního tokenu, který měl obsahovat informace o celé sekvenci.
  • Dekodér: RNN dekodér byl inicializován tímto kontextovým vektorem a autoregresivně generoval výstupní sekvenci.

Hlavní nevýhodou tohoto přístupu byl problém „hrdla lahve": veškeré informace ze vstupní sekvence musely být komprimovány do jediného vektoru pevné délky, což vedlo ke ztrátě informací, zejména u dlouhých sekvencí.

Zavedení mechanismu pozornosti

Průlom nastal se zavedením mechanismu pozornosti (attention mechanism) (Bahdanau et al., 2014).

  • Princip fungování: Místo toho, aby se dekodér spoléhal na jeden kontextový vektor, „věnuje pozornost\" na každém kroku generování všem skrytým stavům enkodéru. Vypočítává váhy pozornosti, které ukazují, které části vstupní sekvence jsou nejvíce relevantní pro generování aktuálního výstupního tokenu.
  • Výhody: Tím byl vyřešen problém „hrdla lahve" a model mohl efektivně pracovat s dlouhými sekvencemi, což výrazně zlepšilo kvalitu, zejména při strojovém překladu.

Architektura Transformer

V roce 2017 byl v článku „Attention Is All You Need\" představen Transformer, který se zcela vzdal rekurence ve prospěch mechanismu pozornosti.

  • Enkodér Transformeru: Skládá se ze zásobníku vrstev, z nichž každá využívá vlastní pozornost (self-attention) k vytváření kontextualizovaných reprezentací pro každý vstupní token.
  • Dekodér Transformeru: Skládá se ze zásobníku vrstev, z nichž každá obsahuje dva typy mechanismů pozornosti:
    • Maskovaná vlastní pozornost: Pro zpracování již vygenerované části výstupní sekvence.
    • Křížová pozornost (Cross-Attention): Pro „věnování pozornosti\" výstupním reprezentacím enkodéru.

Tato architektura se stala standardem pro úlohy seq2seq díky svému vysokému výkonu a možnosti paralelizace výpočtů.

Použití

Architektura enkodér-dekodér je standardem pro širokou škálu úloh:

  • Strojový překlad: Transformace věty z jednoho jazyka do druhého.
  • Automatická sumarizace textu: Vytvoření stručného shrnutí dlouhého dokumentu.
  • Dialogové systémy: Generování odpovědi na repliku uživatele.
  • Popisky k obrázkům (Image Captioning): Enkodér (často na základě konvoluční neuronové sítě) zpracovává obrázek a dekodér (často RNN nebo Transformer) generuje jeho textový popis.
  • Rozpoznávání řeči: Transformace audio signálu na textový přepis.

Základní modely

  • Původní Transformer (Vaswani et al., 2017): Model, který tuto architekturu představil.
  • BART (Bidirectional and Auto-Regressive Transformers): Model od Facebooku, který je předtrénován na úloze obnovy „poškozeného\" textu. Enkodér je obousměrný (jako v BERT), dekodér je autoregresivní (jako v GPT).
  • T5 (Text-to-Text Transfer Transformer): Model od Googlu, který sjednocuje všechny úlohy NLP tím, že je reprezentuje jako problém transformace textu na text. T5 dosáhl vynikajících výsledků na mnoha benchmarcích.

Srovnání s jinými architekturami

Srovnání klíčových architektur na základě Transformeru
Architektura Hlavní úloha Komponenty Typické modely
Enkodér-dekodér Transformace sekvence na sekvenci Enkodér + Dekodér T5, BART, původní Transformer
Pouze enkodér Porozumění textu Pouze enkodér BERT, RoBERTa
Pouze dekodér Generování textu Pouze dekodér

Literatura

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