Intuitive Erklärung des Verlusts durch Noise Contrastive Estimation (NCE)?


32

Ich habe über NCE (eine Form der Stichprobenauswahl) aus diesen beiden Quellen gelesen:

Tensorflow-Zuschreibung

Original Papier

Kann mir jemand bei Folgendem helfen:

  1. Eine einfache Erklärung der Funktionsweise von NCE (Ich fand es schwierig, das oben Genannte zu analysieren und zu verstehen. Etwas Intuitives, das zur dort vorgestellten Mathematik führt, wäre also großartig.)
  2. Nach Punkt 1 oben eine natürlich intuitive Beschreibung, wie sich dies von der negativen Abtastung unterscheidet. Ich kann sehen, dass es eine leichte Änderung in der Formel gibt, konnte aber die Mathematik nicht verstehen. Ich habe ein intuitives Verständnis von Negativ-Sampling im Kontext von word2vec- wir wählen zufällig einige Samples aus dem Vokabular aus Vund aktualisieren nur jene, weil sie |V|groß sind und dies eine Beschleunigung bietet. Bitte korrigieren wenn falsch.
  3. Wann welche verwenden und wie wird das entschieden? Es wäre großartig, wenn Sie Beispiele hinzufügen könnten (möglicherweise einfach zu verstehende Anwendungen).
  4. Ist NCE besser als Negative Sampling? Besser auf welche Weise?

Vielen Dank.


Vielleicht hilft mein Beitrag. nanjiang.quora.com/Noise-contrastive-Estimation und späteres Experimentieren mit theano finden Sie unter github.com/jiangnanHugo/language_modeling. Ich hoffe mein Verständnis stimmt.
Jiangnan Hugo

Antworten:


27

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 .


3

Ehrlich gesagt gibt es keinen intuitiven Weg, um zu verstehen, warum NCE-Verluste funktionieren, ohne ihre Mathematik genau zu verstehen. Um die Mathematik zu verstehen, sollten Sie die Originalarbeit lesen.

k

(x,y)ykk

Δsθ0(w,h)=sθ0(w,h)-LogkPn(w)

Pn(w)

knn=k

Die Originalarbeiten von NCE haben die Ableitungen des Beweises viel übersprungen, so dass es wirklich schwierig ist, NCE zu verstehen. Um die Mathematik über NCE leichter zu verstehen, habe ich einen Blog-Beitrag dazu, in dem die Mathematik aus den NCE-Artikeln kommentiert wird:

https://leimao.github.io/article/Noise-Contrastive-Estimation/ .

Das College im zweiten Jahr oder höher sollte es verstehen können.


1

Grundsätzlich wird ein Sample aus der True-Distribution ausgewählt, das aus der True-Class und einigen anderen Noisy-Class-Labels besteht. Dann den Softmax drüber nehmen.

Dies basiert auf Stichprobenwörtern aus der wahren Verteilung und der Rauschverteilung.

Hier besteht die Grundidee darin, einen logistischen Regressionsklassifikator zu trainieren, der die aus der wahren Verteilung erhaltenen Abtastwerte von den aus der Rauschverteilung erhaltenen Abtastwerten trennen kann. Denken Sie daran, wenn wir über die Stichproben sprechen, die aus der wahren Verteilung erhalten wurden, sprechen wir nur über eine Stichprobe, die die wahre Klasse ist, die aus der Modellverteilung erhalten wurde.

Hier habe ich über den NCE-Verlust und wie er sich vom NCE-Verlust unterscheidet, erklärt.

Noise Contrastive Estimation: Lösung für teuren Softmax.


1
Während dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier einzuschließen und den Link als Referenz bereitzustellen. Nur-Link-Antworten können ungültig werden, wenn sich die verlinkte Seite ändert.
Tuomastik

0

In einfachen Worten, die NCE ist nur eine Multi-Label-Klassifizierungsverlustfunktion mit nur 1 positiven Label und k negativen.

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.