Le modèle du sac de mots est une représentation simplificatrice utilisée dans le traitement automatique du langage naturel et la recherche d'informations. Dans ce modèle, un texte tel qu'une phrase ou un document est représenté comme un multi-ensemble de ses mots, en ignorant la grammaire et l'ordre des mots mais en conservant la multiplicité. Le nom vient de l'idée qu'un texte peut être vu comme un « sac » de mots, où la structure est perdue et seuls les comptages de mots importent. C'est une référence courante dans apprentissage automatique et intelligence artificielle pour des tâches telles que la classification de textes, l'analyse de sentiments et la recherche de documents.
Comment cela fonctionne
La construction d'une représentation en sac de mots commence par la tokenisation, le processus de division d'un texte en mots ou jetons individuels. La ponctuation est généralement supprimée et les mots sont souvent mis en minuscules. Un vocabulaire est ensuite construit à partir de tous les jetons uniques apparaissant dans un corpus de documents. Chaque document est converti en un vecteur de comptages, où chaque dimension correspond à un mot du vocabulaire et la valeur est le nombre de fois où ce mot apparaît dans le document. Ce vecteur est creux, car la plupart des documents ne contiennent qu'une petite fraction du vocabulaire.
Par exemple, la phrase « le chat est assis sur le tapis » produirait un vecteur avec les comptages : « le » apparaît deux fois, et « chat », « est », « assis », « sur », « tapis » apparaissent une fois chacun. L'ordre des mots est complètement ignoré, donc « le chat est assis » et « assis est chat le » donneraient la même représentation. Cette perte d'information sur l'ordre est la principale limitation du modèle, mais elle rend également la représentation simple et efficace sur le plan computationnel.
Applications et limites
Les représentations en sac de mots étaient largement utilisées dans les pipelines classiques de apprentissage automatique avant l'essor du apprentissage profond. Elles servent de caractéristiques d'entrée pour des algorithmes tels que la régression logistique, les machines à vecteurs de support et les classifieurs naïfs de Bayes. En recherche d'informations, le modèle vectoriel, introduit par Gerard Salton et ses collègues en 1975, représente les documents et les requêtes comme des vecteurs en sac de mots et les compare par similarité cosinus.
Le modèle présente plusieurs limites connues. Il ne peut pas capturer l'ordre des mots, donc des phrases comme « pas bon » et « bon pas » sont traitées de manière identique. Il ignore également la sémantique : les synonymes tels que « voiture » et « automobile » sont traités comme des dimensions séparées, tandis que les mots polysémiques tels que « banque » sont confondus. Les vecteurs résultants sont de grande dimension et creux, ce qui peut conduire à un surajustement et à une mauvaise généralisation lorsque le vocabulaire est vaste. Pour atténuer ces problèmes, les praticiens appliquent souvent des schémas de pondération tels que la fréquence de terme - fréquence inverse de document (TF-IDF) ou utilisent des n-grammes pour capturer de courtes séquences.
Variantes et extensions
Plusieurs extensions remédient aux faiblesses du modèle de base du sac de mots. Le TF-IDF remplace les comptages bruts par des poids qui réduisent l'importance des mots courants et mettent en avant les mots rares. Les modèles de n-grammes étendent le sac pour inclure des séquences contiguës de n mots, préservant ainsi une partie de l'information d'ordre locale. L'astuce de hachage mappe les mots vers un vecteur de taille fixe à l'aide d'une fonction de hachage, évitant ainsi de stocker un vocabulaire. Ces méthodes restent utiles dans de nombreuses applications, en particulier lorsque les données étiquetées sont rares.
Une autre extension importante est l'utilisation de plongements de mots, qui mappent les mots vers des vecteurs denses de faible dimension capturant la similarité sémantique. Contrairement au sac de mots, les plongements préservent certaines relations entre les mots. Cependant, les plongements sont généralement appris à l'aide de méthodes de réseaux de neurones, qui nécessitent plus de données et de calcul. Le modèle du sac de mots reste une référence solide : dans de nombreuses tâches de classification de textes, un classifieur linéaire sur des caractéristiques en sac de mots peut égaler les performances de modèles plus complexes.
Relation avec l'IA moderne
Avec l'avènement des grands modèles de langage et de l'architecture transformeur, les représentations en sac de mots ont été largement supplantées pour les tâches complexes de compréhension du langage naturel. L'architecture du transformeur, introduite en 2017, utilise le encodage positionnel pour injecter l'information sur l'ordre des mots et l'attention multi-têtes pour modéliser les relations entre tous les mots d'une séquence. Ces mécanismes permettent aux modèles de capturer le contexte et les dépendances à longue portée qui sont invisibles pour une représentation en sac de mots. Les architectures telles que séquence à séquence et encodeur-décodeur reposent également sur des plongements appris plutôt que sur des vecteurs basés sur des comptages.
Néanmoins, le modèle du sac de mots continue d'influencer l'IA moderne. Il est souvent utilisé comme étape d'extraction de caractéristiques dans les systèmes hybrides, et sa simplicité en fait un outil pédagogique utile pour comprendre les concepts de l'apprentissage automatique. Le modèle apparaît également dans les applications de IA générative comme référence pour évaluer des représentations plus sophistiquées. Même à mesure que le apprentissage profond progresse, le modèle du sac de mots reste un concept fondamental dans l'histoire du traitement automatique du langage naturel.