LOG6308 | Syst emes de recommandation · 2021. 1. 17. · Syst emes a base de r egles : approche...
Transcript of LOG6308 | Syst emes de recommandation · 2021. 1. 17. · Syst emes a base de r egles : approche...
-
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