3.3 Mise ` a jour de la cat´ egorie de l’utilisateur
4.1.2 Algorithme
Calcul de la similarit´e s´emantique dans le syst`eme
Dans un premier temps, l’expert s´electionne les concepts Co ⊆ C et les propri´et´es Rel ⊆
R de l’ontologie pertinentes pour le calcul des similarit´es. Par exemple, dans le domaine du
cin´ema, l’expert peut s´electionner les concepts Movie et Person et les propri´et´es hasActor et hasDirector et ´ecarter la propri´et´e hasMakeupArtist car l’´equipe des maquilleurs n’est pas pertinente pour ´evaluer la similarit´e entre deux films.
Des paires d’instances des concepts choisis sont ensuite form´ees et deviennent candidates au calcul. Chaque paire est compos´ee d’instances d’un mˆeme concept car il est inutile de calculer la similarit´e entre des instances de concepts diff´erents. Par exemple, dans le domaine du cin´ema, la similarit´e entre un film et une maison de production n’aurait aucun sens.
L’initialisation consiste `a affecter la similarit´e maximum (1) aux paires compos´ees d’ins-tances identiques et 0 aux autres.
sim0(i, j) =
1 si i = j
0 sinon (4.1)
La similarit´e s´emantiques est ensuite calcul´ee entre deux instances i et j de fa¸con it´erative. Encore une fois, si les deux instances sont identiques, leur similarit´e est ´egale `a 1. Autrement, la similarit´e de i et j est d´efinie par la moyenne des similarit´es des paires (i0, j0) reli´ees `a (i, j).
simk+1(i, j) = ( 1 si i = j P Ei,j simk(i0,j0) |Ei,j| sinon (4.2)
o`u Ei,j = {(i0, j0)|∃r ∈ Rel r(i, i0) ∧ r(j, j0)}
La similarit´e s´emantique est calcul´ee jusqu’`a atteindre un point fixe ou en fixant le nombre
d’it´erations au pr´ealable (le rang K maximum). Contrairement aux mesures classiques, la
pro-pagation de la similarit´e `a un certain rang k permet de prendre en compte la similarit´e au rang
k − 1 des paires d’instances du voisinage de la paire cible. Par cons´equent, chaque nouvelle
it´eration k prend en compte la similarit´e des paires d’instances se trouvant `a une distance1 k de la paire cible. La valeur de la similarit´e devient donc plus pertinente.
Cette mesure pr´esente l’avantage de pouvoir ˆetre calcul´ee hors ligne, ce qui lui permet de ne pas ajouter de temps de calcul au processus de recommandation.
L’algorithme 4.1 d´ecrit le d´eroulement du calcul de la similarit´e s´emantique dans le syst`eme ´
etant donn´es Inst ⊆ I, l’ensemble des instances des concepts s´electionn´es par l’expert, Rel ⊆ R, l’ensemble des propri´et´es s´electionn´ees par l’expert et , un nombre tr`es petit.
Algorithme 4.1 Calcul de la similarit´e s´emantique dans le syst`eme
1: proc´edure SemanticSimilarity(Inst, Rel, ))
2: k ← 0
3: pour tout (i, j) ∈ Inst2 faire
4: si i = j alors 5: simk(i, j) ← 1 6: sinon 7: simk(i, j) ← 0 8: fin si 9: fin pour
10: pointf ixe ← f aux
11: tantque ¬ pointfixe faire
12: pointf ixe ← vrai
13: pour tout (i, j) ∈ Inst2 faire
14: si i = j alors
15: simk+1(i, j) ← 1
16: sinon
17: Ei,j ← {(i0, j0) | ∃r ∈ Rel r(i, i0) ∧ r(j, j0)}
18: simk+1(i, j) ←P
Ei,j
simk(i0, j0) |Ei,j|
19: fin si
20: pointf ixe ← pointf ixe ∧ (simk+1(i, j) − simk(i, j)) ≤
21: fin pour
22: k ← k + 1
23: fin tantque
24: fin proc´edure
Exemple 1. Soient les films F1 : Sacr´e Graal et F2 : La vie de Brian, tous deux des Monty
Python. Leur similarit´e initiale est nulle car ce sont des instances diff´erentes.
Au rang 1, la similarit´e augmente car les deux instances sont reli´ees `a 21 instances en commun (2 r´ealisateurs, 6 auteurs, 8 acteurs, 2 langues, mˆeme genre, mˆeme pays). En d’autres termes, elles sont reli´ees `a 21 paires d’instances identiques parmi 112 paires :
sim1(F1, F2) = 21
112 = 0.19
.
Au rang 2, la similarit´e augmente consid´erablement : sim2(F1, F2) = 0.55
car son calcul est bas´e sur les similarit´es calcul´ees au rang 1. De ce fait, 61 paires reli´ees `a F1
et F2 ont une similarit´e entre 0 et 0.73. Par exemple, les deux acteurs Graham Chapman et
Terry Jones ont une similarit´e s´emantique ´egale `a 0.73 au rang 1.
4.1 La mesure de similarit´e s´emantique 67
Atteinte d’un point fixe
La similarit´e entre i et j augmente entre un rang k et un rang k + 1. Cette croissance est
facilement d´emontrable par un raisonnement par r´ecurrence.
D´emonstration. Soit
P (k) : ∀c ∈ C ∀(i, j) ∈ c2 simk+1(i, j) ≥ simk(i, j)
Montrons que la proposition est vraie pour k = 0. Si i = j : P (0) revient `a :
sim1(i, j) = sim0(i, j) = 1
Si i 6= j : P(0) revient `a :
sim0(i, j) = 0
sim1(i, j) = P Ei,jsim1(a, b) |Ei,j|
Nous savons que |Ei,j| est une constante positive et que ∀(a, b) ∈ Ei,j sim0(a, b) ≥ 0 (par Equa. 4.1).
Donc, P Ei,jsim1(a, b)
|Ei,j| ≥ 0 ⇒ sim1(i, j) ≥ 0
Il est clair que la proposition est vraie pour k = 0. Par cons´equent P (0) est vraie. Montrons que si P (k) est vraie, alors P (k + 1) est vraie aussi.
Supposons que P (k). Il faut montrer que P (k + 1) est vraie, soit : simk+2(i, j) ≥ simk+1(i, j)
Si i = j :
simk+2(i, j) = simk+1(i, j) = 1
Si i 6= j :
P (k + 1) ⇒ simk+2(i, j) − simk+1(i, j) ≥ 0 (4.3)
⇒ P Ei,jsimk+1(a, b)
|Ei,j| −
P Ei,jsimk(a, b)
|Ei,j| ≥ 0 (4.4)
⇒ P Ei,j(simk+1(a, b) − simk(a, b))
|Ei,j| ≥ 0 (4.5)
´
etant donn´e que |Ei,j| est une constante positive. ´
Etant donn´ee l’hypoth`ese de r´ecurrence, P(k) est vraie, on sait que simk+1(a, b) − simk(a, b) ≥ 0
.
Donc,P Ei,j(simk+1(a, b) − simk(a, b)) ≥ 0, et par cons´equent P (k + 1) est vraie.
On peut donc conclure que P (k) est vraie pour tout entier k.
Puisque la fonction sim admet 1 comme majorant, on peut conclure qu’il s’agit d’une fonction croissante et born´ee, et donc convergente. Autrement dit, le calcul de la similarit´e s´emantique atteint un point fixe.
Ajout de nouvelles donn´ees dans le syst`eme
La mise `a jour du syst`eme par l’introduction de nouvelles donn´ees rend les valeurs de simila-rit´e s´emantique obsol`etes. En effet, l’ajout d’une nouvelle instance ou d’une nouvelle propri´et´e, entre deux instances, influence les valeurs de similarit´e s´emantique du voisinage. De ce fait, nous avons d´efini une proc´edure de mise `a jour desdites valeurs.
L’ajout d’une instance et l’ajout d’une propri´et´e entre instances seront trait´es s´epar´ement. De ce fait, l’ajout d’une instance reli´ee `a d’autres instances existantes par le biais d’une pro-pri´et´e n´ecessite un travail incr´emental qui consiste `a ajouter l’instance puis la relier aux autres instances, les unes apr`es les autres. Ces deux proc´edures sont d´ecrites ci-apr`es.
Ajout d’une instance : On d´efinit l’ajout d’une instance comme ´etant un ajout simple
d’instance n’ayant aucune propri´et´e la reliant aux autres instances. Par cons´equent, ajouter une instance dans l’ontologie implique le calcul de toutes les paires contenant cette instance ainsi que les instances de mˆeme nature. La valeur de la similarit´e s´emantique entre les instances de chaque paire (i, j) n’a pas besoin d’ˆetre calcul´ee, pour tout rang k, est ´egale `a z´ero (un, dans le cas du couple(i, i)) ´etant donn´e qu’il n’existe aucune propri´et´e reliant i aux autres instances.
Relier deux instances existantes par une propri´et´e : Relier une instance a `a une instance
b influence la similarit´e s´emantique de chaque paire `a distance k de (a, b). L’algorithme de mise `
a jour des valeurs de similarit´e s´emantique est d´ecrit ci-dessous.
L’algorithme 4.2 d´ecrit le calcul de la similarit´e s´emantique entre deux instances i et j jusqu’`a un certain rang K (le plus grand rang atteint lors du calcul de la similarit´e s´emantique) ainsi que la mise `a jour des similarit´es des paires en reli´ees `a i et j.
4.1 La mesure de similarit´e s´emantique 69
Algorithme 4.2 Mise `a jour de la similarit´e s´emantique lors de l’ajout de nouvelles donn´ees
1: proc´edure Update sim(i, j, K)
2: pour tout k ∈]0, K] faire
3: Ei,j ← {(i0, j0) | ∃r ∈ Rel r(i, i0) ∧ r(j, j0)}
4: simk+1(i, j) =P Ei,j simk(i0, j0) |Ei,j| 5: si k < K alors 6: propagate(Ei,j, k + 1, {}) 7: fin si 8: fin pour
9: fin proc´edure
10: proc´edure propagate(Ei,j, k, Eok)
11: pour tout (i0, j0) ∈ Ei,j faire
12: si (i0, j0) /∈ Eok alors
13: Eok← Eok∪ {(i0, j0)}
14: Ei0,j0 ← {(i00, j00) | ∃r ∈ Rel r(i0, i00) ∧ r(j0, j00)}
15: simk+1(i0, j0) =P Ei0,j0 simk(i00, j00) |Ei0,j0| 16: propagate(Ei0,j0, k + 1, Eok) 17: fin si 18: fin pour
19: fin proc´edure