Memoire PDF
Memoire PDF
Memoire PDF
Département d'Informatique
Présenté par :
- Mr. BAHLOULI ACHRAF
- Mr. TOUAFEK AYOUB
- Président :
- Examinateur :
Promotion 2019/2020
Remerciements
BAHLOULI ACHRAF
Dédicace
À tous mes amis qui ont toujours fait preuve d'un esprit de
collaboration et de serviabilité
TOUAFEK AYOUB
Résumé
Les systèmes de recommandations sont des systèmes automatiques qui permettent, par des
algorithmes d'apprentissage automatique, de fournir à des utilisateurs des suggestions qui
répondent à leurs exigences .Parmi les techniques de recommandation, le filtrage collaboratif
est la méthode la plus importante et la plus utilisée.
Dans ce mémoire, nous avons fait une étude comparative entre les deux méthodes de filtrage
collaboratif pour enfin conclure quelle est la meilleure.
Mots-clés : apprentissage automatique, système de recommandation, filtrage collaboratif.
Abstract
Recommendation systems are automated systems that, through automatic learning algorithms,
provide users with suggestions that meet their requirements. Collaborative filtering is the most
important and most widely used method in recommendation systems.
In this paper, we have made a comparative study between the two collaborative filtering
methods to finally conclude which is the best.
Keywords: machine learning, recommendation system, collaborative filtering.
ملخص
. اقتراحات تلبي متطلباتهم، من خالل خوارزميات التعلم اآللي،أنظمة التوصية أنظمة تلقائية توفر للمستخدمين
. التصفية التعاونية هي الطريقة األكثر أهمية واألكثر استخدا ًما،من بين تقنيات التوصية
II.3Définition ................................................................................................................................. 10
II.8.1 Amazon.......................................................................................................................... 17
III.7 Conclusion............................................................................................................................. 37
Chapitre IV : Expérimentation
IV.5 Apprentissage........................................................................................................................ 41
Bibliographie
Table des figures
I
Liste des tableaux
II
Introduction générale
Les systèmes d'informations actuels sont caractérisés par leur volume croissant, leur
hétérogénéité, et par le fait qu'ils ne sont pas suffisamment adaptés aux besoins des
utilisateurs. Au vu de l'état actuel de ces systèmes en termes d'hétérogénéité de domaines, de
sources, de représentation et de structuration des informations, l'accès à une information
pertinente et adaptée aux utilisateurs est un vrai challenge. Les besoins de l'utilisateur sont
difficiles à traiter d'une part, parce qu'ils ne sont pas formulés explicitement et d'autre part,
parce qu'ils sont évolutifs.
Les systèmes de recommandations (SRs) sont des outils puissants aidant les utilisateurs, en
ligne, à résoudre le problème de la surcharge d’informations auquel ils sont confrontés
aujourd’hui, avec l’avènement d’internet, en leur fournissant personnalisées. Ce sont des
systèmes de personnalisation qui présentent aux utilisateurs les contenus les plus pertinents,
en utilisant certaines informations concernant leurs préférences passées.
Les méthodes les plus importantes et les plus utilisées pour le calcul de la recommandation
sont basées sur le filtrage collaboratif. Mais les travaux dans la littérature de recherche,
montrent que le FC classique n'est pas adapté à la recommandation d'intérêts multiples. En
fait, la qualité de sa recommandation est très faible lorsque les utilisateurs des systèmes de
recommandation ont des intérêts totalement différents.
Dans ce mémoire, nous allons expérimenter un système de recommandation, et nous allons
faire une étude comparative entre les deux méthodes de filtrage collaborative pour enfin
conclure quelle est la meilleure avec le langage de programmation python.
Pour ce faire, après une introduction générale notre travail est réparti en trois chapitres :
- Le chapitre I : ce premier chapitre est consacré pour présenter l'apprentissage
automatique à travers quelques définitions et concepts de base.
- Le chapitre II : est consacré à la présentation des systèmes de recommandation en
général.
- Le chapitre III : portera sur la présentation des différentes techniques des systèmes de
recommandation.
- Le chapitre IV: est consacré pour la présentation de l'approche proposée.
Et enfin une conclusion générale qui résume notre travail et présente quelques perspectives.
1
CHAPITRE I
Apprentissage Automatique
CHAPITRE I APPRENTISSAGE AUTOMATIQUE
CHAPITRE I
I.1 Introduction
Dans ce mémoire, nous nous intéressons aux théories, algorithmes et applications liés à un
aspect particulier de l'intelligence artificielle (IA) : la faculté d'apprentissage.
De cette notion d'apprentissage, il devient facile de constater que le paradigme de
programmation classique a évolué, ainsi :
- Avant, programmer consiste à prescrire une logique pour faire exécuter (une tâche).
- Maintenant, on programme pour rendre intelligent, autrement dit, programmer pour
faire exécuter de manière intelligente des tâches nouvelles réputées nécessitant du
raisonnement et un jugement. Par un tel mécanisme de programmation, nous serons en
mesure de faire doter un programme d'une aptitude d'apprentissage.
I.2 Aperçu sur l'état actuel
Un bref historique dans le domaine de l'apprentissage artificiel, aussi communément appelé
apprentissage automatique AA (ou Machine Learning, en anglais), nous amènent à parler des
trois grandes époques de l'ordinateur, plus précisément, au tout début de l'informatique de son
évolution au fil du temps et enfin au monde d'aujourd'hui et de demain.
De nos jours, nous pouvons constater, et ce n'est qu'un point de vue, que l'évolution de
l'informatique s'est faite principalement sur deux axes [1] :
- Gain en capacité à cumuler de l'information et à sa diffusion dans des domaines tels
que les fouilles de données (Data Mining), les entrepôts de données, les réseaux et
services web, sans oublier leurs applications sous-jacentes sous smartphones.
- Gain en intelligence des systèmes informatiques, en particulier, les domaines liés à
l'intelligence artificielle lesquels sont les plus touchés par cette avancée technologique
et comprennent particulièrement, les jeux, la parole, la vision par ordinateur, etc.
I.3 AA, qu'est-ce que c'est ?
"L'apprentissage automatique, c'est la capacité d'un ordinateur à apprendre sans avoir été
explicitement programmé."
Arthur Samuel
L’apprentissage automatique est un des champs de l’Intelligence Artificielle (IA) qui consiste
en l'automatisation de l’apprentissage d’un algorithme, notamment par l’analyse, la sélection
et le traitement de données. Ainsi, les IA auront la possibilité, grâce au Machine Learning,
d'expérimenter et de tirer des conclusions de leurs expérimentations. Il peut aussi être utilisé
pour reconnaitre des éléments (images, objets, ...) à partir d'une base de données [34].
L'apprentissage automatique fait référence au développement, à l'analyse et à
l'implémentation de méthodes qui permettent à une machine d'évoluer grâce à un processus
d'apprentissage.
3
CHAPITRE I APPRENTISSAGE AUTOMATIQUE
4
CHAPITRE I APPRENTISSAGE AUTOMATIQUE
5
CHAPITRE I APPRENTISSAGE AUTOMATIQUE
Machine learning
6
CHAPITRE I APPRENTISSAGE AUTOMATIQUE
Les Data Scientiste disposent déjà de tout un attirail méthodologique pour développer leurs
algorithmes prédictifs. À eux de choisir le ou les outils les plus adaptés et de bien les
paramétrer. Les entreprises qui souhaitent utiliser le Machine Learning recourent donc de plus
en plus au service des Data Scientiste, et fait appel à des algorithmes et modèles mis à
disposition par des 'brokers' d'algorithmes en les adaptant à leurs domaines spécifiques.
Non seulement il n'existe pas un algorithme universel capable de prédire un comportement, un
phénomène, mais tout reste encore à inventer comme aime à le souligner Stéphan
Clémençon"[4] en termes d'algorithmes, tout reste à faire. Par exemple, aujourd'hui, nous
sommes fréquemment amenés à gérer des graphes de données. La théorie des graphes, ce n'est
pas quelque chose de neuf en mathématiques appliquées. Mais auparavant, on traitait des
graphes qui n'ont rien à voir avec ceux que nous sommes amenés à traiter aujourd'hui pour
identifier des communautés, mettre en avant des attachements communautaires. Les réseaux
sociaux d'aujourd'hui n'ont plus rien des graphes que l'on utilisait dans les années50. Il
n'existe même pas de méthode qui permettrait de simuler des graphes réalistes d'une telle
taille."
De même en ce qui concerne les moteurs de recommandation et d'analyse des données de
préférence des utilisateurs : leur principe n'est pas nouveau. "En revanche, aujourd'hui un
internaute exprime ses préférences sur un nombre d'objets qui est colossal", poursuit Stéphan
Clémençon [4]. "Toutes les méthodes qui étaient basées sur une modélisation des lois sur les
permutations ne passent pas du tout à l'échelle. Si vous avez n objets, vous avez factorielle n
façon de les classer. De plus, les internautes n'expriment pas leur préférence sur les mêmes
objets. Certains font un rating sur beaucoup d'objets, d'autres sur très peu. Les données sont
très hétérogènes, très complexes, et on doit réfléchir aux bons modes de représentation."
1.8 Applications du Machine Learning
Si aujourd'hui on parle énormément du Machine Learning, c'est essentiellement pour ses
applications pour le web, notamment dans les systèmes de recommandation des sites
marchands ou des jeux en ligne. Néanmoins, la technique est apparue bien avant, notamment
pour la compression de données ou encore la visualisation de grandes quantités
d'informations. "Le problème phare du Machine Learning a été la reconnaissance de formes
qui a engendré des applications dans la biométrie, la reconnaissance de visages ou de
caractères manuscrits" rappelle Stéphan Clémençon [4]. Autre exemple évoqué par le
chercheur, la transmission des images et vidéos sur Internet. "Si leur transmission est
beaucoup plus rapide aujourd'hui, c'est grâce au format JPEG 2000 et la compression par
ondelettes. C'est un mode de représentation qui permet de s'adapter à la variabilité des
données à la volée".
Depuis ces premières applications, des algorithmes de Machine Learning ont été déployés à
grande échelle pour le filtrage anti-spam, pour optimiser les stocks dans la distribution, et bien
évidemment pour la segmentation et le ciblage des clients. Mais des applications de la
Machine Learning commencent aussi à apparaître dans la maintenance industrielle,
notamment la maintenance prédictive des matériels installés sur les plateformes pétrolières,
les moteurs d'avions... De leur côté, les objets connectés, des compteurs aux bracelets
connectés, laissent augurer de multiples autres applications.
Autre secteur avide de nouveaux algorithmes, le domaine de la gestion des risques qui s'est
intéressé à la Machine Learning voici déjà plusieurs années. Janvier Régis Habimana [4]
7
CHAPITRE I APPRENTISSAGE AUTOMATIQUE
souligne : "des modèles se basent sur le Machine Learning afin de fournir une prédiction de
risques pris, par exemple, par des établissements financiers dans le cadre de prêts ou de
contrats d'assurance" Enfin, le Machine Learning peut trouver des applications dans la lutte
contre la criminalité. Plusieurs villes américaines font aujourd'hui appel à IBM pour prédire
les zones où pourraient survenir les prochaines agressions.
I.9 Conclusion
Dans ce chapitre, nous avons présenté tout d'abord la définition de l'apprentissage
automatique et ses origines, ensuite nous avons donné un rapide aperçu de ce qui existe déjà
grâce au domaine de l'apprentissage automatique. Parmi les innombrables applications du
Machine Learning, nous nous intéressons aux systèmes de recommandation. Ces systèmes
sont très développés aujourd'hui, mais demeurent au final peu visible, l'utilisateur ne
percevant que le résultat, à savoir une liste de suggestions. Les champs d'application de ces
systèmes de recommandation sont divers et variés (suggestion de films, de produits
marchands, de services...).
Dans le chapitre suivant nous allons présenter les fondements des systèmes de
recommandation.
8
CHAPITRE II
Système de recommandation
CHAPITRE II SYSTEME DE RECOMMANDATION
CHAPITRE II
II.1 Introduction
De nos jours, un grand nombre de systèmes de recommandation sont utilisés dans divers
domaines. Le principal but de ces systèmes est de filtrer le flux d’informations de façon à
fournir pour chaque utilisateur les ressources qui répondent à son besoin en information. Afin
de satisfaire ces contraintes, les moteurs de ces systèmes gèrent les profils des utilisateurs
pour choisir les ressources à transmettre à chacun, et mettre à jour ces profils en fonction des
retours et des interactions des utilisateurs. Un système de recommandation fournit à des
utilisateurs des suggestions qui répondent à leurs besoins et préférences informationnels. Les
applications de recommandation peuvent être trouvé dans une grande variété d'industries,
entreprises, service financier, musique / radio en ligne, tv et vidéos, les publications en ligne,
et d'innombrables autres.
II.2 Historique
Les systèmes de recommandation sont reconnus assez tôt dans l'histoire de l'informatique,
«Information Lens System» [17] peut être considérée comme le premier système de
recommandation à l'époque, l'approche la plus commune pour le problème du partage
d'informations dans l'environnement de messagerie électronique était la liste de distribution
basée sur les groupes d'intérêt.
La première définition pour le filtrage a été donnée aussi par Malone : " Même si le terme a
une connotation littérale de laisser les choses dehors (filtrage négatif : enlèvement), nous
l'utilisons ici dans un sens plus général qui consiste à sélectionner les choses à partir d'un
ensemble plus large de possibilités (filtrage positif : sélection)".
La littérature académique a introduit le terme de filtrage collaboratif par le système « Tapestry
» [17] , Il a été développé en 1992 par le centre de recherche de "Xerox" aux États-Unis, il
s'agit d'un système de recommandation intégré à une application de mail électronique qui a
permis aux utilisateurs de créer des requêtes permanentes, basées sur les annotations (les tags)
des utilisateurs.
Quelques années plus tard, un certain nombre de systèmes académiques de recommandation
ont vu le jour en 1994 et en 1995, tels que le système de recommandation d'articles
d'actualités et de films développé par «Group Lens » [27] et le système de recommandation de
musique "Ringo". Ces deux systèmes sont également basés sur le filtrage collaboratif, des
livres [27], des vidéos, des films, des pages Web, des articles et des liens Internet.
Ensuite, en 2006, Netflix a lancé Netflix Prize pour améliorer l'état de recommandation des
films, aussi Netflix a plus de 17.000 films dans sa sélection. Aujourd'hui les systèmes de
recommandation sont devenus très populaires et sont utilisés dans diverses applications Web.
II.3 Définition
Les systèmes de recommandation peuvent être définis de plusieurs façons, vu la diversité des
classifications proposées pour ces systèmes, mais il existe une définition générale de Robin
Burke [Burke, 2002] qui les défini comme suit :
10
CHAPITRE II SYSTEME DE RECOMMANDATION
11
CHAPITRE II SYSTEME DE RECOMMANDATION
Augmenter la diversité des articles vendus : le but de cette fonction est d'inciter les
utilisateurs à sélectionner des éléments qui resteraient inconnus sans recommandation.
Par exemple, dans le cas d'un SR des livres (par exemple librairie Amazon), le
fournisseur de services veut pouvoir vendre des livres de tous ses catalogue et pas
seulement les 5 plus populaires.
Comprendre les utilisateurs : une autre fonction importante d’un SR est de pouvoir
décrire les préférences des utilisateurs. Ces préférences peuvent être recueillies
explicitement ou en les prédisant. Ces données peuvent être utilisées par le fournisseur
de services pour mieux gérer sa production ou son stock.
Nous expliquons maintenant les fonctions auxquelles les utilisateurs pourraient être intéressés
lors de l'utilisation d'un SR.
Classement d'une liste d’éléments : C'est probablement l'une des fonctions les plus
importantes pour un SR, c'est-à-dire de fournir certains bons éléments à l'utilisateur
actuel, selon les prévisions de notation. En d'autres termes, recommander des articles
que l'utilisateur devrait aimer.
Recommander une séquence : Cette fonction vise davantage à s'adapter aux
préférences à long terme des utilisateurs. Le principe est de générer une suite
cohérente de recommandations au lieu de fournir une succession d'indépendantes. Par
exemple, il serait logique de recommander Matrix 2 Reloaded après avoir
recommandé Matrix 1 [31].
Navigation améliorée : Étant donné un grand catalogue, la tâche d'un SR peut être
améliorée l'expérience de navigation de l'utilisateur en l'aidant à trouver des articles
qui correspondent à ses goûts et à ses besoins.
II.5 Concepts de base, et Notions liées
Dans cette section, nous définissons quelques concepts relatifs aux systèmes de
recommandation qui seront utilisés dans cette thèse.
II.5.1 Les entités utilisateur et item
Dans tout système de recommandation, il existe deux entités importantes qui sont les
utilisateurs et les items (articles).
- Utilisateur : est une personne qui accède au système et fait l'enregistrement en
saisissant ses informations démographiques, ses centres d'intérêt et d'autres
informations personnelles. L'ensemble des utilisateurs dans le système est représenté
par U, un utilisateur est donné par U.
- Item : dans les systèmes de recommandation, un item est l'entité qui représente tout
élément constituant une liste de recommandation et qui correspond aux besoins de
l'utilisateur, incluant tout produit susceptible d'être vendu (livre, produits....etc. dans
les sites de l’e-commerce tel que Amazon.com), vu (les films dans les sites de TV en
ligne tel que Netflix), écouté (la musique) ou lu (tel que les informations dans les
journaux en ligne, les revues dans les bibliothèques numériques), ainsi que les
destinations de vacance, des restaurants, etc. L'ensemble des items disponibles dans le
système est représenté par I, où i I.
12
CHAPITRE II SYSTEME DE RECOMMANDATION
13
CHAPITRE II SYSTEME DE RECOMMANDATION
II.5.4 La recommandation
La recommandation est l'action de calculer une liste d'items (Top- N items) que l'utilisateur
aimera le plus. Le calcul des listes de recommandation se fait en attribuant des scores pour les
items selon leurs popularités ou leurs préférences par exemple [34]. Contrairement à la
prédiction le calcul des recommandations ne se base pas strictement sur les évaluations.
II.6 Les étapes principales d'un SR
Un système de recommandation requiert généralement trois (03) étapes :
1. La première consiste à recueillir de l'information sur l’utilisateur.
2. La deuxième consiste à bâtir modèle utilisateur contenant l'information recueillie.
3. La troisième consiste à extraire à partir de cette matrice une liste de
recommandations.
II.6.1 La collecte d'informations
Pour être pertinent, un système de recommandation doit pouvoir faire des prédictions sur les
intérêts des utilisateurs. Il faut donc pouvoir collecter un certain nombre de données sur ceux-
ci afin d'être capable de construire un profil pour chaque utilisateur. Une distinction peut être
faite entre deux formes de collecte de données :
1. Collecte de données explicites - Filtrage actif :
La collecte repose sur le fait que l'utilisateur indique explicitement au système ses intérêts.
Exemple : demander à un utilisateur de commenter, taguer/étiqueter, noter, liker ou encore
ajouter comme favoris des contenus (objets, articles...) qui l'intéressent. On utilise souvent
une échelle de ratings allant de 1 étoile (je n'aime pas du tout) à 5 étoiles (j'aime beaucoup)
qui sont ensuite transformées en valeurs numériques afin de pouvoir être utilisées par les
algorithmes de recommandation.
Avantage : capacité à reconstruire l'historique d'un individu et capacité à éviter d'agréger une
information qui ne correspond pas à cet unique utilisateur (plusieurs personnes sur un même
poste).
Inconvénient : Les informations recueillies peuvent contenir un biais dit de déclaration. [14]
2. Collecte de données implicite - Filtrage passif : elle repose sur une observation et une
analyse des comportements de l'utilisateur effectué de façon implicite dans l'application qui
embarque le système de recommandation, le tout se fait en "arrière-plan" (en gros sans rien
demander à l'utilisateur)
Exemple :
Obtenir la liste des éléments que l'utilisateur a écoutés, regardés ou achetés en ligne.
Analyser la fréquence de consultation d'un contenu par un utilisateur, le temps passé
sur une page.
Montrer le comportement en ligne de l'utilisateur.
Analyser son réseau social.
14
CHAPITRE II SYSTEME DE RECOMMANDATION
Avantage : aucune information n'est demandée aux utilisateurs, toutes les informations sont
collectées automatiquement. Les données récupérées sont a priori justes et ne contiennent pas
de biais de déclaration.
Inconvénient : les données récupérées sont plus difficilement attribuables à un utilisateur et
peuvent donc contenir des biais d'attribution (utilisation commune d'un même compte par
plusieurs utilisateurs). Un utilisateur peut ne pas aimer certains livres qu'il a achetés, ou il
peut l'avoir acheté pour quelqu'un d'autre.
II.6.2 Modèle utilisateur
Le modèle utilisateur se présente généralement sous forme de matrice appelée "matrice
d'évaluation utilisateur-item ", cette dernière contient des données recueillies sur l'utilisateur
associées aux produits disponibles sur le site web.
Un autre point important est comment le temps influence le profil de l’utilisateur. Les intérêts
des utilisateurs, généralement, évoluent au cours du temps. Les données du modèle
utilisateurs devraient donc constamment être réajustées pour rester conformes aux nouveaux
centres d’intérêt de l’utilisateur.
Le tableau II.1 illustre un exemple d’une matrice de notes pour 3 utilisateurs et 3 films.
Les valeurs marquées " ? " indiquent que l’utilisateur n’a pas donné d’avis.
Inception Batman begins Tianic Star wars
User A ? 2 5 4
User B 4 1 ? 5
User C 3 2 ? 4
User D 2 4 5 3
TABLE II.1 - Exemple de matrice de note
II.6.3 Liste de recommandations
Pour extraire une liste de suggestions à partir d'un modèle utilisateur, les algorithmes utilisent
la notion de mesure de similarité entre objets ou personnes décrits par le modèle utilisateur.
La similarité a pour but de donner une valeur ou un nombre (au sens mathématique du terme)
à la ressemblance entre 2 choses. Plus la ressemblance est forte, plus la valeur de la similarité
sera grande. À l'inverse, plus la ressemblance est faible, et plus la valeur de la similarité sera
petite.
On a l’habitude de présenter 4 approches possibles pour un système de recommandation:
Recommandation Personnalisée.
Recommandation Objet (Content-Based filtering CB).
Recommandation Sociale (Collaborative Filtering CF – Context Aware).
Recommandation Hybride.
15
CHAPITRE II SYSTEME DE RECOMMANDATION
Approches FC basé sur un modèle englobant une variété de techniques telles que :
clustering, les réseaux bayésiens, factorisation de matrices, les processus de décision
de Markov.
3. La classification de Burke [12] : propose une classification très complète des techniques
de recommandation existantes en identifiant les données d'entrée de chaque méthode et son
algorithme utilisé. Il définit cinq types de Techniques de recommandation :
Filtrage collaboratif.
Filtrage basé sur contenu.
Filtrages démographiques.
Filtrage basé connaissances.
Filtrage communautaire.
16
CHAPITRE II SYSTEME DE RECOMMANDATION
17
CHAPITRE II SYSTEME DE RECOMMANDATION
18
CHAPITRE II SYSTEME DE RECOMMANDATION
II.8.3 Google
Google personnalise nos résultats de recherche quand cela est possible, en se basant sur notre
localisation et/ou nos dernières recherches. Lorsqu'on est connecté à notre compte Google, il
propose un contenu encore plus pertinent en fonction de notre historique de recherche.
L'algorithme du PageRank est de manière intrinsèque un outil basé sur de la recommandation
sociale dans la mesure où il utilise les liens entre les pages web. L'utilisation de contenus
provenant de nos cercles de Google+ est aussi une forme de recommandation sociale [26].
II.8.4 Nuukik-Plusieurs approches d'analyse prédictive
Le lancement de Nuukik fait suite à 3 ans de "R and D" menée avec l'INRIA pour développer
les algorithmes de recommandation de ce service. Celui-ci panache le Collaborative filtering,
c'est-à-dire une recommandation qui s'appuie sur les ventes déjà réalisées ainsi que la
navigation des internautes avec une recommandation basée sur les contenus, typiquement les
attributs de la fiche produite. Ce mélange de deux approches doit permettre selon les
ingénieurs de la start-up de rester pertinent même lorsqu'il y a peu d'historique sur un produit
au moment des changements de collection dans le textile [30].
19
CHAPITRE II SYSTEME DE RECOMMANDATION
20
CHAPITRE III
Techniques de recommandation
CHAPITRE III TECHNIQUES DE RECOMMANDATION
CHAPITRE III
III.1 Introduction
Les techniques des systèmes de recommandation fonctionnent avec deux types de données qui
sont :
(i) Interactions utilisateur-article : comme le comportement d'achat ou d'évaluations.
(ii) Les informations d'attribut sur les utilisateurs et les articles : tels que les profils textuels ou
les mots-clés pertinents.
Les méthodes qui utilisent le premier type sont appelées méthodes de filtrage collaboratif,
alors que les méthodes qui utilisent le deuxième type sont appelées méthodes de
recommandation basées sur le contenu [28].
Une autre technique appelé recommandation basée sur la connaissance, est fondée sur les
exigences de l'utilisateur spécifiées explicitement. Au lieu d'utiliser les historiques des
notations ou les données d'achat, des bases de connaissances externes sont utilisées pour créer
la recommandation.
Certains systèmes de recommandation combinent ces différents aspects pour créer des
systèmes hybrides. Les systèmes hybrides peuvent combiner les forces de différents types de
systèmes de recommandation pour créer des techniques qui peuvent être robuste dans une
grande variété de paramètres.
Dans ce chapitre, nous allons discuter brièvement de ces techniques.
22
CHAPITRE III TECHNIQUES DE RECOMMANDATION
23
CHAPITRE III TECHNIQUES DE RECOMMANDATION
24
CHAPITRE III TECHNIQUES DE RECOMMANDATION
25
CHAPITRE III TECHNIQUES DE RECOMMANDATION
26
CHAPITRE III TECHNIQUES DE RECOMMANDATION
27
CHAPITRE III TECHNIQUES DE RECOMMANDATION
K-Means
La méthode des plus proches voisins K-Means consiste dans un premier temps à choisir
aléatoirement k centres dans l'espace de représentation utilisateurs/ressources. Ensuite, chaque
utilisateur est mis dans le cluster du centre le plus proche. Quand les groupes de personnes
sont formés, nous recalculons la position des centres pour chaque cluster et réitérons
l'opération depuis le début jusqu'à obtenir un état stable où les centres ne bougent plus.
L'algorithme est certes simple à mettre en œuvre mais présente certains inconvénients, lié à la
criticité du choix des clusters initiaux, pouvant influencer sur la qualité de la classification.
RecTree
RecTree est un algorithme de filtrage collaboratif appelé l'arbre de recommandation
(Recommandation Tree). L'algorithme RecTree fractionne les données dans des cliques
d'utilisateurs approximativement semblables. L'objectif est de maximiser les similarités entre
les membres d'une même clique et à minimiser celles entre les membres de deux cliques
différentes.
III.5.2 Filtrage collaboratif basé sur la mémoire :
Contrairement aux approches basées sur un modèle, les algorithmes de filtrage collaboratif
basés sur la mémoire ne nécessitent pas de phases d'apprentissage coûteuses à renouveler
fréquemment. Toutefois, la recommandation basée sur les voisins est plus coûteuse en raison
du calcul des similarités entre les items (ou les utilisateurs). Une solution consiste à
précalculer les similarités, et à ne conserver que les k plus proches voisins. Le stockage des k
plus proches voisins ne nécessitant pas un espace important, ce qui permet à de telles
approches de passer l'échelle même pour des applications ayant des millions d'utilisateurs et
d'items [16].
Les méthodes basées sur la mémoire maintiennent une base de données des votes de tous les
utilisateurs. Un score de similarité [7] est déterminé entre l'utilisateur courant et chacun des
autres membres de la base. Chaque prédiction entraîne ensuite un calcul sur l'ensemble de
cette source de données.
Ces techniques basées sur la mémoire sont divisées en deux analyses : FC à base d'items, et
FC à base d'utilisateurs, nous allons expliquer chacune de ces deux analyses, aussi nous
présentons les principales méthodes utilisées par la recommandation collaborative pour le
calcul de la similarité entre deux objets (items ou utilisateurs).
En plus des notations définies dans ce chapitre, on note par ̅̅̅ 𝑣𝑢 la moyenne des votes de
l'utilisateur U sur les items qu'il a notés (formule III.1) et par ū la moyenne des votes de
l'item i (formule III.2).
∑ 𝑢𝜖𝑈𝑖 𝑣𝑖
𝑣𝑢 =
̅̅̅ |𝑈𝑖 |
(III.1)
∑ 𝑖𝜖𝐼𝑖 𝑣𝑖
𝑣̅𝑖 = |𝐼𝑖 |
(III.2)
On note également par sim(u, v) la fonction mesurant la similarité entre les deux utilisateurs u
et v (resp. sim(i, j) celle mesurant la similarité entre les deux items i et j). On définit 𝐼𝑢𝑤 =
𝐼𝑢 ∩ 𝐼𝑤 l'ensemble des items notés à la fois par les utilisateurs u et w, et de façon équivalente
28
CHAPITRE III TECHNIQUES DE RECOMMANDATION
𝑈𝑖𝑗 = 𝑈𝑖 ∩ 𝑈𝑗 l'ensemble des utilisateurs ayant notés à la fois les items i et j. Enfin, on note
par voisins(u) l'ensemble des utilisateurs 𝑤 ∈ 𝑈 définis comme les voisins de l'utilisateur u.
A : L'analyse basée sur l'utilisateur :
Cette technique de recommandation se base sur le principe de trouver des utilisateurs
similaires à l’utilisateur courant puis d’utiliser leurs évaluations pour prédire ce que
l’utilisateur courant peut aimer. Les utilisateurs similaires à l’utilisateur courant, appelés
voisins de cet utilisateur, sont ceux qui ont un comportement d’évaluation similaire à celui de
l’utilisateur courant.
La formule donnée en (III.3) est dite naïve parce qu'elle considère tous les voisins au même
pied d'égalité et ne tient pas compte du fait que certains voisins soient plus proches que
d'autres de l'utilisateur courant 𝑢𝑎 . Afin de tenir compte de cette diversité, dans la somme de
la formule (III.3), on pondère le vote de chaque voisin par la valeur de sa similarité avec
l'utilisateur courant. Ainsi, les votes des plus proches voisins auront un poids plus important
que celui des voisins les moins proches. Vu que la somme des poids de tous les voisins n'est
29
CHAPITRE III TECHNIQUES DE RECOMMANDATION
pas égale à 1, et afin de normaliser la valeur de la prédiction, cette somme est divisée par la
somme des similarités de l'utilisateur courant avec ses voisins.
L'équation (III.4) donne la formule correspondante pour le calcul de la prédiction.
∑𝒖𝝐𝒗𝒐𝒊𝒔𝒊𝒏𝒔(𝒖𝒂 )∩𝒖 𝑠𝑖𝑚(𝑢𝑎 ,𝑢)𝑣𝑢𝑖
𝒊
𝒑𝒓𝒆𝒅(𝒖𝒂 , 𝒊) = ∑𝒖𝝐𝒗𝒐𝒊𝒔𝒊𝒏𝒔(𝒖𝒂 )∩𝒖 |𝑠𝑖𝑚(𝑢𝑎 ,𝑢)|
(III.4)
𝒊
Par ailleurs, tous les utilisateurs sont différents dans leurs façons d'évaluer un item. En effet, il
existe des utilisateurs qui notent large en affectant la valeur de 5 sur une échelle de 1 à 5 pour
un item qu'ils jugent satisfaisant alors que d'autres, qui ont tendance à noter de façon plus
stricte, attribueront la valeur 3 à un item qu'ils jugent satisfaisant. Pour compenser la variation
dans le jugement des utilisateurs, le vote de chaque utilisateur u est ajusté par la moyenne de
ses votes Uz. L'équation (III.5) donne la formule adoptée par les auteurs de pour le calcul de
la prédiction.
∑𝒖𝝐𝒗𝒐𝒊𝒔𝒊𝒏𝒔(𝒖𝒂 )∩𝒖 𝑠𝑖𝑚(𝑢𝑎 ,𝑢)(𝑣𝑢𝑖 −𝑣𝑢 )
𝒊
𝒑𝒓𝒆𝒅(𝒖𝒂 , 𝒊) = ∑𝒖𝝐𝒗𝒐𝒊𝒔𝒊𝒏𝒔(𝒖𝒂 )∩𝒖 |𝑠𝑖𝑚(𝑢𝑎 ,𝑢)|
(III.5)
𝒊
Dans l'algorithme initial tel qu’implanté dans le GroupLens système [20], tous les voisins sont
pris en compte dans le calcul de la prédiction. Il a été démontré par la suite que la prise en
compte des k plus proches voisins améliore, non seulement la pertinence des prédictions, mais
également l'efficacité de l'algorithme [11].
Recommandation Top-N basée sur les utilisateurs :
Les algorithmes de recommandation Top-N sont généralement utilisés lorsque le système ne
dispose pas de votes numériques définis sur une échelle de valeur mais de votes binaires
(aime, n'aime pas) ou unaire (a acheté, a consulté). Comme pour la prédiction basée sur les
utilisateurs, une première étape consiste à définir les plus proches voisins de l'utilisateur
courant en utilisant soit le coefficient de Pearson soit le Cosinus. Une fois les plus proches
voisins de l'utilisateur courant 𝑢𝑎 identifiés, une deuxième étape consiste à déterminer pour
chaque voisin w, la liste 𝐿𝑤 des items pertinents (items achetés). Les items sont par la suite
triés selon la fréquence de leur présence dans les listes de tous les voisins. Le Top-N des items
les plus fréquents seront alors recommandés à 𝑢𝑎 . Les algorithmes de recommandation Top-
N basés sur les utilisateurs souffrent du problème de passage à l'échelle et du problème de
performance pour les applications en temps réel.
B : L'analyse basée sur l'item :
Les approches dans cette classe appliquent les calculs statistiques sur les items. L'idée
fondamentale est de proposer à l'utilisateur des items similaires à ceux qu'il a aimés [9].
Le filtrage collaboratif basé sur les utilisateurs souffre de problèmes de montée en charge si la
base d’utilisateurs est importante. La technique du filtrage collaboratif basé sur les items
(Sarwar et al. 2001) a été développée pour répondre à cette problématique. Cette technique est
utilisée lorsqu’il s’agit de trouver des items similaires à l’item courant. Cette technique utilise
les similarités entre les patterns des évaluations des items. Si deux items ont tendance à avoir
les mêmes utilisateurs qui les aiment et les mêmes utilisateurs qui ne les aiment pas, alors ces
items sont similaires. Les utilisateurs ont des préférences similaires pour les items similaires.
30
CHAPITRE III TECHNIQUES DE RECOMMANDATION
Les algorithmes basés sur les items sont moins sensibles aux données manquantes et plus
performants en termes d'efficacité (complexité de calcul) que les algorithmes basés sur les
utilisateurs. Cependant, et malgré leur lenteur, les expérimentations ont montré que les
algorithmes basés sur les utilisateurs sont plus performants en terme de précision [25].
31
CHAPITRE III TECHNIQUES DE RECOMMANDATION
Dans le cas du filtrage collaboratif, chaque utilisateur u est représenté par un vecteur 𝑥𝑢 ∈
𝑅|𝐼 |, où 𝑥𝑢𝑖 = 𝑣𝑢𝑖 si l'utilisateur u a évalué l'item i. Étant donné les valeurs manquantes dans
la matrice des votes, le cosinus est calculé sur l'ensemble des items notés par les deux
utilisateurs. La similarité entre deux utilisateurs u et w est alors donnée par la formule (III.8).
∑𝑖∈𝐼𝑢𝑤 𝑉𝑢𝑖 𝑉𝑤𝑖
𝑠𝑖𝑚(𝑢, 𝑤 ) = cos(⃗⃗⃗⃗ 𝑥𝑤 ) =
𝑥𝑢 , ⃗⃗⃗⃗⃗ (III.8)
√∑𝑖∈𝐼𝑢𝑤 𝑉𝑢𝑖 2 √∑𝑖∈𝐼𝑢𝑤 𝑉𝑤𝑖 2
La formule (III.9) applique le cosinus pour calculer la similarité entre deux items. En fait, il
suffit de remplacer dans l'équation (III.8) les utilisateurs par leurs équivalents en items.
∑𝑢∈𝑈 𝑉𝑢𝑖 𝑉𝑢𝑗
𝑖𝑗
𝑠𝑖𝑚(𝑖, 𝑗) = cos(𝑥
⃗⃗⃗𝑖 , ⃗⃗⃗
𝑥𝑗 ) = (III.9)
√∑𝑖∈𝑈𝑢𝑖 𝑉𝑢𝑖 2 √∑𝑖∈𝐼𝑢𝑗 𝑉𝑢𝑗 2
32
CHAPITRE III TECHNIQUES DE RECOMMANDATION
Le Cosinus varie entre 0 et 1. Une valeur égale à 1 indique que les deux utilisateurs ont des
préférences identiques, une valeur égale à 0 indique qu'ils n'ont rien en commun. Un
inconvénient majeur de l'utilisation du cosinus dans le filtrage collaboratif est qu'il ne tient pas
compte de la variation dans le jugement des utilisateurs.
Coefficient de corrélation de Pearson :
Utilisé par les auteurs du système GroupLens [27] pour calculer la similarité entre deux
utilisateurs u et w de U. Le coefficient de corrélation de Pearson mesure la liaison linéaire
entre deux variables numériques en calculant le rapport entre leur covariance et le produit non
nul de leur écart type. Il permet ainsi de mesurer la similarité en supprimant l'inconvénient de
la variation des votes. L'équation (III.10) donne la formule de calcul de la mesure de
corrélation entre deux utilisateurs u et w. En raison des données manquantes, seuls les items
notés à la fois par u et w sont pris en compte.
∑𝑖∈𝐼𝑢𝑤 (𝑣𝑢𝑖 𝑣̅𝑢 )(𝑣𝑤𝑖 𝑣̅𝑤 )
𝑠𝑖𝑚(𝑢, 𝑤 ) = 𝑃𝑒𝑎𝑟𝑠𝑜𝑛 (𝑢, 𝑤 ) = (III.10)
√∑𝑖∈𝐼𝑢𝑤(𝑣𝑢𝑖 𝑣̅𝑢 )√∑𝑖∈𝐼𝑢𝑤 (𝑣𝑤𝑖 𝑣̅𝑤 )
Le coefficient de corrélation de Pearson varié entre -1 et 1. Une valeur égale à 1 indique que
les utilisateurs partagent exactement les mêmes goûts, une valeur de -1 indique qu'ils ont des
goûts totalement opposés. Le coefficient de Pearson est généralement reconnu comme étant la
meilleure mesure pour calculer la similarité entre les utilisateurs. Il peut être également utilisé
pour mesurer la corrélation entre deux items. L'équation (III.12) donne le coefficient de
Pearson entre deux items i et j.
∑𝑢∈𝑈 (𝑣𝑢𝑖 𝑣̅𝑗 )(𝑣𝑢𝑗 𝑣̅𝑗 )
𝑖𝑗
𝑠𝑖𝑚(𝑖, 𝑗) = 𝑃𝑒𝑎𝑟𝑠𝑜𝑛 (𝑖, 𝑗) = (III.11)
√∑𝑢∈𝑈𝑢𝑗(𝑣𝑢𝑗 𝑣̅𝑢 )√∑𝑢∈𝑈𝑢𝑗 (𝑣𝑖𝑗 𝑣̅𝑗 )
Jean - 2 7 8
Marie 4 1 - 7
Christian 3 8 - 4
TABLE III.1 – Exemple de matrice d'évaluation
Introduit par Sarwar et al c'est la plus populaire et la plus pertinente des mesures utilisées dans
le calcul de la similarité entre deux items dans les algorithmes de filtrage collaboratifs. Le
cosinus ajusté est en fait une amélioration du cosinus en ajustant la valeur des votes d'un
utilisateur par rapport à la moyenne de ses votes.
33
CHAPITRE III TECHNIQUES DE RECOMMANDATION
(III.12) Comme le coefficient de Pearson, le Cosinus ajusté varient entre -1 et 1. Une valeur
égale à 1 indique que les deux items sont identiques, une valeur égale a -1 indique qu'ils sont
opposés.
Exemple
La table (III.1) présente la correspondance entre les utilisateurs et les items.
On suppose que les appréciations vont de 0 à 10 (très mauvais à excellent) et que le tiret « - »
représente l'absence d'évaluation. En effet, la plupart des utilisateurs ne vont noter qu'un très
petit nombre d'items (par exemple Amazon vend des millions de livres, un lecteur même
assidu ne peut en noter au plus que quelques milliers). Dans de nombreux cas, la matrice sera
donc creuse, voire très creuse. Supposons que nous voulions maintenant utiliser cette matrice
pour calculer une similarité entre utilisateurs puis pour induire 𝑃𝑟𝑒𝑑(𝑢𝑙 , 𝑖𝑗 ) pour un utilisateur
𝑢𝑙 et un item 𝑖𝑗 donnés.
Avec X Jean = (2 + 8)/2 = 5 et X Marie = (1 + 7)/2 = 4 quand on prend les articles notés en
−12
commun. Entre Jean et Christian, elle est : Sim (Jean, Christian) = = 12 /(3 · 2 · 2) = -1
√18√8
−12
Et entre Marie et Christian : Sim (Marie, Christian) = ≈ -0.756 Il apparaît ainsi que Jean
√18√8
et Marie sont positivement corrélés, tandis que Jean et Christian, de même que Marie et
Christian, sont des paires corrélées négativement. Il faut noter que s'il peut sembler étrange
que Jean et Christian soient parfaitement négativement corrélés, il faut prendre en compte leur
moyenne sur les composantes 2 et 4 à savoir 5 pour Jean et 6 pour Christian. Par rapport à ces
moyennes, les notes de Jean pour les items 2 et 4 sont -3 et +3, tandis que pour Christian elles
sont 2 et -2. Il y a bien tendance exactement inverse.
Calcul d'une recommandation
Supposons que nous voulions prédire la note que donnerait Jean à l'item 1 et que nous
prenions Marie et Christian comme voisins.
17 (1. (4– 4)) + (−1. (3 − 5))
𝑃𝑟𝑒𝑑 (𝐽𝑒𝑎𝑛, 𝑖𝑡𝑒𝑚 1) = + = 5.67 + 1 ≈ 6.67
3 1+1
Intuitivement, puisque Christian n'a pas aimé l'item 1, et qu'il est négativement corrélé avec
Jean, alors cela devrait amener à penser que Jean va plutôt aimer item 1, d'où une valeur
34
CHAPITRE III TECHNIQUES DE RECOMMANDATION
35
CHAPITRE III TECHNIQUES DE RECOMMANDATION
36
CHAPITRE III TECHNIQUES DE RECOMMANDATION
III.7 Conclusion
Dans ce chapitre nous avons présenté un certain nombre d'approches visant à produire des
systèmes de recommandation.
Les systèmes basés sur le filtrage collaboratif reposent seulement sur les évaluations des
utilisateurs et peuvent être utilisés afin de recommander des articles sans aucune manipulation
de contenu.
Nous nous sommes intéressés au filtrage collaboratif. En effet, les avantages du filtrage
collaboratif incluent la capacité à filtrer n'importe quel type de contenu : du texte, de la vidéo,
de la musique..., dont la manipulation est complexe et demande du temps.
Ce filtrage ne demande pas de connaissances particulières sur les méthodes de fouille de
contenu, de recherche d'information ou d'indexation.
Le filtrage collaboratif est une technique dont le principe est simple à appliquer et bien
adaptée aux articles dont le contenu est complexe (vidéo, son, images...).
Dans le chapitre suivant, nous allons présenter nos résultats expérimentaux en
appliquant l'approche proposée, une étude comparative entre les deux méthodes de
filtrage collaboratif pour enfin conclure quelle est la meilleure.
37
CHPITRE IV
EXPÉRIMENTATION
CHAPITRE IV EXP ÉRIMENTATION
CHAPITRE IV
IV.1 Introduction
Nous allons expérimenter un système de recommandation, et nous allons faire une étude
comparative entre les deux méthodes de filtrage collaboratif pour enfin conclure quelle est la
meilleure avec le langage de programmation python. Mais avant cela, nous allons présenter
notre environnement de travail.
IV.2 Environnement de travail
IV.2.1 Matériel
Mémoire (RAM): 8 GO.
Processeur : Intel ® Core™ i5-5300U CPU 2.30 GHz 2.29 GHz.
Système d'exploitation : Système d’exploitation 64 bits, processeur x64.
IV.2.2 Python
Python est un langage de script de haut niveau, portable, dynamique, extensible, gratuit,
structuré et open source conçu pour être orienté objet. Il est multi-paradigme et multi-usage.
Développé à l'origine par Guido Van Rossum en 1993, il est, comme la plupart des
applications et outils open source, maintenu par une équipe de développeurs un peu partout
dans le monde.
IV.2.3 Caractéristiques du langage :
– Python est portable, non seulement sur les différentes variantes d'UNIX, mais aussi sur les
OS propriétaires : MacOS, BeOS, NeXTStep, MS-DOS et les différentes variantes de
Windows.
– Python est gratuit, mais on peut l'utiliser sans restriction dans des projets commerciaux
– La syntaxe de Python est très simple et combinée des types des données évolués (listes,
dictionnaires...), conduit à des programmes à la fois très compacts et très lisibles.
– Python gère ses ressources (mémoire, descripteurs de fichiers...) sans intervention du
programmeur, par un mécanisme de comptage de références (proche, mais différent, d'un
garbage collector).
– Python est orienté-objet. Supporte l'héritage multiple et la surcharge des opérateurs.
– Python est dynamique (l'interpréteur peut évaluer des chaînes de caractères représentant des
expressions ou des instructions Python), orthogonal (un petit nombre de concepts suffit à
engendrer des constructions très riches), réflectif (il supporte la méta programmation, par
exemple la capacité pour un objet de se rajouter ou de s'enlever des attributs ou des méthodes,
ou même de changer de classe en cours d'exécution) et introspectif (un grand nombre d'outils
de développement, comme le debugger ou le profiler, sont implantés en Python lui-même).
39
CHAPITRE IV EXP ÉRIMENTATION
∑𝒏
𝒊=𝟏( 𝐝 𝐢 −ˆ𝐝 𝐢 )
𝟐
RMSE=√ …………………………. (1)
𝒏
40
CHAPITRE IV EXP ÉRIMENTATION
Si la précision est faible, l'utilisateur sera insatisfait, car il devra perdre du temps à lire des
items qui ne l'intéressent pas. Si le rappel est faible, l'utilisateur n'aura pas accès à un item
qu'il souhaiterait avoir.
Un système de recommandation parfait doit avoir une précision et un rappel près de la valeur
1, mais ces deux exigences sont souvent contradictoires et une très forte précision ne peut être
obtenue qu'au prix d'un rappel faible et vice-versa.
IV.5 Apprentissage :
Quel que soit le jeu de données utilisé, et quel que soit l'approche utilisée nous devons
impérativement passer par les étapes suivantes :
- Télécharger le fichier, puis le lire avec la bibliothèque pandas du python.
- Construire la matrice d'évaluation utilisateur-item.
- Diviser les données en ensembles d'apprentissage et de test.
- Construire une matrice de similarité.
Avec notre matrice de similarité en main, nous pouvons maintenant prédire les notations qui
n'ont pas été incluses dans les données.
En utilisant ces prédictions, nous pouvons ensuite les comparer avec les données de test pour
essayer de valider la qualité de notre modèle de recommandation.
IV.5.1 Résultats expérimentaux
Modélisation : il existe deux types de recommandation :
- Approche basée sur le contenu (content Based): On ne va pas l'utiliser vu qu'on n'a pas les
caractéristiques de chaque item et de chaque utilisateur.
-Approche de filtrage collaboratif (collaboratif filtering): Qui se base sur la note attribuée par
l'utilisateur sur l'item.
Il existe deux types de systèmes de recommandation par filtrage collaboratif : Modèle basé
sur la mémoire et méthode basé sur le modèle :
41
CHAPITRE IV EXP ÉRIMENTATION
Pour le modèle basé sur la mémoire, on a utilisé le FC à base utilisateur et FC à base item
pour les métriques "cosinesimilarity" et "cityblock".
Pour filtrage collaboratif basé sur le modèle, on a utilisé les SVDs et le gradient stochastique
descendant pour l'améliorer.
Problématique :
Python n'a pas réussi à créer des matrices avec 7636 lignes et 1264 colonnes (pour construire
la matrice user-item). C'est pour cela on a voulu expliquer et résolut le problème dans un cas
de jeu de données plus petit dis ont de l'ordre 100.000 au lieu de 10.000.000. À la fin on a
réussi à résoudre le problème avec tout le jeu de donnés. On a aperçu que la base de données
présente les notes utilisateur par utilisateur. Donc c'est on prend 100.000 observations
aléatoirement de la base, on peut tomber sur le même problème vu qu'on peut ne pas réduire
vraiment le nombre des utilisateurs et le nombre des items, pour ça on a décidé de travailler
sur les premiers 100.000 lignes.
42
CHAPITRE IV EXP ÉRIMENTATION
Pour le faire, on utilise 2 métriques le cosine similaire et cityblock. On a commencé par créer
les matrices user-item train et test. Ce sont les deux matrices qui vont croiser les notes des
utilisateurs et des items. Puis, on a créé nos 4 modèles basés sur la mémoire, à la fin, on a créé
une fonction pour faire les prédictions selon le modèle.
43
CHAPITRE IV EXP ÉRIMENTATION
-Les modèles basés sur la mémoire sont faciles à implémenter et générer des bons résultats.-
Ce type de modèle n'est pas scalable (n'est pas vraiment pratique dans un problème d'une
grande base de données vu qu'il calcule à chaque fois la corrélation entre tous les utilisateurs
et les items) et ne résolut pas le problème de cold start (lorsqu'on commence avec un nouvel
utilisateur/item dont on n'a pas assez d'information)
-Pour répondre au problème de scalabilité on crée les modèles basés sur le modèle (partie
suivante).
-Pour répondre au problème de cold start, on utilise la recommandation basée sur le contenu
(on ne va pas l'utiliser vu qu'on n'a pas ces données).
2. Filtrage collaboratif basé sur le model :
Dans cette partie du projet, nous appliquons le deuxième sous-type du filtrage collaboratif :
"Model-based".
Il consiste à appliquer la matrice de factorisation (MF) : c'est une méthode d'apprentissage
non supervisé de décomposition et de réduction de dimensionnalité pour les variables cachées.
Le but de la matrice de factorisation est d'apprendre les préférences cachées des utilisateurs et
les attributs cachés des items depuis les ratings connus dans notre jeu de données, pour enfin
prédire les ratings inconnus en multipliant les matrices de variables cachées des utilisateurs et
des items.
Il existe plusieurs techniques de réduction de dimensionnalité dans l'implémentation des
systèmes de recommandations.
Dans notre projet, nous avons utilisés :
- SVD : Singular Value Decomposition.
- SGD : Stochastic Gradient Descent.
- NMF (sklearn) : Non-Negative Matrix Factorization.
-ALS : Alternating Least Squares.
2.1 Décomposition en valeurs singulières (SVD) :
Cette technique, comme toutes les autres, consiste à réduire la dimensionnalité de la matrice
User-Item calculée précédemment.
Posons R la matrice User-Item de taille m x n (m : nombre de users, n: nombre d'items) et k:
la dimension de l'espace des caractères cachés.
L'équation générale de SVD est donnée par : R=USV^T.
- La matrice U des caractères cachés pour les utilisateurs : de taille m*k.
- La matrice V des caractères cachés pour les items : de taille n*k.
- La matrice diagonale de taille k x k avec des valeurs réelles non-négatives sur la diagonale.
On peut faire la prédiction en appliquant la multiplication des 3 matrices.
On a trouvé 1.49 comme RMSE, c'est plus grand que le RMSE des modèles basés sur la
mémoire, mais ça prend énormément moins du temps.
44
CHAPITRE IV EXP ÉRIMENTATION
Ce qu'on va dans la partie qui suit c'est d'améliorer notre modèle par le gradient stochastique.
2.2 Algorithme du gradient stochastique(SGD)
L'algorithme du gradient stochastique est une méthode de descente de gradient (itérative)
utilisée pour la minimisation d'une fonction objectif qui est écrite comme une somme
de fonctions différentiables.
Quand on utilise le filtrage collaboratif pour SGD, on veut estimer deux matrices P et Q:
- La matrice P des caractères cachés pour les utilisateurs : de taille m*k (m: nombre
d'utilisateurs, k: dimension de l'espace des caractères cachés)
- La matrice Q des caractères cachés pour les items : de taille n*k (m: nombre d'items, k:
dimension de l'espace des caractères cachés)
Après l'estimation de P et Q, on peut alors prédire les ratings inconnus en multipliant les
matrices P et la transposée.
45
CHAPITRE IV EXP ÉRIMENTATION
attributs sont ambigus ou ont une faible prévisibilité. En combinant des attributs, NMF peut
produire des modèles, des sujets ou des thèmes significatifs. Voici la formule de la fonction
de NMF avec le résultat :
Résultat final :
46
CHAPITRE IV EXP ÉRIMENTATION
Pour filtrage collaboratif basé sur la mémoire: les modèles sont faciles à implémenter, ils
génèrent des bons résultats mais ils ne résolvent pas les problèmes de Cold Start (pas
d’informations sur les utilisateurs et les items), de rareté des données et de scalabilité (monter
dans les dimensions).
Pour le filtrage collaboratif basé sur le modèle: Ils ont résolu le problème de rareté des
données. Et chaque algorithme a ces points faibles et ces points forts. Pour l’utilisation de la
matrice de factorisation finale : On a résolu le problème de scalabilité et de rareté des
données. Mais on n’a pas exploité la variable date_ratings pour que nos tests soient plus
significatifs.
On a trouvé comme résultat final que l’algorithme basé sur modèle est le meilleur de tous les
autres algorithmes. Dans deux itération on a trouvé une erreur de train qui est égale à x et une
erreur de test qui est égal à y. Comme c'est l'algorithme le plus rapide et le plus efficace, On a
décidé de le généralisé sur tout le jeu de données.
IV.6 Conclusion:
Dans ce chapitre, nous avons présenté le cadre applicatif de notre travail. Nous avons décrit la
mise en œuvre des différents modules de l'architecture proposée, en précisant le rôle de
chaque élément. Ensuite, une présentation était faite des outils utilisés et du prototype que
nous avons utilisé comme support à notre approche. Enfin nous avons présenté et discuté
l'expérimentation mise en place. Le but principal de cette implémentation est de comparer les
deux algorithmes à fin de conclure quel est le meilleur et de démontrer que cet algorithme
peut résoudre le problème scalabilité et de rareté des données, ainsi il permet d'améliorer la
qualité et la performance du système.
47
Conclusion général et perspectives
Les systèmes de recommandation automatique sont devenus à l'instar des moteurs de
recherche, un outil incontournable pour tout site Web focalisé sur un certain type d'articles
disponibles dans un catalogue riche, que ces articles soient des objets, des produits culturels
(livres, films, morceaux de musique, etc.), des éléments d'information (news) ou encore
simplement des pages (liens hypertextes). L'objectif de ces systèmes est de sélectionner, dans
leur catalogue les items les plus susceptibles d'intéresser un utilisateur particulier, ont
répertorié un vaste ensemble de systèmes de recommandation pour différents domaines
applicatifs, dans des contextes académiques et industriels.
La tendance actuelle des systèmes de recommandation est plutôt axée sur des méthodes
nouvelles, multicritères, multidimensionnelles ou encore se fondant sur des notions
psychologiques comme les émotions, les opinions. Notons cependant qu’un système de
recommandation doit avant tout s’adapter aux données, celles là mêmes que l’on proposera à
un utilisateur. Ainsi, le choix d’une méthode de recommandation doit en premier lieu êtres
dirigé par ce critère.
Le travail présenté dans ce mémoire rentre dans le cadre du filtrage collaboratif qui est la
méthode la plus importante et la plus utilisée dans les systèmes de recommandation. Nous
avons présenté expérimentalement, une étude comparative entre les deux méthodes de filtrage
collaboratif. Nos résultats ont montré que l’algorithme basé sur modèle est le meilleur de tous
les autres algorithmes, ainsi que cet algorithme peut résoudre le problème scalabilité et de
rareté des données, ainsi il permet d'améliorer la qualité et la performance du système.
Comme perspectives nous envisageons d'apporter quelques améliorations à savoir :
• En premier lieu, nous souhaitons combines le filtrage collaboratif avec le filtrage à
base du contenu dans le but d’avoir de meilleurs résultats.
• Et en second lieu, nous envisageons de rechercher sur comment donner une
explication à une recommandation pour améliorer la confiance des systèmes de
recommandation.
48
Liste des abréviations
IA : Intelligence Artificielle.
AA : Apprentissage Automatique.
SR : Système de Recommandation.
FC : Filtrage Collaboratif.
FC-I: Filtrage Collaboratif basé sur Item.
FC-U : Filtrage Collaboratif basé sur Utilisateur.
CBR : Raisonnement basé sur les cas.
CBF : Filtrage basé sur le contenu.
RMSE : Erreur quadratique moyenne.
MF : Matrice de factorisation.
SVD : Décomposition en valeurs singulières.
SGD : Algorithme du gradient stochastique.
NMF : Factorisation matricielle non négative.
BIBLIOGRAPHIE
[1]http://elearning.univ-jijel.dz/elearning/pluginfile.php/4333/mod-
resource/content/1/SupportCours Mokhtar-Taffar-ApprAuto.pdf.
[2] https://rai2020.blogspot.com/2016_02_28_archive.html.
[3] https://aws.amazon.com/fr/personalize/
[4]http://www.pearltrees.com/damienmilin/article-voir/id16676292/item1905249791590/vous
avez dit machine learning?
[5] L'efficacité de la recommandation produit chez amazon, 24,25
[6] Gediminas Adomavicius and YoungOk Kwon. New recommendation techniques for
multicriteria rating systems. IEEE Intelligent Systems, 2007.22
[7] Charu C. Aggarwal. 34,35,36
[8] Fernandez . M. Mani Onana F. S. Aimeur E., Brassard G. Privacy-preserving demographic
filtering, proc. of the ACM Sym. on Applied computing, pp.872 – 878, 2006. 31
[9] Hirsh H. Cohen W. Basu, C. and N. C. Manning.39
[10] A. Belloui. L'usage des concepts du web sémantique dans le filtrage d'information
collaboratif. PhD thesis, Institut National d'Informatique d'Alger., 2008.29
[11] Heckerman D. Breese, J. and C. Kadie. Empirical analysis of predictive algorithms for
collaborative filtering. In 14th Annual Conference on Uncertainty in Artificial Intelligence,
pages 43-52, 1998.38
[12] R. Burke. Hybrid recommender systems : Survey and experiments. User Modeling and
User-Adapted Interaction, 2002. 16,22,32,33
[13] Lakkaraju P. Luong H. P. Chandrasekaran K., Gauch S. Concept-based document
recommendations for citeseer authors. In Proc. of the 5 th Inter.Conf., 5149, pp. 83-92.,
2008.30
[14] Rijsbergen C.J.V. Information retrieval. second edition. Butterworks, 1979.20
[15] Steve Lawrence David M. Pennock, Eric Horvitz and C. Lee Giles. collaborative filtering
by personality diagnosis :a hybrid memory- and model-based approach. In Proceedings of the
sixteenth Conference on Uncertainty in Artificial Intelligence, 2000. 39,41
[16] Christian Desrosiers and George Karypis. A survey of collaborative filtering techniques.
adv. In Francesco Ricci, Lior Rokach, Bracha Shapira, and Paul B. Kantor, editors,
Recommender Systems Handbook, pages 107–144., 2011. 35,36,44
[17] Nichols D. Oki M. Goldberg, D. and D. Terry. Using collaborative filtering to weave an
information tapestry. Communications of the ACM, 35:61-70, 1992. 15
[18] Gasparetti F. Micarelli A. Sansonetti G. Gurini, D. F. A sentiment-based approach to
twitter user recommendation. In RSWeb@ RecSys, 2013. 19
[19] K. Hammond. Case-based planning : Viewing planning as a memory task. Boston, MA :
Academic Press, 1989. 32,33
[20] Jon Herlocker J. Ben Schafer, Dan Frankowski and Shilad Sen. Collaborative filtering
recommender systems. in Lecture Notes in Computer Science, pages 291–324. Springer
Berlin Heidelberg., 2007. 38
[21] Jon Herlocker J. Ben Schafer, Dan Frankowski and Shilad Sen. Collaborative filtering
recommender systems. in peter brusilovsky, alfred kobsa, and wolfgang nejdl, editors, the
adaptive web, in Lecture Notes in Computer Science, pages 291-324., 2007. 33
[22] et J. Riedl J. Herlocker, J. Konstan. An empirical analysis of design choices in
neighborhood-based collaborative filtering algorithms. Information Retrieval, 2002. 16
[23] F. Meyer. Recommender systems in industrial contexts. PhD thesis, University of
Grenoble, France, 2012. 16
[24] Joseph A. Konstan Al Borchers Nathaniel Good, J. Ben Schafer. Combining
collaborative filtering with personal agents for better recommendations. In Proceedings of the
Sixteenth National Conference on Artificial Intelligence and the Eleventh Innovative
Applications of Artificial Intelligence Conference Innovative Applications of Artificial
Intelligence.pages 439–446, Menlo, Park,, 1999. 44
[25] Elsa Negre. 16,40
[26] D. Poirier. Des textes communautaires à la recommandation. PhD thesis, Université
d'Orléans et Université Pierre et Marie Curie - Paris 6., 2011. 25
[27] P. Resnick and H. Varian. Recommender systems. Communications of the ACM, 40 :56-
58, 1997. 15,16,37,41
[28] F. Ricci. Travel recommender systems. IEEE Intelligent Systems, 2002. 17,29
[29] Karypis G. Konstan J. Sarwar, B. and J. Riedl. Item-based collaborative filtering
recommendation algorithms. In WWW10, pages 285-295, Hong Kong. ACM., 2001. 39,40,42
[30] Senee. 5 moteurs de recommandation de merchandising à la loupe, 2015. 26
[31] Larson M. Hanjalic A. Shi, Y. Collaborative filtering beyond the user-item matrix : A
survey of the state of the art and future challenges. ACM Computing Surveys (CSUR), 2014.
18,19
[32] Xiaoyuan Su and Taghi M. Khoshgoftaar. A survey of collaborative filtering techniques.
adv. in Artif. Intell., 2009, pp.4:2-4:2., 2009. 35
[33] Quinn C. Towle B. Knowldge based recommender systems using explicit user models. In
KBEM, Technical Report WS-00-04, pp. 74-44., 2000. 33
[34]https://sites.google.com/site/tpemachinelearning/lintelligenceartificielle/machine_learning