Encoder (Transformer) (TL)
Enkoder (Ingles: Encoder) — sa machine learning at deep learning, ito ay isang bahagi ng neural network na ang pangunahing gawain ay ang pag-convert ng input na pagkakasunod-sunod ng datos (halimbawa, teksto o larawan) sa isang mayamang numerical na representasyon, na karaniwang tinatawag na nakatagong estado, context vector, o embedding. Ang representasyong ito ay kumukuha ng mga pangunahing katangian at semantika ng input na datos sa isang anyo na angkop para sa karagdagang pagpoproseso.
Sa mas malawak na kahulugan, sa teorya ng impormasyon, ang enkoder ay anumang device o algorithm na nagko-convert ng impormasyon mula sa isang format patungo sa isa pa, kadalasan para sa layunin ng compression o pagpapadala.
Konsepto at Layunin
Ang pangunahing layunin ng enkoder sa mga neural network ay ang kunin ang mga kapaki-pakinabang na katangian mula sa input na datos at "i-encode" ang mga ito sa isang siksik na vector ng nakapirming haba. Ang prosesong ito ay maaaring ituring bilang isang anyo ng nonlinear na pagbabawas ng dimensyon, kung saan ang mataas na dimensyon at maluwag na input na datos (halimbawa, teksto na kinakatawan ng mga one-hot vector) ay kino-convert sa isang mababa ang dimensyon ngunit impormasyon na siksik na espasyo ng vector (latent space).
Ang naka-encode na vector na ito ay maaaring gamitin para sa:
- Decoder para sa pagbuo ng bagong pagkakasunod-sunod (halimbawa, sa machine translation).
- Classifier para sa paglutas ng mga gawain sa pagsusuri (halimbawa, pagtukoy ng tono ng teksto).
- Para sa mga gawain na nangangailangan ng pag-unawa sa buong input na konteksto.
Enkoder sa Iba't Ibang Arkitektura
Enkoder sa Autoencoder
Isa sa mga klasikong halimbawa ay ang arkitektura ng autoencoder. Ito ay binubuo ng dalawang bahagi:
- Enkoder: Kinikimkim ang input na datos sa isang nakatagong representasyon ng mas maliit na dimensyon (latent code).
- Decoder: Sinusubukan na mabawi ang orihinal na datos mula sa naka-compress na representasyong ito.
Sa pamamagitan ng pagsasanay ng ganitong network na mabawasan ang pagkakamali sa pagbawi, natututo ang enkoder na kunin ang pinakamahalagang katangian mula sa datos.
Enkoder sa Recurrent Neural Networks (RNN/LSTM)
Bago pa lumabas ang arkitektura ng Transformer, ang mga enkoder sa mga gawain ng pagpoproseso ng pagkakasunod-sunod (seq2seq) ay itinayo batay sa recurrent neural networks (RNN) o sa kanilang pinahusay na bersyon na LSTM.
- Prinsipyo ng pagtatrabaho: Ang RNN encoder ay nagpoproseso ng input na pagkakasunod-sunod nang token sa token. Sa bawat hakbang, ina-update nito ang sarili nitong nakatagong estado, na isinasama ang impormasyon tungkol sa kasalukuyang token at nakaraang estado. Ang panghuling nakatagong estado na nakuha pagkatapos ng pagpoproseso ng buong pagkakasunod-sunod ay itinuturing bilang isang vector na nag-encode ng kahulugan ng buong input na pagkakasunod-sunod. Ang vector na ito ay madalas na tinatawag na context vector o "thought vector".
Enkoder sa Arkitektura ng Transformer
Ang rebolusyon sa pagpoproseso ng natural na wika ay nauugnay sa paglabas ng enkoder batay sa arkitektura ng Transformer. Hindi tulad ng RNN, pinoproseso nito ang lahat ng token ng pagkakasunod-sunod nang sabay-sabay.
Ang Transformer encoder ay binubuo ng stack () ng magkakaparehong mga layer. Ang bawat layer ay may dalawang pangunahing sub-layer:
- Multi-Head Self-Attention: Ang mekanismong ito ay nagbibigay-daan sa bawat token sa input na pagkakasunod-sunod na "magbigay-pansin" sa lahat ng iba pang token at timbangin ang kanilang kahalagahan para sa pagbuo ng sariling contextual na representasyon. Nagbibigay-daan ito sa modelo na mahuli ang mga kumplikadong ugnayan sa pagitan ng mga salita, anuman ang kanilang posisyon.
- Feed-Forward Network: Inilalapat sa representasyon ng bawat token nang hiwalay para sa karagdagang nonlinear na pagbabago.
Ang pangunahing pagkakaiba ng Transformer encoder mula sa RNN encoder ay ang pagbibigay nito sa output hindi ng isang context vector, kundi isang pagkakasunod-sunod ng mga contextualized na vector — isa para sa bawat input na token. Ang bawat naturang vector ay naglalaman ng impormasyon tungkol sa sarili nitong token sa konteksto ng buong pagkakasunod-sunod.
Mga Uri ng Modelo Batay sa Enkoder
Mga Modelo ng Encoder-Decoder
Ito ang klasikong arkitektura para sa mga gawain ng pagbabago ng pagkakasunod-sunod sa pagkakasunod-sunod (seq2seq), tulad ng machine translation o summarization.
- Prinsipyo ng pagtatrabaho: Pinoproseso ng enkoder ang buong input na pagkakasunod-sunod (halimbawa, isang pangungusap sa pinagmulang wika). Ang mga output na representasyon nito ay ipinasa sa decoder, na, gamit ang mga ito, autoregressive na bumubuo ng output na pagkakasunod-sunod (pangungusap sa target na wika). "Tinitingnan" ng decoder ang output ng enkoder gamit ang isang espesyal na mekanismo ng cross-attention.
- Mga halimbawa: Ang orihinal na Transformer, T5, BART.
Mga Modelo na Encoder-Only
Ginagamit ng mga modelong ito nang eksklusibo ang stack ng mga Transformer encoder.
- Prinsipyo ng pagtatrabaho: Ang mga ito ay dinisenyo para sa mga gawain na nangangailangan ng malalim na pag-unawa sa konteksto ng buong input na teksto. Salamat sa bidirectional na kalikasan ng mekanismo ng self-attention, lumilikha sila ng mayamang contextual na representasyon para sa bawat token.
- Paggamit: Perpekto para sa mga gawain ng pagsusuri at pag-unawa sa wika (NLU), tulad ng:
- Klasipikasyon ng teksto (halimbawa, pagsusuri ng tono).
- Pagkilala sa mga pinangalanang entidad (NER).
- Pagsagot sa mga tanong (Question Answering), kung saan ang sagot ay isang fragment mula sa teksto.
- Halimbawa: BERT at ang mga derivative nito (RoBERTa, ALBERT).
Kaugnayan sa Decoder
Sa arkitektura ng encoder-decoder, ang enkoder at decoder ay gumaganap ng mga komplementaryong papel:
- Ang enkoder ay responsable para sa pag-unawa ng input na pagkakasunod-sunod.
- Ang decoder ay responsable para sa pagbuo ng output na pagkakasunod-sunod.
Ang pangunahing nagtataglay na ugnayan sa pagitan ng mga ito ay ang mekanismo ng cross-attention sa loob ng decoder. Sa bawat hakbang ng pagbuo, ang decoder ay bumubuo ng isang Query batay sa nabuong bahagi ng output na pagkakasunod-sunod at ginagamit ito para "magbigay-pansin" sa mga output na representasyon ng enkoder (na nagsisilbing mga Key at Value). Nagbibigay-daan ito sa decoder na mag-focus sa pinaka-kaugnay na bahagi ng input na pagkakasunod-sunod para sa pagbuo ng susunod na token.
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.
Tingnan Din
- BERT