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. 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) V

Kodeeksempel

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

2

Kilder

1
  • Attention Is All You Need (2017)