4.2.1 Motivations
Le filtrage collaboratif est une méthode permettant de prédire les intérêts d’un
utilisa-teur à partir de l’ensemble de ses préférences passées et de celles d’autres utilisautilisa-teurs. Si
nous supposons que les préférences ne varient pas trop avec le temps, il est possible
d’ex-ploiter des similitudes de préférences : par exemple si les utilisateurs u
1et u
2ont par le
passé aimé les même objets {m
i} et queu
1aime le nouvel objetm
i+1, alors il est probable
que u
2l’aimera aussi ; et nous pouvons lui recommander.
Le premier filtre collaboratif a été développé par Xerox (GONT92) pour un moteur
de recherche de documents fondé sur des commentaires d’autres utilisateurs. Depuis, cette
méthode a été appliquée dans de nombreux domaines, en particulier par des sites
net commerciaux, comme Amazon et LibraryThing pour les livres ; ILike, MusicMatch et
Last.fm pour la musique et GroupeLens et Netlix pour les films.
4.2.2 Données Netflix
Début octobre 2006, la société Netflix, qui loue des DVD sur internet en Amérique
du Nord, a lancé une compétition de filtrage collaboratif, en diffusant une partie de ses
données et en offrant un million de dollar à la première équipe qui produira des prédictions
dont la justesse dépassera de 10% ses propres prédictions. La compétition est ouverte pour
cinq années et tous les ans un prix intermédiaire est décerné à la meilleure équipe. À ce
jour (septembre 2007) les meilleurs algorithmes ont atteint 8.43% d’amélioration, mais il
est toujours incertain que la barre des 10% soit franchissable.
Les données diffusées sont un jeu de plus de 100 millions de notes, chacune étant un
quadruplet (user,movie,rating,date). La taille de ce jeu de données dépasse de deux ordres
de grandeur celle des jeux précédemment disponibles au public. Chaque note (rating) est
une valeur entière entre 1 et 5 donnée par un utilisateur à un film. Les titres des films sont
aussi fournis, mais la plupart des équipes et notre méthode, ne les prend pas en compte
et approchent le problème en ne considérant que les identificateurs des films. Par exemple,
nous n’exploitons pas l’information que deux films soient réalisés par la même personne, ni
qu’ils présentent les mêmes acteurs. De plus, nous n’utilisons pas les dates. Ces informations
externes devraient bien entendu être incorporées au système afin de le perfectionner, mais
nous ne nous sommes intéressés qu’au problème de filtrage abstrait. Ces 100 millions de
notes concernent plus de 480 000 utilisateurs et 18 000 films. Chaque utilisateur a noté en
moyenne 200 films, mais certains en ont vu très peu, certains beaucoup (jusqu’à 17 000).
La figure 4.1 présente certains aspects des données. Nous remarquons que la distribution
des notes est décalée vers le haut (moyenne 3.8), indiquant que les utilisateurs ont tendance
à noter des films qu’ils ont aimés. Nous retrouvons aussi un effet de “longue queue” : les
notes sont concentrées sur un petit nombre de films à succès, alors que de très nombreux
films ne reçoivent que très peu de notes. Le même effet est présent pour les utilisateurs.
Nous voyons aussi que les personnes donnant en général des notes médiocres sont plus
variables dans leurs évaluations que celle donnant souvent de bonnes notes.
Pour comparer les différentes méthodes, Netflix propose un jeu de 2,8 millions de couples
(user,movie) pour lesquels il faut prévoir les ratings correspondants. L’évaluation est
cal-culée par la racine de l’erreur quadratique moyenne (RMSE) sur ce jeu de test :
RMSE :=
v
u
u
t
1
N
NX
i=1r
ipredicted−r
true i 2. (4.1)
4.3 État de l’art
De nombreuses méthodes d’apprentissage automatique ont étés appliquées au problème
du filtrage collaboratif. Nous pouvons les classer en deux catégories : les approches fondées
4.3 État de l’art 125
(a) Histogramme des notes. (b) Nombre de données par films.
(c) Nombres d’utilisateurs dont la note
moyenne est en abscisse.
(d) Variance des notes d’utilisateurs dont la
note moyenne est en abscisse.
Fig. 4.1 – Données Netflix : N
r= 100 480 507 notes, N
u= 480 189 utilisateurs et N
m=
17 770 films.
sur une mémoire et celles fondées sur un modèle.
4.3.1 Approches fondées sur une mémoire
Ces approches considèrent le problème comme la complétion de valeurs manquantes
d’une grande matrice. Considérons les données comme une matriceRde tailleN
u×N
mavec
les utilisateurs u
ken ligne et les films m
len colonnes. Seules les cases (k, l) correspondant
à une donnée auront une valeur connue r
k,l∈ [1,5]. La prédiction se résume à trouver les
valeurs des cases vides de façon “cohérente” aux cases remplies. La matrice R est creuse à
98.8%.
Pour cela, les approches les plus anciennes brisent la symétrie entre utilisateurs et films
(CMB07), donnant deux familles de méthodes : celles fondées sur les utilisateurs et celles
fondées sur les films.
Considérons les approches fondées sur les utilisateurs initiées par GroupLens (RIS
+94).
La prédiction de note r
k,ldonnée par l’utilisateur u
kau film m
lest la moyenne des notes
r
kdonnées par u
kà tous les films qu’il a vu {m
j}, corrigée par une somme pondérée des
notes mises par les autres utilisateurs{u
i}àm
l. Cette somme est pondérée par une mesure
de similarité entre utilisateurs sim(u
k, u
i) :
r
k,l:=r
k+
P
ui
sim(u
k, u
i) (r
i,l−r
i)
P
ui
|sim(u
k, u
i)| . (4.2)
Cette procédure étant heuristique, il faut choisir une mesure de similarité qui devra être
calculée et stockée pour tous les couples d’utilisateurs, soit O(N
u2) fois, justifiant
l’appel-lation “fondée mémoire”. Comme N
uest trop grand, il faut se restreindre à un ensemble
deK utilisateurs voisins, ce qui donne une complexité deO(N
2u
×N
m×K) pour
l’appren-tissage,O(K) pour une prédiction et une complexité mémoire de O(N
u×K). Le choix de
la fonction de similarité entre utilisateurs est crucial et différentes idées ont été proposées
(SM95 ; WMG
+06), comme la corrélation de leur notes sur les films qu’ils ont tous deux
vus {m
n}, ou le cosinus de leur vecteur de notes :
sim(u
k, u
i) :=
P
mnr
k,nr
i,nq
P
mnr
2 k,nP
mnr
2 i,n. (4.3)
Bien que complètement symétriques, les approches fondées sur les films (item-based) sont
plus récentes et les chercheurs ont du développer des mesures de similarités différentes
(Kar01), ce qui souligne la difficulté de ce choix heuristique.
Récemment, une autre façon de compléter R a été proposée et a donné de très bons
résultats prédictifs. L’idée est que pour déterminer une note, nous n’avons pas besoin de
connaître exactement quel est le film et quel est l’utilisateur, mais seulement certaines de
leurs caractéristiques, par exemple savoir que c’est un film d’horreur et que l’utilisateur est
un enfant permet de prédire une mauvaise note. Formellement, cela veut dire queRest une
matrice compressible, son rang n’est pas aussi grand que Min(N
u, N
m). SiRétait complète,
il suffirait de réaliser sa décomposition en valeurs singulières (SVD) et de ne garder que les
K plus grande valeurs singulières afin d’obtenir une approximationR
0de rangK deR. Les
vecteurs des matrices unitaires produites donnent alors une caractérisation numérique de
chaque film (et de chaque utilisateur) àK valeurs. Pour prédire une note, il suffit de réaliser
le produit scalaire du vecteur de caractéristiques du film et de celui des caractéristiques de
l’utilisateur.
Initialement appliquée dans le domaine du traitement des langues naturelles sous le
nom de latent semantic analysis (LSA) (DDF
+99), elle a été adaptée à des matrices R
creuses et de très grande taille (VM05). SimonFunk (Web06) a étendu et appliqué cette
méthode au problème de Netflix et propose une SVD régularisée en minimisant l’erreur
quadratique de reconstruction de R, par une descente de gradient avec arrêt prématuré.
En publiant ses algorithmes, il a engendré une multitude de variantes (Pat07). En effet,
comme R est creuse, en plus des problèmes de gestion de mémoire, la SVD nécessite une
régularisation importante pour ne pas sur-apprendre.
4.3.2 Approches fondées sur un modèle
Au lieu de tenter de reconstruire R, il est possible de définir un modèle paramétrique
de la génération des données et d’estimer ces paramètres à partir de l’ensemble
d’appren-tissage (BHK98). De telles méthodes reposent souvent sur un groupement des utilisateurs
en types d’utilisateurs, par des techniques de clustering dur comme le K-Mean (KS04),
qui nécessitent tout de même une définition de distance entre utilisateurs. Des méthodes
probabiliste plus modernes ont aussi été employées comme l’extension probabilistic LSA
de LSA, qui a l’avantage de ne pas contraindre chaque utilisateur à un seul type (soft
Dans le document
Fondations, méthode et applications de l'apprentissage bayésien.
(Page 134-138)