Question

Je l'ai lu NCE (une forme d'échantillonnage candidat) à partir de ces deux sources:

tensorflow writeup

original papier

aide quelqu'un peut me avec ce qui suit:

  1. Une explication simple de la façon dont fonctionne NCE (j'ai trouvé ce qui précède difficile d'analyser et d'obtenir une compréhension, donc quelque chose intuitive qui mène aux mathématiques présentés il y aurait grand)
  2. Après le point 1 ci-dessus, une description naturellement intuitive de la façon dont cela est différent de l'échantillonnage négatif. Je vois qu'il ya un léger changement dans la formule, mais ne pouvait pas comprendre les mathématiques. Je n'ai une compréhension intuitive de l'échantillonnage négatif dans le contexte de word2vec - nous choisissons au hasard des échantillons de la V de vocabulaire et mettre à jour que ceux parce que |V| est grande et cette offre une SpeedUp. S'il vous plaît corriger en cas d'erreur.
  3. Quand utiliser lequel et comment est-ce décidé? Ce serait génial si vous pouvez inclure des exemples (peut-être facile à comprendre des applications)
  4. Est NCE mieux que l'échantillonnage négatif? Mieux de quelle manière?

Merci.

Était-ce utile?

La solution

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

La question

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

Prédire le mot suivant est comme la prédiction de la classe. Autrement dit, un tel réseau est juste un « standard » classificateur multinomial (multi-classe). Et ce réseau doit avoir autant de neurones de sortie en tant que classes il y a. Lorsque les classes sont des mots réels, le nombre de neurones est bien, énorme.

Un réseau de neurones « standard » est habituellement formé avec une fonction de coût d'entropie croisée qui nécessite les valeurs des neurones de sortie pour représenter des probabilités - ce qui signifie que la sortie « scores » calculés par le réseau pour chaque classe doivent être normalisées , converties 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 grande couche de sortie.

Le (a) solution

Pour traiter cette question, qui est, le calcul coûteux du softmax, Word2Vec utilise une technique appelée estimation du bruit contrastive. Cette technique a été introduite par [A] (reformulée par [B]), puis utilisé dans [C], [D], [E] pour apprendre mot incorporations de texte en langage naturel non marqué.

L'idée de base est de convertir un problème de classification multinomial (car il est le problème de prédire le mot suivant) à un problème de classification binaire. Autrement dit, 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é à la place.

Pour chaque échantillon d'apprentissage, le classificateur amélioré (optimisé) est introduit une véritable paire (un mot de centre et un autre mot qui apparaît dans son contexte) et un certain nombre de kk paires au hasard corrompues (comprenant le mot central et un choisi au hasard mot du vocabulaire). En apprenant à distinguer les vraies paires de ceux corrompus, le classificateur sera finalement apprendre les vecteurs de mots.

Ceci est important:. Au lieu de prédire le mot suivant (la technique de formation « standard »), le classificateur optimisé prévoit simplement si une paire de mots est bon ou mauvais

Word2Vec personnalise un peu le processus et appelle échantillonnage négatif. Dans Word2Vec, les mots pour les échantillons négatifs (utilisés pour les paires corrompues) sont tirées d'une distribution spécialement conçu, ce qui favorise les mots moins fréquents, à tirer le plus souvent.

Références

[A] (2005) - estimation contrastive: formation modèles log-linéaires sur les données non marquées

[B] (2010) - estimation de bruit contrastive: Un nouveau principe d'estimation des modèles statistiques non normalisées

[C] (2008) - Une architecture unifiée pour le traitement du langage naturel: les réseaux de neurones profonds avec l'apprentissage multi-tâches

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

[E] (2013) -. Mot d'apprentissage incorporations efficacement avec une estimation de bruit contrastive

Autres conseils

Honnêtement il n'y a pas moyen intuitif de comprendre pourquoi la perte des RCE travaillera sans comprendre en profondeur ses mathématiques. Pour comprendre le calcul, vous devriez lire le document original.

La raison pour laquelle le travail perte DNO volonté est parce que des RCE se rapproche de l'estimation du maximum de vraisemblance (MLE) lorsque le rapport du bruit aux données réelles $ k $ augmente.

La mise en œuvre de tensorflow fonctionne dans la pratique. Fondamentalement, pour chaque donnée $ (x, y) $ , $ y $ est la classe marquée de la données, tensorflow échantillons de perte NCE $ k $ classes de distributions de bruit. Nous calculons une version spéciale des chiffres pour chacune des classes (1 à partir de données + $ k $ des distributions de bruit) en utilisant l'équation

$$ \ Delta s _ {\ theta ^ 0} (w, h) = s _ {\ theta ^ 0} (w, h) - \ log Kp_n (w) $ $

P_n $ (w) $ est la distribution du bruit. Avec les chiffres pour chaque classe calculées, tensorflow utiliser les chiffres pour calculer la perte softmax pour la classification binaire (perte de journal dans la régression logistique) pour chacune des classes, et d'ajouter ces pertes ainsi que la finale perte de NCE.

Cependant, sa mise en œuvre est conceptuellement mal parce que le rapport du bruit aux données réelles $ k $ est différent du nombre de classes $ n = k $ qui je pense est conceptuellement erronée.

Les documents originaux des RCE a sauté les dérivations de la preuve beaucoup pour qu'il est vraiment difficile de comprendre des RCE. Pour comprendre les mathématiques au sujet des RCE plus facile, j'ai un billet de blog sur ce annoter le calcul des papiers NCE:

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

Collège étudiant en deuxième année ou devrait être en mesure ci-dessus pour le comprendre.

, c'est en fait la sélection d'un échantillon de la vraie distribution qui se compose de la vraie classe et d'autres étiquettes de classe bruyantes. Puis, prenant le softmax dessus.

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

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

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

bruit contrastive Estimation: Solution pour Softmax cher.

Licencié sous: CC-BY-SA avec attribution
scroll top