self-attention-mekanisme

En neural netværksmekanisme, der beregner vægtede repræsentationer af en sekvens ved at lade hvert element 'kigge på' alle andre elementer i sekvensen.

Kort fortalt

Self-attention lader en model se på hele input-sekvensen på én gang og afgøre, hvilke dele der er vigtigst for hver position.

Kategori
teknik
Niveau
øvet
Udtale
/sɛlf əˈtɛnʃən mekəˈnɪsmə/

Betydninger

2
  1. 1

    En matematisk operation, der beregner en vægtet sum af værdier for hvert element i en sekvens baseret på dets relation til alle andre elementer. Vægtene bestemmes af en alignment-funktion (typisk dot-product) efterfulgt af en softmax.

    • Self-attention-mekanismen gør det muligt for en model at fange langdistanceafhængigheder i en tekst uden at øge antallet af parametre lineært.Vaswani et al., 2017
  2. 2

    Et neuralt netværkslag, der implementerer self-attention-operationen, ofte inklusive en projektion af input til query, key og value repræsentationer.

    • I en transformer består hvert encoder-lag af et self-attention-lag efterfulgt af et feed-forward-lag.Vaswani et al., 2017

Hvornår bruges det

Self-attention er den centrale byggesten i transformer-arkitekturer, hvor den bruges både i encoder og decoder. Den anvendes i sprogmodeller som GPT og BERT, og i vision transformers til billedbehandling. I praksis udnytter man multi-head self-attention for at fange forskellige relationsmønstre.

Formel

Attention(Q, K, V) = softmax(QK^T / √d_k) V

Kodeeksempel

import torch
import torch.nn.functional as F

def self_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)
    output = torch.matmul(attn_weights, V)
    return output, attn_weights

En minimal implementering af self-attention i PyTorch, der tager query (Q), key (K) og value (V) som input og returnerer den vægtede sum samt attention-vægtene.

Oprindelse

Termen opstod med transformer-arkitekturen i artiklen 'Attention Is All You Need' (2017), hvor den erstattede tidligere attention-mekanismer, der krævede separate query- og key-værdier fra forskellige kilder.

Afledte ord

2

Kilder

1