Encoder (Transformer) (PL)
Enkoder (ang. Encoder, koder) — w uczeniu maszynowym i głębokim uczeniu jest to komponent sieci neuronowej, którego głównym zadaniem jest przekształcenie wejściowej sekwencji danych (na przykład tekstu lub obrazu) w bogate reprezentacje numeryczne, zwykle nazywane ukrytym stanem, wektorem kontekstowym lub embeddingiem. Reprezentacja ta uchwytuje kluczowe cechy i semantykę danych wejściowych w formie wygodnej do dalszego przetwarzania.
W szerszym sensie, w teorii informacji, enkoder to dowolne urządzenie lub algorytm, który przekształca informację z jednego formatu na inny, często w celu kompresji lub transmisji.
Koncepcja i przeznaczenie
Podstawowym celem enkodera w sieciach neuronowych jest wyekstrahowanie z danych wejściowych użytecznych cech i „zakodowanie" ich w gęstym wektorze o stałej długości. Proces ten można rozpatrywać jako formę nieliniowej redukcji wymiarowości, gdzie wysokowymiarowe i rzadkie dane wejściowe (na przykład tekst reprezentowany wektorami one-hot) przekształcane są w niskowymiarową, lecz informatycznie nasyconą przestrzeń wektorową (przestrzeń latentną).
Zakodowany wektor może następnie zostać wykorzystany:
- Przez dekoder do generowania nowej sekwencji (na przykład w tłumaczeniu maszynowym).
- Przez klasyfikator do rozwiązywania zadań analizy (na przykład określanie wydźwięku tekstu).
- Do zadań wymagających rozumienia całego kontekstu wejściowego.
Enkoder w różnych architekturach
Enkoder w autoenkoderze
Jednym z klasycznych przykładów jest architektura autoenkodera. Składa się on z dwóch części:
- Enkoder: Kompresuje dane wejściowe do ukrytej reprezentacji o mniejszej wymiarowości (kod latentny).
- Dekoder: Próbuje odtworzyć oryginalne dane z tej skompresowanej reprezentacji.
Ucząc taką sieć minimalizowania błędu rekonstrukcji, enkoder uczy się wyodrębniać najważniejsze cechy z danych.
Enkoder w rekurencyjnych sieciach neuronowych (RNN/LSTM)
Przed pojawieniem się architektury Transformer, enkodery w zadaniach przetwarzania sekwencji (seq2seq) budowano na podstawie rekurencyjnych sieci neuronowych (RNN) lub ich ulepszonej odmiany LSTM.
- Zasada działania: Enkoder RNN przetwarza sekwencję wejściową token po tokenie. Na każdym kroku aktualizuje swój ukryty stan, włączając informację o bieżącym tokenie i poprzednim stanie. Końcowy ukryty stan uzyskany po przetworzeniu całej sekwencji traktowany jest jako wektor kodujący sens całej sekwencji wejściowej. Wektor ten często nazywany jest wektorem kontekstowym lub „wektorem myśli" (thought vector).
Enkoder w architekturze Transformer
Rewolucja w przetwarzaniu języka naturalnego wiąże się z pojawieniem się enkodera opartego na architekturze Transformer. W odróżnieniu od RNN, przetwarza on wszystkie tokeny sekwencji równolegle.
Enkoder Transformera składa się ze stosu () identycznych warstw. Każda warstwa ma dwie główne podwarstwy:
- Wielogłowowa samo-uwaga (Multi-Head Self-Attention): Mechanizm ten pozwala każdemu tokenowi w sekwencji wejściowej „zwracać uwagę" na wszystkie pozostałe tokeny i ważyć ich istotność dla tworzenia własnej kontekstualnej reprezentacji. Umożliwia to modelowi uchwytywanie złożonych zależności między słowami, niezależnie od ich pozycji.
- Sieć w pełni połączona (Feed-Forward Network): Stosowana jest do reprezentacji każdego tokenu osobno w celu dalszej nieliniowej transformacji.
Kluczowa różnica między enkoderem Transformera a enkoderem RNN polega na tym, że na wyjściu dostarcza on nie jeden wektor kontekstowy, lecz sekwencję skontekstualizowanych wektorów — po jednym dla każdego tokenu wejściowego. Każdy taki wektor zawiera informację o swoim tokenie w kontekście całej sekwencji.
Typy modeli opartych na enkoderze
Modele enkoder-dekoder
Jest to klasyczna architektura do zadań przekształcania sekwencji na sekwencję (seq2seq), takich jak tłumaczenie maszynowe czy sumaryzacja.
- Zasada działania: Enkoder przetwarza całą sekwencję wejściową (na przykład zdanie w języku źródłowym). Jego wyjściowe reprezentacje są następnie przekazywane dekoderaowi, który korzystając z nich, autoregrestracyjnie generuje wyjściową sekwencję (zdanie w języku docelowym). Dekoder „patrzy" na wyjście enkodera za pomocą specjalnego mechanizmu uwagi krzyżowej (cross-attention).
- Przykłady: Oryginalny Transformer, T5, BART.
Modele tylko-enkoder (Encoder-Only)
Modele te wykorzystują wyłącznie stos enkoderów Transformera.
- Zasada działania: Są przeznaczone do zadań wymagających głębokiego rozumienia kontekstu całego tekstu wejściowego. Dzięki dwukierunkowej naturze mechanizmu samo-uwagi tworzą bogate kontekstualne reprezentacje dla każdego tokenu.
- Zastosowanie: Idealne do zadań analizy i rozumienia języka (NLU), takich jak:
- Klasyfikacja tekstu (na przykład analiza wydźwięku).
- Rozpoznawanie nazwanych jednostek (NER).
- Odpowiadanie na pytania (Question Answering), gdzie odpowiedź stanowi fragment tekstu.
- Przykład: BERT i jego pochodne (RoBERTa, ALBERT).
Związek z dekoderem
W architekturze enkoder-dekoder enkoder i dekoder pełnią komplementarne role:
- Enkoder odpowiada za rozumienie sekwencji wejściowej.
- Dekoder odpowiada za generowanie sekwencji wyjściowej.
Kluczowym ogniwem łączącym je jest mechanizm uwagi krzyżowej (cross-attention) wewnątrz dekodera. Na każdym kroku generowania dekoder formuje zapytanie (Query) na podstawie już wygenerowanej części sekwencji wyjściowej i używa go, aby „zwrócić uwagę" na wyjściowe reprezentacje enkodera (które służą jako klucze i wartości — Key i Value). Pozwala to dekoderowi skupić się na najbardziej relewantnych częściach sekwencji wejściowej przy generowaniu kolejnego 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.
Zobacz też
- BERT