Explication intuitive de la perte d'estimation NCE (Noise Contrastive Estimation)?


32

J'ai lu sur NCE (une forme d'échantillonnage de candidats) à partir de ces deux sources:

Rédaction Tensorflow

Papier original

Quelqu'un peut-il m'aider avec les éléments suivants:

  1. Une explication simple du fonctionnement des RCE (j'ai trouvé les éléments ci-dessus difficiles à analyser et à comprendre, donc quelque chose d'intuitif qui mène aux mathématiques présentées serait formidable)
  2. Après le point 1 ci-dessus, une description naturellement intuitive de la différence avec l'échantillonnage négatif. Je peux voir qu'il y a un léger changement dans la formule, mais je ne pouvais pas comprendre les mathématiques. J'ai une compréhension intuitive de l'échantillonnage négatif dans le contexte de word2vec- nous choisissons au hasard certains échantillons dans le vocabulaire Vet ne mettons à jour que ceux qui |V|sont grands et cela offre une accélération. Veuillez corriger en cas d'erreur.
  3. Quand utiliser lequel et comment cela est-il décidé? Ce serait formidable si vous pouviez inclure des exemples (éventuellement des applications faciles à comprendre)
  4. Le NCE est-il meilleur que l'échantillonnage négatif? Mieux de quelle manière?

Merci.


peut être mon message peut aider. nanjiang.quora.com/Noise-contrastive-Estimation et une expérience ultérieure avec theano peuvent être trouvées sur mon github.com/jiangnanHugo/language_modeling. J'espère que ma compréhension est bonne.
jiangnan hugo

Réponses:


27

Tiré de ce post: https://stats.stackexchange.com/a/245452/154812

Le problème

Il y a quelques problèmes avec l'apprentissage des vecteurs de mots en utilisant un réseau neuronal "standard". De cette façon, les vecteurs de mots sont appris pendant que le réseau apprend à prédire le mot suivant étant donné une fenêtre de mots (l'entrée du réseau).

Prédire le mot suivant, c'est comme prédire la classe. C'est-à-dire qu'un tel réseau n'est qu'un classificateur multinomial (multi-classe) "standard". Et ce réseau doit avoir autant de neurones de sortie que de classes. Lorsque les classes sont de vrais mots, le nombre de neurones est, eh bien, énorme.

Un réseau neuronal "standard" est généralement formé avec une fonction de coût d'entropie croisée qui nécessite que les valeurs des neurones de sortie représentent des probabilités - ce qui signifie que les "scores" de sortie calculés par le réseau pour chaque classe doivent être normalisés, convertis en probabilités réelles pour chaque classe. Cette étape de normalisation est réalisée au moyen de la fonction softmax. Softmax est très coûteux lorsqu'il est appliqué à une énorme couche de sortie.

La (a) solution

Afin de résoudre ce problème, à savoir le calcul coûteux du softmax, Word2Vec utilise une technique appelée estimation de contraste de bruit. Cette technique a été introduite par [A] (reformulée par [B]) puis utilisée en [C], [D], [E] pour apprendre les incorporations de mots à partir de texte en langage naturel non étiqueté.

L'idée de base est de convertir un problème de classification multinomial (comme c'est le problème de prédire le mot suivant) en un problème de classification binaire. C'est-à-dire qu'au lieu d'utiliser softmax pour estimer une vraie distribution de probabilité du mot de sortie, une régression logistique binaire (classification binaire) est utilisée à la place.

Pour chaque échantillon d'apprentissage, le classificateur amélioré (optimisé) reçoit une vraie paire (un mot central et un autre mot qui apparaît dans son contexte) et un nombre de kk paires corrompues au hasard (consistant en le mot central et un mot choisi au hasard dans le vocabulaire). En apprenant à distinguer les vraies paires des paires corrompues, le classificateur apprendra finalement les mots vecteurs.

Ceci est important: au lieu de prédire le mot suivant (la technique d'apprentissage "standard"), le classificateur optimisé prédit simplement si une paire de mots est bonne ou mauvaise.

Word2Vec personnalise légèrement le processus et l'appelle échantillonnage négatif. Dans Word2Vec, les mots des échantillons négatifs (utilisés pour les paires corrompues) sont tirés d'une distribution spécialement conçue, ce qui favorise les mots moins fréquents à dessiner plus souvent.

Les références

[A] (2005) - Estimation contrastive: formation de modèles log-linéaires sur des données non étiquetées

[B] (2010) - Estimation par contraste de bruit: un nouveau principe d'estimation pour les modèles statistiques non normalisés

[C] (2008) - Une architecture unifiée pour le traitement du langage naturel: réseaux de neurones profonds avec apprentissage multitâche

[D] (2012) - Un algorithme simple et rapide pour la formation de modèles de langage neurologiques probabilistes .

[E] (2013) - Apprentissage efficace des intégrations de mots avec une estimation de contraste de bruit .


3

Honnêtement, il n'y a aucun moyen intuitif de comprendre pourquoi la perte NCE fonctionnera sans comprendre profondément ses mathématiques. Pour comprendre les mathématiques, vous devez lire l'article original.

k

(X,y)ykk

Δsθ0(w,h)=sθ0(w,h)-bûchekPn(w)

Pn(w)

knn=k

Les articles originaux du NCE ont beaucoup ignoré les dérivations de la preuve, de sorte qu'il est vraiment difficile de comprendre le NCE. Pour comprendre les mathématiques sur les RCE plus facilement, j'ai un article de blog sur cette annotation des mathématiques des articles des RCE:

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

Un étudiant en deuxième année ou supérieur devrait être capable de le comprendre.


1

Fondamentalement, cela consiste à sélectionner un échantillon dans la vraie distribution qui se compose de la vraie classe et de quelques autres étiquettes de classe bruyantes. Puis en prenant le softmax dessus.

Ceci est basé sur l'échantillonnage des mots de la vraie distribution et de la distribution du bruit.

Ici, l'idée de base est de former un classificateur de régression logistique qui peut séparer les échantillons obtenus de la distribution réelle et l'échantillon obtenu de la distribution du bruit. Rappelez-vous Lorsque nous parlons des échantillons obtenus à partir de la distribution vraie, nous parlons d'un seul échantillon qui est la vraie classe obtenue à partir de la distribution du modèle.

Ici, j'ai expliqué la perte NCE et comment elle diffère de la perte NCE.

Estimation du contraste sonore: solution pour Softmax coûteux.


1
Bien que ce lien puisse répondre à la question, il est préférable d'inclure les parties essentielles de la réponse ici et de fournir le lien de référence. Les réponses de lien uniquement peuvent devenir invalides si la page liée change.
tuomastik

0

En termes simples, le NCE est juste une fonction de perte de classification multi-labels avec seulement 1 label positif et k négatifs.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.