Je veux comprendre ce que l'on entend par "dimensionnalité" dans les intégrations Word.
Lorsque j'incorpore un Word sous la forme d'une matrice pour les tâches PNL, quel rôle joue la dimensionnalité? Existe-t-il un exemple visuel qui peut m'aider à comprendre ce concept?
Un Word Embedding est juste un mappage des mots aux vecteurs. La dimensionnalité dans les intégrations Word fait référence à la longueur de ces vecteurs.
Ces mappages se présentent sous différents formats. La plupart des incorporations pré-entraînées sont disponibles sous forme de fichier texte séparé par des espaces, où chaque ligne contient un mot en première position et sa représentation vectorielle à côté. Si vous deviez diviser ces lignes, vous découvririez qu'elles sont de longueur 1 + dim
, où dim
est la dimensionnalité des vecteurs Word, et 1
correspond au mot représenté. Voir les vecteurs pré-formés GloVe pour un exemple réel.
Par exemple, si vous téléchargez glove.Twitter.27B.Zip
, décompressez-le et exécutez le code python:
#!/usr/bin/python3
with open('glove.Twitter.27B.50d.txt') as f:
lines = f.readlines()
lines = [line.rstrip().split() for line in lines]
print(len(lines)) # number of words (aka vocabulary size)
print(len(lines[0])) # length of a line
print(lines[130][0]) # Word 130
print(lines[130][1:]) # vector representation of Word 130
print(len(lines[130][1:])) # dimensionality of Word 130
vous obtiendrez la sortie
1193514
51
people
['1.4653', '0.4827', ..., '-0.10117', '0.077996'] # shortened for illustration purposes
50
Un peu sans rapport, mais tout aussi important, est que les lignes de ces fichiers sont triées en fonction de la fréquence des mots trouvée dans le corpus dans lequel les incorporations ont été formées (les mots les plus fréquents en premier).
Vous pouvez également représenter ces incorporations comme un dictionnaire où les clés sont les mots et les valeurs sont des listes représentant des vecteurs Word. La longueur de ces listes serait la dimensionnalité de vos vecteurs Word.
Une pratique plus courante consiste à les représenter sous forme de matrices (également appelées tables de recherche), de dimension (V x D)
, où V
est la taille du vocabulaire (c'est-à-dire le nombre de mots que vous avez) et D
est la dimensionalité de chaque vecteur Word. Dans ce cas, vous devez conserver un dictionnaire distinct mappant chaque mot à sa ligne correspondante dans la matrice.
En ce qui concerne votre question sur le rôle que joue la dimensionnalité , vous aurez besoin d'un arrière-plan théorique. Mais en quelques mots, l'espace dans lequel les mots sont intégrés présente de belles propriétés qui permettent aux systèmes PNL de mieux fonctionner. L'une de ces propriétés est que les mots qui ont une signification similaire sont spatialement proches les uns des autres, c'est-à-dire qu'ils ont des représentations vectorielles similaires, mesurées par une métrique de distance telle que distance euclidienne ou similitude cosinus .
Vous pouvez visualiser une projection 3D de plusieurs intégrations Word ici , et voir, par exemple, que les mots les plus proches de "routes" "sont des" autoroutes ", des" routes "et des" itinéraires "dans le Word2Vec 10K
incorporation.
Pour une explication plus détaillée, je recommande la lecture de la section "Word Embeddings" de cet article par Christopher Olah.
Pour plus de théorie sur la raison pour laquelle l'utilisation des intégrations Word, qui sont une instance de représentations distribuées, est préférable à l'utilisation, par exemple, des encodages à chaud (représentations locales), je recommande lire les premières sections de Représentations distribuées par Geoffrey Hinton et al.
Les incorporations de mots comme Word2vec ou GloVe n'incorporent pas de mots dans des matrices bidimensionnelles, elles utilisent des vecteurs unidimensionnels . La "dimensionnalité" fait référence à la taille de ces vecteurs. Il est distinct de la taille du vocabulaire, qui est le nombre de mots pour lesquels vous conservez des vecteurs au lieu de simplement les jeter.
En théorie, des vecteurs plus grands peuvent stocker plus d'informations car ils ont plus d'états possibles. En pratique, il n'y a pas beaucoup d'avantages au-delà d'une taille de 300 à 500, et dans certaines applications, même des vecteurs plus petits fonctionnent bien.
Voici un graphique de la page d'accueil de GloVe .
La dimensionnalité des vecteurs est représentée sur l'axe gauche; la diminuer rendrait le graphique plus court, par exemple. Chaque colonne est un vecteur individuel avec une couleur à chaque pixel déterminée par le nombre à cette position dans le vecteur.
La "dimensionnalité" dans les intégrations Word représente le nombre total de fonctionnalités qui il encode. En fait, il s'agit d'une simplification excessive de la définition, mais nous y reviendrons plus tard.
La sélection des fonctionnalités n'est généralement pas manuelle, elle est automatique en utilisant la couche cachée dans le processus de formation . En fonction du corpus de la littérature, les dimensions (caractéristiques) les plus utiles sont sélectionnées. Par exemple, si la littérature traite de fictions romantiques , la dimension pour le genre est beaucoup plus susceptible d'être représenté par rapport à la littérature des mathématiques .
Une fois que vous avez le vecteur d'intégration Word 100 dimensions (par exemple) généré par le réseau de neurones pour 100 000 mots uniques, il n'est généralement pas très utile d'étudier le but de chaque dimension et d'essayer d'étiqueter chaque dimension par "nom d'entité". Parce que la ou les caractéristiques que chaque dimension représente peuvent ne pas être simples et orthogonales et comme le processus est automatique, aucun corps ne sait exactement ce que chaque dimension représente.
Pour plus d'informations sur la compréhension de ce sujet, vous pouvez trouver ceci post utile.
Je ne suis pas un expert, mais je pense que les dimensions représentent simplement les variables (aka attributs ou fonctionnalités) qui ont été attribuées aux mots, bien qu'il puisse y avoir plus que cela. La signification de chaque dimension et le nombre total de dimensions seront spécifiques à votre modèle.
J'ai récemment vu cette visualisation d'intégration à partir de la bibliothèque Tensor Flow: https://www.tensorflow.org/get_started/embedding_viz
Cela aide particulièrement à réduire les modèles de grande dimension à quelque chose de perceptible par l'homme. Si vous avez plus de trois variables, il est extrêmement difficile de visualiser le regroupement (sauf si vous êtes Stephen Hawking apparemment).
Cet article de wikipedia sur la réduction dimensionnelle et les pages connexes expliquent comment les entités sont représentées dans les dimensions et les problèmes d'en avoir trop.
Selon le livre Neural Network Methods for Natural Language Processing
par Goldenberg
, dimensionality
dans Word embeddings
(demb
) fait référence au nombre de colonnes dans la première matrice de pondération (poids entre la couche d'entrée et la couche masquée) d'algorithmes d'intégration tels que Word2vec
. N
dans l'image est dimensionality
dans l'intégration Word:
Pour plus d'informations, vous pouvez vous référer à ce lien: https://blog.acolyer.org/2016/04/21/the-amazing-power-of-Word-vectors/
Les données textuelles doivent être converties en données numériques avant d'être introduites dans un algorithme d'apprentissage automatique. L'incorporation de mots est une approche pour cela où chaque mot est mappé à un vecteur.
En algèbre, un vecteur est un point dans l'espace avec une échelle et une direction. En termes plus simples, Vector est un tableau vertical à 1 dimension (ou disons une matrice à une seule colonne) et Dimensionalité est le nombre d'éléments dans ce tableau vertical à 1 D.
Modèles d'intégration de mots pré-formés comme Glove, Word2vec fournit des options multidimensionnelles pour chaque mot telles que 50, 100, 200, 300. Chaque mot représente un point dans l'espace de dimensionnalité D et les mots synonymes sont des points plus proches les uns des autres. Plus la dimension sera meilleure, plus la précision sera grande, mais les besoins de calcul seraient également plus élevés.