• Aucun résultat trouvé

2.3 Outils pour faire évoluer les ontologies à partir de textes

3.1.2 Techniques d’adaptations

Algorithmes génétiques

Parmi les types d’algorithmes existants pour l’adaptation d’un système à son environne- ment, certains ont la particularité de s’inspirer de l’évolution des espèces dans leur environ- nement : ce sont les algorithmes génétiques. Les espèces s’adaptent à leur environnement qui peut évoluer. Pour cela les individus de chaque espèce se reproduisent (créant ainsi de nouveaux individus), certains subissent des mutations, certains disparaissent, etc.

solutions pour un problème donné [Holland, 1975]. Il permet de résoudre un problème d’op- timisation de paramètres dépendants les uns des autres. Ces paramètres peuvent prendre plusieurs valeurs prédéfinies, de la même manière que des gènes peuvent prendre plusieurs expressions. Les solutions potentielles du problème sont codées sous forme de séquences, le plus souvent des chaînes de bits, appelées chromosomes. À partir d’une population (ou so- lution) initiale, générée aléatoirement, de nouvelles populations sont générées itérativement par application d’opérateurs génétiques de sélection, croisement et mutation jusqu’à satis- faction d’un critère d’arrêt (voir figure 3.2). Une solution particulière au problème (une so- lution approchée) est représentée par l’ensemble des valeurs prises pour chaque paramètre, qui constitue en quelque sorte l’ADN de cette solution. Quant à l’adaptation à l’environne- ment, elle est représentée par une fonction évaluant la pertinence de la solution.

Évaluation Sélection Croisement Mutation Population initiale Critère d'arrêt

Figure 3.2 — Vue d’ensemble d’un algorithme génétique.

Si nous modélisons notre problème l’évolution d’ontologies à partir de textes à l’aide d’un algorithme génétique, un individu pourrait représenté un candidat terme avec quatre paramètres p1, p2, p3 et p4.

– p1 représente un identifiant du candidat terme ;

– p2 représente le statut du candidat terme qui peut prendre la valeur 0 ou 1 (0 signifie qu’il reste candidat terme et 1 signifie qu’il devient un terme) ;

– p3 représente une création d’un concept associé dans le cas où p2 est à 1. p3 peut prendre la valeur 0 ou 1 (1 signifie qu’un concept associé est créé et 0 dans le cas contraire) ;

– p4 représente l’identifiant de l’individu concept auquel un individu est relié.

Par exemple, l’individu [T_Automobile ; 1 ; 0 ; C_Voiture] signifie que le candidat terme Automobile est un terme pour lequel un concept associé n’a pas été créé et il est relié à l’individu (concept) C_Voiture.

Pour faire évoluer une ontologie à partir de textes, l’espace de recherche de la solution optimale est représenté par l’ensemble des paramétrages possibles des n individus. Initia- lement, m solutions aléatoires sont générées. Ensuite, pour atteindre une solution optimale, les m solutions sont croisées, mutées et sélectionnées. Le critère d’arrêt de ce mécanisme est alors l’optimisation de la fonction d’évaluation d’une solution. Malheureusement, pour notre problème, il est impossible de donner une fonction quantifiable capable d’évaluer la qualité d’une ontologie. D’autre part, un algorithme génétique consomme du temps et de l’espace mémoire. Notre but étant d’aider l’ontographe à faire évoluer rapidement une on- tologie, l’utilisation de tels algorithmes s’avère indaptée.

Réseaux de neurones artificiels

Les réseaux de neurones artificiels s’inspirent des travaux en physiologie, en particu- lier des principes de fonctionnement des neurones du cerveau [Hebb, 1949]. Un réseau de neurones artificiels est un système de calcul dont le traitement est inspiré de celui effectué par les neurones biologiques. Un réseau de neurones est formé d’un ensemble de neurones. Chaque neurone est relié avec d’autres neurones par des connexions pondérées. Il reçoit en entrée des valeurs d’autres neurones et produit en sortie une valeur calculée à l’aide d’une fonction de transfert. Le poids associé à un lien entre deux neurones représente la force de celui-ci. Généralement, les neurones sont organisés en trois couches : une couche d’entrée qui reçoit les données, une couche de sortie qui fournit un résultat et une couche intermé- diaire (ou cachée) de calcul (voir figure 3.3).

Couche

d'entrée

S1 S2 S3 E1

Couche

cachée

Couche

de sortie

E2

Figure 3.3 — Structure d’un réseau de neurones en trois couches.

Concevoir un réseau de neurones pour résoudre un problème donné consiste tout d’abord à modéliser un ensemble de neurones dotés de fonctions mathématiques et inter- connectés entre eux par des liens pondérés. Ensuite, ce réseau est confronté à des données (en entrée et en sortie) issues du problème qu’ils auront à traiter. Durant cette phase ap- pelée "phase d’apprentissage" (ou "phase d’adaptation du système"), le réseau de neurones ajuste la valeur de ses poids de manière à obtenir des résultats similaires à ceux qui lui sont présentés. Enfin, le réseau de neurones est confronté à un jeu de données test différent des données d’apprentissage afin de le valider.

Les réseaux de neurones ont été utilisés avec succès, notamment en reconnaissances de formes et en robotique. Si on se place dans le cadre de notre problème l’évolution d’on- tologies à partir de textes, un réseau de neurones pourrait représenter en un ensemble de fonctions-règles. Ces dernières permettraient de faire évoluer une ontologie à partir de n’im- porte quel texte du domaine de cette ontologie. Par exemple, un ensemble de neurones pour- rait modéliser une fonction qui décrirait comment et quand un candidat terme se transforme en un terme ou un terme en un concept, etc. Néanmoins, la phase d’apprentissage d’un tel système nécessiterait d’avoir des milliers d’exemples d’évolution d’une ontologie d’un do- maine, ce qui n’est pas envisageable dans le cadre de notre problème.

Support Vector Machine

Les Support Vector Machine (SVM) ou encore séparateurs à vaste marge [Vapnik, 1995] sont des algorithmes d’apprentissage supervisés. Un SVM est destiné à résoudre des pro- blèmes de discrimination (ou classification) et de régression. Pour classifier des données, un SVM passe par une étape d’apprentissage pour déterminer une séparation entre un en- semble d’échantillons. Deux notions ont été définies : la notion de "marge maximale" et la notion de "fonction noyau". La marge correspond à la distance qui sépare les échantillons les plus proches. Les échantillons sont appelés vecteurs supports. La marge est alors maximale lorsque cette distance de séparation est maximale. Pour pouvoir traiter des échantillons non linéairement séparables, un SVM se base sur la notion de "fonction noyau". L’idée est de transformer l’espace de représentation des données en un espace de plus grande dimen- sion, dans lequel il est probable qu’il existe un séparateur linéaire. La fonction noyau est basée sur des intégrales et permet de transformer une équation en une autre plus simple à résoudre. Lorsque cette phase d’apprentissage est terminée, c’est-à-dire lorsque le SVM dé- termine la marge maximale de séparation, il est possible alors de reconnaître à quelle classe appartient une nouvelle donnée (voir figure 3.4).

+ + + + + + + + - - - - - - + + + + + + + + - - - - - - - X Y

Figure 3.4 — Exemple d’un problème de discrimination à deux classes (+ et -), avec un

séparateur linéaire.

La notion de marge maximale (qui représente une droite de séparation) a ensuite été as- souplie (marge souple) [Vapnik, 1995] car tous les problèmes n’ont pas une marge linéaire et, des échantillons utilisés dans l’apprentissage peuvent être erronés, donc mal placés. L’idée est alors de trouver une marge non linéaire en assouplissant les contraintes de calcul de cette marge à l’aide de variables ressorts [Vapnik, 1995]. Á la base un SVM permet de déterminer sur l’appartenance d’un élément entre deux classes. D’autres variantes de SVM (appelées SVM Multi-Classes) ont été proposées [Crammer et Singer, 2001] pour discriminer un élé- ment entre plusieurs classes.

Faire évoluer une ontologie à partir de textes à l’aide des SVM consisterait alors à dé- terminer autant de classifieurs SVM que de concepts dans l’ontologie. Tout d’abord, les concepts de l’ontologie courante seraient utilisés comme échantillons pour l’apprentissage. Pour obtenir la marge de séparation on pourrait se baser par exemple sur l’appartenance d’un concept à un document, sur la co-occurrence de concepts, etc. Or cette solution ne se- rait pas efficace, car nous disposons d’un petit volume de données dans les corpus et un

SVM requiert une grande quantité d’échantillons pour représenter une classe. Pour amé- liorer la quantité de données, nous pourrions penser à réaliser un SVM par ensemble de concepts. Avec cette technique, la discrimination d’un nouveau concept, nous renseignerait sur son appartenance à un ensemble de concepts. Nous ne pouvions donc pas dire s’il est un sous-concept, un concept père ou un concept fils. D’autre part, au cours de l’évolution d’une ontologie, l’ontographe supprime, déplace et ajoute aussi d’autres concepts. L’adaptation consisterait alors à relancer le SVM pour réapprendre la nouvelle fonction discriminante, ce qui serait couteux en temps. Bien que les SVMs puissent représenter une solution abs- traite d’un problème d’évolution d’ontologies, leur fonctionnement est à notre connaissance couteux en temps et leurs résultats ne seraient pas satisfaisants.

En résumé, les trois techniques présentées ont l’avantage d’abstraire la modélisation d’un problème. Pour notre problème cette abstraction est un ensemble d’éléments et de formules mathématiques. Malheureusement, nous nous heurtons à des limites de mise en œuvre pour déterminer une solution concrète.

C’est la raison pour laquelle nous nous tournons vers l’étude de solutions adaptatives où nous essayons de surmonter le besoin de modéliser des fonctions en relation avec l’ob- jectif global du système. Ce genre de systèmes est appelé "système adaptatif à fonctionnalité émergente".

Vers des systèmes adaptatifs à fonctionnalité émergente

L’objectif d’un système adaptatif à fonctionnalité émergente est d’obtenir une fonction- nalité à partir d’un ensemble d’ajustements, d’interactions et de changements au niveau des parties qui composent le système. Il s’agit d’une fonctionnalité émergente dans le sens où les fonctionnalités des parties du système sont indépendantes de la finalité du système. En d’autres termes, le système cherche à trouver une solution pour un problème donné sans presupposé sur les fonctionnalités attendues. Afin de mieux comprendre ce type de système nous présentons la notion d’émergence qui est sont souvent évoquée conjointement à la notion d’auto-organisation.

L’émergence

L’émergence est le phénomène décrivant ""l’apparition de nouveauté - propriétés, structures, formes ou fonctions -, et d’autre part, elle implique qu’il est impossible de décrire, d’expliquer ou de prédire ces nouveaux phénomènes en termes physiques à partir des conditions de base définies aux niveaux inférieurs"" [Van De Vijver, 1997]. Un phénomène est dit émergent s’il possède les caractéristiques suivantes [Georgé, 2004] :

– le phénomène doit apparaître au niveau global (macro) et ne doit pas être déductible directement des actions du niveau local (micro). Il est difficile de relier le phénomène émergent aux éléments qui l’entraînent ;

– le phénomène est radicalement nouveau, c’est-à-dire qu’il n’est ni observable, ni expli- cable au micro-niveau ;

– le phénomène est cohérent et corrélé, c’est-à-dire qu’il a une identité propre mais forte- ment liée aux parties qui le produisent ;

pas prédéfini mais dépend des dynamiques locales à l’origine de son apparition et exerçant sur celles-ci une influence en retour.

Un exemple de phénomène émergent est le plus court chemin emprunté par une colonie de fourmis pour chercher de la nourriture. L’objectif d’une fourmi est de ramener de la nour- riture à la colonie. Chaque fourmi en quête de nourriture fourrage son environnement et ramasse la nourriture qu’elle trouve. Lorsqu’elle est chargée de nourriture, elle dépose de la phéromone sur le chemin qu’elle emprunte pour retourner au nid, indiquant alors aux autres fourmis l’endroit de la nourriture. Si un observateur extérieur à la colonie regarde le système en cours de fonctionnement, il observe que le chemin qui se dessine et qu’em- pruntent les fourmis est le plus court chemin entre la nourriture et le nid. Autrement dit, l’ensemble des interactions entre fourmis permet de faire émerger un plus court chemin alors que les fourmis ne cherchent pas à optimiser leur chemin.

L’émergence est souvent mentionnée avec la notion d’auto-organisation. L’auto-organisation

Le phénomène d’auto-organisation se retrouve chez les êtres vivants, dans les colonies de termites, dans le vol des oiseaux migrateurs ou même dans les embouteillages automobiles, etc. où des structures et des propriétés naissent de leurs interactions. L’auto-organisation est définie comme "l’ensemble des processus au sein d’un système, issus de mécanismes basés sur des règles locales, qui conduisent ce système à produire des structures ou des comportements spécifiques non dictés par l’extérieur du système" [Georgé, 2004]. L’auto-organisation est caractérisée par la présence d’un grand nombre d’entités interdépendantes et autonomes qui interagissent entre elles et avec leur environnement. Ces entités ne sont pas soumises à des règles d’in- teraction fixes. Au contraire, les entités s’adaptent et modifient par elles-mêmes (de façon autonome) les règles d’interaction. Suite à ces interactions entre entités, une organisation apparaît. L’auto-organisation est très souvent associée ou même confondue avec la notion d’émergence. Selon [Thiétart, 2000], il s’agit d’un processus émergent d’organisation, autrement dit d’un processus naturel dans lequel des entités en interaction n’ont pas été "programmées" ou contrôlées pour construire une forme particulière d’organisation. Cette organisation est la résultante des interactions des entités qui cherchent des solutions locales aux problèmes qu’elles rencontrent. Selon notre point de vue, pour qu’il ait émergence d’une fonctionnalité au niveau global, il faut qu’il y ait auto-organisation au niveau local. Cette émergence est l’adaptation d’un système à ses contraintes envionnementales par auto-organisation de ses entités qui cherechent à satisfaire des objectifs locaux n’ayant aucun lien avec l’objectif global du système.

Les principes d’émergence et d’auto-organisation sont intéressants pour notre problème d’évolution d’ontologie. En effet, à travers un système d’évolution d’ontologies on cherche à maintenir un équilibre entre une ontologie et un environnement (composé de l’ontologie, de l’ontographe, des textes, etc.). Cet équilibre ne peut pas être calculé ou défini explicitement et a priori dans le système. Rappelons, que nous ne pouvons pas prévoir toutes les modifica- tions d’une ontologie ni prédire ce que veut l’ontographe comme évolution. Faire émerger cet équilibre consiste alors à définir un système sous forme d’entités en interaction et ayant des objectifs qui n’ont pas de lien direct avec l’ontologie recherchée. Lorsqu’un besoin d’évo-

lution d’ontologie se manifeste, le système s’auto-organise pour s’adapter à cette contrainte et donc proposer une nouvelle ontologie. L’étude et la conception d’un tel système s’effec- tue de manière ascendante en se focalisant sur les entités qui le composent, au travers de la définition des composants du micro-niveau, de leurs comportements et de leurs interactions locales. La section suivante présente les principes des Systèmes Multi-Agents Adaptatifs qui permettent de définir des systèmes à fonctionnalité émergente.