Encoder (Transformer) (SV)

From Systems analysis Wiki
Jump to navigation Jump to search

Enkoder (eng. Encoder, kodare) — inom Machine Learning och djupinlärning är detta en komponent i ett neuralt nätverk vars huvuduppgift är att omvandla en inmatad dataföljd (till exempel text eller en bild) till en innehållsrik numerisk representation, vanligtvis kallad dolt tillstånd, kontextvektor eller embedding. Denna representation fångar nyckelkarakteristika och semantiken hos indata i en form som lämpar sig för vidare bearbetning.

I en bredare bemärkelse, inom informationsteori, är en enkoder vilken som helst enhet eller algoritm som omvandlar information från ett format till ett annat, ofta i syfte att komprimera eller överföra den.

Koncept och syfte

Enkodarens primära mål i neurala nätverk är att extrahera användbara egenskaper ur indata och "koda" dem i en kompakt vektor med fast längd. Denna process kan betraktas som en form av icke-linjär dimensionsreduktion, där högdimensionell och gles indata (till exempel text representerad med one-hot-vektorer) omvandlas till ett lågdimensionellt men informationsrikt vektorrum (latent rum).

Denna kodade vektor kan sedan användas av:

  • Dekodaren för att generera en ny följd (till exempel vid maskinöversättning).
  • Klassificeraren för att lösa analysuppgifter (till exempel sentimentanalys av text).
  • Uppgifter som kräver förståelse av hela inmatningskontexten.

Enkodaren i olika arkitekturer

Enkodaren i en autoenkoder

Ett av de klassiska exemplen är arkitekturen autoenkoder. Den består av två delar:

  1. Enkodaren: Komprimerar indata till en dold representation med lägre dimensionalitet (latent kod).
  2. Dekodaren: Försöker återskapa ursprungsdata från denna komprimerade representation.

Genom att träna ett sådant nätverk att minimera rekonstruktionsfelet lär sig enkodaren att extrahera de viktigaste egenskaperna ur data.

Enkodaren i rekurrenta neurala nätverk (RNN/LSTM)

Innan Transformer-arkitekturen uppkom byggdes enkodarar för sekvensbearbetningsuppgifter (seq2seq) på rekurrenta neurala nätverk (RNN) eller deras förbättrade variant LSTM.

  • Arbetssätt: En RNN-enkodare bearbetar inmatningsföljden token för token. Vid varje steg uppdaterar den sitt dolda tillstånd genom att inkorporera information om den aktuella token och det föregående tillståndet. Det slutliga dolda tillståndet, som erhålls efter bearbetning av hela följden, betraktas som en vektor som kodar innebörden av hela inmatningsföljden. Denna vektor kallas ofta kontextvektor eller "tankvektor" (thought vector).

Enkodaren i Transformer-arkitekturen

Revolutionen inom naturlig språkbehandling är kopplad till uppkomsten av enkodaren baserad på Transformer-arkitekturen. Till skillnad från RNN bearbetar den alla tokens i en följd parallellt.

Transformer-enkodaren består av en stack (N) av identiska lager. Varje lager har två huvudsakliga dellager:

  1. Flerhuvudat självuppmärksamhet (Multi-Head Self-Attention): Denna mekanism låter varje token i inmatningsföljden "uppmärksamma" alla övriga tokens och vikta deras betydelse för att forma sin egen kontextuella representation. Detta gör det möjligt för modellen att fånga komplexa beroenden mellan ord, oberoende av deras position.
  2. Fullt anslutet neuralt nätverk (Feed-Forward Network): Tillämpas på representationen av varje token separat för ytterligare icke-linjär omvandling.

Den avgörande skillnaden mellan Transformer-enkodaren och RNN-enkodaren är att den i utdata ger inte en enda kontextvektor utan en följd av kontextualiserade vektorer — en för varje inmatningstoken. Varje sådan vektor innehåller information om sin token i hela följdens kontext.

Typer av modeller baserade på enkodaren

Enkoder-dekoder-modeller

Detta är den klassiska arkitekturen för uppgifter som innebär omvandling av följd till följd (seq2seq), såsom maskinöversättning eller sammanfattning.

  • Arbetssätt: Enkodaren bearbetar hela inmatningsföljden (till exempel en mening på källspråket). Dess utdatarepresentationer överförs sedan till dekodaren, som med hjälp av dem autoreggressivt genererar utdataföljden (meningen på målspråket). Dekodaren "tittar" på enkodarens utdata med hjälp av en särskild mekanism för korsuppmärksamhet (cross-attention).
  • Exempel: Den ursprungliga Transformer, T5, BART.

Enbart-enkoder-modeller (Encoder-Only)

Dessa modeller använder uteslutande en stack av Transformer-enkodarar.

  • Arbetssätt: De är avsedda för uppgifter som kräver djup förståelse av kontexten i hela inmatningstexten. Tack vare den dubbelriktade karaktären hos självuppmärksamhetsmekanismen skapar de rika kontextuella representationer för varje token.
  • Tillämpning: Idealiska för uppgifter inom språkanalys och språkförståelse (NLU), såsom:
    • Textklassificering (till exempel sentimentanalys).
    • Igenkänning av namngivna entiteter (NER).
    • Frågesvar (Question Answering), där svaret är ett fragment ur texten.
  • Exempel: BERT och dess varianter (RoBERTa, ALBERT).

Relation till dekodaren

I enkoder-dekoder-arkitekturen fyller enkodaren och dekodaren komplementära roller:

  • Enkodaren ansvarar för förståelsen av inmatningsföljden.
  • Dekodaren ansvarar för genereringen av utdataföljden.

Den viktigaste länken mellan dem är mekanismen för korsuppmärksamhet (cross-attention) inuti dekodaren. Vid varje genereringssteg formar dekodaren en fråga (Query) baserat på den redan genererade delen av utdataföljden och använder den för att "uppmärksamma" enkodarens utdatarepresentationer (som tjänar som nycklar och värden — Key och Value). Detta gör det möjligt för dekodaren att fokusera på de mest relevanta delarna av inmatningsföljden för att generera nästa token.

Litteratur

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

Se även

  • BERT