Einbettungen: Einbettungen abrufen

Es gibt verschiedene Möglichkeiten, eine Einbettung zu erhalten, unter anderem mit einem hochmodernen Algorithmus von Google.

Standardmäßige Techniken zur Reduzierung der Dimensionalität

Es gibt viele mathematische Verfahren, mit denen sich die wichtige Struktur eines hochdimensionalen Bereichs in einem niedrigdimensionalen Raum erfassen lässt. Theoretisch können alle diese Techniken verwendet werden, um eine Einbettung für ein ML-System zu erstellen.

Beispielsweise wurden mithilfe der Hauptkomponentenanalyse (Hauptkomponentenanalyse) Worteinbettungen erstellt. Bei einer Reihe von Instanzen wie Bag of Wordvektoren versucht PCA, stark korrelierte Dimensionen zu finden, die in eine einzelne Dimension minimiert werden können.

Word2vec

Word2vec ist ein von Google entwickelter Algorithmus zum Trainieren von Worteinbettungen. Word2vec stützt sich auf die VerteilungsHypothese, um semantisch ähnliche Wörter einem geometrisch nahen Einbettungsvektoren zuzuordnen.

Die VerteilungsHypothese besagt, dass Wörter, die häufig dieselben benachbarten Wörter enthalten, in der Regel semantisch ähnlich sind. Sowohl „hund“ als auch „katze“ kommen häufig dem Wort „tierärzt“ vor und diese Tatsache spiegelt ihre semantische Ähnlichkeit wider. Wie der Linguer John Firth im Jahr 1957 ausdrückte, wird man das Wort der Gesellschaft, die er hält, kennen.

Word2Vec nutzt Kontextinformationen wie diese aus, indem es ein neuronales Netz trainiert, um tatsächlich vorkommende Wörter von zufällig gruppierten Wörtern zu unterscheiden. Die Eingabeebene nimmt ein dünnbesetztes Zielwort zusammen mit einem oder mehreren Kontextwörtern an. Diese Eingabe stellt eine Verbindung zu einer einzelnen, kleineren, versteckten Ebene her.

In einer Version des Algorithmus macht das System ein negatives Beispiel. Es ersetzt ein zufälliges Rauschwort durch das Zielwort. Bei dem positiven Beispiel „Flugzeug“ kann es sein, dass sich das System in „Joggen“ einfügt, um das kontrastierende negative Beispiel „Jogging Flies“ zu erzeugen.

In der anderen Version des Algorithmus werden negative Beispiele erstellt. Hierzu wird das echte Zielwort mit zufällig ausgewählten Kontextwörtern kombiniert. Sie könnten also die positiven Beispiele (die, Ebene), (Fliegen, Ebene) und die negativen Beispiele (kompiliert, Ebene), (wer, Ebene) betrachten und lernen, zu erkennen, welche Paare tatsächlich zusammen im Text erscheinen.

Der Klassifikator ist jedoch nicht das tatsächliche Ziel der beiden Systemversionen. Nachdem das Modell trainiert wurde, haben Sie eine Einbettung. Sie können die Gewichtungen verwenden, um die Eingabeebene mit der ausgeblendeten Ebene zu verbinden, um dünnbesetzte Darstellungen von Wörtern kleineren Vektoren zuzuordnen. Diese Einbettung kann in anderen Klassifikatoren wiederverwendet werden.

Weitere Informationen zu Word2vec finden Sie in der Anleitung auf tensorflow.org

Einbetten als Teil eines größeren Modells trainieren

Sie können auch eine Einbettung als Teil des neuronalen Netzwerks für Ihre Zielaufgabe kennenlernen. Bei diesem Ansatz erhalten Sie eine für Ihr System angepasste Einbettung, die jedoch länger dauern kann als das separate Trainieren.

Wenn Sie dünnbesetzte oder dichte Daten haben, die Sie einbetten möchten, können Sie generell eine Einbettungseinheit erstellen, die nur ein spezieller Typ einer ausgeblendeten Einheit der Größe d ist. Diese Einbettungsebene kann mit allen anderen Funktionen und ausgeblendeten Ebenen kombiniert werden. Wie bei allen DNN ist die endgültige Schicht der Verlust, der optimiert wird. Ein Beispiel: Wir führen kollaboratives Filtern durch, wobei das Ziel darin besteht, die Interessen eines Nutzers anhand der Interessen anderer Nutzer vorherzusagen. Wir können dies als überwachtes Lernproblem modellieren, indem wir eine kleine Anzahl der Filme, die sich der Nutzer als positive Labels angesehen hat, zufällig reservieren (oder zurückhalten) und dann einen Softmax-Verlust optimieren.

Abbildung 5. Beispiel einer DNN-Architektur zum Erlernen von Filmeinbettungen aus kollaborativen Filterdaten.

Ein weiteres Beispiel: Wenn Sie eine Einbettungsebene für die Wörter in einer Immobilienanzeige als Teil eines DNN erstellen möchten, um Immobilienpreise vorherzusagen, können Sie einen Verlust von L2 mithilfe des bekannten Sonderangebotspreises für Eigenheime in Ihren Trainingsdaten als Label optimieren.

Beim Lernen einer d-dimensionalen Einbettung wird jedes Element einem Punkt in einem d-dimensionalen Bereich zugeordnet, sodass sich ähnliche Elemente in diesem Bereich in der Nähe befinden. Abbildung 6 veranschaulicht die Beziehung zwischen den in der Einbettungsebene gewonnenen Gewichtungen und der geometrischen Ansicht. Die Edge-Gewichtungen zwischen einem Eingabeknoten und den Knoten in der d-dimensionalen Einbettungsebene entsprechen den Koordinatenwerten für jede der d-Achsen.

Eine Abbildung, die die Beziehung zwischen den Gewichtungen der Einbettungsebene und der geometrischen Ansicht der Einbettung zeigt.

Abbildung 6. Eine geometrische Ansicht der Einbettungsschichten.