-
Introduction Utilisateur-utilisateur Item-item Remarques
LOG6308 — Systèmes de recommandationSystèmes de
recommandations,Approches filtres collaboratifs
Michel C. Desmarais
Génie informatique et génie logicielÉcole Polytechnique de
Montréal
Hiver, 2021(version 3 décembre 2020)
LOG6308 — Systèmes de recommandation — filtres collaboratifs
1/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
Systèmes de recommandations,Approches filtres collaboratifs
1 Introduction
2 Algorithmes utilisateur-utilisateur
3 Algorithmes item-item
4 Remarques et corrections quant aux
approchesutilisateurs-utilisateurs et item-item
LOG6308 — Systèmes de recommandation — filtres collaboratifs
2/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
Le problème
Recommander ou filtrer l’information pertinente.
Par exemple :
Filtres : éliminer ou classifier les courriels indésirés
;filtrer les nouvelles selon nos intérêts.
Recommandations : suggestions d’achats croisés ;
publicitépersonnalisée ;
Avec l’émergence du web social, les algorithmes de systèmesde
recommandation sont de plus répandus
LOG6308 — Systèmes de recommandation — filtres collaboratifs
3/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
Historique I
Filtrer les messages pertinents sur Usenet. Ce projet de groupes
dediscussion avec une architecture de serveurs distribués a
commencéen 1980 !
LOG6308 — Systèmes de recommandation — filtres collaboratifs
4/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
Historique II
https://groups.google.com/
LOG6308 — Systèmes de recommandation — filtres collaboratifs
5/39
https://groups.google.com/
-
Introduction Utilisateur-utilisateur Item-item Remarques
Historique III
Quelques grands moments des systèmes de recommandations :
Amazon.com
Le plus grand détaillant en ligneFait un usage intensif de
différents types de recommandations
Prix Netflix :
1M$améliorer les recommandations de film de 10% faites
parCinematch (de RMSE 0.96 à 0.86)lancé en octobre 2006 et gagné
en septembre 2009Deux montréalais dans l’équipe gagnante (c’est
la fille d’und’eux à Poly qui me l’a appris !)
LOG6308 — Systèmes de recommandation — filtres collaboratifs
6/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
Taxonomie de Hanani et coll. (2001)
Hanani, Shapira, and Shoval (2001). Information Filtering
:Overview of Issues, Research and Systems. User Modeling
andUser-Adapted Interaction, vol. 11, no. 3, 203–259.
LOG6308 — Systèmes de recommandation — filtres collaboratifs
7/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
Taxonomie de Hanani et coll. (2001)
InitiativeLe filtre d’information peut être passif ou actif. Un
systèmepassif agit pour réduire un flot d’information, comme
c’est lecas pour un filtre de polluriel. À l’inverse, un système
actifcréé un flot d’information en extrayant de l’information
dedifférentes sources pour la livrer à l’utilisateur.
LocalisationLe filtre peut se trouver à trois endroits
différents :
(1) au poste de travail (client)(2) à la source
d’information(3) sur un serveur de filtre
Un filtre passif est généralement situé sur le poste client
(1),tandis qu’un filtre actif sera plutôt situé à la source (2)
ou surun serveur de filtre (3)
LOG6308 — Systèmes de recommandation — filtres collaboratifs
8/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
Taxonomie de Hanani et coll. (2001)
Méthodes d’acquisition de l’information sur l’utilisateur
Explicite : l’utilisateur spécifie ses préférences.Implicite
: les préférences sont déduites du comportement.
Combinaison : l’utilisateur peut spécifier des préférences
mais un traitementest réalisé pour établir des informations
implicites (ex. modèled’espace de documents, regroupements en
stéréotypes, etc.)
LOG6308 — Systèmes de recommandation — filtres collaboratifs
9/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
Approches de filtrage
LOG6308 — Systèmes de recommandation — filtres collaboratifs
10/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
Les approches de filtrage I
L’approche collaborative :
On se base sur des données explicites (ex. des votes)
ouimplicites (ex. des achats, des consultations de pages) pour
etl’on cherche des similarités entre les utilisateurs ou les
items.Approche utilisateur-utilisateur :
Classifier les gens selon leurs intérêts, leurs votes,
leurcomportements, ou toute autre dimension pertinente.Effectuer
des recommandations basées sur le groupe le plusprès, le plus
représentatif d’un individu. On recommanderaainsi un élément
très caractéristique du groupe qui n’est pasdans le profil de
l’individu.
Approche item-item :
Recherche des items qui ont des profils d’intérêt
similaires.Recommandation en fonction de l’item affiché ou
d’unhistorique d’items.
LOG6308 — Systèmes de recommandation — filtres collaboratifs
11/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
Les approches de filtrage II
L’approche “contenu” :
Analyse du contenu ou des propriétés des items.
Toujours le principe de recherche de similarité entre des
itemsou des utilisateurs.
LOG6308 — Systèmes de recommandation — filtres collaboratifs
12/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
Approches memory-based vs. model-based
Outre la taxonomie de Hanani et coll. présentée, Breese et
coll.(1998) font aussi la distinction entre les types d’algorithmes
:
Memory-based ou basé mémoire qui effectue une rechercheBDOn
utilise la base de données complète d’utilisateurs (oud’items)
pour effectuer les recommandations
Model-based ou basé sur l’apprentissageOn utilise la BD pour
entrâıner un modèle qui ensuite permetla prédiction de l’item
pertinent
LOG6308 — Systèmes de recommandation — filtres collaboratifs
13/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
Quelques technologies classiques ou en opération
MovieLens
CD now (maintenant Amazon)
Amazon
last.fm
youtube
Mate1.com
e-180.com
LOG6308 — Systèmes de recommandation — filtres collaboratifs
14/39
http://movielens.umn.edu/http://www.cdnow.com/http://www.amazon.comhttp://www.last.fmhttp://www.youtube.comhttp://www.mate1.com/newsclip.htmlhttp://www.e-180.com/
-
Introduction Utilisateur-utilisateur Item-item Remarques
Algorithmes et composants
Espaces vectoriels : on crée une matrice
utilisateurs-itemssimilaire à une matrice terme-document. De cette
matrice, oncalcule des distances (similarités) entre des
utilisateurs(lignes—utilisateur-utilisateur) ou des
items(colonnes—item-item). On trouve les voisins dans cet espaceet
on applique différents algorithmes pour prédire
l’intérêtd’items. Les algorithmes qui reposent sur les espaces
vectorielssont nombreux et les plus répandus.
Méthodes bayésiennes : approche de probabilité
conditionnelle.
Systèmes à base de règles : approche basée sur un travail
demodélisation du domaine et le développement de règles.
LOG6308 — Systèmes de recommandation — filtres collaboratifs
15/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
Types d’information
Items
Attributsitems →
individus↓
����������������
����
Item courant
Individus
����������������
����������������
����
Réponses
Individu courant ���� ���� � Réponsecourante
LOG6308 — Systèmes de recommandation — filtres collaboratifs
16/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
Systèmes de recommandations,Approches filtres collaboratifs
1 Introduction
2 Algorithmes utilisateur-utilisateur
3 Algorithmes item-item
4 Remarques et corrections quant aux
approchesutilisateurs-utilisateurs et item-item
LOG6308 — Systèmes de recommandation — filtres collaboratifs
17/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
Types d’information
Items
Attributsitems →
individus↓
����������������
����
Item courant
Individus m����������������
����������������
����
Réponses
Individu courant ���� ���� � Réponsecourante
LOG6308 — Systèmes de recommandation — filtres collaboratifs
18/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
Un exemple
Prenons les votes de 4 utilisateurspour 4 items. On cherche
àestimer le vote de l’utilisateuractif 1, U1, à l’item 3, I3.
Votes pour 4 utilisateurs
ItemU 1 2 3 4U1 5 1 ? 2U2 4 1 1 3U3 4 2 1 2U4 1 4 3 2
LOG6308 — Systèmes de recommandation — filtres collaboratifs
19/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
Algorithmes utilisateur-utilisateur
Objectif : prédire les votes d’un utilisateur spécifique à
partir d’uneBD de votes d’autres utilisateurs.
La valeur estimée de l’utilisateur a pour un item j , v̂a,j ,
est lasomme pondérée des votes des autres utilisateurs, vi , qui
ont desvotes communs :
v̂a,j = va + κn∑i
wa,i (vi ,j − v i ) (1)
où n est le nombre usagers ayant des votes communs et v
ireprésente le vote moyen d’un utilisateur i et va le vote moyen
del’utilisateur a.
Le poids wi ,a peut représenter une distance, une corrélation
ou uncoefficient de similarité quelconque entre un utilisateur i
etl’utilisateur actif a. La constante κ normalise la somme despoids
à 1 (donc, κ = 1∑
i |wa,i |).
LOG6308 — Systèmes de recommandation — filtres collaboratifs
20/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
La corrélation pour wa,i
Une estimation du poids wa,i est celle de la corrélation de
Pearson.
La corrélation de Pearson est une mesure statistique très
communequi a été originalement utilisée pour les filtres
collaboratifs par leprojet GroupLens (Resnick et al., 1994). La
corrélation entre lesutilisateurs a et i est :
wcor(a,i) =cov(a, i)
σaσi=
∑j(va,j − va)(vi ,j − v i )√∑
j (va,j − va)2 ∑
j (vi ,j − v i )2
(2)
On calcule la corrélation pour tous les utilisateurs qui ont un
votecommun avec l’utilisateur actif a.
LOG6308 — Systèmes de recommandation — filtres collaboratifs
21/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
Un exemple
Prenons les votes de 4 utilisateurspour 4 items. On cherche
àestimer le vote de l’utilisateuractif 1, U1, à l’item 3, I3.
Votes pour 4 utilisateurs
ItemU 1 2 3 4U1 5 1 ? 2U2 4 1 1 3U3 4 2 1 2U4 1 4 3 2
LOG6308 — Systèmes de recommandation — filtres collaboratifs
22/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
Un exemple, estimation avec la corrélation U1 et Ui
Votes pour 4 utilisateurs
ItemU 1 2 3 4 v i wcor(1,i)U1 5 1 ? 2 2.67U2 4 1 1 3 2.67 0.89U3
4 2 1 2 2.67 0.97U4 1 4 3 2 2.33 -0.89
κ 1/2.75
On calcule le vote moyen :v i =
1|Ii |
∑j∈Ii vi ,j et la
corrélation entre U1 et Uiavec l’équation (2)(excluant l’item
3). Laconstante κ est l’inversede la somme des valeursabsolues des
poids,
1∑i=2 |wcor(1,i)|
.
Puis, en appliquant la formule d’estimation du vote,équation
(1), on obtient : v̂1,3 = 1.32.
LOG6308 — Systèmes de recommandation — filtres collaboratifs
23/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
Détails des calculs
Votes pour 4 utilisateurs
ItemU 1 2 3 4 v i wcor(1,i)U1 5 1 ? 2 2.67U2 4 1 1 3 2.67 0.89U3
4 2 1 2 2.67 0.97U4 1 4 3 2 2.33 -0.89
κ 1/2.75
v̂1,3 = v1 + κn∑
i=2
wcor(1,i)(vi,j − v i )
= 2.67 +0.89(1− 2.67) + 0.97(1− 2.67) +−0.89(3− 2.33)
|0.89|+ |0.97|+ | − 0.89|= 1.32
LOG6308 — Systèmes de recommandation — filtres collaboratifs
24/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
Le cosinus pour w(1, i)
Nous pouvons aussi utiliser le cosinus comme mesure dupoids w1,i
:
wcos(1,i) =
∑j v1, jvi , j√∑
k∈I1 v21,k
√∑k∈Ii v
2i ,k
=v1vi
||v1|| ||vi ||
Chaque utilisateur représente ainsi un vecteur dans un espace
devote et on cherche celui qui a le vecteur le plus près
(parallèle).
LOG6308 — Systèmes de recommandation — filtres collaboratifs
25/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
Exemple, estimation avec le cosinus U1 et Ui
Votes pour 4 utilisateurs
ItemU 1 2 3 4 v i wcos(1,i)U1 5 1 ? 2 2.67U2 4 1 1 3 2.67 0.97U3
4 2 1 2 2.67 0.97U4 1 4 3 2 2.33 0.52
κ 1/2.45
En prenant wcos(1,i) = cos(1, i) on obtient le tableau
ci-dessus.En appliquant la formule d’estimation du vote, équation
(1), onobtient : v̂1,3 = 1.49.
LOG6308 — Systèmes de recommandation — filtres collaboratifs
26/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
Estimation du vote par la méthode des voisinsrapprochés
(k-nearest neighbour)
Principe : on utilise le vote moyen, ou pondéré, des n
utilisateursles plus rapprochés dans l’espace vectoriel des votes.
La distanceeuclédienne est généralement utilisée pour cette fin
:
d(a, i) =
√∑j
(va,j − vi ,j)2 (3)
Pour chaque item j , on calcule la racine carrée la somme des
carrésdes différences entre les votes des utilisateurs a et i
.
Les utilisateurs les plus proches voisins sont ceux ayant
lespremières n valeurs. On détermine alors la valeur du vote
del’utilisateur a par la moyenne, potentiellement pondérée, de
cesutilisateurs.
LOG6308 — Systèmes de recommandation — filtres collaboratifs
27/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
Exemple, estimation avec le cosinus et voisins=2
Votes pour 4 utilisateurs
ItemU 1 2 3 4 v i d(1,i) wcos(1,i)U1 5 1 ? 2 2.67 0.00U2 4 1 1 3
2.67 1.41 0.97U3 4 2 1 2 2.67 1.41 0.97U4 1 4 3 2 2.50 5.00
0.52
κ 1/1.94
Les deux utilisateurs les plus proches de U1 sont U2 et U3.
Leurdistance avec U1 est
√2 dans les deux cas.
En ne conservant que ces deux plus proches voisins, la réponse
est: v̂1,3 = 1.0.
LOG6308 — Systèmes de recommandation — filtres collaboratifs
28/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
Systèmes de recommandations,Approches filtres collaboratifs
1 Introduction
2 Algorithmes utilisateur-utilisateur
3 Algorithmes item-item
4 Remarques et corrections quant aux
approchesutilisateurs-utilisateurs et item-item
LOG6308 — Systèmes de recommandation — filtres collaboratifs
29/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
Principe général de l’approche item-item
Les algorithmes précédents cherchent des similarités
entreutilisateurs pour ensuite proposer les items les plus
populaires desutilisateurs voisins, notamment par une somme
pondéréesimilarité-utilisateur par item pour suggérer les
items(équation (1)).
L’approche item-item cherche plutôt des similarités entre les
items.Dès qu’un utilisateur s’intéresse à un item, on lui
suggère des itemssimilaires.
Ici encore, les similarités peuvent être estimés par le
cosinus ou lacorrélation entre des items, sauf qu’on transpose la
matrice pourfaire le calcul de la similarité item-item
plutôtqu’utilisateur-utilisateur.
Finalement, on procède de façon analogue à
l’approcheutilisateur-utilisateur en utilisant une somme
pondérée.
LOG6308 — Systèmes de recommandation — filtres collaboratifs
30/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
Types d’information
Items⇐⇒
Attributsitems →
individus↓
����������������
����
Item courant
Individus
����������������
����������������
����
Réponses
Individu courant ���� ���� � Réponsecourante
LOG6308 — Systèmes de recommandation — filtres collaboratifs
31/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
Transposition de la matrice
Votes pour 4 utilisateursItem
Ui I1 I2 I3 I4U1 5 1 ? 2U2 4 1 1 3U3 4 2 1 2U4 1 4 3 2
transposition
=⇒
Matrice inversée des votespour 4 utilisateurs
UtilisateurIi U1 U2 U3 U4I1 5 4 4 1I2 1 1 2 4I3 ? 1 1 3I4 2 3 2
2
LOG6308 — Systèmes de recommandation — filtres collaboratifs
32/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
Algorithme item-item, exemple pour l’item 3
Matrice transposée des votes pour 4 utilisateurs
UtilisateurIi 1 2 3 4 v i d(I3, Ii ) wcor(I3,Ii )I1 5 4 4 1 3.00
4.69 -1.00I2 1 1 2 4 2.33 1.41 0.94I3 ? 1 1 3 1.67 0.00 1.00I4 2 3
2 2 2.33 2.45 -0.50
κ 1/1.44
En ne gardant que I2 et I4 comme voisins rapprochés, on
prédiraitla valeur de I3,1 basée sur le principe de l’équation
(1) comme suit :
I3,1 = 1.67 +0.94(1− 2.33) +−0.50(2− 2.33)
(|0.94|+ | − 0.50|)= 0.92
LOG6308 — Systèmes de recommandation — filtres collaboratifs
33/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
Exemple avec le cosinus
L’exemple précédent peut aussi être calculé en prenant le
cosinuscomme mesure de similarité. La colonne wcor(I3,Ii ) du
tableauprécédent est alors remplacée par wcos(I3,Ii ) :
wcos(I3,Ii ) = (0.58 0.99 1.00 0.80)T
et le résultat donne : I3,1 = 0.78
Cependant, Sarwar et coll. (2001, p. 288) cautionnent que
lamesure du cosinus ne tient pas compte des
différencesindivididuelles entre les utilisateurs lorsqu’ils
indiquent leurspréférences. Certains utilisateurs ont tendance à
être très critiques,d’autres très généreux dans leurs votes.
Ils suggèrent donc d’utiliserune formule modifiée du cosinus qui
normalise pour ce facteur :
wncos(i ,j) =
∑u∈U(Ru,i − Ru)(Ru,j − Ru)√∑
u∈U(Ru,i − Ru)2√∑
u∈U(Ru,j − Ru)2
LOG6308 — Systèmes de recommandation — filtres collaboratifs
34/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
Exemple avec le cosinus normalisé
Matrice transposée des votes et normalisée par utilisateur
pourobtenir wncos(1,i)
UtilisateurIi 1 2 3 4 wncos(I3,Ii )I1 2.33 1.75 1.75 -1.5
-0.96I2 -1.67 -1.25 -0.25 1.5 0.73I3 ? -1.25 -1.25 0.50 1.00I4
-0.67 0.75 -0.25 -0.5 -0.51
Ru 2.67 2.25 2.25 2.50
κ 1/1.24
En remplaçant wcos(I3,Ii ) par wncos(I3,Ii ) dans la matrice
nonnormalisée, la valeur prédite devient I3,1 = 1.02.
LOG6308 — Systèmes de recommandation — filtres collaboratifs
35/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
Systèmes de recommandations,Approches filtres collaboratifs
1 Introduction
2 Algorithmes utilisateur-utilisateur
3 Algorithmes item-item
4 Remarques et corrections quant aux
approchesutilisateurs-utilisateurs et item-item
LOG6308 — Systèmes de recommandation — filtres collaboratifs
36/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
Approches dites mémoires
Les approches U-U et I-I sont dites mémoires, car il faut
enprincipe consulter l’ensemble des données pour
l’appliquerAvantages :
selon les caractéristiques des données, peut donner de
bonrésultats, notamment pour la sérendipité ;simple à
implémenter ;adéquate pour des calculs en différé.
Faiblesses :l’algorithme exige de consulter l’ensemble des
données, doncpotentiellement coûteux ;difficile donc de traiter
de nouvelles données en temps réel ;problème en particulier pour
l’approche U-U puisqu’uneproportion importante des données peut
être recueillie àl’intérieur d’une seule session.
Les approches mémoires sont contrastées aux approches
ditesmodèles avec lesquelles on calcule la prédiction de vote
sansrecherche
LOG6308 — Systèmes de recommandation — filtres collaboratifs
37/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
Correction pour le nombre de votes communs
La valeur d’une corrélation ou d’un cosinus basée sur un plus
grandnombre de votes commun devrait avoir un poids plus
importantqu’une valeur basée sur un plus petit nombre. Il est donc
fréquentde faire la correction suivante au poids wu,v :
w ′u,v =max(vu,v , γ)
γ· wu,v
où vu,v est le nombre de votes communs entre les utilisateurs u
etv , et où γ est une constante représentant le nombre minimum
devotes pour effectuer cette correction, par exemple, Herlocker
etcoll. (1999) utilisent γ = 5.
LOG6308 — Systèmes de recommandation — filtres collaboratifs
38/39
-
Introduction Utilisateur-utilisateur Item-item Remarques
Fréquence inverse utilisateurExtensions aux modèles basé
mémoire
À l’instar de la transformation TF-IDF pour la
recherched’information, on peut conclure que la similarité de
votes pourun item comportant un grand nombre de votes n’a pas
lemême poids qu’un vote similaire pour un item comportanttrès peu
de votes.
La transformation TF-IDF dans le contexte des
filtrescollaboratifs transforme le poids original pour l’item j ,
wj , ennouveau poids pondéré, w ′j :
w ′j = wj log(n
nj)
où n est le nombre total d’individus et nj est le
nombred’individus qui ont exprimé un vote pour l’item j .
LOG6308 — Systèmes de recommandation — filtres collaboratifs
39/39