Attention — neural networkga inputning turli qismlariga turlicha vazn berib, joriy vazifa uchun muhim ma’lumotni tanlash imkonini beradigan mexanizm. U tarjima, til modeli, computer vision, speech va multimodal tizimlarda keng ishlatiladi.
Attention modelni bitta fixed representationga to‘liq tayanishdan chiqarib, kerakli paytda inputning ma’lum qismlariga murojaat qilishga imkon beradi.
Asosiy g‘oya
Modelda query mavjud bo‘ladi.
U bir nechta key bilan taqqoslanadi.
Har keyga mos value mavjud.
Jarayon:
query + keys
→ scores
→ weights
→ weighted values
Natija relevant value’larning yig‘ilgan representationi.
Query
Query joriy qadam nimani qidirayotganini ifodalaydi.
Masalan, tarjima decoderida yangi so‘z yaratish uchun kerakli source ma’lumot.
Self-attentionda query ham ayni sequence tokenidan hosil bo‘ladi.
Query dimensioni key bilan score hisoblashga mos bo‘ladi.
Key
Key value’ning qaysi ma’lumotga mos kelishini ifodalaydi.
Query va key similarity score beradi.
Katta score query uchun bu value muhimroq ekanini anglatishi mumkin.
Keylarning o‘zi yakuniy content emas.
Value
Value attention outputiga qo‘shiladigan ma’lumot.
Weightlar softmaxdan keyin value’larni aralashtiradi.
Bir head outputi:
sum(weight_i × value_i)
ko‘rinishida bo‘lishi mumkin.
Score function
Query va key orasidagi score turli usulda hisoblanadi:
Score function architecture va dimensionga bog‘liq.
Softmax
Score’lar softmax orqali musbat va yig‘indisi 1ga teng weightlarga aylantiriladi.
Eng katta score yuqori weight oladi.
Temperature yoki scaling distributionni o‘tkir yoki yumshoq qilishi mumkin.
Masklangan pozitsiyalarga juda kichik score beriladi.
Additive attention
Additive attention query va keyni kichik neural network orqali birlashtiradi.
U dastlab encoder-decoder RNNlarda keng ishlatilgan.
Kichik dimensionda yaxshi ishlashi mumkin.
Dot-product attention GPU matrix operationlari uchun samaraliroq.
Dot-product attention
Query va key matrix multiplication orqali taqqoslanadi.
Transformer scaled dot-product attentiondan foydalanadi.
Bu barcha token juftlari uchun score matrix yaratadi.
Parallel hardware’da juda samarali, ammo uzun sequence’da memory talab qiladi.
Self-attention
Query, key va value bir xil input sequence’dan olinadi.
Har token boshqa tokenlarga qaraydi.
Natijada token representationi butun context bilan boyiydi.
Causal yoki padding mask qaysi pozitsiyalar ko‘rinishini cheklaydi.
Cross-attention
Query bir source’dan, key va value boshqa source’dan olinadi.
Masalan:
- text decoder → image feature;
- translation decoder → source sentence;
- audio decoder → acoustic encoder.
Bu modality yoki sequence’lar orasida bog‘lanish yaratadi.
Multi-head attention
Input bir nechta projectionga ajratilib, parallel attention headlar hisoblanadi.
Har head boshqa subspace va relationshipni o‘rganadi.
Headlar outputi concatenation va linear projectiondan o‘tadi.
Ko‘p headning hammasi teng foydali bo‘lishi shart emas.
Mask
Mask certain score’larni ishlatmaslik uchun qo‘llanadi.
Turlari:
- padding mask;
- causal mask;
- local window mask;
- structural mask;
- modality mask.
Mask shape noto‘g‘ri bo‘lsa model forbidden tokenni ko‘rishi yoki kerakli tokenni yo‘qotishi mumkin.
Attention weight
Weightlar model qaysi tokenlarga ko‘proq e’tibor berganini ko‘rsatadi.
Ular ba’zan visual explanation sifatida chiziladi.
Biroq attention weight har doim model qarorining to‘liq yoki sababiy izohi emas.
Boshqa layer va nonlinear transformlar ham natijaga ta’sir qiladi.
Long context
Oddiy attention barcha token juftlarini ko‘radi.
Token soni n bo‘lsa score matrix n × n.
Bu uzun contextda memory va compute muammosi.
Efficient attention lokal, sparse yoki kernel-based approximation ishlatadi.
Local attention
Har token faqat yaqin windowdagi tokenlarga qaraydi.
Bu complexityni kamaytiradi.
Til va rasmda local pattern kuchli bo‘lishi mumkin.
Global token yoki vaqti-vaqti bilan full attention uzoq bog‘lanishni saqlaydi.
Sparse attention
Faqat tanlangan token juftlari hisoblanadi.
Pattern:
- block;
- strided;
- global;
- random;
- graph-based.
Sparse implementation nazariy tejamni real hardware’da samarali bajarishi kerak.
Flash Attention
Flash Attentionga o‘xshash kernel yondashuvlari attentionning exact natijasini memory-efficient tile operationlar bilan hisoblaydi.
Asosiy foyda attention matrixni to‘liq high-bandwidth memoryga yozmaslik.
Bu uzun context va training throughputni yaxshilashi mumkin.
Attention va alignment
Tarjima modelida attention weight source va target so‘zlar orasidagi soft alignmentni ko‘rsatishi mumkin.
Masalan, targetdagi bir so‘z source’dagi tegishli phrase’ga yuqori weight beradi.
Bu klassik word alignmentga o‘xshash, ammo neural va kontekstual.
Attention va RNN
Attention dastlab RNN encoder-decoderning fixed vector bottleneckini kamaytirgan.
Decoder har qadamda barcha encoder state’larini ko‘rgan.
Transformer recurrence’ni olib tashlab, attentionni architecture’ning markaziga qo‘ygan.
Relative position
Attention score tokenlar orasidagi masofa yoki yo‘nalish haqidagi qo‘shimcha signalni qabul qilishi mumkin. Relative positional bias ayniqsa local pattern va variable length sequence’da foydali. Position usuli trainingdan uzun contextga chiqishda sifatga ta’sir qiladi.
Dropout
Training vaqtida attention weight yoki projectionga dropout qo‘llanishi mumkin. Bu modelning bitta token relationshipga ortiqcha tayanishini kamaytiradi. Inference’da dropout o‘chiriladi.
Numerical stability
Softmaxdan oldin score’ning eng katta qiymatini ayirish overflow xavfini kamaytiradi. Mixed precision va maskda -infinityga yaqin qiymatlar ehtiyotkor qo‘llanadi. Noto‘g‘ri mask NaN yaratishi mumkin.
Bog‘liq tushunchalar
Attention mechanism, Query, Key, Value, Self-attention, Cross-attention, Multi-head attention, Softmax, Causal mask, Transformer, Flash Attention