Encoder (Transformer) (CS)
Enkodér (angl. Encoder, kodér) — v strojovém učení a hlubokém učení jde o komponentu neuronové sítě, jejímž hlavním úkolem je převod vstupní posloupnosti dat (například textu nebo obrázku) do bohatého číselného reprezentace, obvykle označované jako skrytý stav, kontextový vektor nebo embedding. Tato reprezentace zachycuje klíčové charakteristiky a sémantiku vstupních dat ve formě vhodné pro další zpracování.
V širším smyslu, v teorii informace, je enkodér jakékoli zařízení nebo algoritmus, který převádí informace z jednoho formátu do jiného, často za účelem komprese nebo přenosu.
Koncepce a účel
Hlavním cílem enkodéru v neuronových sítích je extrahovat ze vstupních dat užitečné příznaky a „zakódovat" je do hustého vektoru pevné délky. Tento proces lze chápat jako formu nelineárního snížení dimenzionality, při němž jsou vysokodimenzionální a řídká vstupní data (například text reprezentovaný one-hot vektory) převedena do nízkodimenzionálního, avšak informačně bohatého vektorového prostoru (latentního prostoru).
Tento zakódovaný vektor lze následně využít:
- Dekodérem pro generování nové posloupnosti (například při strojovém překladu).
- Klasifikátorem pro řešení analytických úloh (například určení tonality textu).
- Pro úlohy vyžadující porozumění celému vstupnímu kontextu.
Enkodér v různých architekturách
Enkodér v autoenkodéru
Jedním z klasických příkladů je architektura autoenkodéru. Skládá se ze dvou částí:
- Enkodér: Komprimuje vstupní data do skryté reprezentace menší dimenzionality (latentní kód).
- Dekodér: Pokouší se rekonstruovat původní data z této komprimované reprezentace.
Trénováním takové sítě na minimalizaci chyby rekonstrukce se enkodér učí extrahovat nejdůležitější příznaky z dat.
Enkodér v rekurentních neuronových sítích (RNN/LSTM)
Před příchodem architektury Transformer byly enkodéry pro úlohy zpracování posloupností (seq2seq) stavěny na základě rekurentních neuronových sítí (RNN) nebo jejich zdokonalené varianty LSTM.
- Princip fungování: RNN enkodér zpracovává vstupní posloupnost token po tokenu. V každém kroku aktualizuje svůj skrytý stav tím, že zahrnuje informaci o aktuálním tokenu a předchozím stavu. Výsledný skrytý stav získaný po zpracování celé posloupnosti je považován za vektor kódující smysl celé vstupní posloupnosti. Tento vektor se často nazývá kontextový vektor nebo „vektor myšlenky" (thought vector).
Enkodér v architektuře Transformer
Revoluci ve zpracování přirozeného jazyka přineslo zavedení enkodéru založeného na architektuře Transformer. Na rozdíl od RNN zpracovává všechny tokeny posloupnosti paralelně.
Enkodér Transformeru se skládá ze zásobníku () identických vrstev. Každá vrstva má dva hlavní podvrstvy:
- Vícehlávkové vlastní pozornosti (Multi-Head Self-Attention): Tento mechanismus umožňuje každému tokenu ve vstupní posloupnosti „věnovat pozornost" všem ostatním tokenům a vážit jejich důležitost pro vytvoření vlastní kontextuální reprezentace. To umožňuje modelu zachytit složité závislosti mezi slovy bez ohledu na jejich pozici.
- Plně propojená neuronová síť (Feed-Forward Network): Aplikuje se na reprezentaci každého tokenu zvlášť pro další nelineární transformaci.
Klíčový rozdíl mezi enkodérem Transformeru a RNN enkodérem spočívá v tom, že na výstupu neposkytuje jeden kontextový vektor, ale posloupnost kontextualizovaných vektorů — jeden pro každý vstupní token. Každý takový vektor obsahuje informaci o svém tokenu v kontextu celé posloupnosti.
Typy modelů založených na enkodéru
Modely enkodér-dekodér
Jde o klasickou architekturu pro úlohy převodu posloupnosti na posloupnost (seq2seq), jako je strojový překlad nebo sumarizace.
- Princip fungování: Enkodér zpracuje celou vstupní posloupnost (například větu ve zdrojovém jazyce). Jeho výstupní reprezentace jsou poté předány dekodéru, který je využívá k autoregresivnímu generování výstupní posloupnosti (věty v cílovém jazyce). Dekodér „hledí" na výstup enkodéru pomocí speciálního mechanismu křížové pozornosti (cross-attention).
- Příklady: Původní Transformer, T5, BART.
Modely pouze-enkodér (Encoder-Only)
Tyto modely využívají výhradně zásobník enkodérů Transformeru.
- Princip fungování: Jsou určeny pro úlohy vyžadující hluboké porozumění kontextu celého vstupního textu. Díky obousměrné povaze mechanismu vlastní pozornosti vytvářejí bohaté kontextuální reprezentace pro každý token.
- Využití: Ideální pro úlohy analýzy a porozumění jazyku (NLU), jako jsou:
- Klasifikace textu (například analýza tonality).
- Rozpoznávání pojmenovaných entit (NER).
- Odpovídání na otázky (Question Answering), kde odpověď je úryvkem z textu.
- Příklad: BERT a jeho varianty (RoBERTa, ALBERT).
Vztah k dekodéru
V architektuře enkodér-dekodér plní enkodér a dekodér komplementární role:
- Enkodér odpovídá za porozumění vstupní posloupnosti.
- Dekodér odpovídá za generování výstupní posloupnosti.
Klíčovým spojovacím článkem mezi nimi je mechanismus křížové pozornosti (cross-attention) uvnitř dekodéru. V každém kroku generování dekodér formuluje dotaz (Query) na základě již vygenerované části výstupní posloupnosti a využívá ho k „věnování pozornosti" výstupním reprezentacím enkodéru (které slouží jako klíče a hodnoty — Key a Value). To umožňuje dekodéru soustředit se na nejrelevantnější části vstupní posloupnosti při generování dalšího tokenu.
Literatura
- 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.
Viz také
- BERT