scaled dot product attention
Op mærksomhedsmekanisme, der beregner opmærksomhedsvægte som softmax af skalerede prikprodukter mellem queries og keys.
Kort fortalt
En metode til at lade en model fokusere på relevante dele af input ved at sammenligne forespørgsler med nøgler gennem prikprodukter.
- Kategori
- arkitektur
- Niveau
- øvet
Betydninger
1- 1
Den matematiske operation, hvor opmærksomhedsvægte beregnes som softmax af prikprodukter mellem queries og keys, efterfulgt af multiplikation med values. Skaleringen med kvadratroden af key-dimensionaliteten forbedrer gradientflow.
- Transformer-modellen anvender scaled dot product attention i hvert opmærksomhedslag. — Vaswani et al., 2017
- Skaleringen med √d_k sikrer, at softmax ikke får ekstreme værdier ved høje dimensionaliteter.
Hvornår bruges det
Anvendes i transformerarkitekturer som kerneberegningen i opmærksomhedslag, især i multi-head attention. Skaleringen med √d_k forhindrer gradienter i at blive for små ved høje dimensionaliteter.
Formel
Attention(Q,K,V) = softmax(QK^T / √d_k) VKodeeksempel
import torch
import torch.nn.functional as F
def scaled_dot_product_attention(Q, K, V):
d_k = Q.size(-1)
scores = torch.matmul(Q, K.transpose(-2, -1)) / (d_k ** 0.5)
attn_weights = F.softmax(scores, dim=-1)
return torch.matmul(attn_weights, V)PyTorch-implementering af scaled dot product attention.
Oprindelse
Begrebet blev introduceret i artiklen 'Attention Is All You Need' (Vaswani et al., 2017) som en forbedring af dot-product attention.
Afledte ord
2Kilder
1- Attention Is All You Need (2017)