CBOW v. S. skip-gram: pourquoi inverser le contexte et les mots-cibles?
la page, il est dit que:
[...] skip-gram inverse les contextes et les cibles, et tente de prédire chaque mot de contexte à partir de son mot cible [...]
Cependant, en regardant l'ensemble de données de formation qu'il produit, le contenu de la paire X et Y semble être interchangeable, comme ces deux paires de (X, Y):
(quick, brown), (brown, quick)
alors, pourquoi distinguer autant entre le contexte et les cibles si elle c'est la même chose à la fin?
Également Udacity Profondes de l'Apprentissage en cours d'exercice sur word2vec, je me demande pourquoi ils semblent faire la différence entre ces deux approches que beaucoup dans ce problème:
une alternative à skip-gram est un autre modèle Word2Vec appelé CBOW (Continuous Bag of Words). Dans le modèle CBOW, au lieu de prédire un mot de contexte à partir d'un vecteur de mot, vous prédisez un mot à partir de la somme de tous les vecteurs de mot dans son cadre. Mettre en œuvre et évaluer un modèle CBOW formé sur l'ensemble de données text8.
cela ne donnerait-il pas les mêmes résultats?
2 réponses
voici ma compréhension simpliste et naïve de la différence:
Comme nous le savons, CBOW c'est apprendre à prédire le mot par le contexte. Ou maximiser la probabilité du mot cible en regardant le contexte. Et cela arrive à être un problème pour les mots rares. Par exemple, compte tenu du contexte yesterday was really [...] day
CBOW model vous dira que très probablement le mot est beautiful
ou nice
. Des mots comme delightful
retiendra beaucoup moins l'attention du modèle, car il est conçu pour prédire le mot le plus vraisemblable. Ce mot sera lissée sur beaucoup d'exemples avec la fréquence des mots.
d'autre part, le skip-gramme est conçu pour prédire le contexte. Donné le mot delightful
il doit le comprendre et nous dire, qu'il y a une énorme Probabilité, le contexte est yesterday was really [...] day
, ou de quelque autre contexte. skip-gramme le mot delightful
ne sera pas essayer de rivaliser avec le mot beautiful
mais à la place,delightful+context
paires seront traitées comme de nouvelles observations.
UPD
merci à @0xF pour le partage cet article
selon Mikolov
Skip-gramme: fonctionne bien avec une petite quantité de données de formation, représente bien même des mots ou des phrases rares.
CBOW: plusieurs fois plus rapide à s'entraîner que le skip-gram, un peu plus de précision pour les fréquents mots
un ajout au sujet est trouvé ici:
en mode" saut de gramme "alternative à" CBOW", plutôt que la moyenne les mots de contexte, chacun est utilisé comme un exemple de formation en paires. Que est, à la place d'un exemple CBOW tel que [predict 'ate' from moyenne('Le', 'chat', 'la', 'souris')], le réseau est présenté avec quatre skip-gramme exemples [prévoir "mangé" de "La"], [prédire 'mangé' de 'cat'], [prédire 'mangé' de 'la'], [prédire 'mangé' de 'souris']. (La même fenêtre de réduction se produit, donc la moitié du temps juste deux exemples, des mots les plus proches.)
cela a à voir avec ce que vous calculez exactement à un point donné. La différence deviendra plus claire si vous commencez à regarder des modèles qui intègrent un contexte plus large pour chaque calcul de probabilité.
Dans skip-gramme, vous êtes calcul du(des) mot (s) de contexte dans le mot à la position actuelle dans la phrase; vous êtes "sauter" le mot courant (et potentiellement un peu du contexte) dans votre calcul. Le résultat peut être plus d'un mot (mais pas si votre fenêtre est juste un mot long).
à CBOW, vous êtes calculant le mot courant dans le contexte de parole(s), de sorte que vous n'aurez jamais un mot comme un résultat.