Mesures de similarité pour comparer des épisodes dans

publicité
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.
Téléchargement