Token-Embeddings
Jedes Wort, das ein Sprachmodell verarbeitet, wird zuerst in eine Zahlenreihe übersetzt. Diese Zahlenreihe heißt Token-Embedding. Erst damit kann das Modell rechnen, vergleichen und Zusammenhänge erkennen.
Text besteht aus Zeichen und Wörtern. Ein neuronales Netz kann mit Zeichen und Wörtern nicht direkt arbeiten. Es braucht Zahlen. Der erste Schritt in jedem Sprachmodell ist deshalb die Umwandlung: Jedes Token erhält einen numerischen Vektor. Dieser Vektor ist das Token-Embedding.
Die Idee ist nicht neu. Bereits in den 1990er-Jahren experimentierten Forscher mit verteilten Wortrepräsentationen. Durchgesetzt hat sich das Verfahren mit Word2Vec (2013) und später mit der Transformer-Architektur (2017). Heute ist die Embedding-Schicht ein Standardbaustein in jedem Sprachmodell.
Von Text zu Zahlen: Warum Modelle Embeddings brauchen
Ein Sprachmodell empfängt Eingaben als Text. Intern arbeitet es mit Matrizenmultiplikationen, Skalarprodukt und Gradientenabstieg. Diese Operationen setzen numerische Eingaben voraus. Ohne eine Umwandlung von Text in Zahlen gibt es keinen Rechenweg.
Beispiel: Der Satz "Die Katze sitzt auf der Matte" wird zunächst durch den Tokenizer in einzelne Token zerlegt: ["Die", "Katze", "sitzt", "auf", "der", "Matte"]. Jedes Token bekommt eine ID (z. B. 1423, 8876, 2201, 334, 17, 9412). Diese IDs sind willkürliche Nummern ohne mathematische Beziehung zueinander.
Beispiel: Die Token-IDs 8876 ("Katze") und 7231 ("Hund") liegen numerisch zufällig nah beieinander oder weit auseinander. Die Differenz 8876 minus 7231 sagt nichts über die Bedeutung der Wörter aus. Eine Berechnung auf Basis dieser IDs wäre sinnlos.
Der Embedding-Layer löst dieses Problem. Er ordnet jeder Token-ID einen Vektor mit mehreren hundert bis tausend Dimensionen zu. In diesem Vektorraum sind Ähnlichkeiten und Beziehungen zwischen Wörtern als geometrische Nähe abgebildet.
Der Embedding-Layer als Nachschlagetabelle
Technisch ist der Embedding-Layer eine Matrix. Jede Zeile dieser Matrix enthält den Vektor für genau ein Token aus dem Vokabular. Wenn das Vokabular 50.000 Token umfasst und jeder Vektor 768 Dimensionen hat, ist die Matrix 50.000 mal 768 groß.
Beispiel: Token-ID 1423 wird zum Vektor [0.12, -0.44, 0.87, ...] mit 768 Einträgen. Das Modell schaut in Zeile 1423 der Matrix nach und liest den Vektor ab. Diesen Vorgang nennt man Lookup.
Beispiel: Bei GPT-2 besteht das Vokabular aus 50.257 Token. Jeder Vektor hat 768 Dimensionen. Die Embedding-Matrix enthält damit rund 38,6 Millionen Parameter, noch bevor eine einzige Transformer-Schicht zum Einsatz kommt.
Zu Beginn des Trainings sind die Vektoren zufällig initialisiert. Über den Trainingsprozess, bei dem das Modell Texte liest und Vorhersagen trifft, werden die Werte durch Backpropagation angepasst. Nach dem Training bilden die Vektoren die statistischen Beziehungen ab, die im Trainingskorpus enthalten waren.
Was ein einzelner Vektor kodiert
Ein Token-Embedding ist kein einfaches Label. Es ist ein Punkt in einem hochdimensionalen Raum, und die Position dieses Punktes kodiert Bedeutung. Jede Dimension trägt einen Bruchteil der Gesamtinformation. Keine Dimension hat eine für den Menschen lesbare Bedeutung wie "Größe" oder "Lebewesen". Die Semantik entsteht durch das Zusammenspiel aller Dimensionen.
Beispiel: Der Vektor für "König" und der Vektor für "Königin" unterscheiden sich systematisch. Die berühmte Analogie König minus Mann plus Frau ergibt einen Vektor nahe "Königin". Das zeigt, dass die Vektoren Beziehungen wie Geschlecht als Richtung im Raum abbilden.
Beispiel: Die Vektoren für "Berlin", "Paris" und "Tokio" liegen im Vektorraum nahe beieinander, weil sie in ähnlichen sprachlichen Kontexten vorkommen: als Hauptstädte, nach Präpositionen wie "in" oder "nach", vor Verben wie "liegt" oder "ist".
Die Nähe zweier Vektoren wird üblicherweise über die Kosinus-Ähnlichkeit gemessen. Ein Wert nahe 1 bedeutet hohe Ähnlichkeit, ein Wert nahe 0 bedeutet Unabhängigkeit, ein Wert nahe minus 1 bedeutet Gegensätzlichkeit.
Statische und kontextualisierte Embeddings
Es gibt zwei grundlegend verschiedene Arten von Token-Embeddings, und der Unterschied ist entscheidend für die Leistungsfähigkeit eines Modells.
Bei statischen Embeddings erhält jedes Token immer denselben Vektor, unabhängig vom Satz, in dem es steht. Word2Vec und GloVe sind Vertreter dieses Ansatzes. Die Embedding-Matrix wird einmal trainiert und dann fixiert.
Beispiel: Das Wort "Bank" hat bei statischen Embeddings immer denselben Vektor. Ob der Satz "Er sitzt auf der Bank" oder "Sie geht zur Bank" lautet, spielt keine Rolle. Der Vektor ist ein Durchschnitt aller Kontexte, in denen "Bank" im Training vorkam.
Bei kontextualisierten Embeddings hängt der Vektor eines Tokens vom gesamten Satz ab. Modelle wie BERT und GPT erzeugen für jedes Token in jeder Eingabe einen individuellen Vektor. Der Embedding-Layer liefert zunächst einen statischen Vektor, der dann durch die Transformer-Schichten mit Self-Attention und Feed-Forward-Berechnungen zu einem kontextualisierten Vektor wird.
Beispiel: In BERT erhält "Bank" im Satz "Er sitzt auf der Bank im Park" einen Vektor, der Sitzgelegenheit kodiert. Im Satz "Die Bank erhöht den Zinssatz" erhält "Bank" einen Vektor, der Finanzinstitut kodiert. Die Unterscheidung entsteht durch die Attention-Mechanismen, die den Kontext einbeziehen.
Fachliche Einordnung: Statische Embeddings lassen sich als Spezialfall kontextualisierter Embeddings betrachten, bei dem die Kontextfunktion eine Identitätsabbildung ist. In der Praxis sind kontextualisierte Embeddings bei fast allen NLP-Aufgaben überlegen, weil natürliche Sprache stark kontextabhängig ist. Der Rechenaufwand ist allerdings um Größenordnungen höher.
Dimensionen und Informationskapazität
Die Anzahl der Dimensionen eines Embedding-Vektors bestimmt, wie viel Information er kodieren kann. Übliche Werte liegen zwischen 128 und 4096 Dimensionen. BERT-Base verwendet 768, GPT-3 verwendet 12.288.
Beispiel: Ein Vektor mit 2 Dimensionen kann die Position eines Punktes auf einer Fläche beschreiben. Ein Vektor mit 768 Dimensionen beschreibt die Position eines Punktes in einem 768-dimensionalen Raum. In diesem Raum gibt es genug Platz, um Zehntausende von Wörtern so anzuordnen, dass semantische Beziehungen als geometrische Strukturen abgebildet sind.
Mehr Dimensionen bedeuten mehr Kapazität, aber auch mehr Rechenaufwand und höheren Speicherbedarf. Wenn die Dimensionszahl zu niedrig ist, müssen semantisch verschiedene Konzepte auf ähnliche Vektoren abgebildet werden. Diesen Effekt nennt man Vektorkollision. Wenn die Dimensionszahl zu hoch ist, wird der Raum dünn besetzt, und das Modell braucht mehr Trainingsdaten, um die zusätzlichen Dimensionen sinnvoll zu nutzen.
Beispiel: Sentence-BERT erzeugt Satz-Embeddings mit 384 Dimensionen. Für viele Aufgaben wie semantische Suche reicht das aus. Für feinere Unterscheidungen, etwa zwischen juristischen Fachbegriffen, kann ein Modell mit 1024 Dimensionen wie E5-large-v2 bessere Ergebnisse liefern.
Subword-Token und zusammengesetzte Bedeutung
Moderne Tokenizer zerlegen Text nicht in ganze Wörter, sondern in Subword-Einheiten. Das Vokabular besteht aus häufigen Wörtern und Wortteilen. Seltene oder zusammengesetzte Wörter werden in mehrere Token aufgeteilt.
Beispiel: Das Wort "Dampfschifffahrtsgesellschaft" wird je nach Tokenizer in Token wie ["Dampf", "##schiff", "##fahrt", "##s", "##gesellschaft"] zerlegt. Jedes dieser Token erhält ein eigenes Embedding. Die Bedeutung des Gesamtworts entsteht erst durch die nachfolgenden Transformer-Schichten, die die Einzelvektoren in Beziehung setzen.
Dieses Verfahren löst das Problem unbekannter Wörter. Ein Modell muss nicht jedes Wort kennen, solange es die Bestandteile kennt. Es ermöglicht auch den Umgang mit Tippfehlern, Neologismen und Fachbegriffen, die nicht im Trainingsdatensatz vorkamen.
Beispiel: Der Markenname "ChatGPT" war bei vielen Modellen nicht im Trainingskorpus enthalten. Der Tokenizer zerlegt ihn in ["Chat", "G", "PT"] oder ähnliche Subwords. Jedes Subword hat ein Embedding, und das Modell kann aus dem Kontext erschließen, worum es geht.
Wie Embeddings trainiert werden
Die Werte in der Embedding-Matrix sind trainierbare Parameter. Sie werden gemeinsam mit allen anderen Gewichten des Modells optimiert. Der Trainingsprozess läuft in drei Schritten ab: Vorhersage, Fehlerberechnung, Anpassung.
Das Modell erhält eine Eingabe, berechnet eine Vorhersage (z. B. das nächste Wort) und vergleicht diese mit dem tatsächlichen Ergebnis. Der Fehler wird über Backpropagation zurück durch alle Schichten propagiert, einschließlich der Embedding-Matrix. Dabei werden die Vektoren so verschoben, dass der Fehler beim nächsten Durchlauf kleiner wird.
Beispiel: Wenn das Modell im Satz "Die Katze sitzt auf der ___" das Wort "Matte" vorhersagen soll, aber "Auto" vorhersagt, wird der Fehler berechnet. Die Backpropagation verschiebt unter anderem die Embedding-Vektoren von "Katze", "sitzt" und "auf", sodass sie bei der nächsten Vorhersage eine bessere Basis liefern.
Nach Milliarden solcher Anpassungen konvergieren die Vektoren in Positionen, die die statistischen Regelmäßigkeiten der Trainingstexte widerspiegeln. Wörter, die in ähnlichen Kontexten auftreten, erhalten ähnliche Vektoren. Dieses Prinzip heißt distributional hypothesis: Die Bedeutung eines Wortes ergibt sich aus seiner Verwendung.
Grenzen und Limitationen
Token-Embeddings haben systematische Einschränkungen, die sich aus dem Trainingsverfahren und der Architektur ergeben.
Erstens: Embeddings spiegeln die Verteilung des Trainingskorpus wider. Wenn ein Wort im Trainingskorpus vorwiegend in negativen Kontexten vorkommt, wird der Vektor diese Verzerrung abbilden. Studien zeigen, dass Embeddings gesellschaftliche Vorurteile kodieren, etwa bei Berufsbezeichnungen und Geschlecht.
Beispiel: In Embeddings, die auf Nachrichtentexten trainiert wurden, liegt der Vektor für "Krankenschwester" näher an "Frau" als an "Mann", obwohl das Geschlecht keinen logischen Zusammenhang mit dem Beruf hat. Diese Verzerrung (Bias) ist ein aktives Forschungsgebiet.
Zweitens: Das Subword-Verfahren kann bei stark flektierenden Sprachen oder bei seltenen Fachbegriffen versagen. Wenn ein Begriff in Subwords zerlegt wird, deren Einzelbedeutungen irreführend sind, entsteht ein fehlerhaftes Embedding.
Beispiel: Der medizinische Fachbegriff "Hypothyreose" wird möglicherweise in ["Hypo", "##thy", "##re", "##ose"] zerlegt. Das Subword "Hypo" kommt auch in "Hypothek" vor, hat dort aber eine andere Etymologie. Das Modell muss diesen Unterschied aus dem Kontext auflösen.
Drittens: Statische Embeddings verlieren Information bei polysemen Wörtern. Kontextualisierte Embeddings mildern dieses Problem, beseitigen es aber nicht vollständig. Bei Texten mit ungewohnter Wortkombination oder Ironie kann die Kontextualisierung in die falsche Richtung weisen.
Viertens: Die Embedding-Matrix skaliert linear mit der Vokabularsgröße. Bei Modellen mit sehr großem Vokabular (z. B. multilingual mit 250.000 Token) belegt allein der Embedding-Layer mehrere hundert Megabyte Speicher.
Fachliche Einordnung: Token-Embeddings sind eine notwendige, aber nicht hinreichende Grundlage für sprachliches Verständnis. Sie kodieren statistische Kovarianzen, nicht Bedeutung im menschlichen Sinn. Die Qualität der Embeddings hängt direkt von Umfang, Diversität und Qualität des Trainingskorpus ab. Fortgeschrittene Verfahren wie Rotary Position Embeddings (RoPE) oder Adaptive Input Representations versuchen, bekannte Limitationen gezielt zu adressieren.