Attention

Wenn ein Sprachmodell einen Satz verarbeitet, muss es entscheiden, welche Wörter für das Verständnis eines bestimmten Wortes wichtig sind. Attention ist der Mechanismus, der diese Gewichtung berechnet und so den Kontext jedes einzelnen Tokens bestimmt.

In einem Satz wie "Die Katze saß auf der Matte, weil sie müde war" muss ein Modell erkennen, dass "sie" sich auf "Katze" bezieht. Attention ermöglicht genau das: Es berechnet für jedes Token einen Satz von Gewichten, die angeben, wie stark jedes andere Token in die Verarbeitung einfließen soll. Diesen Vorgang bezeichnen Fachleute als Attention. Der Mechanismus bildet den Kern aller modernen Transformer-Architekturen.

Das Grundprinzip: Relevanz berechnen

Ein neuronales Netz ohne Attention verarbeitet Eingaben sequenziell oder mit festen Gewichten. Dabei geht Information verloren, besonders bei langen Sequenzen. Attention löst dieses Problem, indem es jeder Position erlaubt, direkt auf jede andere Position zuzugreifen.

Der Mechanismus funktioniert über drei Vektoren pro Token: eine Anfrage (Query), einen Schlüssel (Key) und einen Wert (Value). Der Query eines Tokens wird mit den Keys aller anderen Tokens verglichen. Aus diesem Vergleich entstehen Gewichte, die bestimmen, wie stark die zugehörigen Values in das Ergebnis einfließen.

Beispiel: In dem Satz "Der Programmierer debuggte den Code, den er gestern geschrieben hatte" berechnet Attention für das Wort "er" hohe Gewichte in Richtung "Programmierer". Das Modell kann so die Referenz korrekt auflösen, obwohl mehrere Substantive im Satz vorkommen.

Beispiel: Bei der Verarbeitung von "Python ist eine Programmiersprache" und "Eine Python ist eine Schlange" erzeugt Attention für das Wort "Python" in beiden Sätzen unterschiedliche Gewichtungen, weil der umgebende Kontext verschieden ist. Das gleiche Token erhält so eine kontextabhängige Repräsentation.

Query, Key und Value: Die drei Bausteine

Jedes Eingabe-Token wird durch ein Embedding repräsentiert. Dieses Embedding wird durch drei separate lineare Transformationen in einen Query-Vektor, einen Key-Vektor und einen Value-Vektor umgewandelt. Die Gewichtsmatrizen für diese Transformationen lernt das Modell während des Trainings.

Der Query repräsentiert die Frage "Welche Information brauche ich?". Der Key repräsentiert das Angebot "Diese Information habe ich." Der Value enthält die tatsächliche Information, die weitergegeben wird. Das Skalarprodukt von Query und Key ergibt den Attention-Score.

Beispiel: Bei einer Suchanfrage in einer Datenbank funktioniert Attention ähnlich: Die Suchanfrage (Query) wird mit den Indexeinträgen (Keys) verglichen, und die passenden Datensätze (Values) werden zurückgegeben. Der Unterschied: Bei Attention sind alle drei Komponenten gelernte Transformationen desselben Eingabevektors.

Beispiel: In einem E-Mail-System entspricht der Query der Frage "Welche E-Mails sind für dieses Projekt relevant?", die Keys sind die Betreffzeilen aller E-Mails, und die Values sind die E-Mail-Inhalte. Attention berechnet eine gewichtete Zusammenfassung der relevantesten E-Mails.

Scaled Dot-Product Attention: Die Standardvariante

Die in der Praxis am häufigsten verwendete Form heißt Scaled Dot-Product Attention. Die Berechnung folgt der Formel: Attention(Q, K, V) = softmax(QKᵀ / √d_k) · V. Der Term d_k ist die Dimension der Key-Vektoren.

Die Skalierung durch √d_k ist notwendig, weil das Skalarprodukt bei hohen Dimensionen sehr große Werte annehmen kann. Ohne Skalierung würden die Softmax-Gradienten in Sättigungsbereiche geraten, was das Training verlangsamt oder destabilisiert.

Beispiel: Bei einer Key-Dimension von 64 liegt √d_k bei 8. Ein Skalarprodukt von 512 wird durch die Division zu 64. Dieser skalierte Wert führt zu einer Softmax-Verteilung, bei der Gradienten noch sinnvoll fließen. Ohne Skalierung würde die Softmax-Funktion bei einem Wert von 512 praktisch eine Eins-Null-Verteilung erzeugen.

Fachliche Einordnung: Die Skalierung wurde im Paper "Attention Is All You Need" (Vaswani et al., 2017) eingeführt. Alternative Attention-Varianten wie Additive Attention (Bahdanau et al., 2014) verwenden ein gelerntes Feedforward-Netz statt des Skalarprodukts. In der Praxis hat sich die skalierte Dot-Product-Variante durchgesetzt, weil sie durch Matrixmultiplikation effizient auf GPUs parallelisierbar ist.

Mehrere Perspektiven gleichzeitig: Multi-Head Attention

Ein einzelner Attention-Durchlauf kann nur eine Art von Beziehung zwischen Tokens erfassen. Multi-Head Attention führt mehrere parallele Attention-Berechnungen mit unterschiedlichen gelernten Projektionen durch. Jeder Head kann sich auf einen anderen Aspekt der Eingabe konzentrieren.

Die Eingabe wird dafür in mehrere Heads aufgeteilt. Jeder Head berechnet Query, Key und Value mit eigenen Gewichtsmatrizen. Die Ergebnisse aller Heads werden konkateniert und durch eine weitere lineare Transformation zusammengeführt.

Beispiel: In dem Satz "Die Bank am Fluss war nass" könnte ein Head die syntaktische Beziehung zwischen "Bank" und "war" erfassen, während ein anderer Head die semantische Beziehung zwischen "Bank" und "Fluss" lernt, die zur Disambiguierung des Wortes "Bank" beiträgt.

Beispiel: BERT-Base verwendet 12 Attention-Heads mit je 64 Dimensionen bei einer Gesamtdimension von 768. Analysen zeigen, dass einzelne Heads sich auf bestimmte linguistische Phänomene spezialisieren: manche auf Koreferenz, andere auf syntaktische Abhängigkeiten, wieder andere auf Positionsbeziehungen.

Eingabe-TokensEmbedding-Vektoren
Query (Q)Lineare Projektion
Key (K)Lineare Projektion
Value (V)Lineare Projektion
QKᵀ / √d_kAttention-Scores
SoftmaxNormalisierte Gewichte
Gewichtete SummeKontextvektor pro Token

Self-Attention und Cross-Attention

Bei Self-Attention stammen Query, Key und Value aus derselben Sequenz. Das Modell setzt jedes Token einer Eingabe in Beziehung zu allen anderen Tokens derselben Eingabe. Diese Variante bildet den Standardfall in Encoder-Architekturen.

Bei Cross-Attention stammen Query aus einer Sequenz und Key/Value aus einer anderen. Typische Anwendung: Bei einer Übersetzung generiert der Decoder den Zieltext und nutzt Cross-Attention, um auf den Quelltext zuzugreifen. Der Query kommt vom aktuellen Decoder-Zustand, Keys und Values kommen vom Encoder-Output.

Beispiel: Bei der maschinellen Übersetzung von "The cat sat on the mat" ins Deutsche erzeugt der Decoder das Wort "Katze". Über Cross-Attention berechnet er hohe Gewichte für das Quellwort "cat", moderate Gewichte für "The" (wegen des Artikels) und niedrige Gewichte für "mat" oder "sat".

Beispiel: In einem Frage-Antwort-System verarbeitet der Encoder den Kontext (einen langen Textabschnitt), während der Decoder die Antwort generiert. Cross-Attention erlaubt dem Decoder, bei jedem Generierungsschritt auf die relevanten Stellen im Kontext zuzugreifen.

Varianten und Optimierungen

Die quadratische Komplexität von Standard-Attention (O(n²) bezüglich der Sequenzlänge) motiviert zahlreiche Optimierungen. Bei einer Sequenz von 4096 Tokens muss das Modell etwa 16,7 Millionen Attention-Scores berechnen, bei 32.768 Tokens bereits über eine Milliarde.

Flash Attention reorganisiert die Berechnung so, dass weniger Datentransfer zwischen GPU-Speicherhierarchien stattfindet. Der Algorithmus berechnet Attention blockweise und vermeidet das Materialisieren der vollständigen Attention-Matrix im High-Bandwidth Memory. Das Ergebnis ist mathematisch identisch, aber deutlich schneller.

Sparse Attention begrenzt die Aufmerksamkeit auf lokale Nachbarschaften oder ausgewählte Positionen. Sliding-Window Attention beschränkt jedes Token auf ein festes Fenster um seine Position. Grouped Query Attention (GQA) teilt Keys und Values zwischen mehreren Query-Heads, was den Speicherbedarf bei der Inferenz reduziert.

Beispiel: Mistral 7B verwendet Sliding-Window Attention mit einer Fenstergröße von 4096 Tokens. Dadurch skaliert der Speicherbedarf linear statt quadratisch. Durch die Stapelung mehrerer Schichten kann das Modell trotzdem auf entfernte Tokens zugreifen, weil sich die Fenster über die Schichten hinweg überlappen.

Attention in der Praxis: Diagnose und Interpretation

Attention-Gewichte lassen sich visualisieren und geben Einblick in das Modellverhalten. Ein häufig genutztes Werkzeug ist BertViz, das die Attention-Muster aller Heads und Schichten eines Modells darstellt. Solche Visualisierungen zeigen typische Muster: diagonale Attention (jedes Token beachtet sein Nachbartoken), vertikale Streifen (alle Tokens beachten ein bestimmtes Token wie [SEP]) oder blockförmige Muster (Tokens innerhalb eines Satzes beachten sich gegenseitig stärker).

Beispiel: Bei der Analyse eines BERT-Modells fällt auf, dass in den unteren Schichten (1 bis 3) die Attention-Heads vorwiegend auf benachbarte Tokens achten. In mittleren Schichten (4 bis 8) treten syntaktische Muster auf, etwa Subjekt-Verb-Beziehungen. In oberen Schichten (9 bis 12) dominieren semantische und aufgabenspezifische Muster.

Allerdings ist bei der Interpretation Vorsicht geboten. Attention-Gewichte zeigen, wohin das Modell schaut, aber nicht notwendigerweise, woraus es seine Entscheidung ableitet. Die Forschung diskutiert kontrovers, inwieweit Attention als Erklärung für Modellentscheidungen dienen kann. Methoden wie Attention Rollout oder Gradient-gewichtete Attention liefern zuverlässigere Erklärungen als rohe Attention-Gewichte.

Fachliche Einordnung: Jain und Wallace (2019) zeigten, dass Attention-Gewichte und Feature-Importance-Werte (z.B. aus Gradient-basierten Methoden) oft nur schwach korrelieren. Wiegreffe und Pinter (2019) argumentierten dagegen, dass Attention unter bestimmten Bedingungen durchaus als Erklärung dienen kann. Die Debatte verdeutlicht, dass Attention-Visualisierung ein nützliches Diagnosewerkzeug ist, aber nicht mit kausaler Erklärung gleichgesetzt werden sollte.

Grenzen und offene Fragen

Der quadratische Speicher- und Rechenbedarf bleibt trotz aller Optimierungen eine fundamentale Einschränkung. Bei sehr langen Eingaben (100.000+ Tokens) stoppen selbst speichereffiziente Varianten an Hardware-Grenzen. Die Skalierung von Attention auf unbegrenzte Kontextlängen ist ein aktives Forschungsthema.

Attention verarbeitet alle Positionen gleich und hat kein eingebautes Verständnis von Reihenfolge. Positionsinformationen müssen separat eingespeist werden, typischerweise durch Positional Encodings. Verschiedene Ansätze (absolute, relative, rotary) haben unterschiedliche Stärken und Schwächen bei der Generalisierung auf Sequenzlängen, die im Training nicht vorkamen.

Zudem ist nicht vollständig geklärt, warum Attention so gut funktioniert. Theoretische Arbeiten zeigen, dass Transformer mit Attention universelle Approximatoren sind, aber die praktische Effizienz übersteigt das, was diese Theorie erwarten ließe. Alternative Architekturen wie State Space Models (z.B. Mamba) erreichen auf bestimmten Aufgaben vergleichbare Leistung mit linearer Komplexität, haben sich aber bisher nicht als allgemeiner Ersatz etabliert.

Beispiel: Bei der Verarbeitung eines 50-seitigen Dokuments mit etwa 25.000 Tokens muss Standard-Attention über 625 Millionen Scores berechnen. Flash Attention reduziert den Speicherbedarf, aber nicht die Rechenoperationen. Für Anwendungen mit extrem langen Kontexten verwenden aktuelle Systeme hierarchische Attention oder Retrieval-basierte Ansätze, bei denen nur relevante Abschnitte in den Kontext geladen werden.


Karl Kratz · 07.07.2025 (aktualisiert 03.04.2026)

Technologie Künstliche Intelligenz Maschinelles Lernen