• Aucun résultat trouvé

Approche Sémantique et Combinatoire pour un système de

2 C OUCHE SEMANTIQUE

4.1 P HASE DE PROJECTION

Tout utilisateur auquel seront proposées des recommandations est modélisé par un profil de ce type dans le système.

Basée sur cette modélisation de l'utilisateur et de la connaissance, une couche intelligence va pouvoir réaliser des recommandations.

4 COUCHE INTELLIGENCE

La couche intelligence correspond au modèle d’adaptation définie dans les systèmes hypermédia adaptatifs. C’est dans cette couche que sont implémentés les différents algorithmes utilisés pour proposer des recommandations aux utilisateurs. Les recommandations sont déduites à partir des profils des utilisateurs. Deux phases principales composent la couche intelligence : une phase de projection des individus du domaine suivant les profils utilisateurs et une phase de recherche combinatoire basée sur le résultat de la projection. La première phase a pour rôle de déduire un vecteur de poids d'intérêts de l'utilisateur pour chaque individu à partir du profil dynamique de l'utilisateur et du poids des individus de l'ontologie dans chaque but. A partir du résultat de la phase de projection, la deuxième phase recherche une combinaison des individus à proposer à l'utilisateur suivant la partie statique du modèle utilisateur.

4.1 PHASE DE PROJECTION

La phase de projection se base sur deux principes: Tout d’abord, chaque concept but est peuplé d’individus de l’ontologie de domaine grâce à des règles métier. Ensuite, les règles attribuent un poids à chaque individu pour chaque but auquel ils sont liés. Ces poids correspondent à la pertinence de l’individu dans le but associé. La partie dynamique du profil étant constituée de buts, il est possible d’extraire les individus et leur poids associé dans ces buts. Pour chaque individu, la projection consiste à sommer ses poids dans les différents buts du profil utilisateur pour en extraire un seul poids. Ce dernier représente l’intérêt de l’utilisateur pour l’individu considéré. Ainsi, après la phase de projection des individus du domaine par rapport au profil utilisateur, on obtient une liste d’individus avec des poids d’intérêt.

4.1.1 F

ORMALI SATI ON

Considérons une matrice de taille représentant de manière simplifiée l’ontologie de but. est le nombre de concepts buts et est le nombre d'individus du domaine. La matrice relie chaque individu et chaque but par un poids.

, où est le poids de l’individu dans le but .

La partie dynamique du profil utilisateur est modélisée par un vecteur de taille , étant le nombre de buts. , où

Par produit matriciel entre la matrice et le vecteur de profil, nous obtenons un nouveau vecteur que nous appellerons « le projeté de sur le profil », noté .

Au final, la phase de projection engendre un vecteur contenant la somme des poids de chaque individu dans tous les buts choisis par l'utilisateur. Ainsi, nous avons un poids pour chaque individu du domaine représentant l'intérêt de l'utilisateur pour cet individu.

4.1.2 E

XEMPLE

Considérons une matrice mettant en relation 5 items avec 3 buts par un poids:

Dans cette matrice, les poids donnent un indice de pertinence (convenance) de l'item dans le but correspondant. Par exemple, l'item a un poids de dans le but , ce qui le place comme item le plus pertinent dans ce but, par rapport aux poids des autres items sur celui-ci.

Soit un utilisateur intéressé par les buts et . Ainsi, le vecteur de profil de noté est :

Le projeté de sur le profil de représentant l'intérêt de l'utilisateur sur les items du domaine est :

Ainsi, selon les buts de l'utilisateur et la matrice , l'item censé lui convenir le mieux parmi les 5 items est . Néanmoins dans notre problème, nous ne cherchons pas à proposer à l'utilisateur l'item qui lui correspond au mieux, mais une combinaison d'items dont l'ensemble lui convient.

4.2 PHASE DE RECHERCHE COMBINATOIRE

Grâce au vecteur projeté obtenu dans la phase de projection précédente, nous avons, pour chaque utilisateur, ses intérêts sur chaque individu du modèle de domaine. Ainsi, la phase suivante va consister à rechercher une meilleure combinaison de ces individus. Pour ce faire, plusieurs questions se posent:

- quelle doit être la forme de la combinaison ? Autrement dit, de quel type d'éléments doit-elle être composée? - qu'est-ce qui détermine la pertinence d'une combinaison par rapport à une autre?

Les deux premières questions amènent à la définition de plusieurs concepts qui seront présentés dans les parties suivantes. La troisième question fait apparaître un problème d'optimisation combinatoire pour lequel il est nécessaire d'utiliser un algorithme d'optimisation. Pour cette recherche combinatoire, les individus du domaine à combiner sont appelés items.

4.2.1 F

ORME DE LA CO MBINAIS ON

Une combinaison d'items peut prendre plusieurs formes, cela dépend du genre de proposition désirée dans l'application. Pour cela, nous définissons un pattern de combinaison. Le pattern définit le type des différents items, leur position et leur nombre dans la combinaison. Un item peut avoir plusieurs types. Ces derniers correspondent aux classes parentes de l'individu dans l'ontologie de domaine. Par exemple, dans la Figure 12, le type premier de l'item « Four n°405 » est « Four à chaleur tournante », mais aussi, en remontant dans l'arborescence de ses classes parentes dans l'ontologie de domaine, « Four », « Appareil électroménager » et « Thing ».

FIGURE 12.EXTRAIT D'UNE HIERARCHIE DE CLASSES D'UNE ONTOLOGIE DE DOM AINE

Ainsi, le pattern de combinaison est défini comme un vecteur montrant la position, le type et le nombre d'items de la combinaison à renvoyer:

est le nombre d'items de la combinaison et est l'identifiant de classe de l'ontologie de domaine désignant le type de l'item désiré à la position de la combinaison, . Le pattern donne donc la forme de toute combinaison à proposer à l'utilisateur dans l'application.

Un exemple de pattern de combinaison peut être :

4.2.2 P

ERTINENCE D

'

UNE CO MBINAISON

Le pattern décrit la forme que doit avoir une combinaison. Cependant, comment pouvons-nous comparer deux combinaisons avec des items différents respectant ce pattern? Pour répondre à cette question, il faut définir la notion de pertinence d'une combinaison. Elle représente la pertinence d'une combinaison pour un utilisateur donné. La pertinence d'une combinaison pour un utilisateur est représentée par une fonction , où est la valeur de pertinence. Plus est élevé, meilleure est la combinaison pour l'utilisateur . Le vecteur

projeté de la phase précédente donnant l'intérêt de l'utilisateur pour chaque individu/item du domaine, la fonction donnant la pertinence d'une combinaison de ces items pour un utilisateur donné se base nécessairement sur ce vecteur. Malgré ce constat, il n'est pas possible de définir une fonction générique de pertinence d'une combinaison. La pertinence dépend du domaine d'application. Par exemple, pour une application touristique, Il serait possible d'utiliser les coordonnées géographiques des items et de l'utilisateur pour définir une fonction de pertinence. Dans un système de recommandation de produits électroménagers sous forme de cuisines aménagées, la fonction de pertinence peut, par exemple, aussi se baser sur la divergence des couleurs des différents items.

Dans le cas le plus simple, la fonction de pertinence peut simplement être la somme des poids d'intérêts de l'utilisateur pour les items de la combinaison, issue du vecteur projeté. Mais cela peut être beaucoup plus complexe, elle peut être la composition de plusieurs fonctions.

4.2.3 P

ROBLEME DE RECHERCHE DE LA MEILLEURE CO MB INAI SON

Suivant le pattern de combinaison et la fonction de pertinence, il est possible de construire des combinaisons et de les comparer. Ainsi, le problème de recherche de la meilleure combinaison pour un utilisateur donné est solvable en triant l'ensemble des combinaisons réalisables (combinaisons qui vérifient le pattern) suivant leur valeur de pertinence pour cet utilisateur. Une combinaison est aussi appelée solution du problème. Néanmoins, sauf cas particulier (nombre d'items faibles, pattern constitué de très peu d'éléments, espace d'items non discret permettant un tri sans énumération de toutes les solutions, ...), trier les solutions suivant leur pertinence revient à toutes les parcourir et à comparer les valeurs de pertinence. Une telle procédure n'est pas envisageable pour trouver la meilleure solution en un temps raisonnable pour des applications de recommandations temps réel. Ce problème est un problème d'optimisation combinatoire. En optimisation combinatoire, on considère un espace discret d'items dans lequel il faut rechercher le meilleur sous-ensemble (combinaison) réalisable selon une fonction « objectif ». Cette fonction « objectif » correspond à la fonction de pertinence évoquée précédemment. Ce genre de problème peut être résolu par des métaheuristiques qui proposent des solutions proches ou égales à la meilleure solution. Contrairement à des algorithmes basiques d'énumération de toutes les solutions possibles, une métaheuristique parcourt l'espace des solutions de manière non-linéaire. Elle possède un caractère semi-aléatoire.

Il n'y a pas de méthode générique pour le problème de recherche de meilleure combinaison. Certains algorithmes se prêtent mieux que d'autres suivant le niveau d'exigence en termes de qualité et de vitesse d'obtention d'une solution ou suivant la complexité de la fonction de pertinence (il peut y avoir plusieurs fonctions à optimiser). On peut aussi vouloir toute une population de bonnes solutions, plutôt qu'une seule solution, cela dépend de l'application. Il existe une multitude de métaheuristiques, les principales seront abordées dans la partie « Les métaheuristiques » du chapitre suivant.