Représentation des connaissances et raisonnement - Knowledge representation and reasoning

La représentation et le raisonnement des connaissances ( KRR , KR&R , KR² ) est le domaine de l' intelligence artificielle (IA) dédié à la représentation d'informations sur le monde sous une forme qu'un système informatique peut utiliser pour résoudre des tâches complexes telles que diagnostiquer une maladie ou avoir un dialogue dans une langue naturelle . La représentation des connaissances intègre les découvertes de la psychologie sur la façon dont les humains résolvent les problèmes et représentent les connaissances afin de concevoir des formalismes qui faciliteront la conception et la construction de systèmes complexes. La représentation des connaissances et le raisonnement intègrent également les découvertes de la logique pour automatiser divers types de raisonnement , tels que l'application de règles ou les relations d' ensembles et de sous - ensembles .

Des exemples de formalismes de représentation des connaissances incluent les réseaux sémantiques , l'architecture des systèmes , les cadres , les règles et les ontologies . Les moteurs d' inférence , les démonstrateurs de théorème et les classificateurs sont des exemples de moteurs de raisonnement automatisés .

Histoire

Les premiers travaux sur la représentation informatisée des connaissances se sont concentrés sur les résolveurs de problèmes généraux tels que le système General Problem Solver (GPS) développé par Allen Newell et Herbert A. Simon en 1959. Ces systèmes comportaient des structures de données pour la planification et la décomposition. Le système commencerait par un objectif. Il décomposerait ensuite cet objectif en sous-objectifs, puis entreprendrait de construire des stratégies permettant d'atteindre chaque sous-objectif.

À ces débuts de l'IA, des algorithmes de recherche généraux tels que A* ont également été développés. Cependant, les définitions de problèmes amorphes pour des systèmes tels que le GPS signifiaient qu'ils ne fonctionnaient que pour des domaines de jouets très contraints (par exemple le « monde des blocs »). Afin de s'attaquer aux problèmes non liés aux jouets, des chercheurs en IA tels qu'Ed Feigenbaum et Frederick Hayes-Roth ont réalisé qu'il était nécessaire de concentrer les systèmes sur des problèmes plus contraints.

Ces efforts ont conduit à la révolution cognitive de la psychologie et à la phase de l'IA axée sur la représentation des connaissances qui a abouti à des systèmes experts dans les années 1970 et 80, des systèmes de production , des langages de cadre , etc. des systèmes qui pourraient correspondre à la compétence humaine sur une tâche spécifique, comme le diagnostic médical.

Les systèmes experts nous ont donné la terminologie encore en usage aujourd'hui où les systèmes d'IA sont divisés en une base de connaissances , avec des faits sur le monde et les règles, et un moteur d'inférence , qui applique les règles à la base de connaissances afin de répondre aux questions et résoudre les problèmes. Dans ces premiers systèmes, la base de connaissances avait tendance à être une structure assez plate, essentiellement des affirmations sur les valeurs des variables utilisées par les règles.

En plus des systèmes experts, d'autres chercheurs ont développé le concept de langages basés sur des cadres au milieu des années 1980. Un cadre est similaire à une classe d'objets : c'est une description abstraite d'une catégorie décrivant des choses dans le monde, des problèmes et des solutions potentielles. Les cadres étaient à l'origine utilisés sur des systèmes orientés vers l'interaction humaine, par exemple la compréhension du langage naturel et des environnements sociaux dans lesquels diverses attentes par défaut telles que commander de la nourriture dans un restaurant rétrécissent l'espace de recherche et permettent au système de choisir des réponses appropriées aux situations dynamiques.

Il ne fallut pas longtemps avant que les communautés de cadres et les chercheurs basés sur des règles se rendent compte qu'il y avait une synergie entre leurs approches. Les cadres étaient bons pour représenter le monde réel, décrits comme des classes, des sous-classes, des slots (valeurs de données) avec diverses contraintes sur les valeurs possibles. Les règles étaient bonnes pour représenter et utiliser une logique complexe telle que le processus d'établissement d'un diagnostic médical. Des systèmes intégrés ont été développés qui combinaient des cadres et des règles. L'un des plus puissants et des plus connus était le Knowledge Engineering Environment (KEE) de 1983 d' Intellicorp . KEE avait un moteur de règles complet avec chaînage avant et arrière . Il disposait également d'une base de connaissances complète basée sur des trames avec des déclencheurs, des slots (valeurs de données), l'héritage et la transmission de messages. Bien que la transmission de messages provienne de la communauté orientée objet plutôt que de l'IA, elle a rapidement été adoptée par les chercheurs en IA ainsi que dans des environnements tels que KEE et dans les systèmes d'exploitation des machines Lisp de Symbolics , Xerox et Texas Instruments .

L'intégration des cadres, des règles et de la programmation orientée objet a été considérablement stimulée par des entreprises commerciales telles que KEE et Symbolics dérivées de divers projets de recherche. En même temps que cela se produisait, il y avait une autre souche de recherche qui était moins axée sur le commerce et était guidée par la logique mathématique et la démonstration automatisée de théorèmes. L'une des langues les plus influentes dans cette recherche était la langue KL-ONE du milieu des années 80. KL-ONE était un langage-cadre qui avait une sémantique rigoureuse, des définitions formelles pour des concepts tels qu'une relation Est-A . KL-ONE et les langages qui en ont été influencés, tels que Loom, disposaient d'un moteur de raisonnement automatisé basé sur une logique formelle plutôt que sur des règles IF-THEN. Ce raisonneur est appelé le classificateur. Un classificateur peut analyser un ensemble de déclarations et déduire de nouvelles assertions, par exemple, redéfinir une classe pour qu'elle soit une sous-classe ou une superclasse d'une autre classe qui n'a pas été formellement spécifiée. De cette façon, le classificateur peut fonctionner comme un moteur d'inférence, en déduisant de nouveaux faits à partir d'une base de connaissances existante. Le classifieur peut également fournir une vérification de cohérence sur une base de connaissances (qui, dans le cas des langages KL-ONE, est également appelée ontologie).

Un autre domaine de recherche sur la représentation des connaissances était le problème du raisonnement de bon sens . L'une des premières réalisations apprises en essayant de créer un logiciel capable de fonctionner avec le langage naturel humain était que les humains s'appuient régulièrement sur une base étendue de connaissances sur le monde réel que nous tenons simplement pour acquises mais qui n'est pas du tout évidente pour un agent artificiel. . Principes de base de la physique de bon sens, de la causalité, des intentions, etc. Un exemple est le problème du cadre , que dans une logique événementielle, il doit y avoir des axiomes qui indiquent que les choses maintiennent leur position d'un moment à l'autre à moins qu'elles ne soient déplacées par une force externe. . Afin de créer un véritable agent d'intelligence artificielle capable de converser avec les humains en utilisant le langage naturel et de traiter des déclarations et des questions de base sur le monde, il est essentiel de représenter ce type de connaissance. L'un des programmes les plus ambitieux pour s'attaquer à ce problème était le projet Cyc de Doug Lenat . Cyc a établi son propre langage Frame et a demandé à un grand nombre d'analystes de documenter divers domaines de raisonnement de bon sens dans ce langage. Les connaissances enregistrées dans Cyc comprenaient des modèles de bon sens du temps, de la causalité, de la physique, des intentions et bien d'autres.

Le point de départ de la représentation des connaissances est l' hypothèse de la représentation des connaissances formalisée pour la première fois par Brian C. Smith en 1985 :

Tout processus intelligent incorporé mécaniquement sera composé d'ingrédients structurels que a) nous, en tant qu'observateurs externes, prenons naturellement pour représenter un compte rendu propositionnel de la connaissance que le processus global présente, et b) indépendamment d'une telle attribution sémantique externe, jouons un rôle formel mais causal et rôle essentiel dans l'engendrement du comportement qui manifeste cette connaissance.

Actuellement, l'un des domaines les plus actifs de la recherche sur la représentation des connaissances sont les projets associés au Web sémantique . Le Web sémantique cherche à ajouter une couche de sémantique (sens) au-dessus de l'Internet actuel. Plutôt que d'indexer des sites Web et des pages via des mots-clés, le Web sémantique crée de grandes ontologies de concepts. La recherche d'un concept sera plus efficace que les recherches textuelles traditionnelles. Les langages de cadres et la classification automatique jouent un grand rôle dans la vision du futur Web sémantique. La classification automatique donne aux développeurs la technologie pour mettre de l'ordre sur un réseau de connaissances en constante évolution. Définir des ontologies statiques et incapables d'évoluer à la volée serait très limitatif pour les systèmes basés sur Internet. La technologie des classificateurs permet de gérer l'environnement dynamique d'Internet.

Des projets récents financés principalement par la Defense Advanced Research Projects Agency (DARPA) ont intégré des langages de trame et des classificateurs avec des langages de balisage basés sur XML. Le Resource Description Framework (RDF) fournit la capacité de base pour définir des classes, des sous-classes et des propriétés d'objets. Le langage d'ontologie Web (OWL) fournit des niveaux supplémentaires de sémantique et permet l'intégration avec les moteurs de classification.

Aperçu

La représentation des connaissances est un domaine de l'intelligence artificielle qui se concentre sur la conception de représentations informatiques qui capturent des informations sur le monde pouvant être utilisées pour résoudre des problèmes complexes.

La justification de la représentation des connaissances est que le code procédural conventionnel n'est pas le meilleur formalisme à utiliser pour résoudre des problèmes complexes. La représentation des connaissances rend les logiciels complexes plus faciles à définir et à maintenir que le code procédural et peut être utilisé dans des systèmes experts .

Par exemple, parler à des experts en termes de règles métier plutôt que de code réduit le fossé sémantique entre les utilisateurs et les développeurs et rend le développement de systèmes complexes plus pratique.

La représentation des connaissances va de pair avec le raisonnement automatisé car l'un des principaux objectifs de la représentation explicite des connaissances est de pouvoir raisonner sur ces connaissances, de faire des inférences, d'affirmer de nouvelles connaissances, etc. Pratiquement tous les langages de représentation des connaissances ont un moteur de raisonnement ou d'inférence. dans le cadre du système.

Un compromis clé dans la conception d'un formalisme de représentation des connaissances est celui entre l'expressivité et l'aspect pratique. Le formalisme ultime de représentation des connaissances en termes de puissance expressive et de compacité est la logique du premier ordre (FOL). Il n'y a pas de formalisme plus puissant que celui utilisé par les mathématiciens pour définir des propositions générales sur le monde. Cependant, FOL présente deux inconvénients en tant que formalisme de représentation des connaissances : la facilité d'utilisation et la praticité de la mise en œuvre. La logique de premier ordre peut être intimidante même pour de nombreux développeurs de logiciels. Les langages qui n'ont pas le pouvoir formel complet du FOL peuvent toujours fournir à peu près le même pouvoir expressif avec une interface utilisateur plus pratique à comprendre pour le développeur moyen. La question de l'aspect pratique de la mise en œuvre est que la FOL est à certains égards trop expressive. Avec FOL, il est possible de créer des déclarations (par exemple une quantification sur des ensembles infinis) qui feraient en sorte qu'un système ne se termine jamais s'il tentait de les vérifier.

Ainsi, un sous-ensemble de FOL peut être à la fois plus facile à utiliser et plus pratique à mettre en œuvre. C'était une motivation motrice derrière les systèmes experts basés sur des règles. Les règles IF-THEN fournissent un sous-ensemble de FOL mais un très utile qui est aussi très intuitif. L'histoire de la plupart des premiers formalismes de représentation des connaissances en IA ; des bases de données aux réseaux sémantiques en passant par les démonstrateurs de théorèmes et les systèmes de production peuvent être considérés comme diverses décisions de conception sur l'opportunité de mettre l'accent sur le pouvoir d'expression ou la calculabilité et l'efficacité.

Dans un article clé de 1993 sur le sujet, Randall Davis du MIT a décrit cinq rôles distincts pour analyser un cadre de représentation des connaissances :

  • Une représentation de la connaissance (KR) est plus fondamentalement un substitut, un substitut à la chose elle-même, utilisé pour permettre à une entité de déterminer les conséquences en pensant plutôt qu'en agissant, c'est-à-dire en raisonnant sur le monde plutôt qu'en y agissant.
  • C'est un ensemble d'engagements ontologiques, c'est-à-dire une réponse à la question : En quels termes dois-je penser le monde ?
  • C'est une théorie fragmentaire du raisonnement intelligent, exprimée en termes de trois composants : (i) la conception fondamentale de la représentation du raisonnement intelligent ; (ii) l'ensemble des inférences que la représentation sanctionne ; et (iii) l'ensemble d'inférences qu'il recommande.
  • C'est un moyen de calcul pragmatiquement efficace, c'est-à-dire l'environnement de calcul dans lequel la pensée est accomplie. Une contribution à cette efficacité pragmatique est apportée par le guidage fourni par une représentation pour organiser l'information de manière à faciliter les inférences recommandées.
  • C'est un moyen d'expression humaine, c'est-à-dire une langue dans laquelle nous disons des choses sur le monde.

La représentation des connaissances et le raisonnement sont une technologie habilitante clé pour le Web sémantique . Les langages basés sur le modèle Frame avec classification automatique fournissent une couche de sémantique au-dessus de l'Internet existant. Plutôt que de rechercher via des chaînes de texte comme c'est le cas aujourd'hui, il sera possible de définir des requêtes logiques et de trouver des pages qui correspondent à ces requêtes. Le composant de raisonnement automatisé dans ces systèmes est un moteur connu sous le nom de classificateur. Les classificateurs se concentrent sur les relations de subsomption dans une base de connaissances plutôt que sur les règles. Un classificateur peut déduire de nouvelles classes et modifier dynamiquement l'ontologie à mesure que de nouvelles informations deviennent disponibles. Cette capacité est idéale pour l'espace d'information en constante évolution et en constante évolution d'Internet.

Le Web sémantique intègre des concepts issus de la représentation des connaissances et du raisonnement avec des langages de balisage basés sur XML. Le Resource Description Framework (RDF) fournit les capacités de base pour définir des objets basés sur la connaissance sur Internet avec des fonctionnalités de base telles que les relations Est-A et les propriétés d'objet. Le langage d'ontologie Web (OWL) ajoute une sémantique supplémentaire et s'intègre aux raisonneurs de classification automatique.

Caractéristiques

En 1985, Ron Brachman a catégorisé les problèmes fondamentaux de la représentation des connaissances comme suit :

  • Primitifs. Quel est le cadre sous-jacent utilisé pour représenter les connaissances ? Les réseaux sémantiques ont été l'une des premières primitives de représentation des connaissances. En outre, des structures de données et des algorithmes pour une recherche rapide générale. Dans ce domaine, il existe un fort chevauchement avec la recherche sur les structures de données et les algorithmes en informatique. Dans les premiers systèmes, le langage de programmation Lisp, qui était inspiré du calcul lambda , était souvent utilisé comme une forme de représentation des connaissances fonctionnelles. Les cadres et les règles étaient le prochain type de primitif. Les langages de trame avaient divers mécanismes pour exprimer et appliquer des contraintes sur les données de trame. Toutes les données des trames sont stockées dans des emplacements. Les slots sont analogues aux relations dans la modélisation entité-relation et aux propriétés d'objet dans la modélisation orientée objet. Une autre technique pour les primitives consiste à définir des langages modelés sur la logique du premier ordre (FOL). L'exemple le plus connu est Prolog, mais il existe également de nombreux environnements de démonstration de théorèmes spéciaux. Ces environnements peuvent valider des modèles logiques et déduire de nouvelles théories à partir de modèles existants. Essentiellement, ils automatisent le processus qu'un logicien suivrait pour analyser un modèle. La technologie de démonstration de théorèmes avait des applications pratiques spécifiques dans les domaines du génie logiciel. Par exemple, il est possible de prouver qu'un programme logiciel adhère de manière rigide à une spécification logique formelle.
  • Méta-représentation. C'est ce qu'on appelle aussi la question de la réflexion en informatique. Il fait référence à la capacité d'un formalisme à avoir accès à des informations sur son propre état. Un exemple serait le protocole de méta-objet dans Smalltalk et CLOS qui donne aux développeurs un accès à l'exécution aux objets de classe et leur permet de redéfinir dynamiquement la structure de la base de connaissances même au moment de l'exécution. La méta-représentation signifie que le langage de représentation des connaissances est lui-même exprimé dans ce langage. Par exemple, dans la plupart des environnements basés sur des cadres, tous les cadres seraient des instances d'une classe de cadres. Cet objet de classe peut être inspecté au moment de l'exécution, afin que l'objet puisse comprendre et même modifier sa structure interne ou la structure d'autres parties du modèle. Dans les environnements basés sur des règles, les règles étaient également généralement des instances de classes de règles. Une partie du méta-protocole pour les règles était les méta-règles qui donnaient la priorité au déclenchement des règles.
  • Incomplétude . La logique traditionnelle nécessite des axiomes et des contraintes supplémentaires pour traiter le monde réel par opposition au monde des mathématiques. Aussi, il est souvent utile d'associer des degrés de confiance à un énoncé. C'est-à-dire, ne pas simplement dire « Socrate est humain » mais plutôt « Socrate est humain avec confiance à 50 % ». Ce fut l'une des premières innovations de la recherche sur les systèmes experts qui a migré vers certains outils commerciaux, la capacité d'associer des facteurs de certitude avec des règles et des conclusions. Les recherches ultérieures dans ce domaine sont connues sous le nom de logique floue .
  • Définitions et universaux contre faits et valeurs par défaut. Les universaux sont des déclarations générales sur le monde telles que "Tous les humains sont mortels". Les faits sont des exemples spécifiques d'universaux tels que "Socrate est un humain et donc un mortel". En termes logiques, les définitions et les universaux concernent la quantification universelle, tandis que les faits et les défauts concernent les quantifications existentielles . Toutes les formes de représentation des connaissances doivent traiter cet aspect et la plupart le font avec une variante de la théorie des ensembles, modélisant les universaux en tant qu'ensembles et sous-ensembles et les définitions en tant qu'éléments de ces ensembles.
  • Raisonnement non monotone . Le raisonnement non monotone permet différents types de raisonnement hypothétique. Le système associe les faits affirmés aux règles et aux faits utilisés pour les justifier et, à mesure que ces faits changent, met également à jour les connaissances dépendantes. Dans les systèmes basés sur des règles, cette capacité est connue sous le nom de système de maintien de la vérité .
  • Adéquation expressive . La norme que Brachman et la plupart des chercheurs en IA utilisent pour mesurer l'adéquation expressive est généralement la logique de premier ordre (FOL). Les limitations théoriques signifient qu'une mise en œuvre complète de FOL n'est pas pratique. Les chercheurs doivent être clairs sur le degré d'expressivité (combien de plein pouvoir d'expression FOL) qu'ils souhaitent que leur représentation soit.
  • Efficacité du raisonnement. Il s'agit de l'efficacité du temps d'exécution du système. La capacité de la base de connaissances à être mise à jour et le raisonneur à développer de nouvelles inférences dans un délai raisonnable. À certains égards, c'est le revers de l'adéquation expressive. En général, plus une représentation est puissante, plus elle a d'adéquation expressive, moins son moteur de raisonnement automatisé sera efficace . L'efficacité était souvent un problème, en particulier pour les premières applications de la technologie de représentation des connaissances. Ils étaient généralement implémentés dans des environnements interprétés tels que Lisp, qui étaient lents par rapport aux plates-formes plus traditionnelles de l'époque.

Ingénierie des ontologies

Dans les premières années des systèmes basés sur les connaissances, les bases de connaissances étaient assez petites. Les bases de connaissances qui étaient censées résoudre de vrais problèmes plutôt que de faire des démonstrations de preuve de concept devaient se concentrer sur des problèmes bien définis. Ainsi, par exemple, non seulement le diagnostic médical dans son ensemble, mais le diagnostic médical de certains types de maladies.

Au fur et à mesure que la technologie basée sur la connaissance s'est développée, le besoin de bases de connaissances plus larges et de bases de connaissances modulaires qui pourraient communiquer et s'intégrer les unes avec les autres est devenu évident. Cela a donné naissance à la discipline de l'ingénierie des ontologies, concevant et construisant de grandes bases de connaissances pouvant être utilisées par plusieurs projets. L'un des principaux projets de recherche dans ce domaine était le projet Cyc . Cyc était une tentative de construire une énorme base de connaissances encyclopédique qui contiendrait non seulement des connaissances d'experts, mais aussi des connaissances de bon sens. En concevant un agent d'intelligence artificielle, on s'est vite rendu compte que représenter les connaissances de bon sens, des connaissances que les humains tiennent simplement pour acquises, était essentiel pour créer une IA capable d'interagir avec les humains en utilisant le langage naturel. Cyc était destiné à résoudre ce problème. Le langage qu'ils ont défini était connu sous le nom de CyclL .

Après CyclL, un certain nombre de langages d'ontologie ont été développés. La plupart sont des langages déclaratifs , et sont soit des langages de cadres , soit sont basés sur la logique du premier ordre . La modularité - la capacité de définir des limites autour de domaines et d'espaces de problèmes spécifiques - est essentielle pour ces langages car, comme l'a déclaré Tom Gruber , "Chaque ontologie est un traité - un accord social entre des personnes ayant un motif commun de partage." Il y a toujours de nombreux points de vue concurrents et différents qui rendent impossible toute ontologie à usage général. Une ontologie à usage général devrait être applicable dans n'importe quel domaine et différents domaines de connaissances doivent être unifiés.

Il y a une longue histoire de travail essayant de construire des ontologies pour une variété de domaines de tâches, par exemple, une ontologie pour les liquides, le modèle d'éléments localisés largement utilisé pour représenter les circuits électroniques (par exemple), ainsi que des ontologies pour le temps, la croyance et même la programmation elle-même. Chacun d'eux offre un moyen de voir une partie du monde.

Le modèle des éléments localisés, par exemple, suggère que nous pensons aux circuits en termes de composants avec des connexions entre eux, avec des signaux circulant instantanément le long des connexions. C'est une vue utile, mais pas la seule possible. Une ontologie différente apparaît si nous devons nous occuper de l'électrodynamique dans l'appareil : ici, les signaux se propagent à une vitesse finie et un objet (comme une résistance) qui était auparavant considéré comme un seul composant avec un comportement d'E/S peut maintenant être pensé. comme un milieu étendu à travers lequel circule une onde électromagnétique.

Les ontologies peuvent bien sûr être écrites dans une grande variété de langages et de notations (par exemple, logique, LISP, etc.) ; l'information essentielle n'est pas la forme de cette langue mais le contenu, c'est-à-dire l'ensemble des concepts proposés comme une façon de penser le monde. En termes simples, la partie importante est constituée de notions telles que les connexions et les composants, et non le choix entre les écrire sous forme de prédicats ou de constructions LISP.

L'engagement pris en sélectionnant l'une ou l'autre ontologie peut produire une vision très différente de la tâche à accomplir. Considérez la différence qui survient en sélectionnant la vue des éléments localisés d'un circuit plutôt que la vue électrodynamique du même appareil. Comme deuxième exemple, le diagnostic médical vu en termes de règles (par exemple, MYCIN ) semble sensiblement différent de la même tâche vue en termes de cadres (par exemple, INTERNIST). Là où MYCIN voit le monde médical comme constitué d'associations empiriques reliant le symptôme à la maladie, INTERNIST voit un ensemble de prototypes, en particulier des maladies prototypiques, à confronter au cas présent.

Voir également

Les références

Lectures complémentaires

Liens externes