EMZETT.
Login

Self-Attention im Detail

Kurz: Self-Attention lässt jedes Token entscheiden, auf welche anderen Tokens es achten will, und mischt deren Informationen entsprechend. Dafür gibt es pro Token drei Vektoren: Query (Frage), Key (Schlüssel) und Value (Inhalt).

Genauer: Die Query eines Tokens wird mit den Keys aller Tokens verglichen (Skalarprodukt). Je ähnlicher, desto höher das Gewicht. Softmax macht daraus Anteile, und das Ergebnis ist die gewichtete Summe der Values.

Im Detail

Formel: Attention(Q,K,V) = softmax(Q·Kᵀ / √d) · V

  1. Jedes Token-Embedding wird mit drei Gewichtsmatrizen zu Q, K, V umgerechnet.
  2. Q·Kᵀ ergibt für jedes Paar von Tokens eine Ähnlichkeit (eine Matrix n×n).
  3. Teilen durch √d hält die Werte in einem guten Bereich.
  4. Kausale Maske: Bei Textgenerierung darf ein Token nur auf frühere sehen, spätere werden auf −∞ gesetzt.
  5. Softmax pro Zeile → Gewichte, die zu 1 summieren.
  6. Gewichte × V → neue Darstellung des Tokens, die Kontext enthält.
  • Anschauliches Beispiel: Im Satz „Der Hund jagte die Katze, weil sie schnell war“ kann „sie“ über Attention Informationen von „Katze“ oder „Hund“ holen.
  • Kosten: Die n×n-Matrix wächst quadratisch mit der Textlänge. Deshalb sind lange Kontexte teuer, siehe kontextfenster und flashattention.
  • Merke: Attention hat keine feste Reihenfolge-Information, die kommt aus Positionscodierung und RoPE.

Siehe auch: Multi-Head-Attention und Varianten, Der Transformer-Block im Detail