Système à base de connaissances
Un Système à Base de Connaissances (SBC) est un type de programme informatique qui utilise des connaissances humaines explicitement représentées pour résoudre des problèmes complexes qui nécessiteraient normalement une expertise humaine. Contrairement aux systèmes algorithmiques traditionnels qui suivent des instructions prédéfinies pour traiter des données, un SBC raisonne sur une base de connaissances pour inférer des solutions, fournir des explications ou prendre des décisions dans un domaine spécifique. Il s’agit d’une branche majeure de l’intelligence artificielle (IA), souvent associée aux systèmes experts.
Les concepts fondamentaux et les principes essentiels d’un Système à Base de Connaissances reposent sur plusieurs piliers. Le premier est l’architecture typique, qui se compose généralement de trois éléments principaux : la base de connaissances (BC), le moteur d’inférence et l’interface utilisateur. La base de connaissances contient les faits, les règles, les heuristiques et les relations pertinentes pour un domaine particulier, formalisés de manière à être utilisables par l’ordinateur. Le moteur d’inférence est le « cerveau » du système ; il applique des mécanismes de raisonnement logiques et heuristiques aux informations stockées dans la base de connaissances pour déduire de nouvelles informations ou arriver à une conclusion. L’interface utilisateur permet l’interaction entre l’utilisateur et le système, pour la saisie de données, la consultation des résultats et la réception d’explications.
La représentation des connaissances est un aspect crucial des SBC. Plusieurs formalismes existent pour structurer et coder les connaissances. Les règles de production, souvent sous la forme « SI
Les mécanismes de raisonnement, ou inférence, sont les processus par lesquels le SBC utilise les connaissances pour résoudre un problème. Le chaînage avant (forward chaining) part des faits connus et applique les règles pour déduire de nouvelles conclusions jusqu’à ce qu’un objectif soit atteint ou que plus aucune règle ne puisse être déclenchée. Le chaînage arrière (backward chaining) part d’une hypothèse ou d’un objectif et tente de trouver les faits et les règles qui le soutiennent, remontant ainsi la chaîne de raisonnement. D’autres mécanismes incluent le raisonnement par cas (case-based reasoning), où des solutions à des problèmes passés similaires sont adaptées pour résoudre un nouveau problème, et le raisonnement approximatif ou incertain, qui gère les connaissances imprécises ou incomplètes à l’aide de techniques comme les facteurs de certitude ou la logique floue.
L’acquisition des connaissances est le processus de collecte, de structuration et de formalisation des connaissances d’experts humains ou d’autres sources (documents, bases de données) pour les intégrer dans la base de connaissances. C’est souvent l’étape la plus difficile, la plus coûteuse en temps et le principal goulot d’étranglement dans le développement d’un SBC, connue sous le nom de « bottleneck de l’acquisition des connaissances ». Elle implique des entretiens avec des experts, l’observation, l’analyse de documents et des outils d’aide à l’acquisition. La maintenance de la base de connaissances, incluant sa mise à jour, sa validation et sa cohérence, est également un défi constant.
L’importance des Systèmes à Base de Connaissances réside dans leur capacité à capturer, préserver et diffuser une expertise humaine précieuse et souvent rare. Ils peuvent rendre cette expertise disponible en continu, 24h/24 et 7j/7, et en plusieurs endroits simultanément. Dans de nombreux domaines, ils servent d’outils d’aide à la décision puissants, fournissant aux utilisateurs des recommandations argumentées et des explications sur leur raisonnement, ce qui peut améliorer la qualité et la cohérence des décisions. Ils permettent également l’automatisation de tâches cognitives complexes qui étaient auparavant exclusivement humaines, augmentant ainsi la productivité et l’efficacité. Leur impact se manifeste aussi dans la formation, où ils peuvent servir d’outils pédagogiques interactifs.
Les applications pratiques des Systèmes à Base de Connaissances sont variées et couvrent de nombreux secteurs. Dans le domaine médical, des systèmes comme MYCIN (bien que n’ayant jamais été utilisé en routine clinique, il fut pionnier) ont été développés pour le diagnostic de maladies infectieuses et la prescription de traitements. En ingénierie et en industrie, XCON (eXpert CONfigurer) de Digital Equipment Corporation (DEC) était utilisé pour configurer les systèmes informatiques VAX, une tâche complexe et sujette aux erreurs. D’autres applications incluent la souscription de prêts ou d’assurances, l’analyse financière et la détection de fraudes, la planification et l’ordonnancement de la production, le contrôle de processus industriels, le diagnostic de pannes dans des équipements complexes, le support client intelligent via des chatbots ou des assistants virtuels, et le conseil juridique. Les moteurs de recommandation sur les plateformes de commerce électronique peuvent également intégrer des composantes de SBC.
Il existe plusieurs nuances et interprétations du terme « Système à Base de Connaissances ». Souvent, il est utilisé de manière interchangeable avec « système expert », bien que certains auteurs considèrent les systèmes experts comme un sous-ensemble des SBC, spécifiquement ceux qui émulent l’expertise d’un humain dans un domaine très pointu. Les SBC se distinguent des systèmes d’aide à la décision (SAD) plus généraux, bien qu’ils puissent en être une composante ; les SAD peuvent aussi utiliser des modèles mathématiques ou des bases de données sans raisonnement symbolique complexe. On distingue également les SBC selon la principale méthode de représentation des connaissances ou de raisonnement : systèmes basés sur des règles, systèmes basés sur des cas, systèmes basés sur des modèles (qui utilisent un modèle profond du fonctionnement du système à diagnostiquer ou à contrôler). Avec l’avènement de l’apprentissage automatique (machine learning), on voit émerger des systèmes hybrides qui combinent des bases de connaissances explicites avec des modèles appris à partir de données, cherchant à allier la puissance explicative des SBC et la capacité d’apprentissage des approches statistiques.
Plusieurs concepts sont étroitement liés aux Systèmes à Base de Connaissances. L’intelligence artificielle (IA) est le domaine plus large auquel ils appartiennent. L’ingénierie des connaissances est la discipline qui s’occupe de la construction, de la maintenance et de l’utilisation des bases de connaissances. L’intelligence artificielle symbolique est l’approche de l’IA qui met l’accent sur la manipulation de symboles et de structures de connaissances, par opposition à l’IA connexionniste ou sub-symbolique (comme les réseaux de neurones profonds). Des termes comme « base de données » sont liés mais distincts : une base de données stocke des données brutes, tandis qu’une base de connaissances stocke des informations structurées, des relations et des règles permettant le raisonnement. Une « ontologie » est un formalisme de représentation des connaissances souvent utilisé dans les SBC modernes. Le « moteur d’inférence » est une composante clé. En termes d’antonymes ou de concepts contrastés, on peut citer les systèmes purement algorithmiques qui ne font pas appel à une connaissance explicite du domaine, ou certains systèmes d’apprentissage automatique qui fonctionnent comme des « boîtes noires » sans fournir d’explication claire de leur raisonnement, bien que la recherche en IA explicable (XAI) vise à combler ce fossé.
L’origine des Systèmes à Base de Connaissances remonte aux premières recherches en intelligence artificielle dans les années 1950 et 1960. Des programmes pionniers comme le General Problem Solver (GPS) ont exploré les mécanismes de résolution de problèmes. L’idée de capturer l’expertise humaine a pris son essor avec des projets comme DENDRAL (fin des années 1960), qui analysait des structures chimiques, et MYCIN (début des années 1970), pour le diagnostic médical. Les années 1970 et 1980 sont souvent considérées comme « l’âge d’or » des systèmes experts, avec un développement commercial important et un grand optimisme. Une période de désillusion, parfois appelée « l’hiver de l’IA », a suivi, en partie due à des attentes excessives et aux difficultés pratiques de développement et de maintenance. Cependant, les SBC n’ont pas disparu. Ils ont évolué, s’intégrant à d’autres technologies et bénéficiant de progrès dans la représentation des connaissances (par exemple, avec le web sémantique et les ontologies), les interfaces homme-machine et, plus récemment, les approches hybrides combinant connaissances symboliques et apprentissage automatique.
Les Systèmes à Base de Connaissances présentent de nombreux avantages. Ils permettent de capitaliser et de préserver une expertise rare ou sur le point de disparaître (départ à la retraite d’experts). Ils assurent une plus grande cohérence et fiabilité dans les décisions par rapport aux humains, qui peuvent être sujets à la fatigue ou aux biais. Ils sont disponibles en permanence et peuvent être dupliqués et distribués facilement. Ils peuvent servir d’outils de formation efficaces en expliquant leur processus de raisonnement. Pour certains SBC, notamment ceux basés sur des règles, la capacité à fournir des explications sur leurs conclusions est un avantage majeur, favorisant la confiance et l’acceptation par les utilisateurs.
Cependant, les SBC ont aussi des inconvénients, des défis et des limitations. Le principal inconvénient est la difficulté et le coût de l’acquisition des connaissances. Extraire, formaliser et valider l’expertise humaine est un processus long et ardu. La maintenance et la mise à jour de la base de connaissances pour qu’elle reste pertinente dans un environnement changeant représentent un défi constant. Les SBC classiques peuvent manquer de robustesse face à des situations nouvelles ou imprévues qui ne sont pas couvertes par leur base de connaissances. Ils ont souvent du mal à gérer le « bon sens » ou les connaissances tacites, qui sont difficiles à expliciter. Gérer l’incertitude, l’ambiguïté et les connaissances incomplètes reste complexe, malgré les techniques développées. Leur domaine d’application est souvent étroit et spécialisé ; un SBC performant dans un domaine ne peut généralement pas être transposé facilement à un autre. Enfin, contrairement à certains systèmes d’apprentissage automatique modernes, les SBC classiques n’apprennent pas ou ne s’adaptent pas automatiquement à partir de nouvelles données sans une intervention explicite pour modifier leur base de connaissances ou leurs règles. Relever ces défis, notamment par l’intégration de techniques d’apprentissage pour l’acquisition et la maintenance des connaissances, et par l’amélioration des capacités d’explication, reste un axe de recherche et de développement actif.