Encoder–decoder-arkitektur

From Systems analysis Wiki
Jump to navigation Jump to search

Encoder-Decoder-modeller (eng. Encoder-Decoder Models) — detta är en klass av neurala nätverksarkitekturer avsedda för att lösa uppgifter med omvandling av sekvens till sekvens (sequence-to-sequence, seq2seq). Denna arkitektur består av två huvudkomponenter:

  • Encoder (kodare): Bearbetar indatasekvensen och komprimerar den till en kompakt numerisk representation (kontextvektor eller en sekvens av dolda tillstånd).
  • Decoder (avkodare): Tar denna representation och genererar på dess basis en utdatasekvens.

Denna arkitektur utgör grunden för många uppgifter inom natural language processing (NLP) och datorseende, såsom maskinöversättning, textsammanfattning och bildtextning.

Koncept

Grundidén med encoder-decoder-arkitekturen är att separera uppgifterna förståelse och generering. Encodern ansvarar för att förstå indatasekvensen genom att extrahera all nödvändig semantisk information från den. Decodern ansvarar för att generera en ny sekvens med hjälp av den information som encodern tillhandahållit.

Detta gör det möjligt för modellen att arbeta med sekvenser av olika längd på in- och utsidan, vilket var problematiskt för tidigare arkitekturer.

Arkitekturens utveckling

Tidiga modeller baserade på RNN/LSTM

Inledningsvis implementerades encoder-decoder-arkitekturen med hjälp av rekurrenta neurala nätverk (RNN) eller deras förbättrade variant LSTM.

  • Encoder: RNN-encodern bearbetade indatasekvensen token för token och producerade som utdata en enda kontextvektor — det dolda tillståndet efter bearbetning av den sista token, vilket skulle innehålla information om hela sekvensen.
  • Decoder: RNN-decodern initialiserades med denna kontextvektor och genererade utdatasekvensen autoreggressivt.

Huvudnackdelen med detta tillvägagångssätt var problemet med "flaskhalsen": all information från indatasekvensen måste komprimeras till en enda vektor med fast längd, vilket ledde till informationsförlust, särskilt vid långa sekvenser.

Introduktion av attention-mekanismen

Genombrottet skedde med introduktionen av attention-mekanismen (attention mechanism) (Bahdanau et al., 2014).

  • Arbetsprincip: Istället för att förlita sig på en enda kontextvektor "uppmärksammar" decodern vid varje genereringssteg alla dolda tillstånd hos encodern. Den beräknar attention-vikter som visar vilka delar av indatasekvensen som är mest relevanta för att generera den aktuella utdata-token.
  • Fördelar: Detta löste "flaskhalsproblemen" och gjorde det möjligt för modellen att effektivt arbeta med långa sekvenser, vilket avsevärt förbättrade kvaliteten, särskilt inom maskinöversättning.

Transformer-arkitekturen

År 2017 presenterades Transformer-arkitekturen i artikeln "Attention Is All You Need", som helt övergav rekurrens till förmån för attention-mekanismen.

  • Transformer-encoder: Består av ett stapel av lager, där vart och ett använder self-attention för att skapa kontextualiserade representationer för varje indatatoken.
  • Transformer-decoder: Består av ett stapel av lager, där vart och ett har två typer av attention-mekanismer:
    • Maskerad self-attention: För bearbetning av den redan genererade delen av utdatasekvensen.
    • Korsattention (Cross-Attention): För att "uppmärksamma" encoderns utdatarepresentationer.

Denna arkitektur har blivit standarden för seq2seq-uppgifter tack vare sin höga prestanda och möjligheten att parallellisera beräkningar.

Tillämpningar

Encoder-decoder-arkitekturen är standard för ett brett spektrum av uppgifter:

  • Maskinöversättning: Omvandling av en mening från ett språk till ett annat.
  • Automatisk textsammanfattning: Skapande av en kortfattad sammanfattning av ett långt dokument.
  • Dialogsystem: Generering av svar på en användares replik.
  • Bildtextning (Image Captioning): Encodern (ofta baserad på ett konvolutionellt neuralt nätverk) bearbetar bilden, medan decodern (ofta RNN eller Transformer) genererar dess textbeskrivning.
  • Taligenkänning: Omvandling av en audiosignal till en texttranskription.

Huvudsakliga modeller

  • Original Transformer (Vaswani et al., 2017): Modellen som introducerade denna arkitektur.
  • BART (Bidirectional and Auto-Regressive Transformers): En modell från Facebook som förtränas på uppgiften att återställa "skadad" text. Encodern är dubbelriktad (som i BERT), medan decodern är autoreggressiv (som i GPT).
  • T5 (Text-to-Text Transfer Transformer): En modell från Google som förenar alla NLP-uppgifter genom att representera dem som ett problem med omvandling av text till text. T5 visade enastående resultat på en mängd benchmark.

Jämförelse med andra arkitekturer

Jämförelse av viktiga Transformer-baserade arkitekturer
Arkitektur Huvuduppgift Komponenter Typiska modeller
Encoder-Decoder Omvandling av sekvens till sekvens Encoder + Decoder T5, BART, original Transformer
Endast encoder Textförståelse Endast encoder BERT, RoBERTa
Endast decoder Textgenerering Endast decoder

Litteratur

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