Eine Einbettung ist eine Vektordarstellung von Daten in einem Einbettungsbereich. Im Allgemeinen findet ein Modell mögliche Einbettungen durch die Projektion des hochdimensionalen Bereichs initialer Datenvektoren in einen Bereich mit weniger Dimensionen. Eine Erörterung des Vergleichs zwischen hochdimensionalen und niedrigdimensionalen Daten finden Sie im Modul zu kategorischen Daten.
Einbettungen machen maschinelles Lernen für große Featurevektoren einfacher, etwa die dünnbesetzten Vektoren zur Darstellung der Elemente einer Mahlzeit, die im vorherigen Abschnitt besprochen wurden. Manchmal haben die relativen Positionen von Elementen in einem Einbettungsbereich eine mögliche semantische Beziehung, oft ist der Prozess zur Ermittlung eines Bereichs mit weniger Dimensionen und relativer Positionen in diesem Bereich aber nicht von Menschen interpretierbar und die resultierenden Einbettungen nur schwer verständlich.
Trotzdem: Um des menschlichen Verständnisses willen und um eine Vorstellung davon zu vermitteln, wie Einbettungsvektoren Informationen darstellen, folgt jetzt ein Beispiel mit einer eindimensionalen Darstellung der Gerichte Hotdog, Pizza, Salat, Schawarma und Borschtsch auf einer Skala von „am wenigsten wie ein Sandwich“ bis „am meisten wie ein Sandwich“. Die einzelne Dimension ist ein imaginäres Maß an „Sandwichigkeit“.

An welche Stelle auf dieser Linie käme ein Apfelstrudel? Er könnte eventuell zwischen hot dog
und shawarma
platziert werden. Ein Apfelstrudel hätte jedoch eine zusätzliche Dimension an Süße oder Nachtischigkeit, die ihn stark von den anderen Optionen unterscheidet.
Auf der folgenden Abbildung wird dies durch Hinzufügen der Dimension „Nachtischigkeit“ visualisiert:

Eine Einbettung stellt jedes Element im n‑dimensionalen Raum mit n Gleitkommazahlen dar (in der Regel im Bereich zwischen –1 und 1 oder 0 und 1). Die Einbettung in Abbildung 3 stellt jedes Gericht im eindimensionalen Raum mit einer einzelnen Koordinate dar, während in Abbildung 4 jedes Gericht im zweidimensionalen Raum mit zwei Koordinaten dargestellt wird. In Abbildung 4 ist „Apfelstrudel“ im Quadranten rechts oben auf dem Diagramm. Ihm könnte der Punkt (0,5, 0,3) zugeordnet werden. „Hotdog“ dagegen befindet sich im Quadranten rechts unten auf dem Diagramm. Ihm könnte der Punkt (0,2, –0,5) zugeordnet werden.
In einer Einbettung kann der Abstand zwischen zwei Elementen mathematisch berechnet und als Maß der relativen Ähnlichkeit zwischen den beiden Elementen interpretiert werden. Zwei Dinge, die nahe beieinander liegen, etwa shawarma
und hot dog
in Abbildung 4, haben in der Darstellung der Daten des Modells eine engere Beziehung zueinander als zwei Dinge, die weit voneinander entfernt sind, z. B. apple strudel
und borscht
.
Beachten Sie auch, dass im 2D‑Raum in Abbildung 4 apple strudel
viel weiter von shawarma
und hot dog
entfernt ist, als dies im 1D‑Raum der Fall ist, was unserer Intuition entspricht: apple strudel
ist einem Hotdog oder Schawarma nicht so ähnlich wie Hotdogs und Schawarmas sich gegenseitig ähnlich sind.
Betrachten wir jetzt Borschtsch, das sehr viel flüssiger als die anderen Gerichte ist. Dies legt eine dritte Dimension nahe, nämlich Flüssigkeit, also ein Maß dessen, wie flüssig ein Gericht ist. Nach dem Hinzufügen dieser Dimension könnten die Elemente so in 3D visualisiert werden:

Wo in diesem 3D‑Raum wäre Tangyuan zu verorten? Die Bällchen sind suppig wie Borschtsch und eine süße Nachspeise wie Apfelstrudel, außerdem ganz bestimmt kein Sandwich. Hier ist eine mögliche Platzierung:

Beachten Sie, wie viel Information in diesen drei Dimensionen ausgedrückt wird. Es könnten jetzt noch weitere Dimensionen hinzugefügt werden, etwa solche zur Fleischlastigkeit oder Garung, 4D-, 5D- und höherdimensionale Räume sind jedoch schwer zu visualisieren.
Reale Szenarien für Einbettungsbereiche
In der Realität sind Einbettungsbereiche d‑dimensional, wobei d sehr viel höhere Zahlen als 3 annehmen kann, dabei aber immer unter der Dimensionalität der Daten liegt. Außerdem sind Beziehungen zwischen Datenpunkten nicht unbedingt so intuitiv wie in dem erfundenen Beispiel oben. (Bei Worteinbettungen liegt d oft bei 256, 512 oder 1024.1)
In der Praxis legt meist die ML‑Fachkraft die spezifische Aufgabe und die Anzahl der Einbettungsdimensionen fest. Das Modell versucht dann, die Trainingsbeispiele so zu organisieren, dass sie in einem Einbettungsbereich nahe an der festgelegten Anzahl an Dimensionen liegen, oder es versucht, die optimale Anzahl an Dimensionen zu ermitteln, falls d nicht festgelegt ist. Die einzelnen Dimensionen sind selten so gut verständlich wie „Nachtischigkeit“ oder „Flüssigkeit“. Manchmal kann die Bedeutung gefolgert werden, dies ist jedoch nicht immer der Fall.
Einbettungen sind in der Regel spezifisch für die Aufgabe und unterscheiden sich voneinander, wenn sich die Aufgabe unterscheidet. So unterscheiden sich beispielsweise die Einbettungen, die von einem Klassifikationsmodell für vegetarisches Essen und nicht vegetarisches Essen generiert werden, von Einbettungen, die von einem Modell generiert werden, das Gerichte auf Grundlage der Tageszeit oder Saison vorschlägt. „Getreideflocken“ und „Weißwurst“ wären im Einbettungsbereich eines Modells für die Tageszeit wahrscheinlich nahe beieinander, jedoch weit voneinander entfernt, wenn es sich zum Beispiel um den Einbettungsbereich eines Modells für vegetarisches Essen und nicht vegetarisches Essen handeln würde.
Statische Einbettungen
Während sich Einbettungen von Aufgabe zu Aufgabe unterscheiden, ist für eine bestimmte Aufgabe ein gewisses Maß an Allgemeingültigkeit vorhanden: die Vorhersage des Kontexts eines Wortes. Modelle, die darauf trainiert sind, den Kontext eines Wortes vorherzusagen, gehen davon aus, dass Wörter, die in ähnlichen Kontexten erscheinen, semantisch verwandt sind. So legen beispielsweise Trainingsdaten, in denen die Sätze „Sie ritt auf einem Esel in das Tal“ und „Sie ritt auf einem Pferd in das Tal“ enthalten sind, nahe, dass „Pferd“ in ähnlichen Kontexten wie „Esel“ erscheint. Es hat sich gezeigt, dass Einbettungen, die auf semantischer Ähnlichkeit basieren, gut für viele sprachbezogene Aufgaben funktionieren.
Zwar handelt es sich dabei um ein älteres Beispiel, dessen Prinzip mittlerweile weitgehend durch andere Modelle ersetzt wurde, aber das Modell word2vec kann nach wie vor hilfreich für Darstellungen sein. word2vec
wird mit einem Korpus aus Dokumenten trainiert, um eine einzelne globale Einbettung pro Wort zu erhalten. Wenn jedes Wort oder jeder Datenpunkt einen einzelnen Einbettungsvektor hat, wird dies statische Einbettung genannt. Im folgenden Video wird eine vereinfachte Darstellung des word2vec
-Trainings behandelt.
Forschung legt nahe, dass diese statischen Einbettungen nach dem Trainieren ein gewisses Maß an semantischer Information codieren, vor allem in Beziehungen zwischen Wörtern. Das bedeutet, dass sich Wörter, die in ähnlichen Kontexten verwendet werden, im Einbettungsbereich näher beieinander befinden. Die spezifischen Einbettungsvektoren, die generiert werden, hängen vom für das Training verwendeten Korpus ab. Für weitere Informationen siehe T. Mikolov et al (2013), „Efficient estimation of word representations in vector space“.
-
François Chollet, „Deep Learning with Python“ (Shelter Island, NY: Manning, 2017), 6.1.2. ↩