1. Livres & vidéos
  2. Data Scientist et langage R
  3. NLP
Extrait - Data Scientist et langage R IA, Machine Learning et Statistiques, Forecast, Tenseur, Gradient, Pytorch, Keras, CNN, LLM, GPT, RAG… (4e édition)
Extraits du livre
Data Scientist et langage R IA, Machine Learning et Statistiques, Forecast, Tenseur, Gradient, Pytorch, Keras, CNN, LLM, GPT, RAG… (4e édition) Revenir à la page d'achat du livre

Traitement du langage naturel - NLP

Introduction

Le traitement du langage naturel a été relativement négligé pendant de nombreuses années (NLP - Natural Langage Processing). Il était souvent cantonné à la traduction de texte, l’analyse de sentiments, l’identification de "spam" et à la recherche d’éléments contextuels ou de signaux faibles autour d’entités nommées (nom de personne, de société...). La "revanche" du NLP a été spectaculaire, car aujourd’hui le traitement du langage naturel est consubstantiel au développement des LLM (Large Language Model) à savoir les intelligences artificielles (IA) capables, entre autres tâches, de reconnaître et de générer du texte comme le fameux ChatGPT.

Analyse sémantique latente et SVD : "embedding" naturel

Un embedding est une représentation numérique d’éléments (comme des mots, des concepts/tokens, ou des documents) dans un espace vectoriel de dimensions (relativement) réduites, permettant de capturer des relations sémantiques ou contextuelles entre ces éléments. Nous allons étudier et produire "manuellement" la technique d’embedding historique, mais toujours actuelle, nommée "LSA/SVD".

Il y a une différence importante entre les embeddings générés par des méthodes issues de l’IA générative (les plus connues se nomment Word2Vec et BERT) et ceux obtenus via LSA/SVD :

  • LSA/SVD produit des vecteurs qui ne sont pas appris de manière itérative. Ses vecteurs sont les vôtres et reflètent précisément vos documents, ni plus, ni moins.

  • Les embeddings utilisés en IA générative (comme Word2Vec/GloVe/BERT) relèvent du deeplearning et capturent des relations plus complexes. Ces bases de vecteurs sont souvent disponibles en opendata.

Par ailleurs, nos frameworks nous fournissent de nombreux outils pour utiliser, générer et mixer divers embeddings.

1. Aspects théoriques

Dénommée LSA (Latent Semantic Analysis) en anglais, l’analyse sémantique latente s’appuie sur la constitution d’une matrice comportant les valeurs d’une fonction particulière calculée à partir des occurrences des différents termes (mots) présents dans les différents documents.

Les documents peuvent être des textes, des mails, des tweets, des contributions de blog, des CV...

Chaque terme envisagé fait l’objet d’une ligne de cette matrice, et chaque colonne de la matrice correspond à un document.

À l’intersection des lignes et des colonnes se trouve le résultat du calcul d’une fonction. Ce résultat est d’autant plus grand que le nombre d’occurrences du terme est élevé dans le document et que le terme est rare en général. Les packages sont fournis avec différentes fonctions classiques, mais votre problème nécessitera peut-être que vous mettiez au point votre propre...

Briques et outils à notre disposition pour l’embedding et l’utilisation de textes

Vous disposez, "sur étagère", d’un certain nombre d’outils pour l’embedding de vos textes :

images/14EP01N.png

Outils permettant l’embedding de textes

Par ailleurs, il existe des bases de vecteurs déjà constituées disponibles en ligne (BERT et ses cousins, pour Bidirectional Encoder Representations from Transformers). Ces bases sont accessibles directement au travers de nos frameworks.

Notez un usage intéressant de SVD par rapport à ces bases déjà constituées : vous pouvez appliquer une brique SVD existante sur une base de vecteurs pour en diminuer la taille. Typiquement, on applique souvent un SVD réduisant le nombre de paramètres d’un facteur trois par rapport à la base d’origine volumineuse, comme "BERT Large" qui comprend 345 millions de paramètres.

Les techniques d’embedding sont plus puissantes que l’on peut le penser. Un simple embedding bien conçu peut permettre de retrouver une chaîne d’information parfois aussi crédible que celle produite par l’usage d’un LLM (quand on a besoin d’aucune capacité d’inférence, ni de raisonnement, ni de mémoire d’une conversation).

Nous avons précédemment vu un modèle récurrent...