Peta Belajar
Materi ini berantai: setiap model lahir karena model sebelumnya punya kelemahan. Jadi jangan menghafal, tapi tanyakan di tiap bagian: "Masalah apa yang diselesaikan? Masalah baru apa yang muncul?"
| Model | Ide utama | Masalah yang tersisa |
|---|---|---|
| RNN | Punya "ingatan" (hidden state) | Lupa konteks jauh, vanishing gradient, lambat (berurutan) |
| LSTM/GRU | Gerbang (gate) mengatur ingatan | Masih berurutan, masih sulit untuk kalimat sangat panjang |
| Seq2Seq | Encoder merangkum, decoder menghasilkan | Satu context vector = bottleneck |
| Attention | Decoder boleh "melirik" semua posisi input | Masih bergantung pada RNN yang berurutan |
| Transformer | Hanya attention, paralel, tanpa RNN | Biaya memori O(n²), butuh positional encoding |
1. Gambaran Besar: NLP Tradisional vs Deep Learning
NLP tradisional
Dokumen melewati pipeline manual: deteksi bahasa → tokenisasi → PoS tagging → stopword removal → ekstraksi fitur → model → hasil. Yang penting: pipeline ini dibuat terpisah untuk tiap bahasa (Inggris, Spanyol, Arab, dst.). Artinya banyak kerja tangan dan keahlian linguistik.
NLP berbasis deep learning
Setelah preprocessing sederhana, teks menjadi angka (vektor), lalu jaringan saraf belajar sendiri fitur yang berguna lewat banyak lapisan. Satu arsitektur bisa dipakai untuk banyak tugas: sentimen, klasifikasi, entity extraction, terjemahan, topic modelling.
2. Recurrent Neural Network (RNN)
Intuisi
Bayangkan membaca kalimat kata demi kata sambil menulis catatan ringkas di kepala. Setiap kata baru, kamu memperbarui catatan itu. Catatan itu adalah hidden state (hₜ). Di diagram, panah melingkar pada kotak "hidden" berarti hidden state dikirim kembali ke dirinya sendiri di langkah berikutnya.
Unrolling: loop dibuka menjadi rantai
Contoh di slide: model language modelling (menebak kata berikutnya). Input "the" → tebak "quick"; input "quick" → tebak "brown"; dan seterusnya.
Tiga rumus inti
xₜ = Emb(wₜ) = E·wₜ (kata → vektor) hₜ = g( Wʰ·hₜ₋₁ + xₜ + bʰ ) (update ingatan) y = softmax( Wᵒ·hₜ + bᵒ ) (probabilitas kata berikutnya)- E: tabel embedding, mengubah indeks kata jadi vektor.
- Wʰ: seberapa besar ingatan lama ikut mempengaruhi ingatan baru.
- g: fungsi aktivasi (biasanya tanh) agar model bisa non-linear.
- softmax: mengubah skor menjadi probabilitas yang jumlahnya 1.
- Catatan: pada slide, xₜ langsung dijumlahkan karena embedding berdimensi H (input projection = H). Di banyak buku ada matriks Wˣ tambahan.
Ukuran parameter
| Parameter | Ukuran | Arti |
|---|---|---|
| Embedding E | |V| × H | tiap kata punya vektor H dimensi |
| Recurrent Wʰ | H × H | hidden → hidden |
| Output Wᵒᵘᵗ | H × |V| | hidden → skor tiap kata kamus (K = |V|) |
|V| (ukuran kosakata): H (ukuran hidden):
Perhatikan: untuk kosakata besar, E dan Wᵒᵘᵗ mendominasi jumlah parameter, bukan Wʰ.
Backpropagation Through Time (BPTT)
- Melatih RNN = melatih jaringan sangat dalam (satu lapis per timestep) dengan parameter yang dipakai bersama (tied).
- Dari x₀ ke y₂, Wʰ terpakai dua kali, jadi gradien melewati Wʰ berkali-kali.
- Jika nilai yang dikalikan < 1 terus-menerus, gradien mengecil (vanishing gradient). Jika > 1, membesar (exploding gradient).
- Akibatnya RNN sulit belajar dependensi jarak jauh. Solusi parsial: truncated BPTT, yaitu backprop hanya sampai T langkah ke belakang.
Faktor pengali per langkah: Jumlah langkah:
Contoh: Sentiment Analysis ("I don't hate it")
Dua cara mengambil keputusan dari RNN: (a) pakai hidden state terakhir h₃ sebagai ringkasan kalimat; (b) jumlahkan semua hidden state (sum/pooling) lalu klasifikasi. Cara (b) memberi jalan pintas gradien dan tidak bergantung pada ingatan satu titik saja.
3. LSTM dan GRU
LSTM (Long Short-Term Memory) menambahkan jalur khusus bernama cell state (Cₜ), seperti "ban berjalan" yang membawa informasi jangka panjang dengan sedikit gangguan. Tiga gate (nilai 0–1 dari sigmoid σ) mengatur isi ban berjalan itu.
| Gate | Pertanyaan yang dijawab | Analogi |
|---|---|---|
| Forget gate (fₜ) | Bagian ingatan lama mana yang dibuang? | Menghapus catatan usang |
| Input gate (iₜ) + input modulation (gₜ) | Informasi baru apa yang disimpan? | Menulis catatan baru |
| Output gate (oₜ) | Bagian ingatan mana yang ditampilkan sebagai hₜ? | Memilih yang dibicarakan sekarang |
(⊙ = perkalian elemen demi elemen.) Kunci mengatasi vanishing gradient: Cₜ diperbarui dengan penjumlahan dan perkalian gate, bukan perkalian matriks berulang, sehingga gradien bisa mengalir lebih jauh.
Jumlah parameter ≈ 4× RNN karena ada 4 blok transformasi (forget, input, modulation, output).
GRU (Gated Recurrent Unit)
- Ide mirip LSTM, tetapi lebih sedikit gate (reset & update), jadi parameter lebih sedikit.
- Tidak ada cell state, hanya hₜ yang diteruskan.
- Dalam praktik tidak ada perbedaan sistematis; slide menyebut orang lebih sering memakai LSTM.
| RNN | LSTM | GRU | |
|---|---|---|---|
| Gate | 0 | 3 (+ modulation) | 2 |
| Cell state | Tidak | Ya | Tidak |
| Parameter relatif | 1× | ≈4× | ≈3× |
| Jarak dependensi | Pendek | Lebih panjang | Lebih panjang |
4. Encoder-Decoder (Seq2Seq)
Dipakai saat input dan output sama-sama sequence dengan panjang bisa berbeda, contohnya terjemahan mesin: "once upon a time" → "il était une fois".
- Encoder: membaca kata satu per satu, lalu menghasilkan satu context vector (latent space) berukuran tetap, yaitu pasangan (hₜ, cₜ) terakhir.
- Decoder: menerima context vector, lalu menghasilkan kata satu per satu. Input tiap langkah adalah kata yang baru saja dihasilkan (diawali token <START>, berhenti di <END>). Di akhir ada softmax atas kosakata.
5. Attention Mechanism
Masalah
Kalimat "I like cats but I don't like dogs" punya bagian berbeda dengan makna berbeda (suka kucing, tidak suka anjing). Jika semuanya dilebur menjadi satu vektor, detail bisa tercampur.
Solusi
Jangan hanya pakai output terakhir encoder. Simpan semua output encoder hᵢ, lalu biarkan decoder memilih (attend) bagian yang paling relevan untuk langkah saat ini. Pemilihan dipandu oleh context c (misalnya state decoder saat ini).
Tiga langkah
- Skor:
eᵢ = f_att({hᵢ}, c)mengukur kecocokan tiap hᵢ dengan c. f_att bisa cosine similarity, dot product, atau jaringan kecil. - Normalisasi:
αᵢ = exp(eᵢ) / Σₖ exp(eₖ)(softmax), semua αᵢ positif dan jumlahnya 1. - Rata-rata berbobot:
z = Σᵢ αᵢ·hᵢ, vektor konteks baru yang didominasi hᵢ yang relevan.
Ini disebut soft selection: bukan memilih satu secara kaku (argmax, tidak bisa diturunkan), tetapi campuran berbobot yang differentiable, sehingga bisa dilatih dengan backpropagation.
Atur skor kecocokan tiga posisi (e₁, e₂, e₃):
e₁ e₂ e₃ Perhatikan: selisih kecil pada skor bisa menjadi perbedaan bobot yang besar karena eksponen. Itu sebabnya softmax "fokus pada sedikit item".
Membaca heatmap attention (Bahdanau et al., 2014)
Baris = kata terjemahan Prancis, kolom = kata Inggris. Sel terang = perhatian tinggi. Garis diagonal berarti urutan kata mirip. Menariknya, pada "European Economic Area → la zone économique européenne" model membalik urutan kata sifat dan kata benda dengan benar. Model belajar alignment sendiri tanpa diajari.
GNMT (Google Neural Machine Translation, 2016): encoder 8 lapis LSTM (lapis bawah bidirectional), decoder 8 lapis LSTM, residual connection antar lapis, attention menghubungkan keduanya, dilatih pada banyak GPU.
6. Transformer ("Attention Is All You Need", 2017)
Ide radikal: buang RNN sepenuhnya, pakai hanya attention. Keuntungan: semua posisi diproses paralel (cepat di GPU) dan setiap token bisa langsung terhubung ke token mana pun dalam satu langkah (jarak dependensi = 1, bukan n).
6.1 Self-Attention: Query, Key, Value
Tiap token xᵢ diproyeksikan menjadi tiga vektor lewat tiga matriks bobot yang dipelajari:
- Query (Q): "apa yang sedang saya cari?"
- Key (K): "apa yang saya tawarkan/label saya?"
- Value (V): "isi informasi yang saya bawa jika dipilih."
Analogi: mencari di perpustakaan. Query = kata kunci pencarianmu, Key = label di punggung buku, Value = isi buku.
Attention(Q, K, V) = softmax( Q·Kᵀ / √dₖ ) · V- MatMul Q·Kᵀ: skor kemiripan tiap pasangan token.
- Scale ÷√dₖ: menjaga skor tidak terlalu besar.
- Mask (opsional): menutup posisi yang tidak boleh dilihat.
- Softmax: skor → bobot (jumlah 1).
- MatMul dengan V: campuran berbobot dari value.
Mengapa dibagi √dₖ?
Dot product dari vektor berdimensi dₖ punya ukuran yang tumbuh seiring dₖ (variansnya ≈ dₖ jika elemen bervariasi 1). Skor besar membuat softmax jenuh (satu bobot ≈ 1, lainnya ≈ 0), dan gradiennya hampir nol sehingga model sulit belajar. Pembagian √dₖ menormalkan skala.
Skor mentah dibuat membesar sesuai dₖ. dₖ:
6.2 Demo interaktif: siapa yang diperhatikan "ia"?
Klik sebuah kata untuk melihat bobot attention-nya (bobot ilustrasi buatan, bukan dari model asli).
Pada kata "ia", bobot terbesar ke "Hewan": inilah resolusi koreferensi. Contoh asli di slide: "The animal didn't cross the street because it was too tired".6.3 Multi-Head Attention
Satu attention hanya bisa menangkap satu jenis hubungan. Maka dipakai h head paralel, masing-masing dengan proyeksi Q, K, V sendiri. Satu head bisa fokus pada hubungan sintaksis (subjek-kata kerja), lainnya pada koreferensi, lainnya pada kata yang berdekatan. Hasil semua head di-concat lalu dilewatkan Linear. Pada slide "Nobel committee awards Strickland who advanced optics", tiap head menghasilkan pola attention berbeda.
6.4 Positional Encoding
Self-attention memperlakukan input sebagai himpunan: "anjing gigit orang" dan "orang gigit anjing" tampak sama. Solusi: tambahkan vektor posisi ke embedding kata (Token Embedding + Position Embedding). Bisa sinusoidal (rumus tetap, gambar heatmap di bawah) atau dipelajari (learned).
PE(pos, 2i) = sin(pos / 10000^(2i/d)) | PE(pos, 2i+1) = cos(pos / 10000^(2i/d))Sumbu x = dimensi, sumbu y = posisi. Dimensi awal berubah cepat (frekuensi tinggi), dimensi akhir lambat.
6.5 Komponen blok Transformer
| Komponen | Fungsi |
|---|---|
| Multi-Head Attention | Menukar informasi antar token |
| Feed Forward | Jaringan kecil yang sama dipakai pada tiap posisi, memproses informasi tiap token |
| Add & Norm | Residual connection (x + sublayer(x)) + layer normalization, agar pelatihan stabil & dalam |
| Linear + Softmax (akhir) | Mengubah output decoder menjadi probabilitas kata |
| Tumpukan N× | Encoder dan decoder masing-masing N lapis |
6.6 Tiga jenis attention (soal kuis)
| Self-attention encoder | Masked self-attention decoder | Encoder-decoder attention | |
|---|---|---|---|
| Q berasal dari | Encoder (lapis sebelumnya) | Decoder | Decoder |
| K, V berasal dari | Encoder (sama) | Decoder (sama) | Output akhir encoder |
| Boleh melihat | Semua token input (dua arah) | Hanya token saat ini & sebelumnya | Semua posisi input |
| Tujuan | Memahami konteks input | Menyusun output tanpa curang | Menghubungkan output dengan input (seperti attention pada Seq2Seq) |
Mengapa masking diperlukan pada decoder?
Saat training, seluruh kalimat target diberikan sekaligus agar paralel (teacher forcing). Tanpa mask, saat memprediksi kata ke-3 decoder bisa mengintip kata ke-4 dan tinggal menyalinnya, jadi loss kecil tapi model tidak belajar menebak. Saat inference, kata masa depan memang belum ada. Mask (diisi −∞ sebelum softmax sehingga bobotnya 0) membuat kondisi training sama dengan inference: hanya melihat masa lalu (autoregressive).
7. Turunan Transformer: GPT dan BERT
| Transformer asli | GPT | BERT | |
|---|---|---|---|
| Bagian dipakai | Encoder + Decoder | Decoder-only | Encoder-only |
| Arah konteks | - | Satu arah (kiri→kanan, masked) | Dua arah |
| Cocok untuk | Terjemahan | Generasi teks | Pemahaman: klasifikasi, NER, QA |
BERT: pre-training lalu fine-tuning
- Pre-training pada teks tanpa label: Masked LM (sebagian token ditutup, model menebaknya) dan NSP (Next Sentence Prediction: apakah kalimat B mengikuti kalimat A). Token khusus: [CLS] (ringkasan kalimat) dan [SEP] (pemisah).
- Fine-tuning: model yang sama disesuaikan untuk tugas berlabel, seperti MNLI (inferensi), NER, SQuAD (tanya-jawab: memprediksi awal/akhir span jawaban).
8. Kuis dan Ringkasan
Jawaban soal kuis slide (uraian)
Self-attention encoder: tiap token input melihat semua token input. Masked self-attention decoder: tiap token output hanya melihat token sebelumnya agar tidak menyontek masa depan. Encoder-decoder attention: Query dari decoder, Key/Value dari output encoder, menghubungkan output dengan input. Masking perlu agar training (paralel) konsisten dengan inference (autoregresif).
Ringkasan satu kalimat per model
- RNN: ingatan lewat hidden state; sulit jarak jauh.
- LSTM/GRU: gate mengatur ingatan; lebih tahan vanishing gradient.
- Seq2Seq: encoder merangkum, decoder menghasilkan; bottleneck.
- Attention: decoder melihat semua output encoder dengan bobot softmax.
- Transformer: hanya attention + paralel + positional encoding.
- GPT/BERT: decoder-only generatif / encoder-only pemahaman.