Arsitektur Deep Learning untuk NLP

RNN → LSTM/GRU → Seq2Seq → Attention → Transformer → GPT & BERT

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?"

ModelIde utamaMasalah yang tersisa
RNNPunya "ingatan" (hidden state)Lupa konteks jauh, vanishing gradient, lambat (berurutan)
LSTM/GRUGerbang (gate) mengatur ingatanMasih berurutan, masih sulit untuk kalimat sangat panjang
Seq2SeqEncoder merangkum, decoder menghasilkanSatu context vector = bottleneck
AttentionDecoder boleh "melirik" semua posisi inputMasih bergantung pada RNN yang berurutan
TransformerHanya attention, paralel, tanpa RNNBiaya 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.

Catatan kritisDeep learning bukan "lebih baik di segalanya". Ia butuh data besar dan komputasi mahal, serta sulit dijelaskan (black box). Untuk data kecil, metode tradisional kadang masih kompetitif dan lebih mudah diaudit.

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

x₀ "the"x₁ "quick"x₂ "brown" h₀h₁h₂ y₀ quicky₁ browny₂ fox WʰWʰ

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)

Ukuran parameter

ParameterUkuranArti
Embedding E|V| × Htiap kata punya vektor H dimensi
Recurrent WʰH × Hhidden → hidden
Output WᵒᵘᵗH × |V|hidden → skor tiap kata kamus (K = |V|)
Kalkulator parameter RNN
|V| (ukuran kosakata): H (ukuran hidden):

Perhatikan: untuk kosakata besar, E dan Wᵒᵘᵗ mendominasi jumlah parameter, bukan Wʰ.

Backpropagation Through Time (BPTT)

Simulasi vanishing gradient
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.

Catatan kritisKalimat "I don't hate it" menunjukkan kenapa urutan penting: "hate" negatif, tapi "don't" membalikkannya. Model bag-of-words bisa salah menilai, RNN lebih mungkin benar karena membaca berurutan. Kelemahan RNN: pemrosesan harus berurutan, tidak bisa diparalelkan di GPU, sehingga lambat untuk data besar.

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.

GatePertanyaan yang dijawabAnalogi
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
Cₜ = fₜ ⊙ Cₜ₋₁ + iₜ ⊙ gₜ   |   hₜ = oₜ ⊙ tanh(Cₜ)

(⊙ = 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)

RNNLSTMGRU
Gate03 (+ modulation)2
Cell stateTidakYaTidak
Parameter relatif1×≈4×≈3×
Jarak dependensiPendekLebih panjangLebih panjang
Catatan kritisSlide menulis LSTM "SOTA" (state-of-the-art). Itu benar pada masanya, namun sekarang sudah banyak digantikan Transformer. LSTM memitigasi (mengurangi), bukan menghilangkan, vanishing gradient, dan tetap berurutan sehingga sulit diparalelkan.

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 (LSTM)Decoder (LSTM)context once upon a time<START> il était une foisil était une fois <END>
Catatan kritis: bottleneckSeluruh kalimat, panjang atau pendek, dipaksa masuk ke satu vektor berukuran tetap. Seperti meminta orang merangkum satu bab buku dalam satu kalimat lalu menerjemahkan hanya dari kalimat itu. Semakin panjang input, semakin banyak informasi hilang. Ini motivasi attention.

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

  1. Skor: eᵢ = f_att({hᵢ}, c) mengukur kecocokan tiap hᵢ dengan c. f_att bisa cosine similarity, dot product, atau jaringan kecil.
  2. Normalisasi: αᵢ = exp(eᵢ) / Σₖ exp(eₖ) (softmax), semua αᵢ positif dan jumlahnya 1.
  3. 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.

Demo softmax attention
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.

Catatan kritisAttention sering dianggap "penjelasan" model, tapi bobot attention tidak selalu sama dengan alasan sebenarnya model memutuskan sesuatu. Gunakan sebagai petunjuk, bukan bukti. Selain itu, pada Seq2Seq+attention, encoder dan decoder tetap RNN yang berurutan.

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:

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
  1. MatMul Q·Kᵀ: skor kemiripan tiap pasangan token.
  2. Scale ÷√dₖ: menjaga skor tidak terlalu besar.
  3. Mask (opsional): menutup posisi yang tidak boleh dilihat.
  4. Softmax: skor → bobot (jumlah 1).
  5. 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.

Demo efek scaling
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

KomponenFungsi
Multi-Head AttentionMenukar informasi antar token
Feed ForwardJaringan kecil yang sama dipakai pada tiap posisi, memproses informasi tiap token
Add & NormResidual 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 encoderMasked self-attention decoderEncoder-decoder attention
Q berasal dariEncoder (lapis sebelumnya)DecoderDecoder
K, V berasal dariEncoder (sama)Decoder (sama)Output akhir encoder
Boleh melihatSemua token input (dua arah)Hanya token saat ini & sebelumnyaSemua posisi input
TujuanMemahami konteks inputMenyusun output tanpa curangMenghubungkan 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).

Demo mask
Baris = token yang sedang "bertanya", kolom = token yang boleh dilihat. Abu-abu = diblokir.
Catatan kritis(1) Self-attention menghitung semua pasangan token: biaya waktu & memori O(n²), mahal untuk teks sangat panjang. (2) Tanpa positional encoding, Transformer buta urutan. (3) Transformer tidak otomatis "memahami"; ia kuat karena skala data dan paralelisme. Baca juga The Illustrated Transformer.

7. Turunan Transformer: GPT dan BERT

Transformer asliGPTBERT
Bagian dipakaiEncoder + DecoderDecoder-onlyEncoder-only
Arah konteks-Satu arah (kiri→kanan, masked)Dua arah
Cocok untukTerjemahanGenerasi teksPemahaman: klasifikasi, NER, QA

BERT: pre-training lalu fine-tuning

IntinyaBelajar bahasa umum sekali dari data besar tanpa label, lalu adaptasi murah ke banyak tugas. Inilah paradigma transfer learning di NLP.
Catatan kritisSlide memberi tanda * : arsitektur GPT/BERT sebenarnya bervariasi. Misalnya, NSP kemudian terbukti kurang berguna (RoBERTa membuangnya). Jangan anggap diagram slide sebagai spesifikasi persis.

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

Tips belajarTutup halaman, lalu jelaskan ulang alur "masalah → solusi → masalah baru" dengan kata sendiri. Hitung manual self-attention dengan 3 token berdimensi 2.