Administrator
This teaching view is for the instructor. Enter the administrator password.
Wrong password · Mot de passe incorrect
If words have to become numbers, the obvious first move is a list: a dictionary with its entries numbered.
angelic = 1
ape = 2
apple = 3
ardour = 4
...
zany = 99,997
zeal = 99,998
zebra = 99,999Every word now has a number, and the conversion is trivial in both directions. But, as Figure 1figure 1 shows, there are three specific issues, where such numbers miss some essential part of what would make them useful.
- Arithmetic on these numbers is meaningless. One plus two is three, so an angelic (1) ape (2) makes an apple (3)? Any calculation a system performs on the codes manipulates alphabetical position, which has nothing to do with what the words mean.
- The numbers place related words no closer than unrelated ones. Ardour (4) and zeal (99,998) are near-synonyms sitting about 99,000 apart, farther from each other than either is from apple. A translation system needs exactly the opposite: words with similar meanings should have similar representations.
- A single number per word smuggles in an ordering. 99,999 is bigger than 2, but zebra is not more of anything than ape. A model fed these codes risks attaching meaning to the size of the number, where the only thing behind it is alphabetical order.
Walk the three across the figure: angelic (1) plus ape (2) is apple (3), ardour and zeal 99,000 apart, zebra “bigger” than ape. All three come back to the same thing: the numbers identify a word and say nothing about it.
The word vector sounds more technical than what it names.
Read [2, 3] as directions on a map: two steps along the horizontal axis,
three along the vertical, and you have marked a point. A vector with three
numbers marks a point in three-dimensional space, and nothing stops a vector
from having three hundred numbers; the space can no longer be drawn or
imagined, but the mathematics works the same way.
Points, unlike bare code numbers, have geometry. Two points can be close together or far apart; a cluster of points forms a group; a direction in the space can be followed. If each word is placed at a point, then closeness in the space becomes available to represent closeness in meaning, which a single number per word had no way to express.
The first vector representation of words that the field actually used works like a row of switches with one of them on. Each word in a 100,000-word vocabulary gets its own position, and is represented as a vector of 100,000 numbers: zeros everywhere, except a single 1 at that word’s position.
angelic = [1, 0, 0, 0, ..., 0, 0, 0]
ape = [0, 1, 0, 0, ..., 0, 0, 0]
apple = [0, 0, 1, 0, ..., 0, 0, 0]
ardour = [0, 0, 0, 1, ..., 0, 0, 0]
...
zebra = [0, 0, 0, 0, ..., 0, 0, 1]The false ordering is gone. No word’s vector is larger than another’s; zebra is no longer “more” than ape. In the geometry of the space, each word now owns its own axis, and every pair of words stands at exactly the same distance, like the corners of a perfectly symmetric figure.
Exactly the same distance is also the new problem. Ardour is now precisely as different from zeal as from zebra: the representation contains no similarity information at all, for anyone. It identifies words the way a locker number identifies a student, saying nothing about them.
There is a practical objection too. These vectors are enormous, and almost all of their content is zeros: 100,000 numbers per word, of which one is informative.
The numbered list crammed every word onto one axis and invented differences; the one-hot vector gives every word its own axis and erases all resemblance.
This is the screen the next chapter answers. Do not name embeddings yet if séance 2 is running to time; the requirement is enough to end the session on.
Si les mots doivent devenir des nombres, le premier réflexe est d’en faire une liste : un dictionnaire dont les entrées sont numérotées.
ananas = 1
ange = 2
animal = 3
ardeur = 4
...
zapper = 99 997
zèbre = 99 998
zèle = 99 999Chaque mot a maintenant un nombre, et la conversion se fait sans effort dans les deux sens. Mais, comme le montre la Figure 1figure 1, trois problèmes précis apparaissent, où de tels nombres passent à côté de ce qui les rendrait utiles.
- L’arithmétique sur ces nombres n’a aucun sens. Un plus deux font trois : un ananas (1) et un ange (2) donneraient donc un animal (3) ? Tout calcul effectué sur ces codes manipule une position alphabétique, qui n’a rien à voir avec le sens des mots.
- Les nombres ne rapprochent pas les mots apparentés plus que les mots sans rapport. Ardeur (4) et zèle (99 999) sont des quasi-synonymes séparés par environ 99 000, plus loin l’un de l’autre que chacun ne l’est d’animal. Un système de traduction a besoin exactement de l’inverse : des mots de sens proches devraient avoir des représentations proches.
- Un seul nombre par mot introduit un ordre en douce. 99 998 est plus grand que 1, mais un zèbre n’a rien de plus qu’un ananas. Un modèle nourri de ces codes risque de prêter un sens à la taille du nombre, alors que la seule chose derrière elle est l’ordre alphabétique.
Parcourir les trois sur la figure : ananas (1) plus ange (2) font animal (3), ardeur et zèle séparés par 99 000, zèbre « plus grand » qu’ananas. Les trois reviennent à la même chose : les nombres identifient un mot sans rien en dire.
Le mot vecteur a l’air plus technique que ce qu’il désigne.
[2, 3] se lit comme des indications sur une carte : deux pas le long de l’axe
horizontal, trois le long de l’axe vertical, et un point est marqué. Un vecteur
de trois nombres marque un point dans un espace à trois dimensions, et rien
n’empêche un vecteur d’avoir trois cents nombres ; l’espace ne peut alors plus
être dessiné ni imaginé, mais les mathématiques fonctionnent de la même façon.
Les points, contrairement à de simples numéros de code, ont une géométrie. Deux points peuvent être proches ou éloignés ; un ensemble de points forme un groupe ; une direction peut être suivie dans l’espace. Si chaque mot est placé en un point, la proximité dans l’espace devient disponible pour représenter la proximité de sens, ce qu’un seul nombre par mot n’avait aucun moyen d’exprimer.
La première représentation vectorielle des mots que le domaine ait réellement utilisée fonctionne comme une rangée d’interrupteurs dont un seul est allumé. Chaque mot d’un vocabulaire de 100 000 mots reçoit sa propre position et est représenté par un vecteur de 100 000 nombres : des zéros partout, sauf un seul 1 à la position de ce mot.
ananas = [1, 0, 0, 0, ..., 0, 0, 0]
ange = [0, 1, 0, 0, ..., 0, 0, 0]
animal = [0, 0, 1, 0, ..., 0, 0, 0]
ardeur = [0, 0, 0, 1, ..., 0, 0, 0]
...
zèle = [0, 0, 0, 0, ..., 0, 0, 1]L’ordre trompeur a disparu. Le vecteur d’un mot n’est jamais plus grand que celui d’un autre ; zèbre n’est plus « plus » qu’ananas. Dans la géométrie de l’espace, chaque mot possède désormais son propre axe, et chaque paire de mots se tient exactement à la même distance, comme les sommets d’une figure parfaitement symétrique.
Cette distance identique est aussi le nouveau problème. Ardeur est maintenant exactement aussi différent de zèle que de zèbre : la représentation ne contient aucune information de similarité, pour personne. Elle identifie les mots comme un numéro de casier identifie un étudiant, sans rien dire de lui.
Il y a aussi une objection pratique. Ces vecteurs sont énormes et leur contenu est presque entièrement fait de zéros : 100 000 nombres par mot, dont un seul est informatif.
La liste numérotée entassait tous les mots sur un seul axe et inventait des différences ; le vecteur 1 parmi n donne à chaque mot son propre axe et efface toute ressemblance. Ce qu’il faut se situe entre les deux : des vecteurs comptant un nombre modeste de dimensions, partagées par tous les mots, où les valeurs placent les mots de sens proches près les uns des autres.
C’est l’écran auquel le chapitre suivant répond. Ne pas nommer les plongements tout de suite si la séance 2 est juste dans le temps : la question suffit pour tenir jusqu’au lendemain.