Chez QWAM CI, l’analyse de données textuelles est au cœur de notre métier. Grâce à QWAM Text Analytics, nous sommes capables de traiter des données textuelles en masse et d’en tirer des indicateurs clés. Parmi les éléments de base qui construisent ces indicateurs nous retrouvons les entités nommées, comme les personnes, les lieux et les sociétés, mais aussi les concepts et les sentiments. Mais cela est-il suffisant ?
Pour répondre aux besoins de ses clients, QWAM va au-delà de la reconnaissance d’entités nommées et de l’analyse de sentiments. Qui parle de quoi ? Quelle est la relation entre la société A et la société B ? Grâce à l’intelligence artificielle et plus particulièrement l’apprentissage automatique, à la fois supervisé et non supervisé, nous continuons d’étendre nos concepts et d’améliorer constamment nos algorithmes.
Dans cet article, nous vous proposons un panorama de différents algorithmes d’apprentissage automatique appliqués aux données textuelles. Plus particulièrement, nous allons nous concentrer sur le « clustering », un algorithme d’apprentissage automatique non supervisé très répandu.
L’intelligence artificielle : une technologie et non un algorithme
L’intelligence artificielle, une des technologies les plus controversées aujourd’hui, représente à la fois une opportunité mais aussi une source d’inquiétude. Avec une définition parfois difficile à cerner, certains se demandent si l’IA va révolutionner la vie quotidienne ou si elle va supprimer des postes de travail. Il y a quelques années, le Professeur Steven Hawking avait préconisé que l’intelligence artificielle « sera soit la meilleure, soit la pire chose qui arrivera à l’humanité ». Toutefois, il avait souligné à plusieurs reprises l’importance d’étudier l’IA en profondeur et dans toutes ses dimensions.
Mais de quoi parle-t-on vraiment ? Il est primordial de noter qu’il n’est pas question d’un logiciel ou d’un algorithme bien distinct mais d’un ensemble de différentes compétences couplées avec l’informatique. Plus précisément, une définition simplifiée serait de dire qu’il s’agit de la capacité d’un ordinateur à réaliser des tâches à priori réservées aux êtres humains. Allant d’une tâche simple jusqu’à une tâche bien plus compliquée, l’intelligence artificielle se montre capable d’apprendre et de s’améliorer constamment. Il n’est pas surprenant de remarquer que ces dernières années, l’intelligence artificielle est souvent intrinsèquement liée à la capacité d’apprentissage d’un ordinateur.
IA : focus sur l’apprentissage automatique ou « machine learning »
L’apprentissage automatique ou « machine learning », constitue une branche très répandue de l’intelligence artificielle qui repose justement sur cette capacité des ordinateurs d’apprendre à partir de données fournies en entrée. Par ailleurs, il est évident que la sortie dépend de la nature de ces données.
Pour illustrer ce point, prenons un exemple simple : si l’IA prend en entrée des textes, elle peut repérer leur sujet, si elle prend en entrée des images, elle peut repérer l’objet qui y est représenté, et ainsi de suite. Il est donc difficile de ne pas remarquer la puissance d’apprentissage.
Mise à part l’applicabilité de l’apprentissage machine aux domaines très variés, nous souhaitons succinctement parler des deux approches principales utilisées pour y parvenir : l’apprentissage supervisé et l’apprentissage non supervisé.
« Machine learning » : apprentissage supervisé ou non supervisé ?
L’apprentissage supervisé est utilisé pour « guider » l’intelligence artificielle à trouver des informations dans de grandes masses de données. L’IA apprend une procédure de classification selon les exemples qui lui sont fournis. De ce fait, nous pouvons donc retenir que la performance d’une IA repose essentiellement sur les données sur lesquelles elle a « appris ».
Contrairement à la démarche présentée précédemment, lorsque le contenu des données est à priori inconnu, nous optons pour un algorithme d’apprentissage non supervisé. Les différents algorithmes d’apprentissage non supervisé permettent à l’intelligence artificielle de partitionner toute seule, sans apprentissage préalable et de manière cohérente les informations en différents ensembles. Une partie de la communauté assimile souvent cette approche à une « boîte noire » car les critères choisis par l’IA sont difficiles à déterminer. Par conséquent, il est parfois difficile d’expliquer les résultats obtenus.
De nos jours, l’implémentation de modèles d’apprentissage automatique pour le Traitement Automatique du Langage Naturel (TALN) ou Natural Language Processing (NLP), est de plus en plus utilisée. La fouille de textes, plus communément connu sous le nom de « text mining », est un ensemble de traitements informatiques, utilisés pour l’extraction de connaissances à partir de données textuelles.
L’apprentissage non supervisé : le « clustering »
Nous nous intéressons ici à un algorithme d’apprentissage non supervisé implémenté dans le but de classifier de manière automatique un ensemble de textes sans apprentissage préalable. Dans ce scénario, le modèle prend en entrée des textes et il tente de les séparer en ensembles cohérents. Ce processus est appelé « clustering », ou « clusterisation ».
Ce « clustering » qui sépare tout seul un corpus en paquets cohérents peut servir de base de départ pour l’élaboration d’un plan de classement plus élaboré qui pourra lui, mais dans une deuxième étape, faire l’objet d’un apprentissage supervisé.
Afin de pouvoir expliquer la démarche réalisée par le modèle, nous choisissons de présenter l’algorithme k-means[1], un des principaux algorithmes utilisés pour faire du « clustering ».
Supposons que l’ensemble de nos données soit représenté sous forme de points dans un espace à n dimensions (voir schéma 1 ci-dessous). L’algorithme place de manière aléatoire un nombre de points k dans cet espace. Ces points k, dont le nombre est un paramètre fourni à l’algorithme au préalable, vont servir en tant que centres (« centroïdes ») des ensembles qui seront créés. Ensuite, les différents points seront rapprochés aux centres qui sont les plus « proches ».
La notion de distance peut être calculée de différentes façons, notons de manière indicative la distance euclidienne et la distance de Jaccard. Maintenant, en fonction des nouvelles positions des données, les nouveaux centres sont calculés, et les points k sont déplacés dans l’espace. Le modèle réitère ce processus jusqu’à ce que les ensembles créés convergent. Ainsi, nous obtenons en sortie différents « clusters », qui représentent dans notre cas, un classement de documents par thématique.
Il est très intéressant de noter que le « clustering » peut être implémenté de la même manière au niveau des mots d’un document, dans le but d’essayer de repérer les sujets évoqués dans ce même document. Toutefois, cela n’est que la partie visible de l’iceberg.
K-means est une méthode de partitionnement de données fondée sur la notion de « centroïde ». Il s’agit d’un algorithme simple à implanter lorsque nous indiquons le nombre de « clusters » à créer mais le temps de calcul est assez coûteux si l’on souhaite trouver le nombre exact de « clusters ». Ainsi, nous utilisons différentes heuristiques dans le but de trouver une solution appropriée dans un temps raisonnable.
Une autre étape importante à signaler lors de l’implémentation de cet algorithme est la manière dont nous choisissons de calculer la distance entre les différents points. Par exemple, si nous optons pour la distance euclidienne, aucune distance n’est privilégiée par rapport à une autre, et les « clusters » générés ont une forme ronde, ce qui n’est pas toujours adapté au besoin. Par ailleurs, il faut noter l’importance du « centre initial » choisi car si par exemple il s’agit d’un « point aberrant » (« outlier »), la partition de données sera fortement influencée. Enfin, cet algorithme a tendance à être inefficace lorsque les « clusters » ont des tailles ou des densités différentes.
Autres méthodes de « clustering » : le regroupement hiérarchique
Il existe bien évidement d’autres méthodes pour faire du « clustering » comme, par exemple, celles du regroupement hiérarchique et celles fondées sur la densité de « clusters ».
Dans le cas de regroupement hiérarchique, qui est souvent représenté sous forme d’un « dendrogramme », il existe deux méthodes principales, le regroupement ascendant (« bottom-up ») et le regroupement descendant (« top-down »).
Afin de réaliser le regroupement ascendant, il faut dans un premier temps calculer la distance entre tous les « clusters » et de fusionner les deux « clusters » qui sont les plus proches (voir schéma 2 ci-dessous). Ensuite, cette démarche est répétée jusqu’à ce qu’il ne reste qu’un seul « cluster » unique. Il s’agit d’agglomérations successives, alors que dans le regroupement descendant, nous parlons plutôt de divisions successives.
Cette méthode de « clusterisation » ne présente pas les difficultés que nous avons évoquées pour l’implémentation de k-means, comme la définition du nombre et de la distance entre les « clusters ». Cela est dû au fait que lorsque nous construisons un arbre, nous pouvons facilement choisir le nombre de « clusters » a posteriori et modifier l’arbre. Mais cela a malheureusement un coût car l’algorithme n’est pas suffisamment efficace en termes de temps de calcul.
Autres méthodes de « clustering » : la densité de « clusters »
Passons maintenant aux algorithmes fondés sur la densité de « clusters ». Prenons l’exemple de DBSCAN (Density Based Spatial Clustering of Applications with Noise). Cet algorithme regroupe les points qui sont proches les uns des autres, tant qu’il y a une densité suffisamment forte autour de ces points. En observant le schéma 3 ci-dessous, nous notons que le point bleu est suffisamment proche du point rouge : alors il fera partie de ce « cluster », tandis que le point orange très éloigné des deux « clusters » constitue un point aberrant.
Parmi les avantages de cet algorithme, nous notons le fait qu’il permet d’éliminer le bruit(point orange dans l’image), de trouver des « clusters » de forme arbitraire et il est assez efficace en temps de calcul. Par contre, cet algorithme est inefficace lorsque nous avons des données de densités variées ou des données en haute dimension.
Suite aux différentes méthodes de« clustering » présentées, nous constatons qu’il est difficile de prédire qu’un algorithme sera plus efficace qu’un autre, car cela dépend fortement du type de données et de l’application.
La « clusterisation » chez QWAM CI
La « clusterisation » permet d’avoir une vue globale de différents sujets traités dans un ensemble de données qui ne sont pas forcément annotées ou structurées. Chez QWAM CI, nous implémentons des algorithmes de « clustering » afin de proposer à nos clients une valeur ajoutée importante.
Nous proposons ainsi des repérages de sujets abordés dans de grandes masses de données fournies par nos clients, allant jusqu’à l’identification de nouvelles informations, voire de nouvelles tendances, dans les flux de données issues d’internet. Ces données deviennent alors des insights immédiatement exploitables car directement liées à l’organisation et à son environnement. Les ensembles cohérents ainsi isolés peuvent ensuite servir d’embryon à un plan de classement plus élaboré. Le « clustering » est une aide précieuse dans la première partie exploratoire des projets de TAL/NLP.
L’équipe technique et R&D de QWAM
[1] À ne pas le confondre avec K Nearest Neighbors (KNN), algorithme d’apprentissage automatique supervisé, utilisé pour faire de la classification.
Source images :
- Schéma K-moyennes © Wikiwand
- Exemple de regroupement hiérarchique © ResearchGate
- Schéma DBSCAN © Machine Learning Notebook
Pour aller plus loin