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

bookCBoW- und Skip-Gram-Modelle

Ein grundlegendes Verständnis von neuronalen Netzwerken wird für dieses Kapitel empfohlen. Falls Sie mit dem Thema nicht vertraut sind, können Sie gerne diesen Kurs besuchen:

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.

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

Im Folgenden ein Beispiel für die Verwendung eines CBoW-Modells:

Zunächst wird das Transponierte der Embeddings-Matrix mit den One-Hot-Vektoren der Kontextwörter multipliziert, um deren Einbettungen zu erzeugen. Diese Einbettungen werden dann aufsummiert oder gemittelt, je nach Implementierung, 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 er in eine Wahrscheinlichkeitsverteilung umgewandelt wird. Jedes Element repräsentiert dabei die Wahrscheinlichkeit, dass ein Vokabelwort das Zielwort ist.

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.

Sobald alle Kombinationen verarbeitet wurden, ist eine Epoche abgeschlossen. In der Regel wird das neuronale Netzwerk über mehrere Epochen 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:

Wie ersichtlich, ist der Ablauf größtenteils ähnlich wie bei CBoW. Zunächst wird das Embedding des Zielworts abgerufen, das anschließend in der versteckten Schicht verwendet wird. Danach wird im Ausgabeschicht ein V×1V \times 1-Vektor erzeugt. Dieser Vektor, der durch Multiplikation des Embeddings des Zielworts mit der Gewichtsmatrix der Ausgabeschicht entsteht, wird anschließend durch die Softmax-Aktivierungsfunktion in einen Wahrscheinlichkeitsvektor umgewandelt.

Note
Hinweis

Obwohl dieser resultierende Vektor von Wahrscheinlichkeiten für alle Kontextwörter im Zusammenhang mit einem einzelnen Zielwort während eines einzelnen Trainingsschritts 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 Embedding-Matrix verwendet werden, um die Wort-Embeddings zu erhalten.

Note
Mehr erfahren

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

1. Füllen Sie die Lücken aus

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

question-icon

Füllen Sie die Lücken aus

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

Click or drag`n`drop items and fill in the blanks

question mark

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

Select the correct answer

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

Awesome!

Completion rate improved to 3.45

bookCBoW- und Skip-Gram-Modelle

Swipe um das Menü anzuzeigen

Ein grundlegendes Verständnis von neuronalen Netzwerken wird für dieses Kapitel empfohlen. Falls Sie mit dem Thema nicht vertraut sind, können Sie gerne diesen Kurs besuchen:

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.

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

Im Folgenden ein Beispiel für die Verwendung eines CBoW-Modells:

Zunächst wird das Transponierte der Embeddings-Matrix mit den One-Hot-Vektoren der Kontextwörter multipliziert, um deren Einbettungen zu erzeugen. Diese Einbettungen werden dann aufsummiert oder gemittelt, je nach Implementierung, 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 er in eine Wahrscheinlichkeitsverteilung umgewandelt wird. Jedes Element repräsentiert dabei die Wahrscheinlichkeit, dass ein Vokabelwort das Zielwort ist.

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.

Sobald alle Kombinationen verarbeitet wurden, ist eine Epoche abgeschlossen. In der Regel wird das neuronale Netzwerk über mehrere Epochen 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:

Wie ersichtlich, ist der Ablauf größtenteils ähnlich wie bei CBoW. Zunächst wird das Embedding des Zielworts abgerufen, das anschließend in der versteckten Schicht verwendet wird. Danach wird im Ausgabeschicht ein V×1V \times 1-Vektor erzeugt. Dieser Vektor, der durch Multiplikation des Embeddings des Zielworts mit der Gewichtsmatrix der Ausgabeschicht entsteht, wird anschließend durch die Softmax-Aktivierungsfunktion in einen Wahrscheinlichkeitsvektor umgewandelt.

Note
Hinweis

Obwohl dieser resultierende Vektor von Wahrscheinlichkeiten für alle Kontextwörter im Zusammenhang mit einem einzelnen Zielwort während eines einzelnen Trainingsschritts 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 Embedding-Matrix verwendet werden, um die Wort-Embeddings zu erhalten.

Note
Mehr erfahren

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

1. Füllen Sie die Lücken aus

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

question-icon

Füllen Sie die Lücken aus

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

Click or drag`n`drop items and fill in the blanks

question mark

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

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 2
some-alt