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 | Wort-Einbettungen
Einführung in NLP mit Python

CBoW- und Skip-Gram-Modelle

Swipe um das Menü anzuzeigen

Grundkenntnisse über neuronale Netze werden für dieses Kapitel empfohlen. Falls Sie mit dem Thema nicht vertraut sind, können Sie gerne diesen Kurs erkunden:

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

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

Die Gewichtsmatrix zwischen Eingabe- und versteckter Schicht, bezeichnet als W1W^1 oder EE, dient als Embeddings-Matrix. Jede Zeile dieser Matrix stellt einen Embedding-Vektor für ein entsprechendes Wort dar, wobei die ii-te Zeile dem ii-ten Wort im Vokabular entspricht.

Diese Matrix enthält VV (Vokabulargröße) Embeddings, jeweils der Größe NN, einer von uns festgelegten Dimension. Die Multiplikation der Transponierten dieser Matrix (N×VN \times V Matrix) mit einem One-Hot-codierten Vektor (V×1V \times 1 Vektor) ruft das Embedding für ein bestimmtes Wort ab und ergibt einen N×1N \times 1 Vektor.

Einbettungsmatrix

Die zweite Gewichtsmatrix zwischen der versteckten und der Ausgabeschicht hat die Größe N×VN \times V. Die Multiplikation der Transponierten dieser Matrix (eine V×NV \times N Matrix) mit dem N×1N \times 1 Vektor der versteckten Schicht ergibt einen V×1V \times 1 Vektor.

CBoW

Beispiel für die Verwendung eines CBoW-Modells:

CBoW

Zunächst wird das Transponierte der Embedding-Matrix mit den One-Hot-Vektoren der Kontextwörter multipliziert, um deren Einbettungen zu erzeugen. Diese Einbettungen werden dann je nach Implementierung aufsummiert oder gemittelt, um einen einzelnen Vektor zu bilden. Dieser Vektor wird mit der W2W^2-Matrix multipliziert, was zu einem V×1V \times 1-Vektor führt.

Abschließend durchläuft dieser Vektor die Softmax-Aktivierungsfunktion, wodurch eine Wahrscheinlichkeitsverteilung entsteht, bei der jedes Element die Wahrscheinlichkeit angibt, dass ein Vokabelwort das Zielwort ist.

Softmax

Anschließend wird der Verlust berechnet und beide Gewichtsmatrizen werden aktualisiert, um diesen Verlust zu minimieren. Idealerweise soll die Wahrscheinlichkeit für das Zielwort nahe bei 1 liegen, während die Wahrscheinlichkeiten für alle anderen Wörter gegen null gehen. Dieser Vorgang wird für jede Kombination eines Zielworts mit seinen Kontextwörtern wiederholt.

Nachdem alle Kombinationen verarbeitet wurden, ist eine Epoche abgeschlossen. In der Regel wird das neuronale Netzwerk über mehrere Epochen hinweg trainiert, um ein genaues Lernen zu gewährleisten. Schließlich können die Zeilen der resultierenden Embedding-Matrix als unsere Wort-Embeddings verwendet werden. Jede Zeile entspricht der Vektorrepräsentation eines bestimmten Wortes im Vokabular und bildet dessen semantische Eigenschaften im trainierten Modell ab.

Skip-gram

Im Folgenden betrachten wir ein Skip-gram-Modell:

Skip-gram

Wie Sie sehen können, ist der Ablauf größtenteils ähnlich wie bei CBoW. Er beginnt mit dem Abrufen der Einbettung des Zielworts, die anschließend in der versteckten Schicht verwendet wird. Danach wird im Ausgabeschicht ein V×1V \times 1-Vektor erzeugt. Dieser Vektor, der durch Multiplikation der Einbettung des Zielworts mit der Gewichtsmatrix der Ausgabeschicht entsteht, wird anschließend durch die Softmax-Aktivierungsfunktion in einen Wahrscheinlichkeitsvektor umgewandelt.

Note
Hinweis

Obwohl dieser resultierende Wahrscheinlichkeitsvektor für alle Kontextwörter, die mit einem einzelnen Zielwort während eines Trainingsschritts assoziiert sind, gleich ist, wird der Verlust für jedes Kontextwort einzeln berechnet.

Der Verlust für jedes Kontextwort wird aufsummiert, und die Gewichtsmatrizen werden bei jeder Iteration entsprechend aktualisiert, um den Gesamtverlust zu minimieren. Nach Abschluss der angegebenen Anzahl von Epochen kann die Einbettungsmatrix verwendet werden, um die Wort-Einbettungen zu erhalten.

Note
Mehr erfahren

In der Praxis kann die Softmax-Funktion insbesondere bei großen Vokabularen zu rechenintensiv sein. Daher werden häufig Annäherungen wie Negative Sampling verwendet, um die Berechnung effizienter zu gestalten.

1. Lücken ausfüllen

2. Was stellt die erste Gewichtsmatrix W1W^1 im neuronalen Netzwerk dar?

question-icon

Lücken ausfüllen

The architecture tries to predict the target word from its context.
The
architecture tries to predict the context of the target word.

Klicken oder ziehen Sie Elemente und füllen Sie die Lücken aus

question mark

Was stellt die erste Gewichtsmatrix W1W^1 im neuronalen Netzwerk dar?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 2

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

CBoW- und Skip-Gram-Modelle

Grundkenntnisse über neuronale Netze werden für dieses Kapitel empfohlen. Falls Sie mit dem Thema nicht vertraut sind, können Sie gerne diesen Kurs erkunden:

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

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

Die Gewichtsmatrix zwischen Eingabe- und versteckter Schicht, bezeichnet als W1W^1 oder EE, dient als Embeddings-Matrix. Jede Zeile dieser Matrix stellt einen Embedding-Vektor für ein entsprechendes Wort dar, wobei die ii-te Zeile dem ii-ten Wort im Vokabular entspricht.

Diese Matrix enthält VV (Vokabulargröße) Embeddings, jeweils der Größe NN, einer von uns festgelegten Dimension. Die Multiplikation der Transponierten dieser Matrix (N×VN \times V Matrix) mit einem One-Hot-codierten Vektor (V×1V \times 1 Vektor) ruft das Embedding für ein bestimmtes Wort ab und ergibt einen N×1N \times 1 Vektor.

Einbettungsmatrix

Die zweite Gewichtsmatrix zwischen der versteckten und der Ausgabeschicht hat die Größe N×VN \times V. Die Multiplikation der Transponierten dieser Matrix (eine V×NV \times N Matrix) mit dem N×1N \times 1 Vektor der versteckten Schicht ergibt einen V×1V \times 1 Vektor.

CBoW

Beispiel für die Verwendung eines CBoW-Modells:

CBoW

Zunächst wird das Transponierte der Embedding-Matrix mit den One-Hot-Vektoren der Kontextwörter multipliziert, um deren Einbettungen zu erzeugen. Diese Einbettungen werden dann je nach Implementierung aufsummiert oder gemittelt, um einen einzelnen Vektor zu bilden. Dieser Vektor wird mit der W2W^2-Matrix multipliziert, was zu einem V×1V \times 1-Vektor führt.

Abschließend durchläuft dieser Vektor die Softmax-Aktivierungsfunktion, wodurch eine Wahrscheinlichkeitsverteilung entsteht, bei der jedes Element die Wahrscheinlichkeit angibt, dass ein Vokabelwort das Zielwort ist.

Softmax

Anschließend wird der Verlust berechnet und beide Gewichtsmatrizen werden aktualisiert, um diesen Verlust zu minimieren. Idealerweise soll die Wahrscheinlichkeit für das Zielwort nahe bei 1 liegen, während die Wahrscheinlichkeiten für alle anderen Wörter gegen null gehen. Dieser Vorgang wird für jede Kombination eines Zielworts mit seinen Kontextwörtern wiederholt.

Nachdem alle Kombinationen verarbeitet wurden, ist eine Epoche abgeschlossen. In der Regel wird das neuronale Netzwerk über mehrere Epochen hinweg trainiert, um ein genaues Lernen zu gewährleisten. Schließlich können die Zeilen der resultierenden Embedding-Matrix als unsere Wort-Embeddings verwendet werden. Jede Zeile entspricht der Vektorrepräsentation eines bestimmten Wortes im Vokabular und bildet dessen semantische Eigenschaften im trainierten Modell ab.

Skip-gram

Im Folgenden betrachten wir ein Skip-gram-Modell:

Skip-gram

Wie Sie sehen können, ist der Ablauf größtenteils ähnlich wie bei CBoW. Er beginnt mit dem Abrufen der Einbettung des Zielworts, die anschließend in der versteckten Schicht verwendet wird. Danach wird im Ausgabeschicht ein V×1V \times 1-Vektor erzeugt. Dieser Vektor, der durch Multiplikation der Einbettung des Zielworts mit der Gewichtsmatrix der Ausgabeschicht entsteht, wird anschließend durch die Softmax-Aktivierungsfunktion in einen Wahrscheinlichkeitsvektor umgewandelt.

Note
Hinweis

Obwohl dieser resultierende Wahrscheinlichkeitsvektor für alle Kontextwörter, die mit einem einzelnen Zielwort während eines Trainingsschritts assoziiert sind, gleich ist, wird der Verlust für jedes Kontextwort einzeln berechnet.

Der Verlust für jedes Kontextwort wird aufsummiert, und die Gewichtsmatrizen werden bei jeder Iteration entsprechend aktualisiert, um den Gesamtverlust zu minimieren. Nach Abschluss der angegebenen Anzahl von Epochen kann die Einbettungsmatrix verwendet werden, um die Wort-Einbettungen zu erhalten.

Note
Mehr erfahren

In der Praxis kann die Softmax-Funktion insbesondere bei großen Vokabularen zu rechenintensiv sein. Daher werden häufig Annäherungen wie Negative Sampling verwendet, um die Berechnung effizienter zu gestalten.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 2
some-alt