log6308 | syst emes de recommandation · 2021. 1. 17. · syst emes a base de r egles : approche...

39
Introduction Utilisateur-utilisateur Item-item Remarques LOG6308 — Syst` emes de recommandation Syst` emes de recommandations, Approches filtres collaboratifs Michel C. Desmarais enie informatique et g´ enie logiciel ´ Ecole Polytechnique de Montr´ eal Hiver, 2021 (version 3 d´ ecembre 2020) LOG6308 — Syst` emes de recommandation — filtres collaboratifs 1/39

Upload: others

Post on 16-Feb-2021

5 views

Category:

Documents


1 download

TRANSCRIPT

  • 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