self-attention layer

Et neuralt netværkslag der beregner vægtede repræsentationer af en sekvens ved at lade hvert element 'kigge på' alle andre elementer.

Kort fortalt

Self-attention gør det muligt for en model at fokusere på forskellige dele af inputtet, når den behandler hvert ord – ligesom du læser en sætning og lægger mærke til relaterede ord.

Kategori
arkitektur
Niveau
øvet

Betydninger

1
  1. 1

    Et lag i en neural netværksarkitektur der anvender self-attention-mekanismen, hvor hvert element i en sekvens beregner en vægtet sum af alle elementer i samme sekvens.

    • Transformer-modellen består af flere self-attention-lag stablet oven på hinanden.
    • Self-attention-laget gør det muligt for modellen at modellere langdistanceafhængigheder uden at øge antallet af parametre lineært med sekvenslængden.

Hvornår bruges det

Self-attention bruges i Transformere og andre sekvensmodeller til at fange afhængigheder på tværs af sekvensen, uanset afstand. Det er især nyttigt til sprogforståelse, oversættelse og tekstgenerering.

Formel

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

Kodeeksempel

import numpy as np

def self_attention(Q, K, V):
    d_k = Q.shape[-1]
    scores = np.dot(Q, K.T) / np.sqrt(d_k)
    weights = np.exp(scores) / np.sum(np.exp(scores), axis=-1, keepdims=True)
    return np.dot(weights, V)

En simpel implementering af self-attention for en enkelt hoved.

Oprindelse

Termen opstod i forbindelse med Transformer-arkitekturen introduceret i 2017.

Afledte ord

2

Kilder

1
  • Attention Is All You Need (2017)