Encoder (Transformer) (ID)
Enkoder (Ingg. Encoder, pengode) — dalam Machine Learning dan deep learning, ini adalah komponen Neural Network yang tugas utamanya adalah mengubah urutan data masukan (misalnya, teks atau gambar) menjadi representasi numerik yang kaya, yang biasanya disebut keadaan tersembunyi, vektor konteks, atau embedding. Representasi ini menangkap karakteristik dan semantik kunci dari data masukan dalam bentuk yang mudah diproses lebih lanjut.
Dalam pengertian yang lebih luas, dalam teori informasi, enkoder adalah perangkat atau algoritma apa pun yang mengubah informasi dari satu format ke format lain, seringkali dengan tujuan kompresi atau transmisi.
Konsep dan Tujuan
Tujuan utama enkoder dalam Neural Network adalah mengekstrak fitur-fitur berguna dari data masukan dan "mengodekan" mereka ke dalam vektor padat dengan panjang tetap. Proses ini dapat dianggap sebagai bentuk pengurangan dimensionalitas nonlinier, di mana data masukan berdimensi tinggi dan jarang (misalnya, teks yang direpresentasikan dengan vektor one-hot) diubah menjadi ruang vektor berdimensi rendah namun kaya informasi (ruang laten).
Vektor yang telah dikodekan ini kemudian dapat digunakan oleh:
- Dekoder untuk menghasilkan urutan baru (misalnya, dalam penerjemahan mesin).
- Pengklasifikasi untuk menyelesaikan tugas analisis (misalnya, penentuan sentimen teks).
- Untuk tugas-tugas yang memerlukan pemahaman atas seluruh konteks masukan.
Enkoder dalam Berbagai Arsitektur
Enkoder dalam Autoenkoder
Salah satu contoh klasik adalah arsitektur autoenkoder. Arsitektur ini terdiri dari dua bagian:
- Enkoder: Mengompresi data masukan menjadi representasi tersembunyi dengan dimensionalitas yang lebih kecil (kode laten).
- Dekoder: Berusaha memulihkan data asli dari representasi terkompresi tersebut.
Dengan melatih jaringan semacam ini untuk meminimalkan kesalahan rekonstruksi, enkoder belajar mengekstrak fitur-fitur terpenting dari data.
Enkoder dalam Recurrent Neural Network (RNN/LSTM)
Sebelum kemunculan arsitektur Transformer, enkoder dalam tugas pemrosesan urutan (seq2seq) dibangun berdasarkan Recurrent Neural Network (RNN) atau variannya yang lebih canggih, yaitu LSTM.
- Prinsip kerja: Enkoder RNN memproses urutan masukan token demi token. Pada setiap langkah, ia memperbarui keadaan tersembunyinya dengan menggabungkan informasi tentang token saat ini dan keadaan sebelumnya. Keadaan tersembunyi akhir yang diperoleh setelah memproses seluruh urutan diperlakukan sebagai vektor yang mengodekan makna seluruh urutan masukan. Vektor ini sering disebut vektor konteks atau "thought vector" (vektor pikiran).
Enkoder dalam Arsitektur Transformer
Revolusi dalam pemrosesan bahasa alami dikaitkan dengan kemunculan enkoder berbasis arsitektur Transformer. Berbeda dengan RNN, enkoder ini memproses semua token dalam urutan secara paralel.
Enkoder Transformer terdiri dari tumpukan () lapisan-lapisan yang identik. Setiap lapisan memiliki dua sub-lapisan utama:
- Multi-Head Self-Attention (Perhatian Diri Multi-Kepala): Mekanisme ini memungkinkan setiap token dalam urutan masukan untuk "memperhatikan" semua token lainnya dan menimbang tingkat kepentingan mereka dalam membentuk representasi kontekstual masing-masing token. Hal ini memungkinkan model menangkap dependensi kompleks antar kata, terlepas dari posisi mereka.
- Feed-Forward Network (Jaringan Saraf Terhubung Penuh): Diterapkan pada representasi setiap token secara terpisah untuk transformasi nonlinier lebih lanjut.
Perbedaan utama enkoder Transformer dari enkoder RNN adalah bahwa enkoder ini pada keluarannya menghasilkan bukan satu vektor konteks, melainkan urutan vektor-vektor yang telah dikontekstualisasikan — satu untuk setiap token masukan. Setiap vektor tersebut mengandung informasi tentang tokennya dalam konteks seluruh urutan.
Jenis Model Berbasis Enkoder
Model Enkoder-Dekoder
Ini adalah arsitektur klasik untuk tugas transformasi urutan ke urutan (seq2seq), seperti penerjemahan mesin atau peringkasan teks.
- Prinsip kerja: Enkoder memproses seluruh urutan masukan (misalnya, kalimat dalam bahasa sumber). Representasi keluarannya kemudian diteruskan ke dekoder, yang menggunakannya untuk menghasilkan urutan keluaran secara autoregresif (kalimat dalam bahasa target). Dekoder "melihat" keluaran enkoder menggunakan mekanisme khusus perhatian silang (cross-attention).
- Contoh: Transformer orisinal, T5, BART.
Model Hanya-Enkoder (Encoder-Only)
Model-model ini menggunakan secara eksklusif tumpukan enkoder Transformer.
- Prinsip kerja: Model-model ini dirancang untuk tugas-tugas yang memerlukan pemahaman konteks mendalam dari seluruh teks masukan. Berkat sifat bidireksional dari mekanisme self-attention, model ini menciptakan representasi kontekstual yang kaya untuk setiap token.
- Penerapan: Ideal untuk tugas analisis dan pemahaman bahasa (NLU), seperti:
- Klasifikasi teks (misalnya, analisis sentimen).
- Pengenalan entitas bernama (NER).
- Menjawab pertanyaan (Question Answering), di mana jawabannya merupakan fragmen dari teks.
- Contoh: BERT dan turunannya (RoBERTa, ALBERT).
Hubungan dengan Dekoder
Dalam arsitektur enkoder-dekoder, enkoder dan dekoder menjalankan peran yang saling melengkapi:
- Enkoder bertanggung jawab atas pemahaman urutan masukan.
- Dekoder bertanggung jawab atas pembangkitan urutan keluaran.
Penghubung utama antara keduanya adalah mekanisme perhatian silang (cross-attention) di dalam dekoder. Pada setiap langkah pembangkitan, dekoder membentuk kueri (Query) berdasarkan bagian urutan keluaran yang telah dihasilkan dan menggunakannya untuk "memperhatikan" representasi keluaran enkoder (yang berfungsi sebagai kunci dan nilai — Key dan Value). Hal ini memungkinkan dekoder untuk berfokus pada bagian-bagian paling relevan dari urutan masukan guna menghasilkan token berikutnya.
Literatur
- 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.
Lihat Juga
- BERT