• Aucun résultat trouvé

Calcul de l’int´ erˆ et de l’utilisateur pour un item

proc´edure Interest(u, i, Rel, α))

pour tout r ∈ Rel faire Einst← {a | r(i, a)}

pour tout a ∈ Einst faire

si a ∈ {b | ∃ i0 ∈ historique(u) r(i0, b)} alors

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

sinon

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

fin si

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

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

interet(u, i, r) = P

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

a∈Einstratioocc(u, a, r) fin pour

fin proc´edure

interetinst(u, ”S. Kubrick”, ”hasDirector”) = mediane(note(u, ”Dr. Folamour”),

note(u, ”Orange Mecanique”)) = mediane(2, 1)

= 1.5

interet(u, ”Shining”, ”hasDirector”) = interetinst(u, ”S. Kubrick”, ”hasDirector”)

= 1.5 De la mˆeme fa¸con, on obtient :

interet(u, ”Shining”, ”hasActor”) = 1.0

interet(u, ”Shining”, ”hasWriter”) = 1.7

interet(u, ”Shining”, ”hasGenre”) = 3.0

Il s’av`ere que “Shining” n’est pas une bonne recommandation pour u. En effet, il a le mˆeme

r´ealisateur que “Dr. Folamour” et “Orange M´ecanique” qui ont tous deux ´et´e not´es n´egativement par u. De plus, ce film a le mˆeme auteur que “Carrie” et “Les Langoliers” qui n’ont pas non plus ´

et´e appr´eci´es par u. Le mˆeme raisonnement est effectu´e pour les concepts Acteur et Genre. En ce qui concerne “Sacr´e Graal”, les int´erˆets par concept sont :

interet(u, ”Sacre Graal”, ”hasActor”) = 5.0

interet(u, ”Sacre Graal”, ”hasDirector”) = 3.0

interet(u, ”Sacre Graal”, ”hasWriter”) = 5.0

interet(u, ”Sacre Graal”, ”hasGenre”) = 4.0

Ce film a les mˆemes acteurs, auteurs et r´ealisateurs que “La Vie de Brian” qui est tr`es bien not´e par l’utilisateur. Il est donc naturel que l’int´erˆet de l’utilisateur pour ce film soit ´elev´e.

Chapitre 5

Les modules de recommandation

Deux modules de recommandation ont ´et´e d´efinis dans notre approche. Le module

collabo-ratif, d´efini dans la section 5.1, calcule les recommandations en prenant en compte les profils de l’ensemble des utilisateurs. Il se base sur des r`egles d’associations que nous avons ´etendues grˆace `a la mesure de similarit´e s´emantique, ce qui permet de mieux couvrir l’ensemble des items et des utilisateurs et d’´eviter le d´emarrage `a froid des items.

Dans la section 5.2, nous introduisons le module de recommandation bas´e sur le contenu.

Celui-ci se base sur la mesure de similarit´e s´emantique afin de recommander `a l’utilisateur cible des items similaires `a ceux qu’il aura pr´ec´edemment appr´eci´e.

5.1 Le module collaboratif

Dans cette section, nous d´efinissons un module de recommandation collaboratif se basant

sur une m´ethode de fouille de donn´ees appel´ee r`egles d’association. Les r`egles d’association permettent de bˆatir un mod`ele pouvant pr´edire grˆace `a un comportement r´ecurrent des utilisa-teurs dans le pass´e, le comportement futur des utilisateurs ayant le mˆeme comportement pass´e. Pour commencer, nous allons d´ecrire les r`egles d’association ainsi que l’algorithme le plus connu

pour leur extraction. Enfin, nous verrons comment nous adaptons ces r`egles aux syst`emes de

recommandation et comment nous les ´etendons pour exploiter tout leur potentiel.

5.1.1 R`egles d’association

Les r`egles d’association ont ´et´e largement utilis´ees dans l’analyse des paniers dans les super-march´es. ´Etant donn´e un ensemble de produits P du supermarch´e et un ensemble de transactions D compos´ees de produits achet´es par des clients, une r`egle d’association est une expression de

la forme X ⇒ B, o`u X ⊆ P et B ⊆ (P \ X). X et B sont respectivement appel´es pr´emisse

et conclusion de la r`egle. X ⇒ B veut plus simplement dire que si l’on ach`ete les produits de l’ensemble X, il y a de fortes chances pour que l’on ach`ete les produits de l’ensemble B.

Deux mesures sont d´efinies pour les r`egles d’association : le support et la confiance. Le support d’un ensemble d’´el´ements A not´e support(A) est une mesure d´efinissant la fr´equence d’apparition de A dans l’ensemble des transactions D.

support(A) = |{t ∈ D : A ⊆ t}|

|D| (5.1)

La confiance d’une r`egle X ⇒ B not´ee conf iance(X ⇒ B) est d´efinie par

conf iance(X ⇒ B) = support(X ∪ B)

support(X) (5.2)

La confiance peut ˆetre vue comme une mesure de degr´e de corr´elation statistique entre les

ensembles d’´el´ements de la r`egle. Quant au support, il indique la pertinence de ce degr´e de

corr´elation. Une r`egle X ⇒ B est dite int´eressante lorsque son support (support(X ⇒ B) =

support(X ∪ B)) et sa confiance (conf iance(X ⇒ B)) d´epassent des seuils αsupport (pour le

support) et αconf iance (pour la confiance) fix´es par l’expert.

Exemple 3. Dans la table 2.5.1, la r`egle p1 ⇒ p3 a un support de 50% et une confiance de

100%. Quant `a la r`egle p3 ⇒ p1, son support est de 50% ´egalement, mais sa confiance est de 60%. p1 p2 p3 p4 p5 t1 × × × t2 × × t3 × × t4 × × t5 × × × t6 × × ×

Table 2.5.1 – Exemple de transactions

Plusieurs algorithmes ont ´et´e propos´es pour le calcul des r`egles d’association. De fa¸con g´en´erale, l’approche proc`ede en deux ´etapes :

´

Etape 1 calcul de tous les sous-ensembles fr´equents X de P.

Il s’agit de l’´etape la plus importante. ´

Etape 2 pour chaque fr´equent X faire

pour tout B dans X faire

si conf iance((X \ B) ⇒ B) > αconf iance alors renvoyer (X \ B) ⇒ B

5.1.2 Algorithme Apriori

Le premier algorithme d’extraction de r`egles d’association, et ´egalement le plus connu, est l’algorithme Apriori [AIS93](Algorithme 5.1). La plupart des algorithmes apparus par la suite

se sont inspir´es de Apriori. Ce dernier proc`ede de la mani`ere suivante pour un ensemble de

5.1 Le module collaboratif 77

1. extraction des ensembles Lk, d’items fr´equents, de cardinalit´e k (on commence par k = 1) ;

2. union des ensembles fr´equents de cardinalit´e k pour former des ”candidats” Ck+1 de

cardinalit´e k + 1 (un candidat de cardinalit´e k + 1 est un ensemble dont tous les sous-ensembles de cardinalit´e k sont fr´equents) ;

3. parmi tous les candidats de cardinalit´e k + 1, extraction de ceux qui sont fr´equents

(Lk⇐ {c ∈ Ck| count[c] ≥ αsupport}) ;

4. r´ep´etition des 3 premi`eres ´etapes jusqu’`a ce qu’on ne puisse plus trouver de candidat.

Algorithme 5.1 Algorithme Apriori

fonction Apriori(D, αsupport)

L1 ← {fr´equents de taille 1} k ← 2

tantque Lk−1 6= ∅ faire

Ck← Generer(Lk−1)

pour tout transaction t ∈ D faire Ct← Sous-ensemble(Ck, t)

pour tout candidat c ∈ Ctfaire

count[c] ← count[c] + 1 fin pour fin pour Lk← {c ∈ Ck| count[c] ≥ αsupport} k ← k + 1 fin tantque retournerS kLk fin fonction

Une fois ces ensembles fr´equents calcul´es, la g´en´eration de r`egles est effectu´ee. Il s’agit de trouver, pour chaque ensemble fr´equent, une partition {X1, X2} telle que X1 ⇒ X2 satisfait la confiance minimum αconf iance fix´ee.

5.1.3 R`egles d’association dans le contexte de la recommandation

Dans le contexte des syst`emes de recommandation, l’utilisation de r`egles d’association a

pour but de d´ecouvrir des items pouvant int´eresser l’utilisateur en se basant sur les items qu’il a pr´ec´edemment not´es, et ce, de fa¸con similaire `a un autre groupe d’utilisateurs.

Dans un premier temps, les donn´ees doivent ˆetre pr´epar´ees afin d’obtenir des donn´ees bi-naires. Les notes des utilisateurs sont donc transform´ees en labels tels que les notes sup´erieures ou ´egales `a un seuil αnotes fix´e par l’expert sont labellis´ees l (appr´eci´e), les autres d (non appr´ e-ci´e). Les r`egles sont ensuite extraites `a l’aide de l’algorithme Apriori.

Exemple 4. ´Etant donn´es ui, les utilisateurs ayant not´e, sur une ´echelle de 1 `a 5, les items itemi. La table 2.5.3 est une transformation de la table 2.5.2, avec αnotes = 3.

item1 item2 item3

u1 1 5 3 u2 2 1 u3 1 2 u4 4 4 u5 5 3 2 u6 4 2

Table 2.5.2 – Matrice d’´evaluation avant transformation des donn´ees

iteml1 itemd1 iteml2 itemd2 iteml3 itemd3

u1 × × × u2 × × u3 × × u4 × × u5 × × × u6 × ×

Table 2.5.3 – Pr´eparation des donn´ees de la table 2.5.2 pour la g´en´eration de r`egles d’association Dans la mesure o`u ce module ne d´epend pas d’un utilisateur particulier, le calcul est effectu´e hors-ligne et p´eriodiquement pour tous les utilisateurs.

5.1.4 Extension des r`egles d’association

Dans cette approche, nous avons exploit´e la mesure de similarit´e d´efinie dans la section 4.1 du chapitre 4, le principe ´etant d’ajouter des r`egles d’association telles que leurs pr´emisses et leurs conclusions soient compos´ees d’items similaires aux items des r`egles g´en´er´ees par l’algo-rithme Apriori.

Une r`egle d’association ´etendue est donc une r`egle d’association dans laquelle un ou plusieurs items de la pr´emisse ont ´et´e remplac´es par des items qui leurs sont similaires en utilisant la mesure de similarit´e s´emantique que nous avons d´efinie. De plus, sont ajout´es en conclusion de ces r`egles, les items similaires aux items composant la conclusion. Les r`egles d’association ´

etendues sont ensuite ajout´ees aux r`egles d’association pr´ec´edemment extraites.

L’algorithme 5.2 d´ecrit la proc´edure d’extension de l’ensemble des r`egles d’association g´ e-n´er´ees EAR. L’algorithme utilise la similarit´e s´emantique pour calculer l’ensemble Sk des items similaires `a un certain item de la pr´emisse, tel que deux items sont similaires si leur similarit´e s´emantique est sup´erieure `a un certain seuil α qui peut ˆetre fix´e par l’expert ou appris par le syst`eme en adaptant le seuil en fonction du retour de l’utilisateur. Le produit cart´esienQ

kSk est ensuite calcul´e afin de g´en´erer toutes les pr´emisses possibles.

5.1 Le module collaboratif 79

Algorithme 5.2 Extension des r`egles d’association

1: fonction ExtendAR(EAR, α)

2: ExtendedAR ← {}

3: pour tout r`egle r ∈ EAR faire

4: ExtendedAR ← ExtendedAR ∪ {r}

5: k ← 0

6: pour tout item X ∈ premisse(r) faire

7: k ← k + 1 8: Sk ← {Y | sim(X, Y ) ≥ α} ∪ X 9: fin pour 10: extended premisses ←Q kSk 11: extended conclusions ← {}

12: pour tout item X ∈ conclusion(r) faire

13: extended conclusions ← {Y | sim(X, Y ) ≥ α} ∪ X

14: fin pour

15: pour tout ep ∈ extended premisses faire

16: ExtendedAR ← ExtendedAR ∪ {ep ⇒ extended conclusions}

17: fin pour

18: fin pour

19: retourner ExtendedAR

20: fin fonction

Exemple 5. ´Etant donn´ee la r`egle d’association suivante :

{Sacr´e Graall, Jurassic Parkl} ⇒ {Indiana Jones et la Derni`ere Croisadel}

‘Sacr´e Graal’ et ‘La vie de Brian’ ´etant similaires, la r`egle suivante est ajout´ee : {La vie de Brianl, Jurassic Parkl} ⇒ {Indiana Jones et la Derni`ere Croisadel}

5.1.5 S´election des r`egles d’association ´etendues pour l’utilisateur cible et recommandation

La s´election des r`egles d’association pertinentes pour l’utilisateur cible exploite la s´ eman-tique des items. `A l’instar des approches de [Lin00, SMB07], les r`egles sont filtr´ees pour l’utili-sateur cible de fa¸con `a ce que la pr´emisse soit enti`erement compos´ee d’items se trouvant dans son historique. Ce filtrage est appliqu´e aux r`egles classiques et ´etendues grˆace `a la mesure de similarit´e s´emantique :

(a) toutes les r`egles, ´etendues ou non, dont la pr´emisse est compos´ee d’items se trouvant dans l’historique de l’utilisateur cible sont conserv´ees ;

(b) les items, en conclusion de r`egles, d´ej`a not´es par l’utilisateur sont supprim´es car il est inutile de recommander des items connus de l’utilisateur ;

(c) seuls les items, en conclusion de r`egles, labellis´es l (like) sont conserv´es car il est inutile de recommander des items a priori non appr´eci´es par l’utilisateur ;

(d) les items en conclusion des r`egles filtr´ees dans les ´etapes (a) `a (c) sont recommand´es `a l’utilisateur.

L’algorithme 5.3 d´ecrit la s´election des r`egles d’association ´etendues EExtendedAR pour l’uti-lisateur u.