Apa itu self-attention di neural network?
Self-attention adalah operasi yang memperbarui setiap elemen sequence dengan weighted average dari semua elemen, dan weight-nya mengukur seberapa relevan tiap elemen. Setiap token menghasilkan vector query, key, dan value. Query dibandingkan dengan setiap key lewat dot product, skornya diskalakan dan dimasukkan ke softmax, lalu weight yang dihasilkan mencampur vector value menjadi representasi baru dari token itu yang sudah memperhitungkan konteks.
Self-attention adalah operasi inti Transformer, jadi operasi ini berjalan di dalam setiap large language model, encoder ala BERT, vision transformer, dan model suara seperti Whisper. Dengan self-attention, model bisa menghubungkan kata ganti ke kata bendanya, kata kerja ke subjeknya, atau satu patch gambar ke patch terkait di mana pun dalam input, cukup dalam satu langkah. Bentuk masked atau causal-nya memungkinkan model bahasa dilatih pada semua posisi teks sekaligus.
Ide utama
- Setiap token diproyeksikan menjadi vector query, key, dan value.
- Skor attention adalah dot product antara query satu token dan key setiap token.
- Skor dibagi √d_k agar softmax tidak jenuh saat dimensi bertambah.
- Output sebuah token adalah weighted average dari semua vector value, dengan weight dari softmax.
- Causal mask mengisi posisi mendatang dengan −∞, sehingga token hanya melihat dirinya dan token sebelumnya.
- Matriks skor tidak simetris karena query dan key memakai weight yang berbeda.
Ulasan singkat tentang topik ini
Pertanyaan umum
Apa bedanya self-attention dan cross-attention?
Pada self-attention, query, key, dan value berasal dari sequence yang sama, jadi kalimat memperhatikan dirinya sendiri. Pada cross-attention, query berasal dari satu sequence, sedangkan key dan value dari sequence lain, misalnya decoder terjemahan yang memperhatikan kalimat sumber yang sudah di-encode. Hitungannya sama persis, hanya input-nya yang berbeda.
Apa bedanya additive attention dan dot-product attention?
Additive attention, yang dipakai Bahdanau dkk., memberi skor pada query dan key dengan feed-forward network kecil: v · tanh(W_1 q + W_2 k). Dot-product attention, yang dipakai Luong dkk. dan Transformer, memberi skor dengan q · k. Bentuk dot product jauh lebih cepat karena semua skor berasal dari satu perkalian matriks, dan penskalaan dengan √d_k mengatasi masalahnya pada dimensi besar.
Apakah attention weight menjelaskan prediksi model?
Hanya sebagian. Attention map menunjukkan dari mana informasi dikumpulkan di satu layer, tetapi layer berikutnya, vector value, dan residual connection ikut membentuk output. Studi seperti Jain dan Wallace (2019) menemukan bahwa pola attention yang sangat berbeda bisa menghasilkan prediksi yang sama, jadi attention adalah petunjuk yang berguna, bukan penjelasan lengkap.
Apakah self-attention hanya dipakai untuk teks?
Tidak. Vision transformer menerapkannya pada patch gambar, model suara pada frame audio, dan graph attention network pada tetangga setiap simpul. Input apa pun yang bisa dipecah menjadi sekumpulan vector bisa memakainya, asalkan posisi atau strukturnya diberikan secara terpisah.
Penjelasan terkait
- Arsitektur Transformer · Panduan visual untuk paper "Attention Is All You Need"
- Multi-Head Attention · Attention head paralel yang mempelajari pola berbeda
- Cross-Attention · Attention antar-sequence dan antar-modalitas
- Positional Encoding · Cara transformer mengetahui urutan kata
- Softmax, Logit, dan Temperature · Mengubah skor mentah menjadi probabilitas
- Decoder-Only Transformer · Arsitektur di balik GPT dan LLM modern
Referensi
- Vaswani et al. (2017), "Attention Is All You Need", NeurIPS
- Luong, Pham & Manning (2015), "Effective Approaches to Attention-based Neural Machine Translation"
- Dao et al. (2022), "FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness"
- Jain & Wallace (2019), "Attention is not Explanation"
Terakhir diperbarui