Question sur Continuous Bag of Words

11

J'ai du mal à comprendre cette phrase:

La première architecture proposée est similaire à la NNLM à action directe, où la couche cachée non linéaire est supprimée et la couche de projection est partagée pour tous les mots (pas seulement la matrice de projection); ainsi, tous les mots sont projetés dans la même position (leurs vecteurs sont moyennés).

Qu'est-ce que la couche de projection vs la matrice de projection? Que signifie dire que tous les mots sont projetés dans la même position? Et pourquoi cela signifie-t-il que leurs vecteurs sont moyennés?

La phrase est la première de la section 3.1 de Estimation efficace des représentations de mots dans l'espace vectoriel (Mikolov et al. 2013) .

user70394
la source

Réponses:

6

La figure 1 clarifie un peu les choses. Tous les vecteurs de mots d'une fenêtre d'une taille donnée sont additionnés, le résultat est multiplié par (1 / taille de fenêtre) puis introduit dans la couche de sortie.

Matrice de projection signifie une table de recherche entière où chaque mot correspond à un seul vecteur à valeur réelle. La couche de projection est en fait un processus qui prend un mot (index des mots) et renvoie le vecteur correspondant. On peut soit les concaténer (obtenir une entrée de taille k * n où k est la taille de la fenêtre et n est la longueur du vecteur), soit comme dans le modèle CBOW, tout simplement les additionner (obtenir une entrée de taille n).

entrez la description de l'image ici

Denis Tarasov
la source
Tout d'abord, merci pour votre réponse. Je suis encore un peu confus par la distinction entre matrice de projection et couche de projection. Ils semblent les mêmes.
user70394
@ user70394 Oui, en fait, je trouve la terminologie quelque peu confuse. Fondamentalement, toute couche NN est une fonction qui mappe les entrées aux sorties. La couche de projection utilise les poids de la matrice de projection, mais ce n'est pas la matrice elle-même. Étant donné la même matrice, on peut définir de nombreuses fonctions différentes. En fait, dans le cas de CBOW, nous pourrions probablement dire que nous avons une couche de projection avec temporisation suivie d'une couche de sommation. Dans le modèle RNNLM, la "couche de projection" est en fait une partie de la couche cachée récurrente qui combine les poids de la matrice de projection avec les poids récurrents pour calculer les sorties.
Denis Tarasov
1

Alors que je parcourais les problèmes CBOW et que je suis tombé dessus, voici une réponse alternative à votre (première) question ("Qu'est-ce qu'une couche de projection vs matrice ?"), En regardant le modèle NNLM (Bengio et al., 2003):

Bengio et al., 2003, Figure 1: Architecture neuronale: f (i, w_ {t − 1}, ···, w_ {t − n + 1}) = g (i, C (w_ {t − 1} ), ···, C (w_ {t − n + 1})) où g est le réseau neuronal et C (i) est le i-ème vecteur de caractéristique de mot.

Si l'on compare cela au modèle [s] de Mikolov (montré dans une réponse alternative à cette question), la phrase citée (dans la question) signifie que Mikolov a supprimé la couche de (non linéaire!) dans le modèle de Bengio montré ci-dessus. Et la première (et seule) couche cachée de Mikolov, au lieu d'avoir des vecteurs individuels pour chaque mot, n'utilise qu'un seul vecteur qui résume les "paramètres de mot", puis ces sommes sont moyennées. Cela explique donc la dernière question ("Qu'est-ce que cela signifie que les vecteurs sont moyennés?"). Les mots sont "projetés dans la même position" parce que les poids attribués aux mots d'entrée individuels sont résumés et moyennés dans le modèle de Mikolov. Par conséquent, sa couche de projectiontanhC(wi)perd toutes les informations de position, contrairement à la première couche cachée de Bengio (aka. la matrice de projection ) - répondant ainsi à la deuxième question ("Qu'est-ce que cela signifie que tous les mots sont projetés dans la même position?"). Donc , le modèle de Mikolov [s] a retenu les « paramètres de mot » (la matrice de pondération d'entrée), enlevés de la matrice de projection et la couche, et de le remplacer à la fois d'une couche de projection « de simple ».Ctanh

Pour ajouter, et "juste pour mémoire": La vraie partie passionnante est l'approche de Mikolov pour résoudre la partie où dans l'image de Bengio vous voyez l'expression "la plupart des calculs ici". Bengio a essayé d'atténuer ce problème en faisant quelque chose qui est appelé softmax hiérarchique (au lieu d'utiliser simplement le softmax) dans un article ultérieur (Morin et Bengio 2005). Mais Mikolov, avec sa stratégie de sous-échantillonnage négatif, a fait un pas de plus: il ne calcule pas du tout la log-vraisemblance négative de tous les "mauvais" mots (ou des codages de Huffman, comme Bengio l'a suggéré en 2005), et calcule simplement un très petit échantillon de cas négatifs, qui, étant donné suffisamment de tels calculs et une distribution de probabilité intelligente, fonctionne extrêmement bien. Et la deuxième et encore plus importante contribution, naturellement,"compositionnalité" additive ("homme + roi = femme +?" avec réponse reine), qui ne fonctionne vraiment bien qu'avec son modèle Skip-Gram, et peut être grossièrement comprise comme prenant le modèle de Bengio, en appliquant les changements suggérés par Mikolov (c'est-à-dire, le phrase citée dans votre question), puis inverser tout le processus. Autrement dit, deviner les mots environnants à partir des mots de sortie (maintenant utilisés comme entrée), , à la place.P(context|wt=i)

fnl
la source