Encoder (Transformer) (NL)

From Systems analysis Wiki
Jump to navigation Jump to search

Encoder (Engels: Encoder, codeerder) — in Machine Learning en deep learning is dit een component van een Neural Network waarvan de hoofdtaak bestaat uit het omzetten van een invoerreeks van gegevens (bijvoorbeeld tekst of een afbeelding) in een rijke numerieke representatie, doorgaans aangeduid als verborgen toestand, contextvector of embedding. Deze representatie legt de belangrijkste kenmerken en semantiek van de invoergegevens vast in een vorm die geschikt is voor verdere verwerking.

In bredere zin is een encoder in de informatietheorie elk apparaat of algoritme dat informatie van het ene formaat naar het andere omzet, vaak met als doel compressie of overdracht.

Concept en doel

Het hoofddoel van een encoder in Neural Networks is het extraheren van nuttige kenmerken uit de invoergegevens en het "coderen" daarvan in een compacte vector van vaste lengte. Dit proces kan worden beschouwd als een vorm van niet-lineaire dimensiereductie, waarbij hoogdimensionale en schaarse invoergegevens (bijvoorbeeld tekst weergegeven als one-hot vectors) worden omgezet naar een laagdimensionale maar informatierijke vectorruimte (latente ruimte).

Deze gecodeerde vector kan vervolgens worden gebruikt:

  • Door een Decoder voor het genereren van een nieuwe reeks (bijvoorbeeld bij machinevertaling).
  • Door een classifier voor het oplossen van analysetaken (bijvoorbeeld het bepalen van de toon van een tekst).
  • Voor taken die begrip van de volledige invoercontext vereisen.

Encoder in verschillende architecturen

Encoder in de autoencoder

Een van de klassieke voorbeelden is de architectuur van de autoencoder. Deze bestaat uit twee delen:

  1. Encoder: Comprimeert de invoergegevens tot een verborgen representatie van kleinere dimensie (latente code).
  2. Decoder: Probeert de oorspronkelijke gegevens te reconstrueren vanuit deze gecomprimeerde representatie.

Door een dergelijk netwerk te trainen om de reconstructiefout te minimaliseren, leert de encoder de meest relevante kenmerken uit de gegevens te extraheren.

Encoder in recurrente Neural Networks (RNN/LSTM)

Vóór de komst van de Transformer-architectuur werden encoders voor reeksverwerking (seq2seq) gebouwd op basis van recurrente Neural Networks (RNN) of hun verbeterde variant LSTM.

  • Werkingsprincipe: Een RNN-encoder verwerkt de invoerreeks token voor token. Bij elke stap werkt hij zijn verborgen toestand bij door informatie over het huidige token en de vorige toestand te integreren. De uiteindelijke verborgen toestand, verkregen na verwerking van de volledige reeks, wordt beschouwd als een vector die de betekenis van de gehele invoerreeks codeert. Deze vector wordt vaak de contextvector of "gedachtenvector" (thought vector) genoemd.

Encoder in de Transformer-architectuur

De revolutie in de verwerking van natuurlijke taal hangt samen met de introductie van de encoder gebaseerd op de Transformer-architectuur. In tegenstelling tot RNN verwerkt hij alle tokens van de reeks parallel.

De Transformer-encoder bestaat uit een stapel (N) identieke lagen. Elke laag heeft twee hoofdonderlagen:

  1. Multi-Head Self-Attention: Dit mechanisme stelt elk token in de invoerreeks in staat om "aandacht te besteden" aan alle andere tokens en hun belang te wegen voor het vormen van zijn eigen contextuele representatie. Hierdoor kan het model complexe afhankelijkheden tussen woorden opvangen, ongeacht hun positie.
  2. Feed-Forward Network: Wordt afzonderlijk toegepast op de representatie van elk token voor verdere niet-lineaire transformatie.

Het belangrijkste verschil tussen de Transformer-encoder en de RNN-encoder is dat de Transformer-encoder bij de uitvoer niet één contextvector produceert, maar een reeks gecontextualiseerde vectors — één voor elk invoertoken. Elke dergelijke vector bevat informatie over zijn token in de context van de volledige reeks.

Typen modellen op basis van de encoder

Encoder-decoder modellen

Dit is de klassieke architectuur voor taken waarbij een reeks naar een reeks wordt omgezet (seq2seq), zoals machinevertaling of samenvatting.

  • Werkingsprincipe: De encoder verwerkt de volledige invoerreeks (bijvoorbeeld een zin in de brontaal). De uitvoerrepresentaties worden vervolgens doorgegeven aan de decoder, die deze gebruikt om de uitvoerreeks (de zin in de doeltaal) autoregressief te genereren. De decoder "kijkt" naar de uitvoer van de encoder via een speciaal mechanisme van cross-attention.
  • Voorbeelden: De originele Transformer, T5, BART.

Encoder-only modellen

Deze modellen maken uitsluitend gebruik van een stapel Transformer-encoders.

  • Werkingsprincipe: Ze zijn bedoeld voor taken die een diep begrip vereisen van de context van de volledige invoertekst. Dankzij de bidirectionele aard van het self-attention mechanisme creëren ze rijke contextuele representaties voor elk token.
  • Toepassingen: Ideaal voor taken op het gebied van taalanalyse en taalbegrip (NLU), zoals:
    • Tekstclassificatie (bijvoorbeeld sentimentanalyse).
    • Herkenning van benoemde entiteiten (NER).
    • Het beantwoorden van vragen (Question Answering), waarbij het antwoord een fragment uit de tekst is.
  • Voorbeeld: BERT en zijn varianten (RoBERTa, ALBERT).

Relatie met de decoder

In de encoder-decoder architectuur vervullen de encoder en de decoder complementaire rollen:

  • De encoder is verantwoordelijk voor het begrijpen van de invoerreeks.
  • De decoder is verantwoordelijk voor het genereren van de uitvoerreeks.

De cruciale verbinding tussen beide is het mechanisme van cross-attention binnen de decoder. Bij elke generatiestap vormt de decoder een query op basis van het reeds gegenereerde deel van de uitvoerreeks en gebruikt deze om "aandacht te besteden" aan de uitvoerrepresentaties van de encoder (die dienen als sleutels en waarden — Key en Value). Hierdoor kan de decoder zich richten op de meest relevante delen van de invoerreeks voor het genereren van het volgende token.

Literatuur

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

Zie ook

  • BERT