Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen CBoW- und Skip-Gram-Modelle (Optional) | Wort-Einbettungen
Einführung in NLP
course content

Kursinhalt

Einführung in NLP

Einführung in NLP

1. Grundlagen der Textvorverarbeitung
2. Stemming und Lemmatisierung
3. Grundlegende Textmodelle
4. Wort-Einbettungen

book
CBoW- und Skip-Gram-Modelle (Optional)

Sowohl die CBoW- als auch die Skip-gram-Architekturen lernen Wort-Embeddings durch eine neuronale Netzwerkstruktur, die aus den folgenden Schichten besteht:

  • einer Eingabeschicht;
  • einer einzelnen versteckten Schicht;
  • einer Ausgabeschicht.

Die Gewichtsmatrix zwischen den Eingabe- und versteckten Schichten, bezeichnet als W1 oder E, dient als Embeddings-Matrix. Jede Zeile dieser Matrix repräsentiert einen Embedding-Vektor für ein entsprechendes Wort, wobei die i-te Zeile dem i-ten Wort im Vokabular entspricht.

Diese Matrix enthält V (Vokabulargröße) Embeddings, jeweils der Größe N, eine Dimension, die wir festlegen. Die Multiplikation der Transponierten dieser Matrix (NxV-Matrix) mit einem One-Hot-kodierten Vektor (Vx1-Vektor) ruft das Embedding für ein bestimmtes Wort ab und erzeugt einen Nx1-Vektor.

Die zweite Gewichtsmatrix, zwischen der versteckten und der Ausgabeschicht, hat die Größe NxV. Die Multiplikation der Transponierten dieser Matrix (VxN Matrix) mit dem Nx1 Vektor der versteckten Schicht ergibt einen Vx1 Vektor.

CBoW

Betrachten Sie nun ein Beispiel mit einem CBoW-Modell:

Zuerst wird die Transponierte der Einbettungsmatrix mit den One-Hot-Vektoren der Kontextwörter multipliziert, um deren Einbettungen zu erzeugen. Diese Einbettungen werden dann je nach Implementierung summiert oder gemittelt, um einen einzelnen Vektor zu bilden. Dieser Vektor wird mit der W2-Matrix multipliziert, was zu einem Vx1-Vektor führt.

Schließlich durchläuft dieser Vektor die Softmax-Aktivierungsfunktion, die ihn in eine Wahrscheinlichkeitsverteilung umwandelt, wobei jedes Element die Wahrscheinlichkeit darstellt, dass ein Vokabelwort das Zielwort ist.

Anschließend wird der Verlust berechnet, und beide Gewichtsmatrizen werden aktualisiert, um diesen Verlust zu minimieren. Idealerweise möchten wir, dass die Wahrscheinlichkeit des Zielwortes nahe bei 1 liegt, während die Wahrscheinlichkeiten für alle anderen Wörter gegen Null gehen. Dieser Prozess wird für jede Kombination eines Zielwortes und seiner Kontextwörter wiederholt.

Sobald alle Kombinationen verarbeitet wurden, ist eine Epoche abgeschlossen. Typischerweise wird das neuronale Netzwerk über mehrere Epochen hinweg trainiert, um ein genaues Lernen zu gewährleisten. Schließlich können die Zeilen der resultierenden Einbettungsmatrix als unsere Worteinbettungen verwendet werden. Jede Zeile entspricht der Vektorrepräsentation eines bestimmten Wortes im Vokabular und erfasst effektiv dessen semantische Eigenschaften innerhalb des trainierten Modells.

Skip-gram

Schauen wir uns nun ein Skip-gram-Modell an:

Wie Sie sehen können, ist der Prozess größtenteils ähnlich wie bei CBoW. Er beginnt mit dem Abrufen der Einbettung des Zielwortes, die dann in der versteckten Schicht verwendet wird. Dies wird gefolgt von der Erzeugung eines Vx1-Vektors in der Ausgabeschicht. Dieser Vektor, der durch Multiplikation der Einbettung des Zielwortes mit der Gewichtsmatrix der Ausgabeschicht erhalten wird, wird dann durch die Softmax-Aktivierungsfunktion in einen Wahrscheinlichkeitsvektor umgewandelt.

Der Verlust für jedes Kontextwort wird aufsummiert, und die Gewichtsmatrizen werden entsprechend bei jeder Iteration aktualisiert, um den Gesamtverlust zu minimieren. Sobald die angegebene Anzahl von Epochen abgeschlossen ist, kann die Einbettungsmatrix verwendet werden, um die Worteinbettungen zu erhalten.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 2
We're sorry to hear that something went wrong. What happened?
some-alt