[PYTHON] Pourquoi l'expression distribuée des mots est-elle importante pour le traitement du langage naturel?

** Pourquoi la représentation distribuée des mots est-elle importante pour le traitement du langage naturel? ** **

Si vous lisez cet article, vous connaissez peut-être ** Word2vec ** (Mikolov et al., 2013). Word2vec vous permet d'effectuer des opérations comme si vous capturiez la signification d'un mot. Par exemple, c'est un exemple célèbre que la reine est obtenue en soustrayant l'homme du roi et en ajoutant la femme (roi - homme + femme = reine).

from https://www.tensorflow.org/get_started/embedding_viz

En fait, à l'intérieur de cela, les mots sont exprimés par un vecteur d'environ 200 dimensions appelé ** expression distribuée ** (ou expression intégrée), et les vecteurs sont ajoutés et soustraits. On pense que les caractéristiques de chaque mot sont stockées à l'intérieur de ce vecteur à 200 dimensions. Par conséquent, l'ajout et la soustraction de vecteurs peuvent donner des résultats significatifs.

** La représentation distribuée des mots est une technique importante qui est couramment utilisée dans le traitement du langage naturel d'aujourd'hui. ** Récemment, un grand nombre de modèles basés sur des réseaux neuronaux (NN) ont été proposés dans l'étude du traitement du langage naturel. Ces modèles basés sur NN utilisent souvent des représentations distribuées de mots en entrée.

Dans cet article, j'expliquerai "** Pourquoi l'expression distribuée de mots est-elle importante pour le traitement du langage naturel? **". Le flux d'explication consiste d'abord à expliquer brièvement l'expression distribuée des mots et à partager la compréhension. Ensuite, j'expliquerai pourquoi le thème principal, la représentation distribuée des mots, est important pour le traitement du langage naturel. Enfin, j'expliquerai les enjeux des expressions distribuées.

Qu'est-ce qu'une expression distribuée de mots?

Ici, nous allons donner une brève explication dans le but de comprendre l '** expression distribuée ** des mots. Nous discuterons également de l '** expression unique ** des mots à comparer pour illustrer leurs avantages. Quant au déroulement de l'histoire, après avoir expliqué l'expression one-hot et ses problèmes, nous passerons à l'explication de l'expression distribuée.

expression one-hot

La première façon possible de représenter un mot sous forme de vecteur est la représentation one-hot. Une expression one-hot est une méthode dans laquelle un seul élément est 1 et les autres éléments sont 0. En définissant 1 ou 0 pour chaque dimension, "qu'il s'agisse ou non du mot" est indiqué.

Par exemple, disons que l'expression one-hot représente le mot python. Ici, le vocabulaire qui est un ensemble de mots est de 5 mots (nlp, python, word, ruby, one-hot). Ensuite, le vecteur représentant python sera le suivant. スクリーンショット 2017-03-03 15.18.11.png

La représentation one-hot est simple, mais elle a la faiblesse que vous ne pouvez pas obtenir de résultats significatifs avec des opérations entre vecteurs. Par exemple, disons que vous prenez le produit interne pour calculer la similitude entre les mots. Dans l'expression one-hot, différents mots ont des 1 à différents endroits et d'autres éléments sont 0, donc le résultat de la prise du produit interne entre différents mots est 0. Ce n'est pas le résultat souhaité. De plus, puisqu'une dimension est attribuée à un mot, elle devient de très grande dimension à mesure que le nombre de vocabulaire augmente.

Représentation distribuée

Les représentations distribuées, en revanche, représentent les mots comme des vecteurs à valeur réelle de faible dimension. Il est souvent exprimé dans environ 50 à 300 dimensions. Par exemple, les mots mentionnés précédemment peuvent être exprimés comme suit dans une expression distribuée. スクリーンショット 2017-03-03 15.46.50.png

Vous pouvez résoudre le problème de l'expression one-hot en utilisant l'expression distribuée. Par exemple, vous pourrez calculer la similitude entre les mots en effectuant des opérations entre les vecteurs. En regardant le vecteur ci-dessus, la similitude entre python et ruby est probablement plus élevée que la similitude entre python et word. De plus, même si le nombre de vocabulaire augmente, il n'est pas nécessaire d'augmenter le nombre de dimensions de chaque mot.

Pourquoi l'expression distribuée des mots est-elle importante?

Cette section décrit l'importance de la représentation distribuée des mots dans le traitement du langage naturel. En ce qui concerne le déroulement de l'histoire, après avoir parlé de l'entrée dans la tâche de traitement du langage naturel, nous parlerons de l'utilisation de l'expression distribuée comme entrée. Et je parlerai de la façon dont cette représentation distribuée affecte la performance des tâches.

Il existe diverses tâches dans le traitement du langage naturel, mais de nombreuses tâches donnent une chaîne de mots en entrée. Plus précisément, pour la classification des documents, entrez un ensemble de mots contenus dans le document. Le balisage partiel donne une chaîne de mots séparée, et la reconnaissance de l'expression propre donne également une chaîne de mots divisée. L'image est la suivante. スクリーンショット 2017-03-07 21.36.34.png

Dans le traitement moderne du langage naturel, les réseaux neuronaux sont souvent utilisés, mais les chaînes de mots sont souvent données en entrée. C'est aussi un mot à saisir dans le RNN qui est couramment utilisé dans le passé, et il arrive souvent que l'entrée du modèle utilisant le CNN, qui a récemment attiré l'attention, soit également entrée au niveau du mot. L'image est la suivante.

En fait, nous utilisons souvent des expressions distribuées comme expressions de mots donnés à ces réseaux de neurones [^ 1]. Il est basé sur l'espoir que l'utilisation d'expressions qui saisissent mieux la signification des mots en entrée améliorera également les performances des tâches. Il est également possible d'utiliser une représentation distribuée apprise avec une grande quantité de données non étiquetées comme valeur initiale du réseau et de la régler avec une petite quantité de données étiquetées.

Cette représentation distribuée est importante car elle affecte les performances de la tâche. Il a également été rapporté pour améliorer les performances par rapport à la non-utilisation de la représentation distribuée [2]. Comme vous pouvez le voir, la représentation distribuée des mots est importante car elle est souvent utilisée comme entrée pour de nombreuses tâches et a un effet considérable sur les performances.

Les défis de l'expression distribuée des mots

Il n'est pas vrai que la représentation distribuée des mots soit une solution miracle dans le traitement du langage naturel. À la suite de nombreuses études, on sait qu'il existe divers problèmes. Ici, je vais en présenter deux.

Problème 1: les performances ne s'améliorent pas comme prévu pour les tâches réelles

Le premier problème à résoudre est que même de bons résultats dans l'ensemble de données d'évaluation n'améliorent pas les performances plus que ce que vous vous attendez à utiliser dans une tâche réelle (comme la classification de documents). En premier lieu, la façon dont l'expression distribuée des mots est évaluée est souvent évaluée par le degré de corrélation avec l'ensemble d'évaluation de la similitude des mots créée par les humains (Schnabel, Tobias, et al, 2015). En d'autres termes, l'utilisation de la représentation distribuée obtenue à partir d'un modèle qui peut produire des résultats en corrélation avec l'évaluation humaine des tâches réelles n'améliore pas les performances.

La raison en est que la plupart des ensembles de données d'évaluation ne font pas de distinction entre la similitude des mots et la pertinence. La similitude et la pertinence des mots sont, par exemple, que (homme, homme) sont similaires et (ordinateur, clavier) sont liés mais pas similaires. Il a été rapporté que les ensembles de données distinctifs ont une corrélation de performance positive avec la tâche réelle (Chiu, Billy, Anna Korhonen et Sampo Pyysalo, 2016).

En conséquence, des tentatives sont actuellement en cours pour créer des ensembles de données d'évaluation qui correspondent aux tâches réelles (Oded Avraham, Yoav Goldberg, 2016). Nous essayons de résoudre deux problèmes qui existent dans les ensembles de données existants (la similitude des mots et la pertinence ne sont pas distinguées, les notes d'annotation varient selon les évaluateurs).

En plus de créer des ensembles de données d'évaluation, des recherches ont été menées pour évaluer les représentations distribuées afin que les tâches réelles puissent être facilement évaluées (Nayak, Neha, Gabor Angeli et Christopher D. Manning, 2016). On s'attend à ce que cela facilite la vérification de l'efficacité de l'expression distribuée apprise pour les tâches proches de la tâche que vous souhaitez réellement effectuer.

Personnellement, j'espère qu'en évaluant avec de nouveaux ensembles de données et de nouvelles tâches, le modèle précédemment enterré sera revu.

Problème 2: ne tient pas compte de l'ambiguïté des mots

Le deuxième problème est que les expressions distribuées actuelles ne prennent pas en compte l'ambiguïté des mots. Les mots ont de nombreuses significations. Par exemple, le mot «banque» a le sens de «banque» en plus du sens de «banque». De cette façon, il y a une limite à l'expression avec un vecteur sans tenir compte de l'ambiguïté des mots.

Pour résoudre ce problème, plusieurs méthodes d'apprentissage des expressions pour chaque sens ont été proposées [5] [6] [7] [8]. Chez SENSE EMBED, nous apprenons des expressions pour chaque sens en éliminant l'ambiguïté de la signification des mots. À la suite de l'apprentissage d'expressions pour chaque signification de mot, il est rapporté que la performance dans l'évaluation de la similitude des mots s'est améliorée.

Pour ceux qui veulent en savoir plus

Le référentiel suivant contient des informations sur les représentations distribuées de mots et de phrases, les vecteurs appris et les implémentations Python. awesome-embedding-models

Ce sera encourageant si vous pouvez ajouter une étoile m (_ _) m

en conclusion

L'expression distribuée des mots est un domaine intéressant qui est activement étudié. J'espère que cet article vous aidera à comprendre.

Le compte Twitter suivant fournit des informations faciles à comprendre sur les derniers articles sur ** Machine Learning / Natural Language Processing / Computer Vision **. Nous attendons que vous nous suiviez car nous fournissons un contenu intéressant pour ceux qui liront cet article. @arXivTimes

Je tweet également des informations sur l'apprentissage automatique et le traitement du langage naturel dans mon compte, alors j'aimerais avoir des nouvelles de toute personne intéressée par ce domaine. @Hironsan

Remarque

[^ 1]: En fait, après avoir donné une expression one-hot, il est converti en expression distribuée.

Matériel de référence

  1. Mikolov, Tomas, et al. "Efficient estimation of word representations in vector space." arXiv preprint arXiv:1301.3781 (2013).
  2. Pennington, Jeffrey, Richard Socher, and Christopher D. Manning. "Glove: Global Vectors for Word Representation." EMNLP. Vol. 14. 2014.
  3. Schnabel, Tobias, et al. "Evaluation methods for unsupervised word embeddings." EMNLP. 2015.
  4. Chiu, Billy, Anna Korhonen, and Sampo Pyysalo. "Intrinsic evaluation of word vectors fails to predict extrinsic performance." ACL 2016 (2016): 1.
  5. Oded Avraham, Yoav Goldberg. "Improving Reliability of Word Similarity Evaluation by Redesigning Annotation Task and Performance Measure." arXiv preprint arXiv:1611.03641 (2016).
  6. Nayak, Neha, Gabor Angeli, and Christopher D. Manning. "Evaluating Word Embeddings Using a Representative Suite of Practical Tasks." ACL 2016 (2016): 19.
  7. Trask, Andrew, Phil Michalak, and John Liu. "sense2vec-A fast and accurate method for word sense disambiguation in neural word embeddings." arXiv preprint arXiv:1511.06388 (2015).
  8. Iacobacci, I., Pilehvar, M. T., & Navigli, R. (2015). SensEmbed: Learning Sense Embeddings for Word and Relational Similarity. In ACL (1) (pp. 95-105).
  9. Reisinger, Joseph, and Raymond J. Mooney. "Multi-prototype vector-space models of word meaning." Human Language Technologies: The 2010 Annual Conference of the North American Chapter of the Association for Computational Linguistics. Association for Computational Linguistics, 2010.
  10. Huang, Eric H., et al. "Improving word representations via global context and multiple word prototypes." Proceedings of the 50th Annual Meeting of the Association for Computational Linguistics: Long Papers-Volume 1. Association for Computational Linguistics, 2012.

Recommended Posts

Pourquoi l'expression distribuée des mots est-elle importante pour le traitement du langage naturel?
Traitement du langage naturel pour les personnes occupées
Traiter le nom de la carte Yugioh en langage naturel --Yugiou Data Science 2. PNL
Insoutenable manque d'attention dans le traitement du langage naturel
Mettre en place un environnement de développement pour le traitement du langage naturel
Python: traitement du langage naturel
RNN_LSTM2 Traitement du langage naturel
Vérification des performances du prétraitement des données dans le traitement du langage naturel
Créer un environnement pour le traitement du langage naturel avec Python
Vue d'ensemble du traitement du langage naturel et de son prétraitement des données
Types de prétraitement dans le traitement du langage naturel et leur puissance
■ [Google Colaboratory] Prétraitement du traitement du langage naturel et janome
Quelle est la meilleure méthode pour le traitement asynchrone du serveur TCP?
La fonction d'affichage d'image d'iTerm est pratique lors du traitement d'images.
Traitement du langage naturel 1 Analyse morphologique
Python: représentation vectorielle en langage naturel
Traitement du langage naturel 2 similitude de mots
100 traitement de la langue knock-96 (en utilisant Gensim): Extraction du vecteur lié au nom du pays
Dockerfile avec les bibliothèques nécessaires pour le traitement du langage naturel avec python
Articles en vrac pour ceux qui veulent commencer le traitement du langage naturel
[Word2vec] Visualisons le résultat du traitement en langage naturel des avis des entreprises
Étudiez le traitement du langage naturel avec Kikagaku
100 traitements du langage naturel frappent le chapitre 4 Commentaire
[Traitement du langage naturel] Prétraitement avec le japonais
Logivan du langage artificiel et traitement du langage naturel (traitement du langage artificiel)
100 traitement du langage knock-59: analyse de la formule S
100 langues de traitement frappent 2020 "pour Google Colaboratory"
Tutoriel TensorFlow - Représentation vectorielle des mots (traduction)
Se préparer à démarrer le traitement du langage naturel
Résumé de l'installation de l'analyseur de traitement du langage naturel
Résumé du traitement multi-processus du langage de script
Remplissage facile des données pouvant être utilisées dans le traitement du langage naturel
Obtenez une représentation distribuée des mots en Fast avec fastText sur Facebook
Apprenez les bases de la classification de documents par traitement du langage naturel, modèle de sujet
Pourquoi l'entropie croisée est-elle utilisée pour la fonction objective du problème de classification?