IA COGNITO – EP07 – Le Natural Language Processing (NLP)
Dans l’épisode précédent, nous nous intéressions à la dimension purement visuelle de l’IA via la computer vision. Aujourd’hui, nous allons apporter un peu de variété avec le langage, qui peut être aussi bien écrit que parlé.
Nous vous présentons donc le sujet du jour, un domaine qui a le vent en poupe, nous avons nommé le NLP, pour Natural Language Processing ou Traitement Automatique du Langage Naturel en français.
Définition du domaine
Le NLP, ou le TALN, est un domaine scientifique pluridisciplinaire à la croisée de l’informatique, de la linguistique et donc de l’IA bien entendu.
Pour faire simple le NLP est un domaine d’application du machine learning dont l’objectif est de rendre un programme informatique capable de comprendre le langage humain. Le NLP va s’intéresser à toutes les formes du langage aussi bien écrites que parlées.
Cela a l’air fou dit comme ça, mais il s’agit bien d’une réalité. Si la hype autour du NLP semble récente, les premiers travaux y touchant remontent tout de même aux années 50.
Comme pour la computer vision, les chercheurs se sont rapidement intéressés au traitement automatique de la langue. Le fameux test de Turing, visant à évaluer le niveau de développement d’une IA – ou son niveau d’intelligence – est d’ailleurs basé sur du NLP. De manière générale, nous avons tendance à jauger l’intelligence d’une machine à l’aune de sa capacité à avoir une discussion avec nous.
De nombreuses autres expérimentations ont vu le jour durant deux décennies avec plus ou moins de réussite. Mais le langage humain et sa compréhension sont des domaines très complexes et les avancées se font petit à petit. Comme pour de nombreux autres domaines, l’apport de corpus de données de plus en plus volumineux et des puissances de calcul importantes ont permis un bond supplémentaire sur les performances.
Sur la dernière décennie, une grande avancée nait en 2013, avec Word2Vec un programme de Google qui transforme les mots d’un texte en vecteur pour leur donner une signification informatique. Il est ainsi possible de réaliser des opérations mathématiques avec les mots vectorisés. C’est ce que nous appelons le word embedding. Par la suite d’autres d’autres modèles comme GloVe et ELMo verront le jour.
Avec cette avancée notable, le NLP génère un nouvel engouement, jusqu’à une année charnière : 2018.
Tout d’abord, DeepL, une startup allemande spécialisée en traduction automatisée parvient à traduire le livre “Deep Learning” de Yoshua Bengio, Ian Goodfellow et Aaron Courville. L’ouvrage technique de 800 pages est traduit en une dizaine d’heures.
C’est fort, mais attendez un peu, ce qui suit n’est pas mal non plus. Toujours en 2018, des IA de Microsoft et Alibaba battent des humains dans un test de lecture et de compréhension organisé par l’université de Stanford. En parallèle, Google lance un nouveau modèle de langage : BERT (pour Bidirectional Encoder Representations from Transformers). Il s’agit là d’une vraie rupture, tout d’abord parce que cela marque l’arrivée massive des Transformers mais aussi et surtout parce que BERT a fait bondir les performances du NLP. BERT a d’ailleurs vu naître de nombreuses variantes, comme les modèles français CamemBERT et FlauBERT.
Enfin, dernière avancée significative, et vous en avez peut-être entendu parler, GPT-3 d’ Open AI. Il s’agit, probablement, du plus gros modèle existant à ce jour puisque ce dernier ne compte pas moins de 175 milliards de paramètres. Son entraînement se base sur un corpus représentant 150 fois le contenu de Wikipédia dans toutes les langues. Cela en fait de la donnée ! D’ailleurs attardons nous quelque peu sur le sujet.
Typologie de données et méthodes algorithmiques
Typologie de données
Pour comprendre le langage humain, il faut beaucoup de données. La plupart de ces données sont textuelles ou ont été transformées en texte lorsqu’elles proviennent d’une interaction orale entre un homme et une machine. C’est ce que l’on appelle le “Speech to text”. Grâce à lui, n’importe quel contenu audio est alors automatiquement transformé en texte écrit.
Tout comme pour les images, les formats des données textuelles peuvent varier. On peut aussi bien faire face à des documents .txt ou .docx où le texte peut facilement être extrait, qu’à des images où l’on ne peut rien sélectionner. C’est dans ce deuxième cas que la lecture automatique de caractères, ou OCR, prend tout son sens. L’OCR (pour Optical Character Recognition) est une technologie qui permet d’extraire des informations depuis une image. Mais nous y reviendrons un peu plus tard dans cet épisode.
La plupart des données collectées sont non structurées, c’est pourquoi l’extraction des informations pertinentes et correctes est un vrai défi. En effet, le langage humain est complexe pour une machine. Pour réussir à traiter les informations, il lui faut réussir à appréhender toute la structure et la grammaire d’une langue. Et malgré cela, des ambiguïtés subsistent. Parce que comprendre une langue, c’est également intégrer toute la sémantique associée. C’est ce qui va permettre de comprendre si dans une phrase le mot “orange” correspond plus au fruit, qu’à la couleur ou qu’à la ville. De grands progrès ont déjà été faits dans ce domaine, et il est certain qu’avec le développement à vive allure de cette technologie les lacunes encore présentes seront comblées.
Méthodes algorithmiques
Concrètement et d’un point de vue algorithmique, le traitement du langage naturel se base sur l’analyse de la structure d’un texte. On parle de structure du langage lorsque l’on fait référence aux structures lexicales, syntaxiques et sémantiques d’une phrase.
La structure lexicale s’intéresse aux unités lexicales, c’est-à-dire à trouver à quelles catégories, telle qu’un mot un déterminant ou une préposition, appartient chaque unité indépendante. À partir de là, le but de l’analyse syntaxique consiste à comprendre la construction de la phase, c’est-à-dire la façon dont les différents mots sont liés les uns aux autres. C’est ainsi que l’on va déterminer quel groupe est un sujet, ou un complément d’objet ou encore quel mot est un verbe.
La dernière étape consiste alors à comprendre le sens d’une phrase : c’est l’analyse sémantique. C’est cette phase, particulièrement complexe, qui va se baser sur l’analyse syntaxique et le contexte environnant pour recréer le message de la phrase.
D’un point de vue pratique, les méthodes appliquées sont, comme dans beaucoup d’autres domaines de l’IA basées essentiellement soit sur des règles écrites à la main, soit de l’apprentissage machine. Dans tous les cas, il est généralement nécessaire de préparer dans un premier temps ces données complexes et de les normaliser avant de pouvoir appliquer un algorithme.
Cette préparation peut prendre des formes variées mais certaines méthodes reviennent fréquemment. Il est par exemple usuel de découper une phrase en tokens, c’est-à-dire des éléments constitutifs simples qui seront traités séparément. Sur ces tokens pourra alors être réalisée une opération de stemming, pour n’en garder que la racine, ou de lemmatisation, pour en isoler le lemme, c’est-à-dire la forme canonique. Il est aussi fréquent de se débarrasser des stop words, c’est-à-dire des mots fréquents qui n’apportent pas d’information à la phrase, de supprimer la ponctuation ou de passer l’ensemble du texte en minuscule. Tout cette étape de préparation a pour but, comme bien souvent en IA, de simplifier les entrées du modèle sans perdre, autant que faire se peut, en information.
Pour les méthodes qui se basent sur de l’apprentissage machine, la méthode la plus populaire a été pendant longtemps celle du word embedding, qu’on appelle en Français le plongement lexical. Si vous avez suivi notre épisode sur la vision par ordinateur, le principe est similaire à celui de l’extraction de caractéristiques. C’est-à-dire que l’on cherche à représenter un mot sous la forme d’une liste de caractéristiques numériques : un vecteur. Sauf qu’ici le but n’est pas tant de simplifier le mot que de lui donner une représentation qui permette plus facilement à un algorithme d’apprentissage d’utiliser cette représentation. Pour celà, le word embedding est créé de manière à ce que des mots qui apparaissent dans des contextes proches soient aussi proches lorsque l’on compare leurs embeddings.
Grandes familles de technologies et sous-domaines
Mais alors, maintenant qu’on en sait un peu plus sur les données et leurs transformations nécessaires à leur exploitation, venons-en aux applications du NLP… !
La génération de texte
Tout d’abord, nous commencerons par nous intéresser aux applications touchant à la génération de textes.
La génération automatique de texte est un sujet de recherche qui connaît, sur ces dernières années, de formidables avancées. Par exemple, le modèle GPT-3 permet de générer des textes très cohérents pour l’humain. Il s’agit là d’une application purement basée sur de la génération.
Nous retrouvons également les fameux correcteurs orthographiques. Tantôt utiles, tantôt frustrants, ils font aujourd’hui partie intégrante de notre quotidien – sauf bien sûr pour les personnes n’utilisant ni PC ni smartphone. Outre la dimension syntaxique, les correcteurs orthographiques cherchent simplement à comprendre le sens de nos phrases et s’assurent qu’elles restent correctes.
De la compréhension à la génération
En plus de la génération de texte et les correcteurs orthographiques, nous retrouvons d’autres applications mêlant génération et compréhension.
En tête, nous retrouvons la traduction automatique. S’il y a bien un sujet qui a cristallisé attention et attentes en NLP, c’est bien celui-ci. Les premières recherches en NLP se sont d’ailleurs concentrées dessus. La traduction automatique est complexe puisqu’il est nécessaire de comprendre un premier élément de langage puis de générer une reformulation dans une autre langue.
Suivant cette même logique, nous retrouvons la génération automatique de résumé. Le but est d’extraire les éléments importants d’un texte et les réutiliser pour produire un résumé cohérent. Cette application peut également servir dans différents domaines comme la littérature, le sport ou l’actualité.
Enfin, nous en venons maintenant aux agents conversationnels, mieux connus sous le nom de chatbots ! Dire que leur utilisation a littéralement explosé ces dernières années ne serait qu’un doux euphémisme. Nous les retrouvons partout, que ce soit dans nos smartphones et enceintes connectées avec lesquels nous dialoguons par la voix ou sur différents sites web utilisant la forme écrite du langage.
Et bien d’autres applications..!
Dans ses dimensions sémantiques et syntaxiques, le NLP regorge donc d’applications mais il en existe bien d’autres. Quand nous vous disions que le NLP est un vaste domaine de recherche, ce n’était pas du bluff !
Nous retrouvons par exemple des applications relatives au traitement de données autres que des formats purement texte : de l’image et de l’audio.
La première application que nous allons présenter nous est chère puisque nous travaillons largement dessus à Neovision : la lecture automatique de caractères ou OCR. Avec ces technologies, il est possible d’extraire des informations textuelles sur une image. Cette application, mixant computer vision et NLP, est notamment utile pour lire automatiquement des documents. Voilà comment allier image et langage.
Mais qu’en est-il de l’audio ? Eh bien, cela semble couler de source. Comme pour les applications relatives à la sémantique, le traitement de la parole passe par une phase de compréhension et une phase générative.
La reconnaissance automatique de la parole (c’est ce qu’utilise Alexa d’Amazon pour comprendre nos demandes par exemple) consiste à réaliser une analyse acoustique, pour ensuite trouver une correspondance entre une signature sonore et un mot. Vient ensuite la phase générative avec la synthèse vocale. Vous savez, cette douce voix robotique émise par votre GPS ou par votre assistant vocal. Les applications de synthèse vocale se basent majoritairement sur l’alphabet phonétique, tout en tenant compte des règles de grammaire et de syntaxe pour s’assurer de prononcer correctement tous les mots. Pour plus de réalisme, les recherches portent aujourd’hui sur l’intonation, la prosodie et les tics de langages typiquement humains (“euuuh”, “Hmm hmmm”,( marqueurs typique d’hésitation)).
Enfin, le NLP vise également des tâches de data mining, ou d’extraction d’informations en français. La fouille de textes et la recherche d’information permettent de trouver des informations ciblées dans un corpus donné.
Nous pouvons également parler de la reconnaissance d’entités nommées. Une entité nommée est une expression linguistique référentielle. C’est à dire qu’une entité nommée vient faire référence à quelque chose de précis : un nom propre, un lieu, une date… Cette application est très intéressante pour cibler les éléments à anonymiser par exemple, mais pas que ! Elle peut également s’avérer utile pour la gestion documentaire et notamment pour la catégorisation documentaire. La catégorisation documentaire regroupe les documents de même nature ensemble. Elle automatise le tri des documents et facilite donc leur gestion.
Pour terminer notre tour d’horizon des grandes applications du NLP, nous nous dirigeons vers le paroxysme de la sémantique : l’analyse de sentiment. L’idée est de comprendre le ressenti d’une personne en analysant un discours ou un texte écrit.
Comme vous le comprenez maintenant, les applications du NLP sont très très larges et nous devrions en trouver de nouvelles encore. Et tout cela est loin d’être surprenant. Il faut dire que l’humain a développé un langage aussi complexe que largement utilisé. Il est omniprésent et représente un rouage essentiel à bon nombre de processus cognitifs, pas étonnant que nous cherchions donc à l’analyser, le comprendre et le mimer via l’IA.
On voit donc que les applications du NLP sont légions mais quelles formes prennent-elles concrètement ?
Applications concrètes et en production
Il est déjà à noter que les applications du NLP se sont doucement fait une place dans notre quotidien.
Vous avez sûrement déjà utilisé les outils de traduction automatique afin de retranscrire votre saisie vers un langage cible. Le NLP a permis des progrès considérables dans ce domaine. D’où le fait qu’aujourd’hui, votre prof de langue aurait plus de difficultés à identifier qu’un outil de traduction a rédigé le devoir à votre place ! En effet, si autrefois les traductions se faisaient mot pour mot, elles sont dorénavant réalisées en prenant compte du contexte global et sont plus justes grammaticalement parlant.
D’ailleurs, si vous souhaitez utiliser un traducteur particulièrement performant, on vous conseille de loin DeepL ! En très peu de temps, DeepL est venu détrôner Google Traduction ou encore Reverso, longtemps identifiées comme des références en matière de traduction automatique. Aujourd’hui encore, les traductions offertes par l’outil sont considérées comme les meilleures et les plus naturelles du marché. Et ce, grâce à des algorithmes de Deep Learning performants et à une base de données composée de milliards de données très qualitatives. Cette base de données est d’ailleurs issue de Linguee, un dictionnaire en ligne, qui selon Deepl à ce jour “ a répondu à plus de 10 milliards de demandes provenant de plus d’un milliard d’utilisateurs” ! Énorme, pas vrai ?
De leurs côtés, les assistants vocaux vous accompagnent tout au long de votre journée. Ils sont même constamment dans votre poche, dans le cas de Siri par exemple ! Ces derniers utilisent la reconnaissance vocale pour identifier votre requête, en déduire un sens puis vous proposer la réponse qui convient. Plus que simplement tendre l’oreille pour vous écouter, Siri peut aujourd’hui vous faire la conversation. Grâce à la synthèse vocale, un contenu vocal peut être créé à partir de n’importe quel texte.
Dans le même esprit, les chatbots avec qui vous pouvez converser sur différents canaux permettent aux marques d’automatiser les interactions avec leurs clients. Ces chatbots sont aujourd’hui capables de gérer des tâches standards, telles que proposer des renseignements sur l’offre de l’entreprise, ou encore répondre à des questions fréquemment posées.
Le NLP se retrouve également dans les moteurs de recherche. Avant, les résultats de vos recherches sur Google se basaient uniquement sur les comportements de recherche tendances ou similaires. Puis, en 2019, Google a dévoilé son algorithme BERT. Il lui a été donné une mission : réussir à proposer des résultats de recherche toujours plus pertinents aux internautes. Grâce à lui, les mots clés sont désormais pris en compte dans leur ensemble pour tenir compte du contexte de la requête. Google vient ainsi chercher à identifier l’intention de l’utilisateur, au-delà des mots tapés dans la barre de recherche.
BERT trouve toute son utilité dans le cadre de requêtes longues et complexes. Il est ainsi capable entre autres de différencier les homonymes, d’identifier le contexte sémantique et les différentes nuances de la requête, ou encore de prédire la phrase qui va suivre.
Autre exemple : la saisie intuitive. Vous la retrouvez sûrement sur votre smartphone, au même titre que la correction ou la saisie automatique. Ces fonctionnalités se basent sur ce qui a été saisi pour proposer la fin du mot, faire des suggestions, ou encore apporter une correction. Aujourd’hui, elles sont évolutives puisqu’elles s’adaptent au fil du temps à vos habitudes et à votre style.
Et puisqu’on aime vous partager les bons plans, en voici un autre. Si vous cherchez un correcteur automatique et multilingue d’orthographe, de grammaire et de style, utilisez Language Tool ! Son petit plus ? Il fonctionne aussi bien sur vos logiciels bureautiques préférés (Google Docs, Word) que partout ailleurs sur le web. Adieu les fautes d’orthographe qui passaient jusqu’alors inaperçu !
Enfin, impossible de terminer cette partie sans parler du système de recommandation d’un des géants du streaming musical : Spotify. L’application utilise trois types d’algorithmes pour vous faire des recommandations personnalisées, dont un se basant sur du NLP. Pour ce faire, Spotify récolte et analyse des données textuelles présentes sur internet. Cela va lui permettre d’identifier ce qui est dit sur un titre, les adjectifs utilisés pour le décrire ou encore les éventuelles mentions d’autres titres qui pourraient lui être associées. En établissant un classement des termes les plus utilisés, Spotify peut alors formuler des recommandations à partir du rapprochement avec d’autres contenus.
L’IA et le NLP ponctuent donc notre quotidien avec des applications plus utiles et efficaces les unes que les autres. Mais que nous réserve l’avenir ? Quelles seront les prochaines grandes avancées dans ce domaine ? La traduction orale en temps réel, c’est pour demain ?
Dernières avancées scientifiques
Comme la vision par ordinateur le NLP est un vieux domaine de l’IA qui a donc connu nombre d’avancées technologiques ces dernières décennies. Parce qu’il serait trop long de les citer, nous choisissons ici de nous intéresser aux tout derniers progrès dans le domaine et notamment liés aux réseaux neuronaux.
Une première technologie intéressante à mentionner est celle des RNN, ou réseaux de neurones récurrents. Si les réseaux convolutionnels, dont nous avons parlé dans l’épisode précédent, ont pu être utilisés en NLP, ce sont les RNN qui ont eu le plus d’impacts. Ces réseaux possèdent en effet une mémoire interne. Celle-ci leur permet de travailler sur une séquence, élément par élément, tout en mémorisant les éléments précédents. Ceci a bien sûr un intérêt tout trouvé en NLP où il est nécessaire de prendre en compte le contexte de toute une séquence. Dans la même veine, vous avez peut-être déjà entendu aussi parler de LSTM, qui reprennent le principe des RNN mais avec ce qu’on appelle des portes. Celles-ci permettent de laisser passer l’information et améliorer les performances de ces réseaux.
Mais plus récemment, c’est l’apparition des Transformers qui a impacté les performances des modèles de NLP. Ces réseaux de neurones profonds s’appuient sur ce qu’on appelle un mécanisme d’attention. Ce mécanisme existait déjà dans les RNN par le fait que ces réseaux traitent chaque nouvel élément de la séquence avec une mémoire des éléments précédents. Mais cette mémoire était rarement suffisante pour conserver des informations lointaines dans la séquence.
Les Transformers n’utilisent pas de récurrence mais implémentent un module d’attention qui permet de connaître le contexte avec l’ensemble des éléments d’une séquence donnée. Ceci donne de bien meilleures performances que les RNN plus classiques et a mené à la création de modèles tels que BERT ou GPT. Sans rentrer dans les détails mathématiques, le principe de l’attention est de calculer la pertinence de chaque élément d’entrée avec tous les autres objets en entrée ou de faire la même chose par rapport aux sorties du réseau. Le contexte n’est donc plus vraiment encodé avec un système de mémoire mais ces multiples calculs de pertinence.
Les Transformers ont des performances telles qu’ils sont maintenant même utilisés à l’état de l’art au-delà du NLP et en vision par ordinateur notamment. On a par exemple montré qu’un réseau à base de transformers entraîné sur du texte pouvait aisément être transféré sur des tâches de vision et offrir des performances à l’état de l’art !
Conjugué au présent comme au futur, le NLP est un domaine incontournable de l’intelligence artificielle. Les applications actuelles démontrent déjà toute leur pertinence et les dernières tendances tant au niveau des données que des approches algorithmiques nous laissent entrevoir de grandes avancées. Tout comme la vision, le langage jouit d’une place prépondérante et privilégiée pour l’humain. S’il peut se transformer en un obstacle dans notre société moderne et mondialisée, l’intelligence artificielle pourrait nous aider à le franchir et remettre le mythe de Babel au goût du jour.
Sources
- https://medium.com/dair-ai/deep-learning-for-nlp-an-overview-of-recent-trends-d0d8f40a776d
- https://medium.com/@ODSC/top-applications-of-nlp-in-2021-f4decffee68
- https://www.tableau.com/fr-fr/learn/articles/natural-language-processing-examples
- https://www.codeur.com/blog/google-bert/
- https://fr.wikipedia.org/wiki/Traitement_automatique_des_langues
- https://fr.wikipedia.org/wiki/Analyse_syntaxique_de_la_langue_naturelle
- https://fr.wikipedia.org/wiki/BERT_(mod%C3%A8le_de_langage)
- https://datascientest.com/introduction-au-nlp-natural-language-processing
- https://allennlp.org/elmo
- https://code.google.com/archive/p/word2vec/
- https://nlp.stanford.edu/projects/glove/
- https://medium.com/delightblog/parlons-recommandation-partie-2-le-mod%C3%A8le-spotify-5173958a41b5
- https://docs.google.com/presentation/d/1NOI5uLU8iir0neG_f_F8fKStlSn-FBgL83XHW9jBE-Q/edit#slide=id.ge9c6c365c7_1_17
- https://www.lebigdata.fr/traitement-naturel-du-langage-nlp-definition
Pingback: Retour sur 2022 - L'Intelligence Artificielle vue par Neovision