Une approche centrée sur le concepteur

Sensibilité au contexte

Définition

Un logiciel est dit sensible au contexte, lorsqu’il a la capacité de mesurer et de réagir à des informations contextuelles [124]. Une information est considérée comme contextuelle dès lors qu’elle concerne directement ou indirectement l’utilisateur ou le logiciel lui-même [125]. A partir d’une analyse basée sur la théorie de l’activité, Cassens et al. [126] divisent les informations contextuelles en deux catégories : les informations relatives à l’environnement et au domaine sont fixes et n’évoluent pas avec l’activité de l’utilisateur. Les informations relatives à l’activité de l’utilisateur évoluent quant à elles en temps réel en fonction des actions de celui ou celle-ci.
Un logiciel sensible au contexte analyse donc les données contextuelles afin de fournir à l’utilisateur, des informations et services adaptés à l’activité de celui ou celle-ci [125], [127]–[130]. Des logiciels sensibles au contexte sont utilisés dans de très nombreux domaines. Les approches sensibles au contexte sont couramment utilisées pour la recherche et la recommandation d’informations [131], [132]. L’objectif est de présenter aux utilisateurs les informations dont ils ont besoin pour leur activité.

Outils sensibles au contexte dans l’industrie manufacturière

Dans l’industrie manufacturière, on retrouve plusieurs exemples d’outils sensibles au contexte. Dhuieb et al. [133] développent une application pour recommander, en temps réel, les informations nécessaires au travail d’ouvriers en fonction de leur contexte. Plusieurs autres outils sensibles au contexte ont été proposés par la communauté scientifique pour des applications en usine [134]–[136]. Ces outils permettent notamment d’adapter les informations recommandées et les services fournis en fonction du niveau d’expertise des utilisateurs.
Il existe peu d’exemples d’outils sensibles au contexte dédiés à la conception. On peut noter les travaux de Rowson et al. [137], lesquels avancent l’idée d’un outil de recommandation de pièces déjà conçues en fonction du contexte des concepteurs, notamment à partir d’une analyse des interactions homme-machine. Kim et al. [111] évoquent aussi la possibilité d’interpréter contextuellement les besoins des concepteurs afin de recommander des règles adaptées. Les auteurs concentrent leur travail sur les techniques d’interprétation du langage naturel et de recherche de règles. La sensibilité au contexte est par conséquent peu explorée par les auteurs. Ces travaux présentent donc l’assistant de conception sensible au contexte comme un objectif de recherche souhaitable. En effet, la possibilité pour un assistant cognitif de répondre en temps réels aux besoins du concepteur en lui apportant les informations avec parcimonie au vu de son contexte est l’une des clés pour le développement d’un assistant centré sur le concepteur.

Modéliser les informations contextuelles

Comme pour la modélisation de graphes de connaissances, il n’existe pas de méthode établie pour modéliser des informations contextuelles. On trouve donc dans la littérature autant de modèles que d’applications. Dans cette partie, nous allons identifier les structures les plus rependues ainsi que les méthodes et démarches existantes pour la modélisation de contextes de conception.
Da Cunha Mattos et al. [138] proposent l’une des rares tentatives de modélisation du contexte dans un cas général (Figure 12). On y retrouve la position centrale de l’utilisateur, ses tâches, ainsi que les différents humains, logiciels ou machines avec lesquels il est en interaction. Ils présentent également une ontologie décrivant la structure et les processus des logiciels sensibles au contexte. L’approche la plus courante est la division d’un contexte global en différents sous-contextes plus spécifiques. Gu et al. [139] proposent un modèle général permettant de relier plusieurs sous-contextes spécifiques à plusieurs domaines.
Figure 12: Modèle des données contextuelles proposé par Da Cunha Mattos et al. [138]
Ces modèles de données contextuelles spécifiques à un domaine d’application sont les plus nombreux dans la littérature. On retrouve des modèles pertinents pour le fonctionnement d’usines [133], l’éducation [140], la recherche d’informations [141], [142] et les applications mobiles [143]. On peut tirer plusieurs conclusions de l’analyse de ces différents exemples. Dans leur revue des modèles de données contextuelles, Alami Merrouni et al. [144] insistent sur l’importance d’un cadre pour la modélisation des données contextuelles. Ce cadre prend systématiquement la forme d’une taxonomie, séparant les données contextuelles en plusieurs sous-ensembles cohérents, que nous appellerons sous-contextes dans ce mémoire.
Pour représenter le contexte en usine, Dhuieb et al. [133] considèrent par exemple trois sous-contextes : un sous-contexte opérationnel qui comprend les tâches et activités des salariés, un sous-contexte organisationnel comprenant l’organigramme de l’entreprise et un sous-contexte de l’utilisateur comprenant les compétences et expertises de celui ou celle-ci. Dans le domaine de la recherche d’informations sensible au contexte, Tamine-Lechani et al. [141] proposent l’une des taxonomies les plus abouties, composée de 5 sous-contextes (Figure 13).
A notre connaissance, il n’existe pas de modèle pour modéliser un contexte de conception dans l’industrie. Les publications présentant des approches sensibles au contexte dans ce domaine [111], [137] ne détaillent ni la capture des informations contextuelles ni leur structuration.

Systèmes de recommandation

La recommandation d’informations à partir d’un graphe de connaissances est un élément essentiel de l’informatique ubiquitaire. L’objectif d’un algorithme de recommandation est d’extraire, d’une base de données, des informations pertinentes au vu du besoin d’un utilisateur. Les systèmes de recommandation sont souvent classés en deux grandes catégories : la recommandation collaborative et la recommandation par le contenu. Cependant, la recherche sur les systèmes de recommandation est très active et de nouvelles approches sont régulièrement proposées et testées par la communauté scientifique [145], [146]. Dans cette partie, nous allons étudier l’état de l’art des systèmes de recommandation et lister les approches les plus fréquentes dans le but d’identifier les mieux adaptées à notre contexte.

Recommandation collaborative

La recommandation collaborative est basée sur une hypothèse sociale qui stipule que des utilisateurs consultant les mêmes contenus ou les notant de façons similaires, partageront probablement les mêmes intérêts. Un utilisateur se verra donc recommander des éléments avec lesquels des profils similaires ont interagis. Pour faire des recommandations, les algorithmes se basent sur les goûts des utilisateurs en analysant leurs évaluations ou leur activité. Cette approche est très courante sur les réseaux sociaux [147] ou pour les recommandations de films [148] par exemple.
Ces algorithmes reposent souvent sur un graphe pondéré bi-parti composé de deux labels : les utilisateurs et les items [149], [150]. La Figure 14 donne un exemple de graphe bi-parti pour la recommandation collaborative. Les relations pondérées entre utilisateurs et items correspondent souvent à des notes ou à des commentaires d’utilisateurs. Ces données sont utilisées par les algorithmes pour calculer des scores de similarités entre les utilisateurs et les articles. Un utilisateur se verra alors recommander les articles avec lesquels il a le plus haut score. Une revue des systèmes de recommandation collaboratifs est proposée par Su et Khoshgoftaar [151]. On peut également noter la proposition de Huang et al. d’un système de recommandation collaboratif et sensible au contexte [152].

Recommandation par le contenu

La recommandation basée sur le contenu utilise un set de tags (concepts, sujets, domaines, etc.) pour décrire les utilisateurs (centres d’intérêt, âge, sexe, etc.) et les articles (catégorie, coût, etc.) [153]. Ces tags sont attribués par les utilisateurs lors de la création d’un profil ou lors de la publication d’un item. Ils peuvent aussi être déduits de l’activité des utilisateurs. Le système de recommandation calcule alors des scores de similarité basés sur le nombre de tags communs entre un utilisateur et des articles ou d’autres utilisateurs. De nombreuses méthodes de calcul de la similarité existent, cependant, la méthode cosinus est la plus répandue [154].

Analyse des structures de graphes

Le récent déploiement des technologies de traitement du langage naturel et de sensibilité au contexte a mené à de nouveaux types de graphes plus hétérogènes pour lesquels de nouvelles méthodes de recommandation ont dû être inventées. Ces nouvelles méthodes, appelées analyse des parcours, se basent sur l’étude de la structure des graphes. Le nombre de parcours entre deux nœuds ainsi que la longueur de ces parcours peuvent être utilisés pour calculer un score de similarité entre ces nœuds [155], [156]. Dans le cadre du traitement du langage naturel, cette méthode est répandue pour calculer des similarités sémantiques entre des textes, phrases ou mots [157]–[159].
Pour faire des recommandations, les algorithmes utilisant cette approche considèrent un ensemble de nœuds, sélectionnés par l’utilisateur ou le système, et qui représentent le besoin de l’utilisateur ou son contexte [83]. Ils recommandent alors les nœuds les plus similaires à cet ensemble. Cependant, les calculs de similarité de ce type sont complexes et requièrent l’exploration de tous les parcours existants entre tous les nœuds concernés. Ces calculs ne semblent donc pas adaptés à de la recommandation en temps réel sur un graphe évolutif de données contextuelles.
Plusieurs méthodes sont donc spécifiquement adaptées à la recommandation contextuelle. Bogers [160] propose un algorithme nommé ContextWalk, lequel se base sur l’analyse de parcours aléatoires dans le graphe. Dans un graphe de N nœuds, l’auteur considère un espace vectoriel de dimension N, chaque dimension représentant un nœud. Il définit un vecteur de position probabiliste où ( ), la valeur de pour la dimension , est égale à la probabilité pour que la position de la marche aléatoire soit sur le nœud . Le vecteur , respecte donc l’équation 1 ci-dessous. ( ) ∈ [0, 1] ; ∑ ( ) = 1 =1
Equation 1 : Vecteur de position
L’auteur considère de plus une matrice appelée matrice probabiliste de transition, où ( , ) est égale à la probabilité, si la position de la marche aléatoire est sur le nœud , que la position de la marche soit sur le nœud au prochain pas. La matrice permet donc d’effectuer des pas aléatoires dans le graphe comme décrit par l’équation 2, où est le vecteur de position probabiliste au pas numéro .
Equation 2 : Pas aléatoire dans le graphe à l’aide de la matrice de transition
La marche aléatoire est initialisée par le vecteur de position initiale 0 qui représente le contexte et le besoin de l’utilisateur. De façon similaire aux autres technologies d’analyse des parcours, les nœuds de départs peuvent être sélectionnés par le système ou l’utilisateur lui-même. Cette approche a l’avantage de considérer l’ensemble du graphe et des sous-contextes existants à chaque recommandation. Après un nombre de pas dépendant de la taille du graphe exploré, le système lit le vecteur et recommande les nœuds associés à la plus forte probabilité dans une catégorie souhaitée. Cette catégorie peut être un label spécifique, comme le label film dans l’exemple de Bogers, mais elle peut aussi être un sous-contexte afin de suggérer des éléments contextuels pertinents pour de futures recommandations.

Synthèse de l’état de l’art sur une approche centrée sur le concepteur

Dans la partie précédente, nous avons démontré le besoin d’une nouvelle approche centrée sur l’utilisateur afin d’améliorer l’utilisation des règles de conception. Dans cette partie, nous avons analysé les différentes technologies permettant de mettre en place cette nouvelle approche.
Cette approche s’inscrit dans le cadre de l’informatique ubiquitaire, un ensemble de technologies visant à l’intégration fluide de l’informatique dans les activités humaines. Elle repose sur deux piliers technologiques.
La sensibilité au contexte est la capacité qu’a un logiciel de réagir à son environnement. Le contexte est un concept large regroupant les informations relatives à l’utilisateur du logiciel, au logiciel lui-même ou à leur environnement. Plusieurs outils industriels utilisent déjà cette approche, notamment pour la recommandation d’informations dans des usines en fonction du contexte des différents ouvriers [134]–[136]. Les informations contextuelles sont généralement structurées en différentes dimensions ou sous-contextes. Cependant, il n’existe aucun modèle permettant de représenter le contexte d’un concepteur dans l’industrie manufacturière.

Formation et coursTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *