Vorlesung 15: Positions-Encoding

Block: Der Transformer · Kursthema: KI

Schwerpunkte: Woher weiß der Transformer die Reihenfolge der Wörter? Warum reicht Self-Attention allein nicht aus? Wie wird Reihenfolge mathematisch dargestellt?

Einführung (Teil 1, ca. 20 Minuten)

Das zentrale Problem, das wir in dieser Vorlesung untersuchen, ist folgendes: Self-Attention, wie sie im Transformer eingeführt wurde, verarbeitet gleichzeitig alle Token einer Eingabesequenz und ist in ihrer reinen Form invariant gegenüber Permutationen der Eingabe. Das bedeutet, wenn man die Token einer Satzfolge in beliebiger Reihenfolge anordnet, dann – ohne zusätzliche Information – kann das Attention-Mechanismus allein die ursprüngliche Stellung der Wörter nicht unterscheidbar machen. Diese Beobachtung wurde bereits im einführenden Transformer-Papier explizit angesprochen und gelöst, indem die Autoren eine explizite Darstellung der Position jedes Tokens einführten (Vaswani et al., 2017).

Eine anschauliche Analogie: Stellen Sie sich vor, Sie hätten eine Schachtel mit farbigen Murmeln, jede Farbe steht für ein Wort. Self-Attention sieht nur die Farben und ihre wechselseitigen Beziehungen, aber nicht die Reihenfolge, in der die Murmeln aus der Schachtel gezogen wurden. Positions-Encoding fügt jedem Murmelpunkt eine Markierung hinzu – so wird aus einer bloßen Menge von Farben eine geordnete Kette.

In der Praxis werden Positionsinformationen den Wortvektoren (Embeddings) hinzugefügt, bevor die Attention-Schichten arbeiten. Das kann man sich so vorstellen: Jeder Token-Vektor erhält eine kleine "Uhrzeit"- oder "Orts"-Komponente, die angibt, an welcher Stelle in der Sequenz er steht. Dadurch können Query- und Key-Vektoren in der Attention-Berechnung diese Ordnungsinformation nutzen, um gewichtete Verknüpfungen zwischen spezifischen Positionen herzustellen. Die Implementierungsentscheidung, wie diese Positionsinformationen kodiert werden, ist jedoch nicht eindeutig festgelegt; verschiedene Varianten haben sich in der Forschung etabliert.

Zur Veranschaulichung genügt ein kurzes linguistisches Beispiel: Die Wortfolge "Der Hund beißt den Mann" ist semantisch anders als "Der Mann beißt den Hund". Self-Attention müsste durch Kenntnis der Reihenfolge erkennen, welches Subjekt welches Verb hat. Ohne Positionsinformationen können dieselben Token in beiden Sätzen nicht unterschieden werden.

Für weiterführende, anschauliche Ausarbeitungen und Visualisierungen verweise ich auf die erklärenden Online- und Lehrmaterialien ("The Illustrated Transformer" und "The Annotated Transformer"), die den Aufbau und den praktischen Einsatz von Positions-Encodings erläutern (Alammar, 2018; Harvard NLP, 2018). Das zugrundeliegende Designprinzip, dass Positionen zusätzlich zu Token-Embeddings übergeben werden müssen, geht direkt auf die ursprüngliche Transformer-Publikation zurück (Vaswani et al., 2017).

Vertiefung und Fachbegriffe (Teil 2, ca. 20 Minuten)

Mathematisch betrachtet arbeiten Transformer-Schichten mit Vektorrepräsentationen. Für eine Sequenz aus T Token existieren Eingabe-Embeddings x₁, x₂, …, x_T (jeweils Vektoren der Dimension d_model). Positions-Encoding stellt zu jedem Index pos (1 ≤ pos ≤ T) einen Vektor p(pos) gleicher Dimensionalität bereit. In der klassischen Variante des ursprünglichen Transformer-Papiers werden die Eingaberepräsentationen vor der ersten Attention-Schicht durch Addition kombiniert: z_pos = x_pos + p(pos). Diese Addition macht die Positionsinformation direkt in den anschließenden Berechnungen der Queries, Keys und Values verfügbar (Vaswani et al., 2017).

Vaswani et al. schlagen zwei Hauptvarianten vor: feste sinusoidale Funktionen und lernbare Positionsembeddings. Die im Paper angegebene sinusoidale Form ist folgendermaßen definiert (Index i läuft über die Komponenten des d_model-dimensionalen Vektors):

Für die gerade Komponenten 2i: p(pos)_{2i} = sin(pos / 10000^{2i/d_model}). Für die ungeraden Komponenten 2i+1: p(pos)_{2i+1} = cos(pos / 10000^{2i/d_model}). Diese Form erzeugt für jede Position ein Vektormuster aus Sinus- und Kosinus-Schwingungen mit unterschiedlich skalierten Frequenzen. Vaswani et al. begründen diese Wahl damit, dass solche Basisfunktionen relative Positionen auf eine Weise darstellen, die es den nachfolgenden Schichten erlaubt, mit linearen Kombinationen auf (relativ) verschobene Positionen zu reagieren; darüber hinaus lässt sich mit Sinus/Cosinus eine kontinuierliche Repräsentation herstellen, die theoretisch auf längere Sequenzen extrapolierbar ist (Vaswani et al., 2017).

Alternativ zu festen Funktionen können Positionsembeddings auch als lernbare Parameter modelliert werden, ähnlich wie Wort-Embeddings. Dieses Vorgehen wird beispielsweise bei BERT verwendet: Dort werden für jeden möglichen Positionsindex Vektoren als Parameter gelernt und zusammen mit Token-Embeddings trainiert (Devlin et al., 2018). Ein praktischer Unterschied ist, dass lernbare Embeddings oft bessere Leistung innerhalb der während des Trainings betrachteten Längen zeigen, jedoch schlechter auf wesentlich längere Sequenzen generalisieren können, weil keine explizite analytische Extrapolation vorgegeben ist (Devlin et al., 2018). Die genauen Leistungsunterschiede hängen allerdings von Architektur, Daten und Task ab; hier besteht kein universell gültiges Urteil.

Neben diesen absoluten Positionsdarstellungen existiert eine dritte, wichtige Kategorie: relative Positionsrepräsentationen. Shaw, Uszkoreit und Vaswani (2018) schlagen vor, die relative Lage zwischen Query- und Key-Position direkt in die Attention-Logits einzuführen. Praktisch werden in der Attention-Rechnung Zusatzterme verwendet, die den relativen Abstand (j − i) zwischen Token i und j repräsentieren. Solche Darstellungen können für Aufgaben, bei denen relative Abstände wichtiger sind als absolute Indizes (etwa vieler Übersetzungsaufgaben oder Abhängigkeitsanalysen), Vorteile bringen, weil sie direkt die Distanzinformation zwischen Tokenpaaren einbeziehen (Shaw et al., 2018).

Formal beeinflusst die Positionsinformation die Attention-Gewichte ω_{ij} über die standardmäßige Rechnung:

ω_{ij} = softmax_j( (Q_i · K_j) / sqrt(d_k) + b_{ij} ), wobei b_{ij} ein Zusatzterm sein kann, der von der relativen oder absoluten Position abhängig ist. Im ursprünglichen Transformer ohne speziellen relativen Zusatz ergibt sich b_{ij} implizit aus der Summation x_j + p(j) und der daraus folgenden K_j; in Varianten mit relativen Encodings wird b_{ij} explizit modelliert (Shaw et al., 2018).

Wichtig ist hier noch die Implementierungsdetails: In Code-Basen und Lehrmaterialien wird oft die einfache Variante gezeigt, die Embeddings mit Positionsvektoren zu addieren, bevor die linearen Projektionen für Q, K, V berechnet werden. Diese praktische Vorgehensweise wird in Tutorial-Implementationen und kommentierten Implementierungen vorgestellt und erläutert (Harvard NLP, 2018; Alammar, 2018).

Abschließend festzuhalten ist, dass die Community keinen alleinig verbindlichen Standard für Positions-Encoding hat; feste Sinus/Cosinus, lernbare absolute Embeddings und diverse relative Methoden sind gebräuchlich und haben jeweils konzeptionelle Vor- und Nachteile. Welcher Ansatz im Einzelfall vorzuziehen ist, hängt von der Anwendung, verfügbaren Rechenmitteln und untersuchten Längenverteilungen in Trainingsdaten ab. Dies ist ein aktiver Forschungsbereich mit laufenden Vergleichen und Modifikationen (Vaswani et al., 2017; Devlin et al., 2018; Shaw et al., 2018).

Anwendungen, Grenzen und Denkaufgaben (Teil 3, ca. 10 Minuten)

Positions-Encoding findet sich heute in praktisch allen Transformer-basierten Systemen für Sprache, Übersetzung, Textgenerierung und viele andere Sequenzaufgaben. Die konkrete Wahl der Positionsdarstellung kann dort Performance-Effekte haben: Beispielsweise ist bei Modellen, die auf feste Eingabelängen trainiert werden, ein lernbares Positions-Embedding oft leistungsfähig; bei Anwendungen, die längere Sequenzen als im Training erwarten, können sinusoidale oder speziell konstruierte Positionsembeddings besser extrapolieren (Vaswani et al., 2017; Devlin et al., 2018).

Grenzen und offene Fragen: Es gibt keine universelle Lösung, die in allen Settings optimal ist. Relative Positionsrepräsentationen sind in manchen Aufgaben leistungsfähiger, steigern aber die Implementationskomplexität. Auch die Skalierbarkeit zu sehr langen Sequenzen ist ein aktuelles Forschungsfeld; viele Erweiterungen und Alternativen untersuchen, wie Positionen effizient und robust für Tausende oder Millionen von Tokens abgebildet werden können. Die Literatur zeigt hier fortlaufende Weiterentwicklungen, sodass die Bewertung einzelner Methoden abhängig von den neuesten Forschungsergebnissen ist (Shaw et al., 2018; Vaswani et al., 2017).

Zur Festigung des Gelernten schlage ich drei kleine Denk- und Hausaufgaben vor, die sich auch praktisch mit bestehenden Implementierungen untersuchen lassen:

1) Nehmen Sie zwei Sätze mit identischen Token, aber unterschiedlicher Reihenfolge (z. B. "Der Hund beißt den Mann" und "Der Mann beißt den Hund") und untersuchen Sie in einem Transformer-Encoder-Block die Attention-Gewichte. Beobachten Sie, wie sich die Verteilungen ändern, wenn Sie Positions-Encodings entfernen oder zufällig ersetzen. Diese Übung macht die Rolle der Positionen im Gewichtungsprozess sichtbar (Harvard NLP, 2018).

2) Implementieren Sie ein kurzes Experiment: Ersetzen Sie die sinusoidalen Encodings in einem kleinen Transformer durch lernbare Positionsvektoren, trainieren Sie auf einer begrenzten Datenmenge und vergleichen Sie Validierungsfehler sowie Verhalten bei längeren Eingaben als im Training. Diskutieren Sie, ob und wie Generalisierung auf längere Sequenzen einbricht (Vaswani et al., 2017; Devlin et al., 2018).

3) Lesen Sie den Beitrag von Shaw et al. (2018) und erläutern Sie, wie ein expliziter relativer Term in die Attention-Logits integriert wird. Überlegen Sie, für welche Aufgaben relative Abstände sinnvoller sind als absolute Indizes und warum (Shaw et al., 2018).

Abschließend sei betont: Die Notwendigkeit, Reihenfolgen zu kodieren, ist konzeptionell unumstritten in der Transformer-Architektur; die Methoden zu ihrer Darstellung sind jedoch vielfältig und Gegenstand aktiver Forschung. Für das praktische Arbeiten mit Transformern ist es wichtig, die jeweilige Variante bewusst auszuwählen und ihre Implikationen für Generalisierung und Rechenaufwand zu berücksichtigen.