CBoW- und Skip-Gram-Modelle
Swipe um das Menü anzuzeigen
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 W1 oder E, dient als Embeddings-Matrix. Jede Zeile dieser Matrix stellt einen Embedding-Vektor für ein entsprechendes Wort dar, 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, einer von uns festgelegten Dimension. Die Multiplikation der Transponierten dieser Matrix (N×V Matrix) mit einem One-Hot-codierten Vektor (V×1 Vektor) ruft das Embedding für ein bestimmtes Wort ab und ergibt einen N×1 Vektor.
Die zweite Gewichtsmatrix, zwischen der versteckten und der Ausgabeschicht, hat die Größe N×V. Die Multiplikation der Transponierten dieser Matrix (V×N Matrix) mit dem N×1 Vektor der versteckten Schicht ergibt einen V×1 Vektor.
CBoW
Im Folgenden ein Beispiel für die Verwendung eines CBoW-Modells:
Zunächst wird das Transponierte der Embedding-Matrix mit den One-Hot-Vektoren der Kontextwörter multipliziert, um deren Embeddings zu erzeugen. Diese Embeddings werden anschließend aufsummiert oder gemittelt – je nach Implementierung – um einen einzelnen Vektor zu bilden. Dieser Vektor wird mit der W2-Matrix multipliziert, was zu einem V×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.
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 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 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 wird ein Skip-gram-Modell betrachtet:
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. Darauf folgt die Erzeugung eines V×1-Vektors in der Ausgabeschicht. 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.
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 festgelegten Anzahl an Epochen kann die Einbettungsmatrix verwendet werden, um die Wort-Einbettungen zu erhalten.
In der Praxis kann die Softmax-Funktion insbesondere bei großen Vokabularen zu rechenintensiv sein. Daher werden häufig Annäherungen wie das Negative Sampling verwendet, um die Berechnung effizienter zu gestalten.
1. Lücken ausfüllen
2. Was stellt die erste Gewichtsmatrix W1 im neuronalen Netzwerk dar?
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen