attention-mekanisme
En komponent i neurale netværk der vægter input-sekvensens elementer efter relevans, så modellen kan fokusere på de vigtigste dele af data.
Kort fortalt
Attention-mekanisme lader en model se på hele inputtet og beslutte, hvilke dele der er vigtigst, i stedet for bare at behandle det i rækkefølge.
- Kategori
- arkitektur
- Niveau
- øvet
- Udtale
- /əˈtɛnʃən mekaˈnismə/
Betydninger
3- 1
Generel mekanisme der beregner en vægtet sum af værdier (V) baseret på lighed mellem en query (Q) og nøgler (K), ofte via en softmax-funktion.
- Attention-mekanismen i en encoder-decoder-model hjælper med at fokusere på relevante dele af kildesætningen under oversættelse.
- 2
Self-attention: attention hvor query, key og value alle kommer fra samme sekvens, så hvert element kan relatere til alle andre elementer.
- Self-attention er nøglekomponenten i transformeren, der giver modellen mulighed for at fange afhængigheder på tværs af sekvensen.
- 3
Cross-attention: attention hvor query kommer fra én sekvens (fx decoder) og key/value fra en anden (fx encoder), brugt i sekvens-til-sekvens modeller.
- Cross-attention i transformeren forbinder decoderens output med encoderens repræsentationer.
Hvornår bruges det
Bruges i transformermodeller (fx BERT, GPT), maskinoversættelse, billedgenkendelse og spørgsmålsbesvarelse. Mekanismen er central for at modeller kan håndtere lange sekvenser og kontekstafhængighed.
Formel
Attention(Q,K,V) = softmax(QK^T/√d)VKodeeksempel
import torch
import torch.nn.functional as F
def attention(Q, K, V):
d_k = Q.size(-1)
scores = torch.matmul(Q, K.transpose(-2, -1)) / (d_k ** 0.5)
weights = F.softmax(scores, dim=-1)
return torch.matmul(weights, V)Simpel implementation af attention-funktionen i PyTorch med scaled dot-product attention.
Oprindelse
Fra engelsk 'attention mechanism'. Konceptet blev introduceret af Bahdanau et al. (2014) til maskinoversættelse og videreudviklet i 'Attention Is All You Need' (Vaswani et al., 2017).