wake-up-neo.com

CBOW v.s. Überspringen: Warum invertieren Sie Kontext- und Zielwörter?

Auf dieser Seite heißt es: 

[...] skip-gram invertiert Kontexte und Ziele und versucht, jedes Kontextwort aus seinem Zielwort [...] vorherzusagen.

Betrachtet man jedoch den Trainingsdatensatz, den er erzeugt, so scheint der Inhalt des X- und Y-Paars unersetzbar zu sein, da diese beiden Paare von (X, Y): 

(quick, brown), (brown, quick)

Warum also so viel zwischen Kontext und Zielen unterscheiden, wenn es am Ende dasselbe ist? 

Wenn Sie Udacitys Deep Learning-Kursübungen zu Word2vec durchführen , wundere ich mich, warum sie den Unterschied zwischen diesen beiden Ansätzen in diesem Problem so stark zu machen scheinen: 

Eine Alternative zum Überspringen ist ein anderes Word2Vec-Modell namens CBOW (Continuous Bag of Words). Im CBOW-Modell kann ein Wort nicht aus einem Wortvektor vorhergesagt werden, sondern aus der Summe aller Wortvektoren in seinem Kontext. Implementieren und evaluieren Sie ein CBOW-Modell, das mit dem text8-Datensatz trainiert wurde.

Würde dies nicht zu den gleichen Ergebnissen führen?

22

Hier ist mein vereinfachtes und ziemlich naives Verständnis des Unterschiedes:

Wie wir wissen, lernt CBOW, das Wort anhand des Kontextes vorherzusagen. Oder maximieren Sie die Wahrscheinlichkeit des Zielworts, indem Sie den Kontext betrachten. Und für seltene Wörter ist dies ein Problem. Wenn Sie beispielsweise den Kontext yesterday was a really [...] day CBOW-Modell angeben, wird das Wort höchstwahrscheinlich beautiful oder Nice sein. Wörter wie delightful werden dem Modell viel weniger Aufmerksamkeit schenken, da es das wahrscheinlichste Wort vorhersagt. Dieses Wort wird über viele Beispiele mit häufigeren Wörtern geglättet.

Auf der anderen Seite ist das skip-gramm -Modell dazu gedacht, den Kontext vorherzusagen. Angesichts des Wortes delightful muss es es verstehen und uns sagen, dass der Kontext yesterday was really [...] day oder ein anderer relevanter Kontext sehr wahrscheinlich ist. Mit skip-gram versucht das Wort delightful nicht, mit dem Wort beautiful zu konkurrieren, sondern delightful+context-Paare werden als neue Beobachtungen behandelt. 

UPDATE 

Danke an @ 0xF für das Teilen diesen Artikel

Nach Mikolov

Skip-gram: funktioniert gut mit einer kleinen Menge der Trainingsdaten, repräsentiert sogar seltene Wörter oder Ausdrücke. 

CBOW: mehrmals schneller zu trainieren als das Sprungprogramm, etwas bessere Genauigkeit für die häufigen Wörter

Eine weitere Ergänzung zum Thema findet sich hier :

Im "Skip-Gram" -Modus Alternative zu "CBOW" statt Mittelwertbildung Die Kontextwörter werden jeweils als ein paarweises Trainingsbeispiel verwendet. Das ist anstelle eines CBOW-Beispiels wie [Predict 'ate' von Durchschnitt ("Die", "Katze", "Die", "Maus")], wird das Netzwerk mit .__ dargestellt. vier Beispiele für Überspringen [vorhergesagt von "The"], [vorhergesagt " von "Katze"], [vorhergesagt "gegessen" von "der"], [vorhergesagt "gegessen" von "Maus"] . (Die gleiche zufällige Fensterverkleinerung tritt auf, also die Hälfte der Zeit, die __. Nur zwei Beispiele der nächsten Wörter wäre.)

38
Serhiy

Es hat damit zu tun, was genau Sie zu einem bestimmten Zeitpunkt berechnen. Der Unterschied wird deutlicher, wenn Sie sich Modelle anschauen, die einen größeren Kontext für jede Wahrscheinlichkeitsberechnung enthalten.

In Skip-Gram berechnen Sie das Kontextwort (s) aus dem Wort an der aktuellen Position im Satz; Sie "überspringen" das aktuelle Wort (und möglicherweise ein bisschen den Kontext) in Ihrer Berechnung. Das Ergebnis kann mehr als ein Wort sein (aber nicht, wenn Ihr Kontextfenster nur ein Wort lang ist).

In CBOW berechnen Sie das aktuelle Wort aus den Kontextwörtern, sodass Sie immer nur ein Wort als Ergebnis haben. 

0
Clay