Pierre Marquis : « Compiler les langages de représentation des connaissances pour être toujours plus efficace en intelligence artificielle »

Distinctions Informatique

Depuis octobre 2017, Pierre Marquis est membre senior de l’Institut Universitaire de France. Dans un contexte où l’intelligence artificielle se développe de plus en plus, ses recherches se concentrent sur la représentation des connaissances, et plus précisément la compilation de connaissances, c’est-à-dire le changement de langages de représentations des informations afin de réaliser des compromis entre le temps de calcul et l’espace mémoire demandé.

L’intelligence artificielle soulève beaucoup de fantasmes, et la représentation des connaissances en est un domaine sans doute moins connu. Pouvez-vous nous le définir ?
Pierre Marquis : L’IA vise au développement de systèmes informatiques capables de prendre des décisions raisonnables en fonction d’objectifs assignés, et de données et d’informations disponibles. Ces informations (des connaissances, des croyances, des préférences, des actions …) doivent être modélisées et représentées pour que la machine puisse les traiter. Il faut donc définir des langages, ce à quoi la représentation des connaissances s’attelle. Le domaine, au cœur de l’IA depuis ses origines, soulève des difficultés importantes et n’est pas prêt de voir son importance décliner, à l’heure où l’on attend de l’IA qu’elle rende explicables à l’humain les décisions prises par les machines (voir en particulier la notion de droit à l’explication dans le règlement général de protection des données, directive européenne applicable à partir du 25 mai 2018). Un ancrage fort sur la notion de connaissance est ici nécessaire. Le choix d’un langage de représentation est complexe car il dépend de ce que l’on souhaite effectuer avec les représentations associées, du but recherché. Un même modèle mathématique pour un concept donné peut donner lieu à différents langages de représentation. Il n’y a malheureusement pas de classification tranchée pour le choix, c’est un problème bien connu dans la communauté des informaticiens (un même type abstrait de données peut être réalisé par plusieurs structures de données). On peut faire un parallèle avec la musique, où il y a là aussi plusieurs structures de données possibles en fonction de ce que l’on veut faire et de qui va le faire : pour « jouer » un morceau de musique, un smartphone va exploiter une représentation qui suit un format d’encodage spécifique (par exemple MP3) ; pour interpréter le même morceau, un humain va lire une représentation de nature très différente (une partition musicale), qui en plus peut différer selon l’instrument de musique employé…

En quoi consiste la compilation, ce changement de langages de représentation ?
P. M. : L’objectif est de pré-traiter une partie des informations disponibles, pour offrir des garanties de temps de réponse : on veut changer de langages de représentation des connaissances pour obtenir des traitements plus efficaces. Une application actuelle de ces méthodes de compilation est la configuration de produits combinatoires. Prenons un exemple : vous voulez acheter une voiture. Il n’existe pas de catalogue contenant toutes les voitures possibles, même restreintes à une marque ou un modèle donné, et cela ne peut pas exister car il y aurait beaucoup trop de combinaisons possibles (motorisation, boîte de vitesse, couleur…). Néanmoins, pour des raisons souvent techniques ou commerciales, on ne peut pas choisir séparément tous les composants de sa voiture : si je choisis tel type de moteur, je suis obligé de prendre tel type de boîte de vitesse. Sur internet, on peut souvent utiliser des configurateurs qui proposent aux clients de faire des choix concernant les constituants de leurs véhicules, en fonction de leurs priorités. Les choix réalisés forcent certaines options et en interdisent d’autres. Ce qui est important, c’est que chaque choix fait par l’utilisateur d’un configurateur puisse être propagé très vite, que l’utilisateur reçoive un feed back dans un délai très rapide. Pour garantir des temps de réponse compatibles avec une utilisation sur le web, on peut utiliser des algorithmes de compilation de connaissances, et représenter les produits sous une certaine forme qui va permettre une interrogation efficace.

Ce que je m’efforce de faire, c’est de continuer à développer le domaine de la compilation de connaissances, qui intéressait une communauté de recherche restreinte il y a 25 ans, et qui est en plein développement aujourd’hui. En effet, les travaux sur le sujet dépassent maintenant les frontières de la représentation des connaissances, et intéressent de plus en plus de monde, en particulier des collègues issus d’autres communautés comme les bases de données ou l’apprentissage automatique. Ces ouvertures permettent de considérer de nouvelles facettes du problème de la compilation en couvrant à la fois des aspects théoriques et des aspects pratiques.

Justement, comment se rejoignent la théorie et la pratique dans vos travaux ?
P. M. : Autour du concept de carte de compilation. Comme on l’a vu, une question centrale est celle du choix du langage de compilation : on dispose au départ d’une information dans une certaine forme, et l’objectif est de la réécrire dans un format plus adapté à ce que l’on veut en faire. Pour réaliser ce choix, on réalise une analyse multicritère des langages de compilation possibles pour les évaluer en particulier selon leur efficacité temporelle (c’est-à-dire la capacité à permettre des traitements efficaces quand les informations utilisées sont représentées dans ces langages) mais aussi leur efficacité spatiale (c’est-à-dire la capacité relative de ces langages à représenter de l’information en utilisant peu d’espace). Ce travail plutôt théorique de cartographie aboutit (comme on peut s’y attendre) à des cartes de compilation, qui d’un point de vue pratique, peuvent servir de guides au moins méthodologiques pour déterminer les langages pertinents en fonction de l’objectif attendu, des tâches que l’on veut réaliser, de l’application visée.

Bien entendu, la nature des connaissances de départ est également à prendre en compte et les cartes obtenues vont différer selon celle-ci. Si les connaissances sont de nature booléenne (à qui l’on peut associer une valeur de vérité, vrai ou faux), il sera possible de les représenter par des formules logiques, des réseaux de contraintes qui permettent de lier les informations (si je choisis le moteur 1, je dois prendre la boîte de vitesse A) et de compiler ces représentations. Mais d’autres types de connaissances, relevant d’autres modèles, doivent également pouvoir être prises en compte, comme les fonctions de coût ou les fonctions d’utilité pour exprimer des préférences, ou encore les distributions de probabilités utilisées pour représenter des connaissances incertaines particulières (voir « Réseaux bayésiens : les formules logiques perdent du poids »).

Comme il s’agit d’un choix multicritère, déterminer un bon compromis temps-espace (ou efficacité temporelle-efficacité spatiale) est souvent une tâche délicate. Cette problématique est très liée à celle de la compilabilité des problèmes où l’on s’intéresse à l’existence d’un pré-traitement qui va permettre de réduire le temps de traitement des instances, tout en garantissant de ne pas faire exploser la taille des formes compilées correspondantes. Au delà de tels aspects théoriques, au Centre de Recherche en Informatique de Lens (CRIL - CNRS/Université d’Artois), nous avons aussi une forte culture du développement et de l’évaluation de compilateurs, notamment au sein du projet Compile ! qui vise à mettre à disposition de la communauté les meilleurs outils de pré-traitement de l’information. Ce volet logiciel de la compilation est indispensable pour ne pas se cantonner à la théorie et aller du côté des applications. Il s’agit d’établir, pour la compilation de connaissances, un cercle vertueux où théorie et pratique se nourrissent mutuellement.

Contact

Pierre Marquis
Professeur à l'Université d'Artois, membre du CRIL