Entnommen aus diesem Beitrag: https://stats.stackexchange.com/a/245452/154812
Das Thema
Es gibt einige Probleme beim Lernen der Wortvektoren unter Verwendung eines "standardmäßigen" neuronalen Netzwerks. Auf diese Weise werden die Wortvektoren gelernt, während das Netzwerk lernt, das nächste Wort in einem gegebenen Fenster von Wörtern (der Eingabe des Netzwerks) vorherzusagen.
Das nächste Wort vorherzusagen ist wie die Klasse vorherzusagen. Das heißt, ein solches Netzwerk ist nur ein "standardmäßiger" Multinomialklassifizierer (Multiklassenklassifizierer). Und dieses Netzwerk muss so viele Ausgangsneuronen haben wie Klassen. Wenn Klassen tatsächliche Wörter sind, ist die Anzahl der Neuronen sehr groß.
Ein "normales" neuronales Netzwerk wird normalerweise mit einer entropieübergreifenden Kostenfunktion trainiert, bei der die Werte der Ausgangsneuronen Wahrscheinlichkeiten darstellen müssen. Dies bedeutet, dass die vom Netzwerk für jede Klasse berechneten Ausgangs "Scores" normalisiert und in umgewandelt werden müssen tatsächliche Wahrscheinlichkeiten für jede Klasse. Dieser Normalisierungsschritt wird mittels der Softmax-Funktion erreicht. Softmax ist sehr kostspielig, wenn es auf einer riesigen Ausgabeschicht angewendet wird.
Die (a) Lösung
Um dieses Problem zu lösen, dh die teure Berechnung des Softmax, verwendet Word2Vec eine Technik, die als rauschkontrastive Schätzung bezeichnet wird. Diese Technik wurde von [A] (umformuliert von [B]) eingeführt und dann in [C], [D], [E] verwendet, um Worteinbettungen aus unbeschriftetem Text in natürlicher Sprache zu lernen.
Die Grundidee besteht darin, ein multinomiales Klassifizierungsproblem (da es sich um das Problem der Vorhersage des nächsten Wortes handelt) in ein binäres Klassifizierungsproblem umzuwandeln. Das heißt, anstatt softmax zum Schätzen einer wahren Wahrscheinlichkeitsverteilung des Ausgangsworts zu verwenden, wird stattdessen eine binäre logistische Regression (binäre Klassifikation) verwendet.
Für jede Trainingsstichprobe wird dem erweiterten (optimierten) Klassifikator ein wahres Paar (ein Zentralwort und ein anderes Wort, das in seinem Kontext erscheint) und eine Anzahl von kk zufällig verfälschten Paaren (bestehend aus dem Zentralwort und einem zufällig ausgewählten Wort aus der Wortschatz). Indem der Klassifikator lernt, die wahren Paare von den verfälschten zu unterscheiden, lernt er letztendlich die Wortvektoren.
Dies ist wichtig: Anstatt das nächste Wort vorherzusagen (die "Standard" -Trainingstechnik), sagt der optimierte Klassifikator einfach voraus, ob ein Paar von Wörtern gut oder schlecht ist.
Word2Vec passt den Prozess leicht an und nennt ihn Negativabtastung. In Word2Vec werden die Wörter für die negativen Stichproben (die für die beschädigten Paare verwendet werden) aus einer speziell entwickelten Verteilung gezogen, wodurch weniger häufige Wörter bevorzugt werden, die häufiger gezogen werden.
Verweise
[A] (2005) - Kontrastive Schätzung: Training logarithmisch-linearer Modelle auf unbeschrifteten Daten
[B] (2010) - Rauschkontrastive Schätzung: Ein neues Schätzprinzip für nicht normalisierte statistische Modelle
[C] (2008) - Eine einheitliche Architektur für die Verarbeitung natürlicher Sprachen: Tiefe neuronale Netze mit Multitask-Lernen
[D] (2012) - Ein schneller und einfacher Algorithmus zum Trainieren neuronaler probabilistischer Sprachmodelle .
[E] (2013) - Effizientes Lernen von Worteinbettungen mit rauschkontrastiver Schätzung .