Wie funktioniert die negative Abtastung in word2vec?


19

Ich habe mich bemüht, das Konzept der negativen Abtastung im Kontext von word2vec zu verstehen. Ich bin nicht in der Lage, die Idee der [negativen] Probenahme zu verdauen. Zum Beispiel wird in Mikolovs Arbeiten die negative Stichprobenerwartung wie folgt formuliert

logσ(w,c)+kEcNPD[logσ(w,cN)].

Ich verstehe den linken Begriff , aber ich kann die Idee, negative Wort-Kontext-Paare , nicht verstehen.logσ(w,c)


4
Es ist lächerlich, wie verstreut die Dokumentation für word2vec ist. Die Ableitungen der negativen Stichproben finden Sie hier: arxiv.org/pdf/1402.3722v1.pdf
Alex R.,

Ich habe die Erklärung durchgearbeitet, die Sie genannt haben, und die Mathematik dahinter verstanden. Aber ich bin nicht in der Lage, die Intuition hinter der Probenahme zu verdauen.
Upendra Kumar

Antworten:


27

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 jedes Trainingsmuster wird dem erweiterten (optimierten) Klassifikator ein wahres Paar (ein zentrales Wort und ein anderes Wort, das in seinem Kontext erscheint) und eine Anzahl von zufällig verfälschten Paaren (bestehend aus dem zentralen Wort und einem zufällig ausgewählten Wort aus der Tabelle) zugeführt Wortschatz). Indem der Klassifikator lernt, die wahren Paare von den verfälschten zu unterscheiden, lernt er letztendlich die Wortvektoren.k

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 .


Die Antwort basiert auf einigen meiner älteren Notizen - ich hoffe, sie waren korrekt :)


2
Sie haben erwähnt "in Word2Vec, the words for the negative samples (used for the corrupted pairs) are drawn from a specially designed distribution, which favours less frequent words to be drawn more often",. Ich frage mich, ist das richtig? Weil einige andere Quellen sagen, dass häufigere Wörter als negative Stichproben abgetastet werden. Essentially, the probability for selecting a word as a negative sample is related to its frequency, with more frequent words being more likely to be selected as negative samples.
Tyler 傲 傲 国 主


Übrigens, was ist der Grund für die Auswahl von Wörtern mit hoher oder niedriger Häufigkeit als negative Stichproben? Ist die Zufallsauswahl aus nicht kontextbezogenen Wörtern nicht gut genug?
Tyler 傲 傲 国 主

@Tyler 傲 傲 国 主 Nach meinem Verständnis sind die selteneren Wörter informativer, da sie eher kontextspezifisch sind. Häufigere Wörter werden in der Regel mit viel mehr anderen Wörtern assoziiert (nehmen Sie das extreme Beispiel "the"). Dies macht es schwieriger, die seltenen Wörter richtig zu finden (Sie lernen schneller) und verringert auch die Wahrscheinlichkeit, dass ein Wort ausgewählt wird, das eigentlich keine negative Stichprobe ist (da es bei großen Korpora teuer ist, dies zu überprüfen und häufig weggelassen wird).
drevicko vor
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.