• Aucun résultat trouvé

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

4.1.3 Complexit´e du calcul de la similarit´e s´emantique

Soient n la cardinalit´e de Inst ⊆ I, l’ensemble des instances des concepts s´electionn´es par l’expert, m le nombre maximum de propri´et´es par instance et K le plus grand rang atteint lors du calcul de la similarit´e s´emantique.

Complexit´e dans le pire cas du calcul de la similarit´e s´emantique dans tout le

syst`eme

Nous allons analyser l’algorithme 4.1.

Les boucles des lignes 3 et 13 sont effectu´ees sur toutes les paires d’instances du syst`eme. Le nombre de paires d’instances dans le syst`eme est ´egal `a n2 ´etant donn´e qu’il s’agit du produit (carr´e) cart´esien de Inst.

Le calcul effectu´e dans la boucle de la ligne 3 est de complexit´e constante, la complexit´e de cette boucle est donc le nombre d’it´erations, soit n2.

Le calcul effectu´e `a l’int´erieur de la boucle commen¸cant `a la ligne 13 met en œuvre les paires d’instances reli´ees `a la paire (i, j). Chaque instance i ∈ Inst ´etant en relation avec m autres

instances, implique qu’une paire (i, j) ∈ Inst2 est en relation avec m2 paires. La complexit´e de ce calcul est donc de l’ordre de m2.

La boucle de calcul de la similarit´e s´emantique pour un rang donn´e (ligne 13) a donc une complexit´e de n2× m2.

La boucle de calcul de la similarit´e s´emantique pour les K rangs (ligne 11) a donc une

complexit´e de n2× m2× K.

La complexit´e au pire de l’algorithme de calcul de la similarit´e s´emantique pour toutes les paires du syst`eme est donc de l’ordre de n2+ n2× m2× K, soit n2× m2× K.

Complexit´e dans le pire cas du calcul de la similarit´e s´emantique lors de l’ajout de

nouvelles donn´ees

Le calcul de la similarit´e s´emantique lors de l’ajout d’une relation entre deux instances est d´ecrit dans l’algorithme 4.2.

Le calcul de la similarit´e entre deux instances (lignes 3 et 14) met en œuvre les paires

d’instances reli´ees `a la paire courante et qui sont au nombre de m2 (voir section pr´ec´edente).

La proc´edure Propagate est r´ecursive. Elle est appel´ee pour chaque paire reli´ee `a une

paire qui a ´et´e mise `a jour. Au pire, toutes les paires du syst`eme seront concern´ees, soit n2. ´

Etant donn´e que pour chaque paire d’instances, le calcul de la similarit´e a une complexit´e de m2, la complexit´e de la propagation est de n2× m2.

De ce fait, la complexit´e de l’algorithme pour l’ajout d’une seule instance dans le syst`eme pour tous les rangs est de K × (m2+ n2× m2), soit de l’ordre de K × n2× m2.

On remarque que la mise `a jour du syst`eme est aussi coˆuteuse que le calcul initial. Cepen-dant, le pire des cas ne s’applique que s’il existe des s´equences de propri´et´es permettant de relier n’importe quelle instance du syst`eme `a n’importe quelle autre.

4.2 La mesure de filtrage s´emantique

4.2.1 Principes

Cette mesure sert `a calculer le degr´e d’int´erˆet de l’utilisateur cible pour un item cible. Ceci sert `a filtrer et affiner les recommandations issues d’un autre module pour l’utilisateur cible. Par exemple, ce module peut ˆetre appliqu´e `a la suite du module collaboratif d´ecrit dans le chapitre 5.

La mesure d’int´erˆet de l’utilisateur cible pour un item est relative `a des propri´et´es. Par exemple, si l’on veut calculer l’int´erˆet d’un utilisateur pour un certain film, on va calculer

4.2 La mesure de filtrage s´emantique 71

son int´erˆet pour les acteurs, r´ealisateurs, etc. du film par le biais des propri´et´es hasActor, hasDirector, etc.

Il incombe `a l’expert de s´electionner l’ensemble de propri´et´es Rel ⊆ R de domaine Item qui seront utilis´ees dans le calcul. La pr´edication de l’int´erˆet de l’utilisateur pour un item i relativement `a une propri´et´e r ∈ Rel utilise :

— les notes de l’utilisateur pour les items reli´es par r `a des instances ´egalement reli´ees `a i par r ;

— les notes de l’utilisateur pour les items reli´es par r `a des instances s´emantiquement similaires, en utilisant la mesure de similarit´e s´emantique d´efinie, `a celles reli´ees `a i par r.

´

Etant donn´e que le calcul de l’int´erˆet de l’utilisateur pour un item se fait relativement `a un ensemble de propri´et´es, et que ces propri´et´es relient des items `a d’autres instances, nous allons d’abord calculer l’int´erˆet de ces instances.

4.2.2 Calcul de l’int´erˆet de l’utilisateur pour les instances

L’int´erˆet de l’utilisateur pour les instances mesure le degr´e d’int´erˆet de l’utilisateur pour une instance en fonction de son historique. Par exemple, pour ´evaluer l’int´erˆet de l’utilisateur cible pour l’acteur “Tom Hanks”, les notes des films o`u “Tom Hanks” a jou´e et se trouvant dans l’historique de l’utilisateur cible sont utilis´ees.

Le calcul de l’int´erˆet de l’utilisateur u se fait pour chaque instance reli´ee `a l’item cible i par une propri´et´e r ∈ Rel. Les propri´et´es utilis´ees dans le calcul sont s´electionn´ees par l’expert.

Une instance a est reli´ee par une propri´et´e r `a 0 ou n items dans l’historique de l’utilisateur u.

Si a est reli´ee par une propri´et´e r `a au moins un item dans l’historique de u, l’int´erˆet de u pour a est d´efini par la m´ediane des notes des items en question. La m´ediane est utilis´ee afin d’´eviter les valeurs extrˆemes et donc les variations non d´esir´ees. L’int´erˆet interetinst de l’utilisteur u pour l’instance a pour une certaine propri´et´e r est d´efini par :

Enotes = {note(u, i0) | ∃ i0∈ historique(u) r(i0, a)} (4.7)

interetinst(u, a, r) = mediane(Enotes) (4.8)

Si l’instance a est n’est reli´ee par la propri´et´e r `a aucun item de l’historique de u, l’int´erˆet de u pour a est calcul´e grˆace `a la mesure de similarit´e s´emantique d´efinie dans la section 4.1. Les instances similaires `a a, grˆace `a la mesure de similarit´e s´emantique d´efinie pr´ec´edemment, sont calcul´ees et la moyenne des notes des items auxquels elles sont reli´ees par r ´etablit l’int´erˆet de u pour a. On utilise la moyenne plutˆot que la m´ediane afin d’estimer au mieux l’int´erˆet de l’utilisateur ´etant donn´e que l’on se base sur la similarit´e s´emantique qui est elle-mˆeme une estimation.

Enotes = {note(u, i0) | ∃ i0∈ historique(u) r(i0, b) ∧ simK(a, b) > α} (4.9)

interetinst(u, a, r) = moyenne(Enotes) (4.10)

o`u α est le seuil de similarit´e ´etabli par l’expert.

4.2.3 Calcul de l’int´erˆet de l’utilisateur pour les items relativement `a des propri´et´es

L’int´erˆet de l’utilisateur u pour un item i relativement `a une propri´et´e r se base sur l’int´erˆet de u pour les instances reli´ees `a i par r. Il est calcul´e en effectuant la somme pond´er´ee de l’int´erˆet de u pour les instances reli´ees `a i par r.

interet(u, i, r) = P

a∈Einstinteretinst(u, a, r) × ratioocc(u, a, r) P

a∈Einstratioocc(u, a, r) (4.11)

o`u Einst est l’ensemble des instances reli´ees `a l’item i par r : Einst= {a | r(i, a)}

et ratioocc(u, a, r) est la proportion d’occurrences de l’instance a parmi les instances reli´ees aux items de l’historique de l’utilisateur u par r :

ratioocc(u, a, r) = |{i

0| i0 ∈ historique(u) ∧ r(i0, a)}| |{b | ∃ i0∈ historique(u) r(i0, b)}|

Le calcul de l’int´erˆet de l’utilisateur u pour un item i relativement `a un ensemble de pro-pri´et´es Rel s´electionn´ees par l’expert est d´ecrit dans l’algorithme 4.3. Dans l’algorithme, α est le seuil de similarit´e ´etabli par l’expert

Exemple 2. Soit u, un utilisateur ayant not´e, sur une ´echelle de 1 `a 5, les films de la table 2.4.1.

Film Note

Psychose 5

Fenˆetre sur Cour 4

La Vie de Brian 5 Carrie 3 Les Langoliers 1 Pulp Fiction 4 Dr. Folamour 2 Orange M´ecanique 1

Table 2.4.1 – Extrait du profil de l’utilisateur u

4.2 La mesure de filtrage s´emantique 73