Encoder–decoder architektúra
Kódoló-dekódoló modellek (ang. Encoder-Decoder Models) — a neurális hálózatok architektúráinak egy osztálya, amelyet sorozat-sorozattá alakítási (sequence-to-sequence, seq2seq) feladatok megoldására terveztek. Ez az architektúra két fő komponensből áll:
- Kódoló (encoder): Feldolgozza a bemeneti sorozatot, és kompakt numerikus reprezentációvá sűríti (kontextusvektorrá vagy rejtett állapotok sorozatává).
- Dekódoló (decoder): Átveszi ezt a reprezentációt, és annak alapján előállítja a kimeneti sorozatot.
Ez az architektúra számos természetes nyelvfeldolgozási (NLP) és számítógépes látással kapcsolatos feladat alapját képezi, mint például a gépi fordítás, a szövegösszefoglalás és a képfeliratok generálása.
Koncepció
A kódoló-dekódoló architektúra alapötlete a megértés és a generálás feladatainak szétválasztása. A kódoló felelős a bemeneti sorozat megértéséért, kinyerve belőle az összes szükséges szemantikai információt. A dekódoló felelős az új sorozat generálásáért, felhasználva a kódoló által biztosított információt.
Ez lehetővé teszi a modell számára, hogy különböző hosszúságú sorozatokkal dolgozzon bemeneten és kimeneten egyaránt, ami korábbi architektúrák esetén nehézséget okozott.
Az architektúra fejlődése
Korai RNN/LSTM alapú modellek
Eredetileg a kódoló-dekódoló architektúrát rekurrens neurális hálózatokkal (RNN) vagy azok továbbfejlesztett változatával, az LSTM-mel valósították meg.
- Kódoló: Az RNN-kódoló tokenről tokenre dolgozta fel a bemeneti sorozatot, és kimenetként egyetlen kontextusvektort adott – az utolsó token feldolgozása utáni rejtett állapotot, amelynek az egész sorozat információját kellett tartalmaznia.
- Dekódoló: Az RNN-dekódolót ezzel a kontextusvektorral inicializálták, és autoregresszíven generálta a kimeneti sorozatot.
Ennek a megközelítésnek fő hátránya a „szűk keresztmetszet" problémája volt: a bemeneti sorozat összes információját egyetlen rögzített hosszúságú vektorba kellett sűríteni, ami információveszteséghez vezetett, különösen hosszú sorozatok esetén.
Az attention mechanizmus bevezetése
Áttörést hozott az attention mechanizmus bevezetése (Bahdanau et al., 2014).
- Működési elv: Ahelyett, hogy egyetlen kontextusvektorra támaszkodna, a dekódoló a generálás minden lépésénél „figyel\" a kódoló összes rejtett állapotára. Attention súlyokat számít, amelyek megmutatják, hogy a bemeneti sorozat mely részei a legrelevánsabbak az aktuális kimeneti token generálásához.
- Előnyök: Ez megoldotta a „szűk keresztmetszet" problémáját, és lehetővé tette a modell számára a hosszú sorozatokkal való hatékony munkát, jelentősen javítva a minőséget, különösen a gépi fordításban.
A Transformer architektúra
2017-ben az „Attention Is All You Need" című cikkben bemutatták a Transformer architektúrát, amely teljesen elhagyta a rekurrenciát az attention mechanizmus javára.
- Transformer kódoló: Rétegek egymásra épülő sorozatából áll, amelyek mindegyike self-attention mechanizmust használ az egyes bemeneti tokenek kontextualizált reprezentációinak létrehozásához.
- Transformer dekódoló: Rétegek egymásra épülő sorozatából áll, amelyek mindegyikének kétféle attention mechanizmusa van:
- Maszkolt self-attention: A kimeneti sorozat már generált részének feldolgozásához.
- Cross-Attention (keresztirányú figyelem): A kódoló kimeneti reprezentációira való „figyeléshez\".
Ez az architektúra a seq2seq feladatok szabványává vált magas teljesítménye és a számítások párhuzamosíthatósága miatt.
Alkalmazások
A kódoló-dekódoló architektúra feladatok széles körének szabványa:
- Gépi fordítás: Mondatok átalakítása egyik nyelvről a másikra.
- Automatikus szövegösszefoglalás: Hosszú dokumentum rövid kivonatának elkészítése.
- Párbeszédrendszerek: Válasz generálása a felhasználó megszólalására.
- Képfeliratok generálása (Image Captioning): A kódoló (gyakran konvolúciós neurális hálózat alapján) feldolgozza a képet, a dekódoló (gyakran RNN vagy Transformer) pedig szöveges leírást generál hozzá.
- Beszédfelismerés: Hangjelek szöveges átírássá alakítása.
Főbb modellek
- Eredeti Transformer (Vaswani et al., 2017): A modell, amely bevezette ezt az architektúrát.
- BART (Bidirectional and Auto-Regressive Transformers): A Facebook modellje, amelyet „elrontott\" szöveg helyreállítási feladaton tanítanak elő. A kódoló kétirányú (mint a BERT), a dekódoló autoregresszív (mint a GPT).
- T5 (Text-to-Text Transfer Transformer): A Google modellje, amely egységesíti az összes NLP feladatot azzal, hogy szöveg-szöveggé alakítási problémaként kezeli őket. A T5 kiemelkedő eredményeket ért el számos benchmark teszten.
Összehasonlítás más architektúrákkal
| Architektúra | Fő feladat | Komponensek | Tipikus modellek |
|---|---|---|---|
| Kódoló-dekódoló | Sorozat-sorozattá alakítás | Kódoló + Dekódoló | T5, BART, eredeti Transformer |
| Csak kódoló | Szövegértés | Csak kódoló | BERT, RoBERTa |
| Csak dekódoló | Szöveggenerálás | Csak dekódoló |
Irodalom
- 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.