Mesures de similarité pour comparer des épisodes dans des traces modélisées Mesures de similarité pour comparer des épisodes dans des traces modélisées Raafat Zarka1,2 , Amélie Cordier1,3 , Elöd Egyed-Zsigmond1,2 , Luc Lamontagne4 , and Alain Mille1,3 1 2 3 4 Université de Lyon, CNRS INSA-Lyon, LIRIS, UMR5205, F-69621, France Université Lyon 1, LIRIS, UMR5205, F-69622, France Department of Computer Science and Software Engineering, Université Laval, Québec, Canada, G1K 7P4 [email protected], [email protected], [email protected], [email protected], [email protected] Résumé : Cet article rend compte d’une mesure de similarité pour comparer des épisodes de traces modélisées. Une trace modélisée est un enregistrement structuré d’observations capturées à partir des interactions entre des utilisateurs et un système informatique. Un épisode est une sous-partie de la trace modélisée, décrivant une tâche particulière exécutée par l’utilisateur. Notre méthode propose une adaptation de l’algorithme de Smith-Waterman pour la comparaison d’épisodes. Cet algorithme est à la fois précis quant aux séquences temporelles qu’il identifie, et tolérant au bruit généralement présent dans les traces que nous traitons. Nos évaluations montrent que notre approche offre des résultats tout à fait satisfaisants à la fois en qualité et en temps de réponse. Nous illustrons son utilisation dans le cadre d’une application de recommandation de séquences de vidéo. Mots-clés : mesures de similarité, traces modélisées, recommandations, distance d’édition, interaction homme-machine. 1 Introduction Depuis quelques années, nous observons un intérêt croissant de la communauté pour l’analyse de l’activité des utilisateurs sur le Web. Une des raisons est qu’en observant l’activité des utilisateurs, il est possible d’en apprendre beaucoup sur leurs comportements et leurs préférences. Ces RJCIA 2013 connaissances apprises permettent ensuite d’améliorer la qualité des services qui leurs sont proposés. Nous nous intéressons à cette question dans le cadre d’une collaboration avec la société Villeurbannaise Webcastor 1 . Plus particulièrement, nous travaillons sur l’application Wanaclip 2 . Cette application Web permet à des utilisateurs de composer des clips vidéo en compilant des éléments audiovisuels provenant de plusieurs sources. Wanaclip dispose d’un système de recommandations intégré qui guide les utilisateurs à la fois dans le processus de sélection des vidéos, et dans l’enchaı̂nement des actions à effectuer pour fabriquer des clips de qualité. Le moteur de recommandations est alimenté par des traces d’interactions collectées lors des usages précédents de l’application. Une trace d’interaction est un enregistrement des actions effectuées par l’utilisateur d’un système. Nous soutenons que ces traces permettent de capturer des inscriptions des expériences des utilisateurs. Les M-Traces (pour Modeled Traces) diffèrent des logs car elles disposent d’un modèle qui décrit les éléments qu’elles contiennent. Ces éléments sont appelés obsels (pour observed elements). Une M-Trace contient donc à la fois des obsels temporellement situés et le modèle de trace qui caractérise ces obsels et leurs relations. Chaque obsel possède au moins un type et deux marqueurs temporels (début et fin). Les obsels ont un nombre variable d’attributs, et possèdent des relations avec les autres obsels. Chaque type d’obsel définit les types et les valeurs possibles pour les attributs. Une description détaillée du domaine des M-Traces est disponible dans Settouti (2011). Un épisode est une portion d’une trace modélisée dont la structure peut être complexe. Calculer la similarité entre deux épisodes est donc un problème différent du problème de calcul de similarité traditionnellement rencontré en RàPC, car les mesures de similarité traditionnelles s’appliquent mal. Dans cet article, nous nous intéressons au problème du calcul de similarité entre deux épisodes contenus dans des traces modélisées. Pour cela, nous définissons une nouvelle mesure de similarité qui s’appuie sur deux composants principaux : une mesure de similarité utilisée pour comparer les obsels ayant une structure potentiellement complexe ; et un algorithme pour combiner les mesures de similarité entre obsels afin de comparer les épisodes. L’algorithme que nous proposons est une adaptation de l’algorithme présenté dans Smith & Waterman (1981). Nous avons implémenté 1. www.webcastor.fr 2. www.wanaclip.eu Mesures de similarité pour comparer des épisodes dans des traces modélisées notre proposition sous forme d’un service Web dans T Store, un système de gestion de bases de traces qui permet de stocker, traiter et exploiter les traces modélisées (Zarka et al. (2013)). Nous avons appliqué notre proposition dans le cadre de Wanaclip afin de fournir des recommandations contextuelles aux utilisateurs. Ce papier est organisé de la façon suivante. La section 2 présente des travaux relatifs à la problématique des mesures de similarité dans les données séquentielles. Notre proposition de mesure de similarité entre obsels est présentée dans la section 3. Dans la section 4, nous décrivons l’algorithme de calcul de similarité entre épisodes dans des M-Traces. Dans la section 5, nous présentons les expérimentations pour évaluer les performances de l’approche. La section 6 conclut l’article. 2 Mesures de similarités pour les données séquentielles Il existe différentes approches de comparaison de chaı̂nes de caractères qui peuvent être utilisées pour définir des mesures de similarité dans les données séquentielles. Une comparaison détaillée de trois des plus importantes classes de mesures de similarité (i.e. distance d’édition, sac de mots et String kernels) est proposée dans Rieck (2011). Dans cette section, nous présentons certaines de ces mesures et leur usage dans différents domaines. 2.1 Définir des mesures de similarité Une des premières approches est la notion de distance d’édition entre des chaı̂nes de caractères proposée par Hamming (1950) et Levenshtein (1966). Ces mesures proviennent du domaine des télécommunications et étaient principalement utilisées pour la détection des données érronnées dans les transmissions. Elles permettent de calculer la distance d’édition minimum entre deux chaines en utilisant le nombre d’opérations d’éditions nécessaires pour passer d’une chaine à l’autre (insertion, suppression, substitution). La méthode décrite dans Needleman & Wunsch (1970) effectue un alignement global de séquences. L’algorithme décrit dans Smith & Waterman (1981) effectue un alignement local, ce qui est plus pertinent pour comparer des séquences plutôt dissimilaires, qui contiennent probablement des régions de similarité importantes. Une autre approche de comparaison repose sur l’utilisation d’espaces de vecteurs (sac de mots). Cette approche provient des travaux en recherche d’information et implémente une solution de comparaison de chaı̂nes de RJCIA 2013 caractères en représentant des données séquentielles dans un espace de vecteurs Salton et al. (1975). Ce concept a été étendu à la notion de ngrams pour la comparaison approximative (Damashek (1995)). Un n-gram est une séquence de n éléments dans une séquence de texte donnée. L’approche à base d’espaces de vecteurs est très utilisée pour l’analyse de documents textuels. L’approche d’apprentissage à base de noyaux est une classe récente de mesures de similarité dérivée des modèles de probabilité génératifs. Plusieurs noyaux ont été développés pour traiter les données séquentielles. Ces travaux s’appuient sur les travaux originaux de Watkins (1999) et sont étendus en variantes pour des domaines spécifiques, tels que les String kernels, très utilisés dans les travaux de traitement automatique de la langue (Lodhi et al. (2002)) et en bio-informatique (Cuturi et al. (2006)). 2.2 Mesures de similarité en raisonnement à partir de cas Dans le domaine du RàPC, des mesures de similarité pour les séquences complexes ont également été développées. L’environnement pour le raisonnement à partir d’épisodes proposé par Sànchez-Marrè et al. (2005) fournit des mécanismes pour représenter, retrouver et apprendre des épisodes ayant un dimension temporelle. Une mesure de confiance pour l’adaptation de workflows, qui s’appuie sur un mécanisme d’introspection dans la base de cas, est proposé dans Minor et al. (2012). Le système CeBeTA (Valls & Ontañón (2012)) combine une mesure de similarité sous forme de distance d’édition avec une approche de réutilisation de routines de transformation de texte. Cette méthode permet de générer des solutions à des problèmes de modification de textes. Une structure de cas spécifique et une distance associée ont été proposées dans Montani & Leonardi (2012). Les auteurs utilisent cette approche pour retrouver des traces similaires à la trace courante. Les auteurs utilisent un graph de distance d’édition construit à partir des traces d’exécution. Cela leur permet de garantir que les actions enregistrées dans les traces correspondent toujours à la réalité. Notre approche s’appuie sur une mesure de similarité entre obsels, mesure qui permet de comparer leur contenu (dates, utilisateurs, types et valeurs). La plupart de ces approches permettent une comparaison d’éléments homogènes (lettres, symboles). Dans cet article, nous nous intéressons plus particulièrement à des traces qui contiennent des symboles qui ne sont pas homogènes, et sont donc moins faciles à comparer. Pour cela, nous proposons une approche inspirée de l’algorithme de Smith & Waterman (1981), que nous avons enrichi afin de prendre en compte la complexité des éléments que Mesures de similarité pour comparer des épisodes dans des traces modélisées nous devons comparer. Nous avons choisi cet algorithme car, en l’enrichissant avec notre mesure de similarité entre obsels, il présente toutes les propriétés attendues pour la comparaison d’épisodes, à savoir : le traitement de données séquentielles, la tolérance aux variations dans les représentations, un fort degré de possibilités de personnalisation, et un temps de réponse satisfaisant pour une utilisation en temps réel. 3 Mesures de similarité entre obsels Afin de calculer la similarité entre obsels, il est nécessaire de définir des mesures de similarité locales entre les types d’obsels, les utilisateurs, les attributs, et les dates, autant d’éléments importants dans la composition d’un obsel. Définition 1 Soit simobs (o1 , o2 ) une mesure de similarité entre les obsels o1 = {c1 , Ao1 , u1 , st1 , et1 } et o2 = {c2 , Ao2 , u2 , st2 , et2 } telle que : simobs (o1 , o2 ) = α × simobstype (c1 , c2 ) + β × simobsattr (Ao1 , Ao2 ) +γ × simobsuser (u1 , u2 ) + δ × simobstime (st1 , et1 , st2 , et2 ) (1) avec : – simobstype (c1 , c2 ) : similarité entre les types d’obsels, – simobsattr (Ao1 , Ao2 ) : similarité entre les attributs, – simobsuser (u1 , u2 ) : similarité entre les utilisateurs, – simobstime (st1 , et1 , st2 , et2 ) : similarité temporelle, – α, β, γ, δ : poids, avec (α + β + γ + δ) = 1 (normalisation). La mesure de similarité entre obsels simobs (o1 , o2 ) est une valeur normalisée ∈ [0, 1] puisque toutes ses mesures composantes (simobstype , simobsattr , simobsuser , simobstime ) sont normalisées et que la somme des poids est égale à 1 (α + β + γ + δ) = 1. C’est l’expert qui définit ces valeurs. 3.1 Similarité entre types d’obsels simobstype (c1 , c2 ) Deux types d’obsels différents peuvent être considérés comme similaires s’ils partagent un certain nombre de propriétés communes. Par conséquent, nous proposons de définir une matrice de substitution pour les types d’obsels Sobstype (|C| × |C|). En bio-informatique et en biologie évolutionnaire, une matrice de substitution décrit la façon selon laquelle RJCIA 2013 un caractère d’une séquence se transforme en un autre caractère au fil du temps. Nous considérons que la matrice de substitution contient des valeurs normalisées entre 0 et 1. La matrice de substitution la plus simple est une matrice dans laquelle chaque type d’obsel dans (c ∈ C) est considéré similaire à lui-même, mais totalement dissimilaire à tous les autres types d’obsels. Définition 2 Soient deux types d’obsels c1 , c2 ∈ C, nous définissions leur similarité ainsi : simobstype (c1 , c2 ) = Sobstype (c1 , c2 ) ∈ [0, 1] (2) Avec : – C l’ensemble de tous les types d’obsels – S une matrice de substitution |C| × |C| – Les lignes et les colonnes de S sont des types d’obsels. Chaque élément de la matrice est une valeur normalisée représentant la distance entre deux types d’obsels. La matrice de substitution dépend des obsels définis dans l’application. Par défaut, elle est définie manuellement par un expert. 3.2 Similarité entre attributs simobsattr (Ao1 , Ao2 ) Lorsque deux obsels sont de même type, il est facile de les comparer. En revanche, lorsque deux obsels sont de types différents, une méthode de comparaison spécifique, souvent complexe, doit être définie. Par exemple, dans Wanaclip, nous avons les deux types d’obsels différents suivants : playVideo et infoVideo. Ces deux types contiennent des metadonnées sur les vidéos. Pour comparer leurs attributs, il est nécessaire de savoir quels sont les attributs communs et quels sont les attributs différents dans les types d’obsels. Définition 3 Nous définissons cA(Ao1 , Ao2 ) = {(ca1,i , ca2,i )}i=1,|cA(Ao ,Ao )| comme 1 2 l’ensemble des couples de types d’attributs communs parmi les ensembles d’attributs Ao1 et Ao2 où o1 , o2 sont deux obsels qui peuvent être de différents types. Un obsel ne peut pas avoir deux attributs du même type à moins qu’ils ne se situent pas au même niveau hiérarchique. Mesures de similarité pour comparer des épisodes dans des traces modélisées Définition 4 Pour deux obsels o1 ∈ O et o2 ∈ O, nous définissons la similarité entre les deux ensembles d’attributs de o1 et o2 comme : |cA(Ao1 ,Ao2 )| simobsattr (Ao1 , Ao2 ) = X wimportance (i) × simattr (ca1,i , ca2,i ) i=1 (3) où : – simattr (ca1,i , ca2,i ) ∈ [0, 1]. Pour chaque type d’attribut, il doit y avoir au moins une fonction de similarité pour comparer leurs valeurs. |cA(A ,A )| – sumi=1 o1 o2 wimportance (i) = 1. Les différents poids sont définis séparéments et peuvent être modifiés manuellement par l’utilisateur du système. Ils assurent que la similarité entre deux ensembles d’attributs est normalisée. 3.3 Similarité entre utilisateurs simobsuser (u1 , u2 ) Lorsque l’on compare des M-Traces, dans notre contexte, nous donnons la priorité aux traces de l’utilisateur courant et des utilisateurs de son groupe. Dans les applications sociales, cette dimension a beaucoup d’importance. En effet, les utilisateurs ayant des profils similaires et des intérêts communs sont plus susceptibles de faire des activités similaires et par conséquent de produire des M-Traces similaires (H. Kietzmann (2011)). Définition 5 La mesure de similarité entre deux utilisateurs u1 , u2 est définie comme suit : simobsuser (u1 , u2 ) = 1 λ × simprof ile (u1 , u2 ) + µ × simgroups (u1 , u2 ) u1 = u2 u1 6= u2 (4) avec : – simprof ile (u1 , u2 ) la similarité entre les profils des utilisateurs calculée en fonction de leurs intérêts et de leurs activités (valeurs entre 0 et 1). – simgroups (u1 , u2 ) le coefficient de similarité de Jaccard entre des groupes d’utilisateurs (Lipkus (1999)). – λ, µ : poids, avec λ + µ = 1. Cette mesure n’est pas utilisée pour le moment dans Wanaclip. RJCIA 2013 3.4 Similarité temporelle entre obsels simobstime (o1 , o2 ) Tel que défini dans le modèle de M-Traces, un obsel a généralement deux marqueurs temporels (début et fin). Pour le moment, nous définissons une similarité temporelle en nous appuyant uniquement sur la durée de l’obsel. Toutefois, la mesure de similarité temporelle pourrait facilement être étendue, par exemple en utilisant des relations d’intervalles telles que celles de Allen (1983). Définition 6 Soient deux obsels o1 , o2 ayant les mêmes marqueurs temporels (st1 , et1 ) pour o1 et (st2 , et2 ) pour o2 . Nous définissons la mesure de similarité temporelle entre obsels tel que : ( simobstime (o1 , o2 ) = 1 min(et1 −st1 ,et2 −st2 ) max(et1 −st1 ,et2 −st2 ) |(et1 − st1 ) − (et2 − st2 )| = 0 |(et1 − st1 ) − (et2 − st2 )| = 6 0 (5) où (et1 − st1 ) est la durée de o1 . Nous calculons le rapport entre les durées minimum et maximum de o1 , o2 pour obtenir une valeur normalisée. Par exemple, si t1 (2, 9), t2 (4, 14) alors simobstime (o1 , o2 ) = 0.7 4 Similarité entre épisodes Dans la section précédente, nous avons défini une mesure de similarité pour comparer deux obsels. Dans cette section, nous présentons une approche pour comparer les épisodes en nous appuyant sur la notion de distance d’édition minimum. Cette approche utilise la mesure définie plus haut. Elle exploite un algorithme de programmation dynamique qui résout les sous-problèmes de façon optimale et qui utilise ces solutions pour résoudre le problème initial de façon optimale. Nous utilisons l’algorithme de Smith & Waterman (1981) pour comparer les épisodes, et nous l’étendons en introduisant la notion de mesure de similarité entre obsels. 4.1 L’algorithme de M-Trace Smith-Waterman L’algorithme de Smith-Waterman est un algorithme bien connu pour résoudre les problèmes d’alignement local de séquences. Plutôt que de considérer chaque séquence comme un tout, l’algorithme compare toutes les longueurs possibles et optimise la mesure de similarité en fonction de cette comparaison. Nous avons adapté l’algorithme en utilisant la mesure de similarité décrite plus haut, ce qui le rend plus précis en ce qui Mesures de similarité pour comparer des épisodes dans des traces modélisées concerne l’aspect d’alignement temporel de séquences, et plus tolérant au bruit que nous rencontrons généralement dans les traces que nous traitons. Nous avons construit une matrice de substitution qui utilise les résultats des mesures de similarité entre obsels et une fonction d’écart qui permet d’ajuster les scores en fonction du nombre d’opérations d’insertions et de suppressions entre les obsels. Cette valeur représente le coût de remplacement d’un obsel par un autre. La méthode que nous proposons permet non seulement d’évaluer la similarité entre deux épisodes, mais aussi les opérations de transformation nécessaires pour passer d’un épisode à un autre (opération appelée alignement ). Connaı̂tre ces opérations de transformations s’avère particulièrement utile quand il s’agit de produire des recommandations à base d’épisodes. Définition 7 La fonction d’écart (gap) détermine les scores en fonction du nombre d’opérations d’insertion et de suppression dans le processus d’alignement de séquences. Dans la version actuelle de la mesure, pour tout obsel o, nous considérons que gap(o) = −1. Définition 8 Pour deux épisodes A, B, ∀a ∈ A ∪ {0 −0 }, b ∈ B ∪ {0 −0 }, nous définissons la matrice de substitution des obsels telle que : b =0 −0 gap(a) gap(b) a =0 −0 S(a, b) = (6) (sim (a, b) − 0.5) × 2 a ∈ A ∧ b ∈ B obs avec : – gap(a) ∈ [−1, 0] la fonction d’écart pour un obsel a ∈ A – 0 −0 le symbole de l’écart – simobs (a, b) ∈ [0, 1] la mesure de similarité entre obsels pour le couple a, b – (simobs (a, b)−0.5)×2 une conversion des valeurs de [0, 1] à [−1, +1] L’algorithme de M-Trace Smith-Waterman (cf. algorithme 1) compare deux épisodes A, B. L’algorithme calcule la similarité entre épisodes simepisode (A, B) et les alignements locaux L1 , L2 de A, B. La matrice de similarité des scores (H) entre un suffixe de A[1 · · · i] et un suffixe de B[1 · · · j] avec une taille de (|A| + 1 × |B| + 1), est construite durant l’exécution de l’algorithme. Tout d’abord, la première ligne et la première colonne sont initialisées à 0. Ensuite, l’écart est calculé pour chaque obsel dans (A ∪ B). Comme illustré sur la figure 1, l’algorithme itère sur RJCIA 2013 Algorithm 1 L’algorithme de M-Trace Smith-Waterman Données : A, B sont des épisodes à comparer Résultat : La mesure de similarité simepisode (A, B) et l’alignement local L1 , L2 HScore (i, 0) ← 0 ∀ 0 ≤ i ≤ |A| 1: . Initialisation de la matrice HScore (0, j) ← 0 ∀ 0 ≤ j ≤ |B| de similarité-score S(Ai , −) ← gap(Ai ) ∀ 1 ≤ i ≤ |A| 2: . Calculer l’écart des S(−, Bj ) ← gap(Bj ) ∀ 1 ≤ j ≤ |B| pénalités des obsels 3: 4: 5: 6: for i = 1 → |A| do for j = 1 → |B| do S(Ai , Bj ) ← (simobs (Ai , Bj ) − 0.5) × 2 . Remplir la matrice de substitution Score Pointeur None 0 Substitution 7: H(i, j) ← max H(i − 1, j − 1) + S(Ai , Bj ) Supprission H(i − 1, j) + S(Ai , −) H(i, j − 1) + S(−, Bj ) Insertion 8: end for 9: end for 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: L1 , L2 ← [ ] i, j ← max(Hi,j (i, j)) while (i > 0) ∧ (j > 0) ∧ (Hpointer (i, j) 6= ”N one”) do . Trace-back switch (Hpointer (i, j)) do case ”Substitution” push(L1 , Ai ) push(L2 , Bj ) i←i−1 j ←j−1 case ”Insertion” push(L1 , −) push(L2 , Bj ) j ←j−1 case ”Deletion” push(L1 , Ai ) push(L2 , −) i←i−1 end while simepisode (A, B) ← max(Hscore (i, j)) return L1 , L2 , simepisode (A, B) Mesures de similarité pour comparer des épisodes dans des traces modélisées chaque cellule dans H du haut à gauche vers le bas à droite (voir lignes 4 à 8). A chaque itération, l’algorithme permet de calculer la mesure de similarité entre les deux obsels Ai , Bj selon la définition 1. Le score de la cellule courante H(i, j) est le plus haut score parmi les trois valeurs de la matrice des scores de similarité (ligne 7) : la cellule voisine en haut à gauche H(i − 1, j − 1) est ajoutée à la similarité d’obsels Ai , Bj , la voisine de gauche et celle du haut sont ajoutées à la mesure d’écart. Nous gardons la trace des cellules aux valeurs les plus importantes de sorte à garder des informations sur la direction à suivre durant la construction de la matrice. Ces informations sont utilisées durant la procédure de backtrack pour obtenir le meilleur alignement possible. F IGURE 1 – Itérations de l’algorithme de Smith-Waterman. Pour obtenir le meilleur alignement local, nous recherchons Hopt = maxi,j H(i, j) et nous déclenchons une procédure de backtrack. Les cellules ayant les valeurs les plus hautes peuvent se trouver n’importe où. Pour trouver les alignements locaux, nous utilisons H(i, j) > seuil pour tous les i, j et nous déclenchons une procédure de backtrack. Pour obtenir le meilleur alignement local, nous commençons par les plus grandes valeurs de la matrice H(i, j) (ligne 12). Ensuite, nous retournons à l’une des positions H(i−1, j), H(i, j −1), et H(i−1, j −1) selon le mouvement qui a été utilisé pour construire la matrice (lignes 13 à 28). Nous poursuivons le processus jusqu’à atteindre une cellule de la matrice ayant pour valeur 0, ou la cellule H(0, 0). Une fois terminé, nous reconstruisons l’alignement de la façon suivante : en commençant par la dernière valeur, nous atteignons H(i, j) en utilisant le chemin calculé précédemment. Un mouvement diagonal correspond à un remplacement. Un mouvement du haut vers le bas correspond à une suppression. Un mouvement de gauche à droite correspond à une insertion. Le processus de backtrack s’arrête quand le score de 0 est atteint ou quand nous arrivons à la première ligne ou la première RJCIA 2013 colonne. L’algorithme retourne le score de similarité maximum Hopt et l’alignement L1 , L2 trouvé. Parfois, plusieurs alignements sont possibles, en particulier lorsqu’il y a plusieurs cellules dont la valeur est maximum. 5 Implémentation et évaluation Nous avons implémenté les mesures de similarité locales et l’algorithme de M-Trace Smith-Waterman sous forme de web service PHP au sein de l’environnement T Store. Tout client connecté à T Store peut exécuter le service pour comparer des obsels, des épisodes, des M-Traces, ou tout autre type de séquence. Cette implémentation nous permet de personnaliser les mesures de similarité en spécifiant chacun des poids utilisés dans la mesure (cf. définition 1). Il est également possible de personnaliser l’algorithme en changeant la matrice de substitution. De même, la fonction d’écart peut être modifiée, et il est possible de changer le spectre des valeurs des scores de similarité entre obsels (il est possible de l’étendre sur [−∞, +∞]. Par exemple, réduire le score de similarité entre obsels permet d’augmenter la probabilité que deux épisodes soient similaires. Si nous affectons une valeur négative à la substitution entre deux obsels, cela implique également une réduction de la probabilité de trouver des épisodes similaires. L’algorithme Smith–Waterman pour les M-Traces est raisonnablement gourmand en temps. Pour comparer deux épisodes E1 , E2 , la complexité est O(|E1 ||E2 |). De plus, il est assez facile d’optimiser l’algorithme. Par exemple, si l’on observe le processus de calcul de la matrice de similarité en Figure 1, on constate qu’il est possible d’optimiser le temps de calcul des scores de similarité. A chaque itération, tous les éléments de la diagonale ayant la même valeur peuvent être calculés en même temps. Par exemple, dans le premier cycle, seuls les éléments marqués comme (1) peuvent être calculés. Dans le second cycle, deux éléments marqués comme (2) peuvent être calculés. Dans le troisième cycle, trois éléments marqués comme (3) peuvent être calculés, etc. Nous avons implémenté un processus de collecte dans Wanaclip. Le gestionnaire de M-Traces capture les actions des utilisateurs et les stocke sous forme d’obsels dans T Store. Afin d’illustrer l’efficacité de notre algorithme, nous avons effectué des expérimentations en temps réel sur des épisodes générés aléatoirement. T Store et Wanaclip étaient tous les deux installés sur la même machine. Nous avons réalisé plusieurs tests, en faisant varier les poids utilisés dans la mesure de similarité entre obsels et les Mesures de similarité pour comparer des épisodes dans des traces modélisées valeurs de similarité utilisés dans la matrice de substitution. Nous avons comparé les résultats avec 100 épisodes de longueurs différentes, allant de 2 à 20 obsels. Nous avons utilisé environ 50 types d’obsels, dont 10 types fréquents. Les obsels ont 3 attributs en moyenne. La procédure a été répétée 10 fois, avec des poids différents, et le temps d’exécution a été moyenné sur l’ensemble de la procédure. Comme cela est indiqué sur la Figure 2, le temps d’exécution présente une croissance logarithmique. Il est composé du temps requis par les itérations de comparaisons, et le temps nécessaire au processus d’alignement. Le calcul des alignements n’est pas nécessaire pour l’évaluation de la mesure de similarité, mais cela est utile pour les recommandations. Sur la partie droite de la figure, nous observons qu’environ la moitié des mesures de similarité du test de comparaison ont été effectuées entre 0 et 5. Environ 25% correspondent à des non-correspondances, ce qui aide à éliminer de nombreux épisodes lors du processus de remémoration d’épisodes similaires pour la recommandation. F IGURE 2 – Evaluation de l’algorithme de M-Trace Smith-Waterman. L’observation la plus importante est les types d’obsels, la longueur des épisodes comparés (i.e. le nombre d’obsel dans chaque épisode) et le nombre d’attributs communs entre les épisodes comparés. Nous avons observé que l’alignement des épisodes est parfois meilleur lorsque l’on étend le spectre de la matrice de substitution. Toutefois, le temps d’exécution pour le spectre [−1, +1] est meilleur que le spectre étendu car il y a plus de valeurs (0) qui diminuent le nombre de pointeurs dans la matrice des score et conduit donc à moins de chemins possibles lors de la recherche d’alignements. RJCIA 2013 6 Conclusion Dans cet article, nous avons introduit une mesure de similarité qui permet de comparer des épisodes contenus dans des M-Traces. Comparer des épisodes est une tâche difficile, non seulement du fait de leur caractère séquentiel, mais aussi parce qu’ils sont composés d’obsels qui sont euxmêmes des objets complexes et donc difficiles à comparer. Notre méthode s’appuie sur deux composants principaux. Le premier est une mesure de similarité qui permet de comparer des obsels complexes. Le second est une adaptation de l’algorithme de l’algorithme de Smith-Waterman, qui s’appuie sur la mesure de similarité précédente pour déterminer la similarité entre deux épisodes. Cette méthode fournit non seulement une mesure de similarité entre deux épisodes, mais aussi l’ensemble des transformations requises de sorte à passer d’un épisode à l’autre (alignement), ce qui est particulièrement appréciable en entrée du processus de construction des recommandations. Les évaluations de la méthode ont montré que l’algorithme utilisé n’est pas consommateur en temps, et qu’il présente toutes les propriétés que l’on attend, à savoir : la possibilité de comparer des objets complexes, le calcul d’un score de similarité, des possibilités de personnalisation, etc. Nous avons implémenté cette mesure dans la plateforme T Store Zarka et al. (2013). Nous avons évalué la mesure dans le cadre de l’application Wanaclip (www.wanaclip.eu) afin de fournir aux utilisateurs de l’application des recommandations contextuelles qui s’appuient sur les traces des utilisateurs précédents. La prochaine étape est d’effectuer une évaluation approfondie de la qualité des recommandations afin de mieux paramétrer les mesures de similarité. Parmi les perspectives de ce travail, nous envisageons également de travailler sur la question de l’optimisation de l’algorithme de Smith-Waterman pour les M-Traces, et à son adaptation dans différents domaines. De plus, nous prévoyons d’utiliser les retours utilisateurs pour améliorer les paramètres de calcul de la mesure de similarité. Références A LLEN J. F. (1983). Maintaining knowledge about temporal intervals. Communications of the ACM, 26(11), 832–843. C UTURI M., V ERT J.-P., B IRKENES O. & M ATSUI T. (2006). A Kernel for Time Series Based on Global Alignments. 2007 IEEE International Conference on Acoustics Speech and Signal Processing ICASSP 07, 2(i), II–413–II–416. Mesures de similarité pour comparer des épisodes dans des traces modélisées DAMASHEK M. (1995). Gauging Similarity with n-Grams : LanguageIndependent Categorization of Text. Science, 267(5199), 843–848. H. K IETZMANN J. (2011). Social media ? Get serious ! Understanding the functional building blocks of social media, volume 54. H AMMING R. W. (1950). Error detecting and error correcting codes. Bell System Technical Journal, 29(2), 147–160. L EVENSHTEIN V. I. (1966). Binary codes capable of correcting deletions, insertions, and reversals. Soviet Physics Doklady, 10(8), 707–710. L IPKUS A. H. (1999). A proof of the triangle inequality for the Tanimoto distance, volume 26. L ODHI H., S AUNDERS C., S HAWE -TAYLOR J., C RISTIANINI N. & WATKINS C. (2002). Text Classification using String Kernels. Journal of Machine Learning Research, 2(3). M INOR M., I SLAM S. & S CHUMACHER P. (2012). Confidence in Workflow Adaptation. In ICCBR’12. M ONTANI S. & L EONARDI G. (2012). Retrieval and clustering for supporting business process adjustment and analysis. Information Systems. N EEDLEMAN S. B. & W UNSCH C. D. (1970). A general method applicable to the search for similarities in the amino acid sequence of two proteins. Journal of Molecular Biology, 48(3), 443–453. R IECK K. (2011). Similarity measures for sequential data. Wiley Interdisciplinary Reviews : Data Mining and Knowledge Discovery, 1(4), 296–304. S ALTON G., W ONG A. & YANG C. S. (1975). A vector space model for automatic indexing. Communications of the ACM, 18(11), 613–620. S ÀNCHEZ -M ARR È M., C ORT ÉS U., M ART ÍNEZ M., C OMAS J. & RODR ÍGUEZ RODA I. (2005). An Approach for Temporal Case-Based Reasoning : EpisodeBased Reasoning. In ICCBR, p. 465–476. S ETTOUTI L. S. (2011). M-Trace-Based Systems - Models and languages for exploiting interaction traces. PhD thesis, University Lyon1. S MITH T. F. & WATERMAN M. S. (1981). Identification of common molecular subsequences. Journal of Molecular Biology, 147(1), 195–197. VALLS J. & O NTA Ñ ÓN S. (2012). Natural Language Generation through CaseBased Text Modification. In ICCBR’12. WATKINS C. (1999). Dynamic Alignment Kernels. Advances in Large Margin Classifiers, 00(January), 39–50. Z ARKA R., C HAMPIN P.-A., C ORDIER A., E GYED -Z SIGMOND E., L AMON TAGNE L. & M ILLE A. (2013). TStore : A Trace-Base Management System using Finite-State Transducer Approach for Trace Transformation. In MODELSWARD 2013 : SciTePress.