L'apprentissage automatique est un sujet à la mode depuis des années, nombre de nos clients nous demandant des solutions utilisant cette technologie. Du triage des e-mails à la reconnaissance d'images ou même aux systèmes de recommandation, beaucoup de nos clients peuvent en bénéficier.
Cependant, l'apprentissage automatique en intelligence artificielle s'accompagne de son lot de complexité et de défis, comme la classification de textes. Les applications concrètes de la classification de textes peuvent être la classification de documents juridiques, la classification de données de produits, la classification de commentaires dans des virements bancaires, la recherche d'une intention dans un chatbot, le triage d'e-mails, etc. Ces applications peuvent sembler très différentes. Cependant, à travers les lunettes de l'apprentissage automatique, elles sont assez similaires. Jetons donc un coup d'œil général. La toute première question à laquelle vous devez répondre lorsque vous souhaitez classer des données textuelles est la suivante :
"Existe-t-il des textes disponibles qui sont déjà classés ? En d'autres termes, disposons-nous de données étiquetées ?"
Si la réponse est oui, vous pouvez heureusement emprunter la voie de l'apprentissage supervisé. Si la réponse est non, vous pouvez avoir un moment d'hésitation entre l'apprentissage supervisé et l'apprentissage non supervisé. Geoffrey Hinton a donné une belle conférence sur les autoencodeurs appliquée à certains articles de Wikipédia (voir ici pour la conférence et les figures 1 et 2 pour les visualisations du regroupement de sujets) qui ouvre une porte intéressante pour le regroupement non supervisé et d'une manière au moins visuellement convaincante :
Figure 1 : Visualisation 2-d des sujets en utilisant l'analyse en composantes principales.
Figure 2 : Visualisation en 2-d des sujets utilisant des autoencodeurs
Cependant, si vous n'êtes pas dans la recherche et si vous voulez faire fonctionner les choses dans un temps limité, vous devriez vraiment considérer les risques de prendre une voie non supervisée. En effet, l'apprentissage non supervisé peut s'avérer extrêmement coûteux, car le résultat n'est pas défini à l'avance par des étiquettes. D'un autre côté, il n'est souvent pas très coûteux de procéder à un étiquetage des données. De plus, dans de nombreux cas, même avec relativement peu d'étiquettes, on obtient des résultats très satisfaisants. Pour le reste, supposons que nous disposons de données étiquetées. La question suivante se pose alors :
"Quelle quantité de données étiquetées est disponible ?"
Nous vivons dans le monde du big data, mais en réalité, les ensembles de données d'un problème particulier sont souvent très éloignés d'un ensemble de données comme "Tous les articles de Wikipedia" (voir par exemple ici pour d'autres ensembles de données intéressants). En outre, les ensembles de données - dans notre cas, les données textuelles - sont souvent très particuliers en termes de formulation, de modèles et de structures. Étant donné qu'il y a de plus en plus d'applications intéressantes de réseaux neuronaux qui sont formés sur des quantités plutôt massives de données, on est tenté de reformuler la question ci-dessus de la manière suivante :
"Les réseaux neuronaux de pointe sont-ils adaptés au problème ou vaut-il mieux utiliser des outils d'apprentissage automatique plus classiques ?"
Cette question reflète bien le rêve de l'IA : si vous disposez d'autant de données étiquetées et d'autant de puissance de calcul que vous le souhaitez, alors, avec la bonne architecture d'un réseau neuronal, le modèle devrait être capable de tout apprendre par lui-même. Appliqué par exemple au triage des courriels, cela signifie qu'un tel modèle apprendrait qu'une certaine partie d'un courriel est un pied de page et qu'elle doit être écartée lors du triage car elle n'a aucune influence sur le contenu du message principal... Cependant, la réalité est souvent différente et la quantité de données disponibles n'est pas suffisante pour assurer une formation adéquate du réseau neuronal. Nous appelons ce processus d'alimentation du système avec des informations supplémentaires basées sur des règles un "prétraitement".
Figure 3 : Premier modèle "Inception" de Google en 2015. Réseau neuronal profond pour la classification d'images.
Néanmoins, les réseaux neuronaux ne doivent pas être exclus par défaut. Même si vous ne disposez pas de suffisamment de données, vous pouvez par exemple effectuer un apprentissage par transfert, ce qui signifie que vous prenez un réseau neuronal pré-entraîné et effectuez un entraînement final sur votre propre ensemble de données. L'un des domaines d'application les plus connus de l'apprentissage par transfert est la reconnaissance d'images. Par exemple, rien que sur Keras, vous trouvez déjà environ 10 modèles pré-entraînés (voir également le modèle de la figure 3). Les modèles pré-entraînés avec du texte, et en particulier pour la reconnaissance d'entités nommées, sont moins disponibles et sont généralement entraînés sur des corpus anglais alors qu'en Suisse nous avons généralement besoin de modèles entraînés en français et en allemand.
En conclusion, nous avons constaté que pour former un modèle de base dans le but d'obtenir un produit minimum viable (MVP), il est généralement préférable d'utiliser des algorithmes classiques d'apprentissage automatique de classification. Ils donnent généralement de très bons résultats, voire des résultats interprétables, en un temps raisonnable. Dans la suite de cet article, nous nous concentrerons principalement sur ces méthodes.
Il y a en général 3 étapes à suivre :
Le prétraitement des données
Construction et entraînement d'un modèle
Évaluation du modèle et prédiction des classes
Pour obtenir des résultats satisfaisants, ces trois étapes doivent être suivies de manière itérative en utilisant les résultats de la dernière étape pour améliorer la conception du modèle. La dernière étape peut fournir des informations importantes sur la manière d'améliorer le modèle. Il faut donc revenir à l'étape 1. Dans le prochain article, nous expliquerons plus en détail ces 3 étapes appliquées au cas d'utilisation du triage des e-mails.
Vous pouvez lire d'autres cas clients intéressants sur l'intelligence artificielle et notre point de vue sur Classification des e-mails avec l'IA