AI Ordbog
Self-attention
Mekanismen hvor hvert ord i en tekst fokuserer på alle andre ord for at forstå kontekst.
Skrevet og redigeret af Kristian Primdal · Sidst opdateret 3. oktober 2026Indhold
Hvad er self-attention?
Self-attention er en mekanisme hvor hvert ord i en tekst “kigger på” alle andre ord i den samme tekst for at forstå sin egen betydning ud fra konteksten.
Ordet “bank” kan betyde en finansinstitution eller en flodbred. Ordet alene er flertydigt. Men i sætningen “hun gik ned til banken for at hæve penge” fjerner konteksten al tvivl. Self-attention er den mekanisme der giver AI-modeller evnen til at opløse den slags flertydighed, ved at lade hvert ord fokusere på de andre ord der definerer dets betydning.
Det er “self” fordi modellen fokuserer på sig selv. Den sammenligner elementer inden for den samme sekvens, i modsætning til cross-attention der sammenligner to forskellige sekvenser (f.eks. en kilde-sætning og en mål-sætning i oversættelse).
Self-attention vs. cross-attention
| Self-attention | Cross-attention | |
|---|---|---|
| Hvad sammenlignes | Elementer inden for samme sekvens | Elementer mellem to sekvenser |
| Eksempel | Hvert ord i en sætning kigger på alle andre ord i samme sætning | Ord i oversættelsen kigger på ord i originalteksten |
| Hvor bruges det | Kernen i transformer-encodere og decodere | Decoder-lag i oversættelse, billedgenerering |
| Primær funktion | Forstå kontekst og relationer internt | Forbinde information mellem to kilder |
Hvordan fungerer self-attention?
Trin for trin
Tag sætningen: “Katten jagtede musen fordi den var sulten.”
Hvert ord får tre repræsentationer. Via lærte vægtmatricer transformeres hvert ords embedding til en Query (Q), Key (K) og Value (V) vektor.
Beregn attention scores. For hvert ord beregnes en score mod alle andre ord ved at tage dot product mellem ordets Query og alle andre ords Keys. For “den” vil scores indikere hvor meget “den” relaterer til hvert andet ord.
Skalér og normaliser. Scores divideres med kvadratroden af dimensionen og sendes gennem softmax for at blive til sandsynligheder der summerer til 1.
Vægt og kombinér. De normaliserede scores bruges til at vægte alle ords Values. Det endelige resultat for “den” er en vægtet kombination af alle andre ords Values. Med mest vægt på de mest relevante ord.
Konkret eksempel
For “den” i sætningen “Katten jagtede musen fordi den var sulten”:
- Attention til “Katten”: Høj score. “den” refererer sandsynligvis til katten (det er katten der er sulten og jager).
- Attention til “jagtede”: Moderat score. Verbet giver kontekst for hvem der handler.
- Attention til “musen”: Moderat score. Musen er det alternative referencepunkt.
- Attention til “sulten”: Høj score. “sulten” er tæt knyttet til hvad “den” er.
- Attention til “fordi”: Lav score. Strukturord med lidt semantisk indhold.
Resultatet: modellen forstår at “den” refererer til “Katten” fordi konteksten (jagtede, sulten) peger stærkt i den retning.
Hvad fanger self-attention?
Self-attention fanger mange typer relationer i tekst:
Koreferens (hvad refererer til hvad)
- “Maria sagde at hun ville komme” → “hun” fokuserer på “Maria”
- “Bogen var kedelig. Den lå på bordet” → “Den” fokuserer på “Bogen”
Syntaktiske relationer (grammatisk struktur)
- “Hunden bider manden” → “bider” fokuserer på “Hunden” (subjekt) og “manden” (objekt)
- Subjekt-verbum-agreement: “Hundene løber”, flertal forbindes
Semantiske relationer (betydningsmæssige forbindelser)
- “Lægen anbefalede medicin mod hovedpinen” → “medicin” og “hovedpinen” forbindes som relaterede koncepter
- “Regnen stoppede og solen kom frem” → kontrast mellem vejrfænomener
Langdistance-afhængigheder
- “Manden, der havde boet i Paris i ti år og talt flydende fransk siden barndommen, besluttede at flytte hjem” → “besluttede” forbindes med “Manden” på trods af den lange indskudte sætning
Det er netop langdistance-afhængigheder der var den store svaghed ved ældre modeller (RNN’er). Self-attention løser dette elegant fordi hvert ord har direkte adgang til alle andre ord. Uanset afstand.
Multi-head self-attention
I praksis kører modeller ikke bare én self-attention. De kører mange parallelt:
- Flere perspektiver. Hvert “hoved” lærer at fokusere på en anden type relation. Ét hoved fanger grammatik, et andet fanger semantik, et tredje fanger nærhed.
- Typisk antal. GPT-modeller bruger 12-128 attention-hoveder per lag. Større modeller har flere hoveder.
- Kombinering. Resultaterne fra alle hoveder konkateneres og transformeres til en samlet repræsentation.
Eksempel med tre hoveder der analyserer “Katten spiste fisken på gulvet”:
- Hoved 1 (syntaks): “spiste” → fokuserer på “Katten” (subjekt) og “fisken” (objekt)
- Hoved 2 (lokation): “spiste” → fokuserer på “gulvet” (hvor det skete)
- Hoved 3 (nærhed): hvert ord fokuserer primært på sine naboord
Self-attention i transformer-lag
En transformer-model består af mange lag stacked oven på hinanden. Hvert lag har:
- Multi-head self-attention. Beregn relationer mellem alle tokens.
- Residual connection + normalisering. Tilføj input til output (spring over lag) og normaliser.
- Feed-forward netværk. Transformer information ikke-lineært.
- Residual connection + normalisering. Igen.
Tidlige lag fanger simple mønstre (ordklasser, nærhed). Sene lag fanger abstrakte koncepter (sentiment, logiske relationer, verdensforståelse). Denne dybde (mange lag af self-attention) er det der giver store sprogmodeller deres imponerende kapabiliteter.
Masked self-attention (causal attention)
I sprogmodeller der genererer tekst (GPT, Claude) bruges en speciel variant: masked self-attention.
- Problemet. Under generering må modellen kun se ord der allerede er genereret, ikke fremtidige ord. Ellers ville den “snyde” ved at kigge på svaret.
- Løsningen. En maske blokerer attention til fremtidige positioner. Når modellen beregner attention for position 5, kan den kun fokusere på positioner 1-5, ikke 6 og fremefter.
- Effekt. Modellen genererer tekst fra venstre mod højre, hvor hvert nyt token kun afhænger af de foregående.
Dette er grunden til at sprogmodeller genererer tekst sekventielt. Ét token ad gangen. Hvert nyt token “ser” alle tidligere tokens via masked self-attention men kan ikke se hvad der kommer efter.
Beregningskompleksitet
Self-attentions styrke er også dens svaghed:
- Quadratic cost. Self-attention beregner relationer mellem alle par af tokens. Med N tokens er det N² beregninger. 1.000 tokens → 1 million. 100.000 tokens → 10 milliarder.
- Hukommelse. KV-cachen (gemte Keys og Values) vokser lineært med kontekstlængden og er ofte den begrænsende faktor.
- Context window. Det er derfor modeller har en maksimal kontekstlængde. At udvide den kræver enten mere GPU-hukommelse eller mere effektive attention-varianter.
Effektive varianter
For at håndtere lange kontekster er der udviklet optimerede versioner:
- Flash Attention. Optimerer hukommelsesadgang for markant hurtigere beregning uden at ændre resultatet.
- Grouped-Query Attention (GQA). Deler Keys og Values mellem flere Query-hoveder. Reducerer hukommelse og beregning markant.
- Sliding Window Attention. Hvert token fokuserer kun på de nærmeste N tokens. Reducerer kompleksitet fra N² til N×vinduesstørrelse.
- Sparse Attention. Beregn kun attention for udvalgte token-par baseret på mønstre (lokale, stribede, tilfældige).
Self-attention ud over tekst
Self-attention bruges ikke kun til sprog:
Billeder (Vision Transformer, ViT)
- Et billede opdeles i patches (f.eks. 16×16 pixels).
- Patches behandles som “tokens.”
- Self-attention beregnes mellem alle patches. Modellen fokuserer på de relevante dele af billedet.
Lyd og tale
- Lydsignaler opdeles i korte segmenter.
- Self-attention forbinder segmenter for at forstå tale, musik og andre lydsignaler i kontekst.
Protein-strukturer (AlphaFold)
- Aminosyrer i en proteinkæde behandles som en sekvens.
- Self-attention fanger interaktioner mellem aminosyrer der er langt fra hinanden i kæden men tæt i 3D-rum.
Self-attention er det der giver AI kontekstforståelse Før self-attention behandlede AI-modeller hvert ord relativt isoleret. De manglede evnen til at forstå et ord i lyset af hele den omgivende tekst. Self-attention ændrede dette fundamentalt: hvert ord får nu sin betydning fra sin kontekst, præcis som i menneskelig sprogforståelse. Det er denne evne (at forstå at “den” refererer til “katten,” at “bank” betyder noget forskelligt i forskellige sammenhænge, at en sætnings tone afhænger af ordvalget) der gør moderne sprogmodeller så imponerende.
FAQ
Hvad er self-attention?
Self-attention er en mekanisme hvor hvert element i en sekvens (f.eks. hvert ord i en sætning) beregner relationer til alle andre elementer i den samme sekvens. Det giver modellen evnen til at forstå kontekst: at vide at "den" refererer til "katten," eller at "bank" er en finansinstitution baseret på omgivende ord. Det er kernekomponenten i transformer-arkitekturen.
Hvad er forskellen på attention og self-attention?
Attention er det overordnede koncept: en mekanisme der dynamisk fokuserer på relevante dele af input. Self-attention er den specifikke variant hvor modellen fokuserer på sig selv: elementer inden for den samme sekvens. Cross-attention er en anden variant der fokuserer mellem to forskellige sekvenser.
Hvorfor er self-attention vigtig for sprogmodeller?
Self-attention giver sprogmodeller evnen til at forstå kontekst på tværs af hele teksten. Hvert ord kan fokusere på alle andre ord uanset afstand, hvilket løser problemet med langdistance-afhængigheder der plagede ældre arkitekturer. Det muliggør også parallel processering der gør træning markant hurtigere.
Hvad er masked self-attention?
Masked self-attention er en variant der bruges i tekstgenerering, hvor modellen kun kan fokusere på ord der allerede er genereret, ikke fremtidige ord. Det sikrer at modellen genererer tekst fra venstre mod højre uden at "snyde" ved at kigge fremad.