Modèles de langage sémantique
Note
Pour plus d’informations, consultez l’onglet Texte et images !
Comme l’état de l’art pour NLP a avancé, la possibilité d’entraîner des modèles qui encapsulent la relation sémantique entre les jetons a conduit à l’émergence de modèles de langage d’apprentissage profond puissants. Au cœur de ces modèles, il s’agit de l’encodage des jetons de langage en tant que vecteurs (tableaux à valeurs multiples de nombres) appelés incorporations.
Cette approche vectorielle de modélisation du texte est devenue commune avec des techniques telles que Word2Vec et GloVe, dans lesquelles les jetons de texte sont représentés sous forme de vecteurs denses avec plusieurs dimensions. Pendant l’entraînement du modèle, les valeurs de dimension sont affectées pour refléter les caractéristiques sémantiques de chaque jeton en fonction de leur utilisation dans le texte d’entraînement. Les relations mathématiques entre les vecteurs peuvent ensuite être exploitées pour effectuer des tâches d’analyse de texte courantes plus efficacement que les techniques purement statistiques plus anciennes. Une avancée plus récente dans cette approche consiste à utiliser une technique appelée attention à considérer chaque jeton dans le contexte et à calculer l’influence des jetons autour de celui-ci. Les incorporations contextuelles obtenues, telles que celles trouvées dans la famille de modèles GPT, fournissent la base de l’IA générative moderne.
Représentation du texte en tant que vecteurs
Les vecteurs représentent des points dans l’espace multidimensionnel, définis par des coordonnées le long de plusieurs axes. Chaque vecteur décrit une direction et une distance de l’origine. Les jetons sémantiquement similaires doivent entraîner des vecteurs qui ont une orientation similaire , en d’autres termes, ils pointent dans des directions similaires.
Par exemple, considérez les incorporations tridimensionnelles suivantes pour certains mots courants :
| Word | Vector |
|---|---|
dog |
[0.8, 0.6, 0.1] |
puppy |
[0.9, 0.7, 0.4] |
cat |
[0.7, 0.5, 0.2] |
kitten |
[0.8, 0.6, 0.5] |
young |
[0.1, 0.1, 0.3] |
ball |
[0.3, 0.9, 0.1] |
tree |
[0.2, 0.1, 0.9] |
Nous pouvons visualiser ces vecteurs dans un espace tridimensionnel, comme illustré ici :
Les vecteurs pour "dog" et "cat" sont similaires (les deux animaux domestiques), tout comme "puppy" et "kitten" (tous deux étant de jeunes animaux). Les mots "tree", "young"et ball" ont des orientations vectorielles distinctement différentes, reflétant leurs différentes significations sémantiques.
La caractéristique sémantique encodée dans les vecteurs permet d’utiliser des opérations basées sur des vecteurs qui comparent les mots et permettent des comparaisons analytiques.
Recherche de termes connexes
Étant donné que l’orientation des vecteurs est déterminée par leurs valeurs de dimension, les mots ayant des significations sémantiques similaires ont tendance à avoir des orientations similaires. Cela signifie que vous pouvez utiliser des calculs tels que la similarité cosinus entre les vecteurs pour effectuer des comparaisons significatives.
Par exemple, pour déterminer « l'intrus » parmi "dog", "cat" et "tree", vous pouvez calculer la similarité cosinus entre des paires de vecteurs. La similarité du cosinus est calculée comme suit :
cosine_similarity(A, B) = (A · B) / (||A|| * ||B||)
Où A · B est le produit point et ||A|| est l’ampleur du vecteur A.
Calcul des similitudes entre les trois mots :
dog[0.8, 0.6, 0.1] etcat[0.7, 0.5, 0.2] :- Produit par points : (0,8 × 0,7) + (0,6 × 0,5) + (0,1 × 0,2) = 0,56 + 0,30 + 0,02 = 0,88
- Magnitude de
dog: √(0,8² + 0,6² + 0,1²) = √(0,64 + 0,36 + 0,01) = √1.01 ≈ 1.005 - Magnitude de
cat: √(0,7² + 0,5² + 0,2²) = √(0,49 + 0,25 + 0,04) = √0,78 ≈ 0,883 - Similarité cosinus : 0,88 / (1,005 × 0,883) ≈ 0,992 (similarité élevée)
dog[0.8, 0.6, 0.1] ettree[0.2, 0.1, 0.9] :- Produit par points : (0,8 × 0,2) + (0,6 × 0,1) + (0,1 × 0,9) = 0,16 + 0,06 + 0,09 = 0,31
- Magnitude de
tree: √(0,2² + 0,1² + 0,9²) = √(0,04 + 0,01 + 0,81) = √0,86 ≈ 0,927 - Similarité cosinus : 0,31 / (1,005 × 0,927) ≈ 0,333 (faible similarité)
cat[0.7, 0.5, 0.2] ettree[0.2, 0.1, 0.9] :- Produit par points : (0,7 × 0,2) + (0,5 × 0,1) + (0,2 × 0,9) = 0,14 + 0,05 + 0,18 = 0,37
- Similarité cosinus : 0,37 / (0,883 × 0,927) ≈ 0,452 (faible similarité)
Les résultats montrent que "dog" et "cat" sont très similaires (0,992), tandis que "tree" la similarité est inférieure à la fois "dog" (0,333) et "cat" (0,452). Par conséquent, tree est clairement l'intrus.
Traduction vectorielle par addition et soustraction
Vous pouvez ajouter ou soustraire des vecteurs pour produire de nouveaux résultats basés sur des vecteurs ; qui peut ensuite être utilisé pour rechercher des jetons avec des vecteurs correspondants. Cette technique permet une logique arithmétique intuitive pour déterminer les termes appropriés en fonction des relations linguistiques.
Par exemple, à l’aide des vecteurs d'avant :
-
dog+young= [0.8, 0.6, 0.1] + [0.1, 0.1, 0.3] = [0.9, 0.7, 0.4] =puppy -
cat+young= [0.7, 0.5, 0.2] + [0.1, 0.1, 0.3] = [0.8, 0.6, 0.5] =kitten
Ces opérations fonctionnent parce que le vecteur pour "young" encode la transformation sémantique d’un animal adulte à son jeune équivalent.
Note
Dans la pratique, l’arithmétique vectoriel produit rarement des correspondances exactes ; Au lieu de cela, vous recherchez le mot dont le vecteur est le plus proche (le plus similaire) du résultat.
L’arithmétique fonctionne également en inverse :
-
puppy-young= [0.9, 0.7, 0.4] - [0.1, 0.1, 0.3] = [0.8, 0.6, 0.1] =dog -
kitten-young= [0.8, 0.6, 0.5] - [0.1, 0.1, 0.3] = [0.7, 0.5, 0.2] =cat
Raisonnement analogique
L'arithmétique vectorielle peut également répondre à des questions d'analogie telles que «
Pour résoudre ce problème, calculez : kitten - puppy + dog
- [0.8, 0.6, 0.5] - [0.9, 0.7, 0.4] + [0.8, 0.6, 0.1]
- = [-0.1, -0.1, 0.1] + [0.8, 0.6, 0.1]
- = [0.7, 0.5, 0.2]
- =
cat
Ces exemples montrent comment les opérations vectorielles peuvent capturer des relations linguistiques et activer le raisonnement sur les modèles sémantiques.
Utilisation de modèles sémantiques pour l’analyse de texte
Les modèles sémantiques basés sur des vecteurs offrent des fonctionnalités puissantes pour de nombreuses tâches d’analyse de texte courantes.
Synthèse de texte
Les incorporations sémantiques permettent un résumé extractif en identifiant les phrases avec des vecteurs qui sont les plus représentatifs du document global. En encodant chaque phrase en tant que vecteur (souvent en moyennant ou en regroupant les embeddings de ses mots constituants), vous pouvez calculer quelles phrases sont les plus centrales pour la signification du document. Ces phrases centrales peuvent être extraites pour former un résumé qui capture les thèmes clés.
Extraction de mots clés
La similarité vectorielle peut identifier les termes les plus importants d’un document en comparant l’incorporation de chaque mot à la représentation sémantique globale du document. Les mots dont les vecteurs sont les plus similaires au vecteur de document, ou le plus central lors de l’examen de tous les vecteurs de mots dans le document, sont susceptibles d’être des termes clés qui représentent les rubriques principales.
Reconnaissance d’entité nommée
Les modèles sémantiques peuvent être affinés pour reconnaître les entités nommées (personnes, organisations, emplacements, etc.) en apprenant des représentations vectorielles qui regroupent des types d’entités similaires. Pendant l’inférence, le modèle examine l’incorporation de chaque jeton et son contexte pour déterminer s’il représente une entité nommée et, le cas échéant, quel type.
Classification de texte
Pour les tâches telles que l’analyse des sentiments ou la catégorisation de rubriques, les documents peuvent être représentés en tant que vecteurs d’agrégation (par exemple, la moyenne de toutes les incorporations de mots dans le document). Ces vecteurs de document peuvent ensuite être utilisés comme caractéristiques pour les classifieurs Machine Learning, ou comparés directement aux vecteurs prototypes de classe pour affecter des catégories. Étant donné que les documents sémantiquement similaires ont des orientations vectorielles similaires, cette approche regroupe efficacement le contenu associé et distingue différentes catégories.