pthon
pthon
pthon
—————————————————————
UNIVERSITE KASDI MERBAH
OUARGLA
—————————————————————–
Faculté des Nouvelles Technologies de
l’Information et de la Communication
Filière :Informatique
Thème
Soutenu le : 04/06/2016
Dieu le tout puissant, mon créateur. À mon père, en signe d’amour, de reconnaissance et
de gratitude pour tous les soutiens et les sacrifices dont il a fait preuve à mon égard. À
ma mère, ma raison d’être, ma raison de vivre, la lanterne qui éclaire mon chemin et
m’illumine de douceur et d’amour. À mes frères et mes sœurs. À toutes mes amies, qui
m’ont beaucoup aidé à réaliser ce projet, et à tous mes proches.
Remerciements
Nous tenons tout d’abord à remercier Dieu le tout puissant et miséricordieux, qui
nous a donné la force et la patience d’accomplir ce modeste travail. En second lieu, nous
tenons à remercier particulièrement notre encadreur monsieur Abdelhakim Herrouz
maitre-assistant A à Université Kasdi Merbah Ouargla pour son encadrement et pour
l’intérêt qu’il a manifesté à notre travail. Nos vifs remerciements vont également aux
membres du jury pour l’intérêt qu’ils ont porté à notre recherche en acceptant
d’examiner notre travail et de l’enrichir par leurs propositions.
Enfin, nous tenons également à remercier tous ceux qui ont contribué de près ou de loin
à la réalisation de ce travail.
Table des matières
Résumé 1
Introduction générale 2
i
1.8 Différence entre Système de Recommandation SR et Moteur de Recherche
MR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.9 Les étapes principales de la recommandation . . . . . . . . . . . . . . . . . 13
1.9.1 La collecte d’information . . . . . . . . . . . . . . . . . . . . . . . . 13
1.9.2 Modèle utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.9.3 Liste de recommandations . . . . . . . . . . . . . . . . . . . . . . . 15
1.10 Les techniques de recommandation . . . . . . . . . . . . . . . . . . . . . . 15
1.10.1 L’analyse basée sur l’item . . . . . . . . . . . . . . . . . . . . . . . 16
1.10.2 L’analyse basée sur l’utilisateur . . . . . . . . . . . . . . . . . . . . 16
1.11 Quelle analyse est la bonne ? . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.12 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
ii
3 Présentation des systèmes de recommandation existants 27
3.1 Ezako-Un surplus d’intelligence . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2 Amazon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3 Pigdata-La recommandation produit orienté métier et visuel . . . . . . . . 29
3.4 Google . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.5 Frosmo-Un boîte à outils au service de l’amélioration de la conversion . . . 30
3.6 Target2Sell-Pour les petits comme les gros marchands . . . . . . . . . . . 30
3.7 Nuukik-Plusieurs approches d’analyse prédictive . . . . . . . . . . . . . . . 31
3.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Conclusion générale 50
Bibliographie 55
Annexe 56
iii
Table des figures
iv
4.4 Test d’accès au dictionnaire. . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.5 Fonction de Sim Distance. . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.6 L’exécution de Sim Distance. . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.7 Fonction Sim Pearson. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.8 L’exécution de Sim Pearson. . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.9 Fonction de topMatches. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.10 L’exécution de topMatches. . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.11 Fonction de GetRecommendations. . . . . . . . . . . . . . . . . . . . . . . 45
4.12 L’exécution de GetRecommendations. . . . . . . . . . . . . . . . . . . . . . 45
4.13 L’exécution Comparateur d’Objet. . . . . . . . . . . . . . . . . . . . . . . 46
4.14 Fonction de Comparateur d’Objet. . . . . . . . . . . . . . . . . . . . . . . 46
4.15 Fonction transformPrefs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.16 Dictionnaire transformé. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.17 Site Delicious. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.18 Get-popular(liste de dictionnaires URL ). . . . . . . . . . . . . . . . . . . . 48
4.19 Fichier deliciousrec.py. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.20 Fichier deliciousrec.py modifié. . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.21 Recommandation des voisins et des liens. . . . . . . . . . . . . . . . . . . . 49
v
Liste des tableaux
vi
Résumé
1
Introduction Générale
Compte tenu de la très grande masse d’information aujourd’hui disponible sur Inter-
net et le besoin en communication, en échange d’idées et en partage d’informations, les
besoins de l’utilisateur sont devenus difficiles à traiter. D’une part, parce qu’ils ne sont
pas formulés explicitement et, d’autre part, parce qu’ils sont évolutifs. Par ailleurs, de
nombreux problèmes apparaissent au niveau de la navigation hypertextuelle (surcharge
cognitive et la désorientation). Il est donc devenu primordial de concevoir des mécanismes
qui permettent aux utilisateurs d’accéder à ce qui les intéresse le plus rapidement possible.
2
de recommandation.
3
Chapitre 1
1.1 Introduction
Avec le problème de la croissance phénoménale de la quantité d’informations dispo-
nibles sur Internet et le besoin de changer d’un état de la rareté à l’état de l’abondance,
il est nécessaire de disposer d’un système qui peut recommander des bons produits en
tenant compte de certains paramètres. Il s’agit là du système de recommandation qui est
devenu plus populaire durant ces 10 à 20 dernières années. Un système de recommandation
fournit à des utilisateurs des suggestions qui répondent à leurs besoins et préférences in-
formationnels. 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.
1.2 Historique
Les systèmes de recommandation sont reconnus assez tôt dans l’histoire de l’informa-
tique : " Information Lens System " [11] peut être considérée comme le premier système
4
CHAPITRE 1. LES SYSTÈMES DE RECOMMANDATION
5
CHAPITRE 1. LES SYSTÈMES DE RECOMMANDATION
6
CHAPITRE 1. LES SYSTÈMES DE RECOMMANDATION
• La navigation spatiale
• La navigation sémantique
• La navigation sociale
Ces trois modèles ne s’excluent pas et entrent souvent en interactions(Cf.Figure 1.1[ ]).
Le modèle de navigation sociale privilégie les interactions humaines et la recommandation.
C’est une technique relationnelle qui juge d’une information en tenant compte de sa noto-
riété ou de la notoriété de l’auteur qui donne l’information. Ceci permet à celui qui veut
engager une recherche sur Internet, de bénéficier des recherches et des parcours effectués
auparavant par d’autres internautes. Les principes de la navigation sociale peuvent être
trouvés chez Michel de Certeau et Luce Giard dans " l’ordinaire de la communication ",
lorsque ces auteurs montrent que pour trouver une information, la solution qui consiste à
faire appel à des experts n’est pas la seule pratiquée. Elle s’appuie sur une distance sociale
maximale, sur la légitimité du spécialiste, sur des autorités. Les pratiques, qui constituent
7
CHAPITRE 1. LES SYSTÈMES DE RECOMMANDATION
l’angle d’attaque privilégiée des auteurs, révèlent que l’on peut tout aussi bien chercher la
même information auprès d’un ami, d’un voisin, d’un membre de sa famille, qui présentent
tous l’avantage de la proximité sociale. Ce seul trait suffira à valider leurs informations,
car elles seront exprimées dans les termes d’une culture et d’une expérience partagées [25].
8
CHAPITRE 1. LES SYSTÈMES DE RECOMMANDATION
1.5.2 La désorientation
Elle est définie comme un effet cognitif produit chez l’usager qui perd le lien significatif
entre ce qui est affiché sur son écran de travail et le but réel qu’il poursuivait au départ de
sa navigation. Ce problème peut provenir de la mémoire à court terme qui est trop court
pour se rappeler les informations déjà reçues ou pour les relier aux objectifs poursuivis.
Elle provient de la liberté de déplacement de noeud en noeud dans le système qui peut
finir par troubler l’utilisateur au risque de se poser des questions du type "où suis-je ?",
"pourquoi suis-je la ? " et "que dois je faire ? " . C’est cet effort de concentration néces-
saire pour maintenir différents travaux ou chemins en même temps qui entrainent une
surcharge cognitive de l’usager. Gall et Hannafin (1994) [7] reprennent la définition de
la désorientation proposée par Conklin [5] : "Conklin (1987) described disorientation as
either not knowing where the current location is in relation to the rest of the network, or
being unable to find a location in the network that is known to exist".
Edwards et Hardman rappellent, eux, celle proposée par Elm et Woods : " The user not
having a clear conception of the relationships within the system, or knowing his present
location in the system relative to the display structure, and finding it difficult to decide
where to look next within the system " [6]. Trois niveaux de difficultés ont été mis en
évidence :
9
CHAPITRE 1. LES SYSTÈMES DE RECOMMANDATION
qui n’est pas connu. L’utilisateur ne sait pas ce qu’il faut faire ;
2. la navigation dans l’espace conceptuel : ce sont les catégories qui structurent l’in-
formation qui ne sont familières, l’utilisateur n’arrive pas à rentrer dans le système
conceptuel de l’auteur ;
3. la navigation dans le texte : c’est le parcours des liens hypertextuels qui n’est pas
familier. L’utilisateur perd le fil de sa navigation.
Enfin, la désorientation est un effet cognitif qui semble fréquent chez les usagers novices
qui ont du mal à tirer profit des fonctionnalités offertes par les hypertextes.
10
CHAPITRE 1. LES SYSTÈMES DE RECOMMANDATION
un certain ensemble d’utilisateurs et présentes les items où un seul utilisateur peut aimer
". Et la définition générale de Robin Burke [4] qui les défini comme suit : "des systèmes
capable de fournir des recommandations personnalisées permettant de guider l’utilisateur
vers des ressources intéressantes et utiles au sein d’un espace de données important ".
En remarque dans les deux définitions que les systèmes de recommandation fonctionnent
idéalement sur les manières suivantes : soit sur les propriétés des éléments que l’utilisateur
aime ou non " les items ", soit sur la similarité entre les utilisateurs et de leur recommander
des articles en conséquence. Il est également possible de combiner ces deux méthodes pour
construire un moteur beaucoup plus robuste de recommandation. Beaucoup algorithmes
ont été utilisées pour mesurer la similarité des utilisateurs ou des items dans les systèmes
de recommandation par exemple le k-nearest neighbors (k-NN) et Pearson correlation ...
Un système de recommandation prend en compte plusieurs facteurs en considération pour
faire une recommandation à un utilisateur :
11
CHAPITRE 1. LES SYSTÈMES DE RECOMMANDATION
12
CHAPITRE 1. LES SYSTÈMES DE RECOMMANDATION
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 don-
nées sur ceux-ci afin d’être capable de construire un profil pour chaque utilisateur. Une
distinction peut être faite entre 2 formes de collecte de données :
13
CHAPITRE 1. LES SYSTÈMES DE RECOMMANDATION
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 :
Avantage : Aucune information n’est demandée aux utilisateurs, toutes les in-
formations sont collectées automatiquement. Les données récupérées sont a priori
justes et ne contiennent pas de biais de déclaration.
Le modèle utilisateur se présente généralement sous forme de matrice appelée " matrice
d’usages" On peut se le représenter comme un tableau qui contient des données recueillies
14
CHAPITRE 1. LES SYSTÈMES DE RECOMMANDATION
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. A l’inverse, plus la ressemblance est faible, et plus
la valeur de la similarité sera petite. On verra quelques exemples plus tard dans ce texte.
15
CHAPITRE 1. LES SYSTÈMES DE RECOMMANDATION
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. Deux
approches sont principalement connues dans cette classe : la recommandation à base de
contenu et le filtrage collaboratif à base d’items [2] [20].
Les approches basées sur les utilisateurs considèrent qu’un utilisateur a tendance à
privilégier les items appréciés par les utilisateurs qui lui sont similaires. Chaque approche
interprète la similarité différemment, le FC considère que les utilisateurs sont voisins s’ils
ont un comportement similaire à l’égard des items (ils attribuent des notes proches aux
items) [18]. En revanche, le SRC considère qu’un utilisateur a une tendance à imiter le
comportement et suivre les conseils des utilisateurs auxquels il fait confiance [12].
16
CHAPITRE 1. LES SYSTÈMES DE RECOMMANDATION
• Si notre liste d’articles change fréquemment, par exemple des articles liés à l’actua-
lité, il peut être utile de trouver des utilisateurs connexes pour les recommandations.
• Si l’article est recommandé à un utilisateur, il n’y a pas d’autre choix que de trouver
des utilisateurs liées.
• La dimension de l’espace de l’article et l’utilisateur peut être utile dans le choix des
approches et ceci peut être plus facile à mettre en œuvre. Par exemple, si nous avons
des millions d’utilisateurs et un ordre de grandeur de moins d’éléments, il peut être
plus facile de faire une analyse basée sur l’article. Chaque fois que les utilisateurs se
voient, vous traitez avec des matrices creuses.
1.12 Conclusion
Trouver des informations sur un grand site peut être un processus long et difficile.
Un système de recommandation peut aider l’utilisateur à trouver des informations en
leur fournissant des suggestions personnalisées. Dans ce chapitre, nous avons présenté
tout d’abord la définition de la recommandation en général et ses objectifs principaux.
Ensuite, nous avons souligné les étapes de construction d’un système de recommandation.
Comme nous avons convenu qu’un système de recommandation a pour objectif de fournir
à un utilisateur des ressources pertinentes en fonction de ses préférences. Ce dernier voit
ainsi réduit son temps de recherche mais reçoit également des suggestions de la part du
système auxquelles il n’aurait pas spontanément prêté attention. On a essayé d’expliquer
les deux principaux techniques visant à produire des systèmes de recommandation qui
sont : l’analyse basée sur l’item et l’analyse basée sur l’utilisateur.
17
Chapitre 2
2.1 Introduction
Durant ces dix dernières années, plusieurs classifications sont apparus, suivant les
données à recommander, suivant les informations disponibles et bien évidemment sui-
vantes l’objectif visé. Ce qui conduit l’émergence d’un débat sur quelle classification est
la meilleure. Ce chapitre présente et analyse les différentes classifications existants et met
en évidence les différentes approches de chaque classification. Enfin, nous allons préciser
quelle est la classification générale ou la classification de base.
18
CHAPITRE 2. CLASSIFICATION DES SYSTÈMES DE RECOMMANDATION
Dans cette approche aussi appelée filtrage cognitif, le choix des documents à recom-
mander est basé sur une comparaison des thèmes abordés dans les documents par rapport
aux thèmes intéressant l’utilisateur. Méthodes de filtrage basées sur le contenu sont basées
sur une description de l’article et le profil de la préférence de l’utilisateur. Dans un sys-
tème de recommandation basée sur le contenu, les mots clés qui sont utilisés pour décrire
les élé-ments : à côté, le profil d’utilisateur est conçu pour indiquer le type d’article que
cet utilisateur aime. En d’autres termes, ces algorithmes essayaient de recommander des
éléments qui sont similaires à ceux que l’utilisateur a aimés dans le passé (ou examine
dans le présent). En particulier, divers articles de candidats sont comparés aux éléments
19
CHAPITRE 2. CLASSIFICATION DES SYSTÈMES DE RECOMMANDATION
précédemment notés par l’utilisateur et les éléments les plus correspondants sont recom-
mandés. Cette approche a ses racines dans la récupération de l’information et filtrage de
recherche de l’information.
Les méthodes de filtrage collaboratif sont bases sur la collecte et l’analyse d’une grande
quantité d’informations sur les comportements, les activités et les préférences des utilisa-
teurs et de prédire ce que les utilisateurs apprécieront en fonction de leur similarité avec
d’autres utilisateurs. Le principal avantage de l’approche de filtrage collaboratif est qu’il
ne repose pas sur la machine contenue analysable et il est donc capable de recommander de
façon précise les éléments complexes tels que les films, sans nécessiter une compréhension
de l’article lui-même.
20
CHAPITRE 2. CLASSIFICATION DES SYSTÈMES DE RECOMMANDATION
Dans [4], Burke définit le filtrage hybride comme étant une combinaison des méthodes
traditionnelles précédemment présentées afin d’en pallier les limites. Ces dernières sont
actuellement les plus représentées dans la littérature, notamment à cause du fait qu’elles
soient jugées comme étant les plus efficaces [21] [16].
• Recommandation Personnalisée ;
• Recommandation Hybride.
21
CHAPITRE 2. CLASSIFICATION DES SYSTÈMES DE RECOMMANDATION
Il s’agit de recommander des objets (ou contenus) en se basant sur les qualités et propriétés
intrinsèques de l’objet lui-même et en les corrélant avec les préférences et intérêts de
l’utilisateur. Ce type de système va donc extraire un certain nombre de caractéristiques et
attributs propres à un contenu, afin de pouvoir recommander à l’utilisateur des contenus
additionnels possédant des propriétés similaires. Cette méthode crée un profil pour chaque
objet ou contenu, c’est-à-dire un ensemble d’attributs/propriétés qui caractérisent l’objet.
Il s’agit de recommander des choses sur la base du comportement passé des utilisateurs
similaires, en effectuant une corrélation entre des utilisateurs ayant des préférences et
intérêts similaires. On utilise des méthodes qui collectent et analysent des données sur
le comportement, les activités, les préférences des utilisateurs. Ensuite, les algorithmes
tentent de prédire ce que l’utilisateur aimera en cherchant des utilisateurs qui ont les
mêmes comportements que l’utilisateur à qui l’on souhaite faire des recommandations.
L’idée sous-jacente est de dire que si une personne A à la même opinion (ou les même
goûts) qu’une personne B sur un objet x, alors la personne A à plus de chance d’avoir
la même opinion que B sur un autre objet y, plutôt que d’avoir la même opinion que
quelqu’un choisi au hasard pour l’objet y. L’idée de base est donc de dire que si des
utilisateurs ont partagés des mêmes intérêts dans le passé, il y a de fortes chances qu’ils
partagent aussi les mêmes goûts dans le futur.
Une combinaison des trois approches ci-dessus permet de résoudre des problèmes comme
le cold Start et la sparsity (rareté) qu’on retrouve dans une approche de recommandation
uniquement sociale. En appliquant préalablement un algorithme de recommandation ob-
22
CHAPITRE 2. CLASSIFICATION DES SYSTÈMES DE RECOMMANDATION
jet sur les contenus pour en exploiter leurs descriptions et caractéristiques, accompagné
ensuite d’un algorithme de recommandation sociale pour effectuer les recommandations
peut aider à résoudre ces limitations. Autrement dit, pour les cas de rareté, lorsque peu
d’items ont été évalués par les utilisateurs et qu’un filtrage collaboratif n’est pas possible,
ce qu’on fait, c’est qu’on assigne en premier lieu un pseudo-rating ou vote artificiel par
défaut à l’utilisateur sur les contenus disponibles en utilisant préalablement un algorithme
objet. Puis, on applique sur la matrice (contenant peu de vrais ratings et beaucoup de
pseudo-ratings) un filtrage collaboratif [21]. Damien Poirier [17] dit " Il existe différentes
formes de recommandation, suivant les données à recommander, suivant les informations
disponibles et bien évidemment suivant l’objectif visé. Nous présentons ici les formes de
recommandation les plus répandues " de même Damien proposé une classification en (04)
approcher Il a ajouté en plus de la recommandation personnalisée et la recommandation
sociale la suit :
23
CHAPITRE 2. CLASSIFICATION DES SYSTÈMES DE RECOMMANDATION
disque de Georges Brassens, le système recommande une liste d’items qui ont été apprécies
par les utilisateurs ayant également apprécie ce disque de Brassens.
• Nouvel utilisateur : un nouvel utilisateur qui n’a pas encore accumulé suffisam-
ment d’évaluations ne peut pas avoir de recommandations pertinentes.
• Nouvel item : un item doit avoir suffisamment d’évaluations pour qu’il soit pris
en considération dans le processus de recommandation.
24
CHAPITRE 2. CLASSIFICATION DES SYSTÈMES DE RECOMMANDATION
25
CHAPITRE 2. CLASSIFICATION DES SYSTÈMES DE RECOMMANDATION
2.6 Conclusion
Dans ce chapitre, nous avons vu la classification générale qui contient les deux ap-
proches principales filtrage basé sur le contenu et filtrage collaboratif donnent des résul-
tats très intéressants. Le filtrage collaboratif se propose de recommander aux utilisateurs
certains articles qu’ils n’ont pas encore lus en se basant sur les opinions du groupe d’uti-
lisateurs similaires. En revanche, le filtrage basé sur le contenu évalue si un texte est
pertinent ou non pour un utilisateur, en fonction de son profil thématique. Néanmoins,
ces deux aspects du profil semblent importants. Ainsi, une approche hybride combinant
les goûts thématiques personnels et les opinions des utilisateurs du groupe paraissent la
meilleure méthode pour fournir des recommandations. Nous avons décrit les principaux
avantages et inconvénients de chacune de ces méthodes. II est à noter que ces techniques de
filtrage ne prennent pas en compte un bon nombre d’informations utiles pour expliquer le
jugement qu’effectue l’utilisateur. Ceci requiert la prise en compte de différentes sources
d’informations sur l’utilisateur (ses préférences précédemment déclarées, son réseau so-
cial,...) et leurs corrélations avec le contenu des documents qui lui sont proposés. Ainsi,
nous avons assisté, ces dix dernières années, à la naissance de plusieurs nouvelles familles
de systèmes de filtrage d’information, comme les systèmes de filtrage d’information basés
sur l’utilité, les systèmes de filtrage d’information à base d’ontologies, les systèmes d’an-
notations collaboratives, les systèmes de filtrage d’informations à base de réseaux sociaux,
etc.
26
Chapitre 3
27
CHAPITRE 3. PRÉSENTATION DES SYSTÈMES DE RECOMMANDATION
EXISTANTS
3.2 Amazon
Amazon, star des entreprises d’e-commerce est un modèle de réussite pour beaucoup.
Son succès grandissant depuis sa création en 1994 est impressionnant, notamment avec
son taux de transformation atteignant plus de 6% , soit le double du score moyen des sites
e-commerce français et le triple de Pixmania (Source : Internet retailer). Un de ces points
forts les plus remarqué Incontestablement son système de recommandation. 30% du CA
total d’Amazon est généré grâce à lui [32]. Il est frappant dès les premières visites. A peine
le premier produit consulté sur le site que des suggestions très précises nous sont proposés.
Souvent bluffés, les utilisateurs naviguent sur le site au gré des recommandations basées
sur les achats réalisés précédemment par des acheteurs intéressés par des produits simi-
laires. Nos meilleurs conseils ne viennent donc plus de notre libraire mais d’un algorithme
de recommandation qui n’a plus à faire ses preuves.
Mais comment Amazon a-t-il développé un outil aussi sophistiqué et perfor-
mant ?
Les consommateurs aiment être conseillés et avisés par des personnes partageant leurs
goûts. C’est sur cette théorie qu’Amazon a développé son système de recommandation
automatique. Misant ainsi sur du contenu (2 produits peuvent être plus en moins liés en
fonction du nombre de mots similaires dans leur description par exemple.) et sur le fil-
trage collaboratif (la construction d’une matrice de relation entre les différents achats des
consommateurs), Amazon a développé son mystérieux algorithme item-to-item collabo-
rative filtering. La priorité est clairement la personnalisation des produits recommandés
en fonction des intérêts de chaque consommateur. La tendance serait de recommander les
28
CHAPITRE 3. PRÉSENTATION DES SYSTÈMES DE RECOMMANDATION
EXISTANTS
produits similaires entre des clients ayant des similitudes (age, ville, sexe, CSP,...) mais
Amazon a préféré faire le choix de recommander des produits en fonction d’une liste établie
avec les consultations de produits, achats et classements réalisés par les consommateurs
eux-mêmes.
mizable avec 120 paramètres analysés comme le temps passé sur la page, les clics effectués
ou, bien entendu, les achats réalisés [29].
3.4 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 re-
commandation 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 [17].
29
CHAPITRE 3. PRÉSENTATION DES SYSTÈMES DE RECOMMANDATION
EXISTANTS
intégré à Google Adwords. Sa prise en main est donc plus impliquante et une prestation
de consulting technique et/ou sur la data est parfois nécessaire en plus de l’abonnement
mensuel conçu par paliers. L’outil coûte 500 e/mois pour moins de 100 000 visiteurs/mois
et 1500 e/mois pour moins d’1 million de visiteurs/mois. Pour les petits sites, un autre
éditeur Finlandais propose Nosto qui équipe 1600 sites dans 64 pays et qui fonctionne
avec un algorithme de collaborative filtering (analyse comportementale) [29].
30
CHAPITRE 3. PRÉSENTATION DES SYSTÈMES DE RECOMMANDATION
EXISTANTS
Solution Saas spécialisée dans la recommandation, Target2Sell vise aussi bien les gros
marchands, tels que Auchan, Monoprix, Raja, que les petits commerçants, notamment
via un récent accord signé avec Oxatis. Les concepteurs de la solution ont mis l’accent
sur la simplicité tant dans l’interface du backoffice de l’outil que dans son mode de fonc-
tionnement. Ainsi, le service privilégie les algorithmes auto-apprenants. Il faudra attendre
une version future pour développer ses propres algorithmes prédictifs sur la plateforme.
Ceux-ci intègrent un fonctionnement multicanal, avec une recommandation optimisée en
fonction du canal, qu’il soit le site web, le site mobile, ou le canal e-mail - avec une
intégration menée avec Mailchimp et Smart Focus [28].
31
CHAPITRE 3. PRÉSENTATION DES SYSTÈMES DE RECOMMANDATION
EXISTANTS
32
CHAPITRE 3. PRÉSENTATION DES SYSTÈMES DE RECOMMANDATION
EXISTANTS
3.8 Conclusion
Dans ce chapitre, nous avons comparé certains systèmes de recommandation du do-
maine du e-commerce. Notre moteur de recommandation que nous allons construire est
assez proche de celui d’Amazon. En effet, ce moteur utilise l’algorithme de filtrage col-
laborative item-to-item de type machine learning pour trouver les utilisateurs similaires
à partir de quelques facteurs tels que (les liens disponibles, l’historique, le profil, ...) et
ensuite il recommande les items (dans notre cas les liens) à travers cette similarité.
33
Chapitre 4
Développement du système de
recommandation
4.1 Introduction
Nous allons essayer d’implémenter un système de recommandation sociale. Tout d’abord,
nous allons travailler sur un dictionnaire local et dans un deuxième temps, nous généra-
liserons notre travail sur la base de données DELICIOUS.
34
CHAPITRE 4. DÉVELOPPEMENT DU SYSTÈME DE RECOMMANDATION
4.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.
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 Window.
• Python est gratuit, mais on peut l’utiliser sans restriction dans des projets commer-
ciaux.
• 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.
35
CHAPITRE 4. DÉVELOPPEMENT DU SYSTÈME DE RECOMMANDATION
• Python est un langage qui continue à évoluer et un langage de choix pour traiter le
XML [22].
4.2.3 Delicious
36
CHAPITRE 4. DÉVELOPPEMENT DU SYSTÈME DE RECOMMANDATION
Trois bibliothèques graphiques sous Python sont largement utiliseé : wxPython, tkinter,
pyGTK.
Boa Constructor : est un éditeur pour Python et un constructeur de GUI sur le toolkit
wxPython. Il permet la création et la manipulation visuelle de fenêtres graphiques.
wxPython est une collection de modules Python réalisée sur la base des wxWidgets
de wxWindows, un framework multi-plateformes écrit en C++ [34].
37
CHAPITRE 4. DÉVELOPPEMENT DU SYSTÈME DE RECOMMANDATION
développement, tandis que Tcl / tk et Tkinter sont vieux et usés mais wxpython est l’outil
de l’avenir. Enfin et pour toutes ces raisons, nous avons adopté l’environnement Boa qui
utilise la bibliothèque wxPython pour le développement de l’interface graphique de notre
application.
La première étape que nous avons besoin est une façon de représenter des différentes
personnes et leurs préférences. Pour cela, nous allons tout d’abord, créer un fichier appelé
recommendations.py. Ce dictionnaire utilise un classement de 1 à 5 comme un moyen
d’exprimer combien chacun des ces critiques de navigation ont aimé un lien donné. Peu
importe la façon dont les préférences sont exprimées, on doit trouver un moyen de les
mapper sur des valeurs numériques. Si c’était le cas d’un site commercial, on pourrait
utiliser une valeur de 1 pour indiquer que quelqu’un avait acheté un article dans le passé
et une valeur de 0 pour indiquer qu’ils n’avaient pas. Pour un site où les gens votent sur
38
CHAPITRE 4. DÉVELOPPEMENT DU SYSTÈME DE RECOMMANDATION
des reportages, des valeurs de -1, 0, 1 pourraient être utilisés pour représenter " détesté
", " ne pas voter " et " aimé ". Utiliser un dictionnaire est pratique pour expérimenter
avec les algorithmes et il est facile de chercher et modifier le dictionnaire mais pour un
très grand ensemble de données, on aura probablement à stocker les préférences dans une
base de données.
Après la collection des données sur les articles que les gens aiment, nous devons trouver
un moyen de déterminer comment les gens sont similaires dans leurs goûts. Pour ce faire,
39
CHAPITRE 4. DÉVELOPPEMENT DU SYSTÈME DE RECOMMANDATION
Distance euclidienne : Une façon très simple de calculer un score de similarité est
d’utiliser un score de distance euclidienne.
qP
n 2
E (x, y) = i=0 (xi − yi )
Il prend les liens pour lesquels les gens ont un classement en commun et les utilise comme
axes d’un graphique. Nous pouvons ensuite tracer les gens sur le tableau et voir à quel point
ils se ressemblent. Cette figure montre les gens cartographiés dans l’espace de préférence
par exemple Toumi a été tracé à 4.5 sur l’axe Youtube et à 1,0 sur l’axe bayt. Si deux
personnes sont plus étroites dans l’espace de préférence, on peut conclure qu’ils sont plus
similaires dans leurs préférences. Parce que la carte est en deux dimensions, nous ne
pouvons pas regarder deux classements à la fois, mais le principe est le même pour les
grandes séries de classements. Pour calculer la distance entre toumi et layla dans le tableau,
40
CHAPITRE 4. DÉVELOPPEMENT DU SYSTÈME DE RECOMMANDATION
il suffit de prendre la différence dans chaque axe, les ajouter ensemble, puis prendre la
racine carrée de la somme. Python, on peut utiliser le pow ( n , 2 ) la fonction à ajuster un
nombre et prendre le racine carrée de la fonction sqrt : sqrt(pow(5-4,2)+pow(4-1,2))
Cette formule calcule la distance, qui sera plus faible pour les personnes qui sont plus
similaires. Cependant, nous aurons besoin d’une fonction qui donne des valeurs plus élevées
pour les personnes qui sont similaires. Cela peut être fait en ajoutant 1 à la fonction (si on
ne reçoit pas une erreur division par zéro) et l’inverser : 1/1+ sqrt(pow(5-4,2)+pow(4-
1,2))
Cette nouvelle fonction renvoie toujours une valeur comprise entre 0 et 1, où une valeur
de 1 signifie que deux personnes ont des préférences identiques. On peut tout mettre
ensemble pour créer une fonction de calcul de similarité.
Nous allons ajouter ce code à recommendations.py.
41
CHAPITRE 4. DÉVELOPPEMENT DU SYSTÈME DE RECOMMANDATION
Corrélation de Pearson Score : Une manière un peu plus sophistiqué pour détermi-
ner la similitude entre les intérêts des personnes est d’utiliser un coefficient de corrélation
de Pearson. Le coefficient de corrélation est une mesure de la façon dont deux ensembles
de données tiennent sur une ligne droite. La formule est plus compliquée que le score de
la distance euclidienne, mais elle a tendance à donner de meilleurs résultats dans le cas
où les données ne sont pas bien normalisées.
P
P xΣy
xy− N
r= r
( x)2 ( y)2
P P P
x2 − y2 −
P
N N
Pour mettre en évidence cette méthode, nous pouvons tracer les notes de deux des critiques
sur un tableau. Nous pouvons également voir une ligne droite sur le graphique. C’est ce
qu’on appelle la ligne de meilleur ajustement, car il vient au plus près possible de tous
les éléments sur le tableau. Si les deux critiques avaient des notes identiques pour chaque
lien, cette ligne serait diagonale et toucherait tous les articles dans le tableau, donnant un
score de corrélation parfaite de 1. Dans le cas illustré, les critiques sont en désaccord sur
quelques liens, de sorte que le score de corrélation est d’environ 0,4. Le code pour le score
de corrélation de Pearson trouve d’abord les articles les mieux notés par les critiques. Il
calcule ensuite les sommes et la somme des carrés des notes pour les deux critiques, et
calcule la somme des produits de leurs évaluations. Enfin, on utilise ces résultats pour
calculer le coefficient de corrélation de Pearson. Contrairement à la mesure de la distance,
42
CHAPITRE 4. DÉVELOPPEMENT DU SYSTÈME DE RECOMMANDATION
Maintenant que nous avons les fonctions pour comparer deux personnes, nous pouvons
créer une fonction pour comparer les scores de tout le monde contre une personne donnée
et trouver les plus proches. On va ajouter cette fonction à recommendations.py pour
43
CHAPITRE 4. DÉVELOPPEMENT DU SYSTÈME DE RECOMMANDATION
obtenir une liste ordonnée des personnes ayant les mêmes goûts pour la personne en
question :
Nous avons besoin de marquer les articles en produisant un score pondéré qui classe les
critiques. Prenons les voix de tous les autres critiques et multiplions leur ressemblance par
le score qu’ils ont donné à chaque liens. Nous devons diviser par la somme de toutes les
similitudes pour les critiques qui ont examiné ce lien. La dernière ligne indique les résultats
de cette division. Le code est ci-dessous. Maintenant, nous savons comment trouver des
gens semblables et recommander des produits pour une personne donnée. Mais, comment
pouvons-nous voir quels sont les produits qui sont semblables les uns aux autres. Cette
situation est fréquente sur les sites Web commerciaux, en particulier lorsque le site n’a
pas recueilli beaucoup d’informations sur les utilisateurs. nous pouvons déterminer la
44
CHAPITRE 4. DÉVELOPPEMENT DU SYSTÈME DE RECOMMANDATION
similitude en regardant qui ont aimé un article en particulier et de voir les autres choses
qu’ils aimaient.
Le filtrage basé sur l’article : La technique générale consiste à pré-calculer les élé-
ments les plus similaires pour chaque article.
45
CHAPITRE 4. DÉVELOPPEMENT DU SYSTÈME DE RECOMMANDATION
fois qu’une recommandation est nécessaire. Nous construisons l’ensemble de données une
fois et le réutiliser chaque fois que nous en avons besoin.
dictionnaire transforme :
Dans ce cas, nous pouvons déterminer la similitude en regardant qui ont aimé un article en
particulier et de voir les autres choses qu’ils aimaient. Nous allons ajouter le code suivant
pour réaliser la transformation :
46
CHAPITRE 4. DÉVELOPPEMENT DU SYSTÈME DE RECOMMANDATION
Cette section montre comment récupérer des données à partir de l’un des plus populaires
sites en ligne de bookmarking, et comment utiliser ces données pour trouver des utilisa-
teurs similaires et recommander des liens qu’ils n’ont pas vus auparavant. Ce site, auquel
nous pouvons accéder à l’URL http://del.icio.us, permet aux gens de mettre en place
un compte et poster des liens qui les intéressent. Nous pouvons visiter le site et regarder
les liens que d’autres personnes ont postés, et aussi revoir des liens "populaires" qui ont
été publiées par de nombreuses personnes différentes. Un aperçu de la page del.icio.us est
illustré à la figure suivante :
47
CHAPITRE 4. DÉVELOPPEMENT DU SYSTÈME DE RECOMMANDATION
L’API del.icio.us : Les données de del.icio.us sont mises à disposition par le biais
d’une API (pydelicious 0.6) qui renvoie des données au format XML. Une API Python est
téléchargeable à l’adresse http://code.google.com/p/pydelicious/source. On peut
voir qu’il retourne une liste de dictionnaires, chacun contenant une URL, description,
et l’utilisateur qui l’a publié. Puisque nous travaillons sur des données en temps réel,
les résultats seront probablement différents de ceux des exemples. Il existe deux autres
appels que nous allons utiliser, get_urlposts, qui retourne tous les messages pour une
URL donnée, et get_userposts, qui retourne tous les messages pour un utilisateur donné.
Les données de ces appels sont renvoyées de la même manière. Cela nous donnera un
dictionnaire avec certains utilisateurs, référençant tous un dictionnaire vide attendant
d’être remplis avec des liens. L’API ne renvoie que les 30 dernières personnes ayant posté
de lien. Contrairement à l’ensemble de données de critique de différent domaine, il n’y a
que deux notes possibles dans ce cas : 0 si l’utilisateur n’a pas posté de lien, et 1 s’il le
faisait.
48
CHAPITRE 4. DÉVELOPPEMENT DU SYSTÈME DE RECOMMANDATION
4.4 Conclusion
Dans ce dernier chapitre nous avons essayé de construire un moteur de recommandation
pour le site Delicious. Dans un premier temps nous avons travaillé sur un dictionnaire
local, puis nous avons généralisé le travail sur le site lui-même. Toutefois, des problèmes
relatifs à l’API de Delicious sont à signaler tout au cours des premiers mois de l’année 2016.
Source : http://www.wandlesoftware.com/2016/03/delicious-api-broken.html.
49
Conclusion Générale
Il va sans dire que la surcharge cognitive d’un utilisateur due à une trop grande quantité
d’information est un problème majeur des systèmes hypermédia. L’utilisateur naviguant
sur le Web se trouve ainsi submergé par l’abondance d’informations. Les systèmes de re-
commandation ont été introduits pour résoudre ce problème et sont maintenant largement
utilisés pour améliorer l’expérience utilisateur sur le Web.
• de mettre en œuvre ces algorithmes en Python qui offre des avantages dans le trai-
tement d’une grande quantité d’information.
50
CHAPITRE 4. DÉVELOPPEMENT DU SYSTÈME DE RECOMMANDATION
Cependant, 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 no-
tions psychologiques comme les émotions, les opinions.
Le système réalisé porte sur le site de partage de signets del.icio.us ; car il ne possédait
pas de moteur de recommandation. Il peut se prévaloir d’apporter des solutions à bon
nombre de problèmes de navigation en conformité avec les objectifs annoncés.
Par ailleurs, il semble maintenant nécessaire d’aborder des questions qui relèvent de
l’usage et du processus de contrôle que l’utilisateur doit exercer sur sa propre activité. On
compte tester notre système dans le cadre de l’apprentissage coopératif – à distance ou
à présence-. Cette évaluation nous permettra de vérifier si les utilisateurs perçoivent eux-
mêmes les avantages de cette simplification de procédures de navigation et de s’assurer
des atouts de notre système.
Enfin, nous entrevoyons pour nos travaux de généraliser notre expérience avec DE-
LICIOUS à d’autres sites Web ainsi que la mise en œuvre de techniques adéquates pour
pouvoir travailler sur des bases de données volumineuses.
51
Bibliographie
Références bibliographiques
[1] Adomavicius, G. and Tuzhilin, A. (2005). Toward the next generation of recommender
systems : A survey of the state-of-the-art and possible extensions. IEEE Transactions
on Knowledge and Data Engineering, 17(6) :pages 734-749.
[2] Basu, C., Hirsh, H., Cohen, W. and Manning, N. C. (2001). Technical paper recom-
mendation : A study in combining multiple information sources.
[3] BERKANE, T. (mars 2012). Systémé d’information & Intelligence Artificielle, mé-
moire de Magister hypermedia adaptatif educatif : interface adaptative et gestion des
profils apprenants, universite mouloud Mammeri.
[4] Burke, R. (2002). Hybrid recommender systems : Survey and experiments. User Mo-
deling and User-Adapted Interaction.
52
BIBLIOGRAPHIE
[7] GALL James, E. HANNAFIN Michael, J. (1994). A framework for the study of hy-
pertext, in Instructional Science, Vol. 22, n°3, pp. 207-232.
[8] Goldberg, D., Nichols, D., Oki, M., and Terry, D. (1992). Using collaborative filtering
to weave an information tapestry. In Commun. ACM, volume 35, pages 61-70.
[10] Maes, P. and Shardanand, U. (1995). Social information filtering : algorithms for au-
tomating "word of mouth". In the SIGCHI conference on Human factors in computing
systems, Denver, Colorado, United States. ACM Press/Addison-Wesley Publishing
Co.
[11] Malone, T., Brobst, S., Cohen, S., Grant, K., and Tur- bak, F. (1987). Intelligent
information des systèmes de partage. In Com- munications of the ACM, volume 30,
pages 390-402.
[12] Massa P. and Avesani P. (2004). Trust-Aware Collaborative Filtering for Recommen-
der Systems, in Proceedings of the Int. Conf. on Cooperative Information Systems.
[13] Michael D. Ekstrand, John T. Riedl, Joseph A. Konstan. (2010). Collaborative Fil-
tering Recommender Systems, Foundations and Trends R in Human Computer Inter-
action, Boston-Delft.
[14] Miller,G.A. (1956). the magical numbre seven, plus or minus two : some limits on
our capacity processing information , Psychological Review,63,81-97.
[16] Nicolas, B. Etat de l’art sur les Systemes de Recommandation, Projet AxIS de l’IN-
RIA, dans le cadre du projet Addictrip
53
BIBLIOGRAPHIE
[19] Rhéaume,J. (décembre 1993). les hypertextes et les hypermédias , Revue EducaTech-
nologie, volume 1, numéro 2.
[20] Sarwar, B., Karypis, G., Konstan, J., and Riedl, J. (2001).Item-based collaborative
filtering recommendation algorithms. In WWW10, pages 285-295, Hong Kong. ACM.
[21] Schein, A. I., Popescul, R., Ungar, L. H., Pennock, D. M. (2002). Methods and Metrics
for Cold-Start Recommendations. In In Proceedings of the 25th Annual International
ACM SIGIR Conference on Research and Development in Information Retrieval pp.
253-260, ACM Press.
Références hypertextes
[25] Navigation-sociale,https://fr.wikipedia.org/wiki/Navigation-sociale,
consulté 11/03/2016 ;
54
BIBLIOGRAPHIE
[27] Balasabramian,V., (1994), State of the Art Review on Hypermedia Issues and
Applications , Graduate School of Management, Rutgers University, Newark, NJ,
http://www.isg.sfu.ca/~duchier/misc/hypertext-review/index.html
[31] Le traitement des donnees nouvelle source de pouvoir le cas des moteurs
de recommandation, http://www.journaldunet.com/ebusiness/expert/62393/
le-cas-des-moteurs-de-recommandation.shtml, consulté 11/03/2016
[34] http://python.developpez.com/telecharger/detail/id/1923/
Boa-Constructor-wxPython, consulté 10/05/2016
[37] http://webcache.googleusercontent.com/search?q=cache:http://fsincere.
free.fr/isn/python/cours-python-tkinter.php, consulté 15/05/2016
55
Annexe
CA : Chiffre d’Affaires.
FC : Filtrage Collaboratif.
MR : Moteur de Recherche.
SR : Système de Recommandation.
56
Résumé
Les systèmes de recommandations sont des systèmes automatiques qui permettent, par des
techniques de Data Mining, de fournir à des utilisateurs des suggestions qui répondent à leurs
exigences. Un grand nombre de systèmes de recommandation existent dans divers domaines.
Leur objectif est de filtrer et d’adapter les informations pour chaque utilisateur. Les méthodes
généralement utilisées pour le calcul de la recommandation sont soit basées sur le contenu soit
sur la similarité de l’utilisateur avec les autres utilisateurs (approches collaboratives).
Abstract
Recommendations systems are automatic systems. that, by Data « Mining techniques »
provide to users suggestions that meet their requirements. Many recommendation systems
exist in various areas. Their aim is to filter and adapt the information for each user. The
methods generally used for the calculation of the recommendation is based on the content or
on the similarity of the user with other users (collaboratives approaches).
This project aims to develop a social recommendation system in Python to be used in the area
of Web browsing who suggest to user resources may interest him based on the opinions of
other users who share with him the same interests.
ملخص
إن أنظمة التوصية هي االنظمة اآللية التي تسمح بواسطة تقنيات " تعدين البيانات " تزويد المستخدمين باالتقتاااات التي
عدد كبيا من أنظمة التوصية موجودة في مختلف المجاالت هدفها هو تصفية وتكيف المعلومات لكل.تلبي متطلباتهم
األساليب المستخدمة عادة لحساب التوصية إما تكون على أساس المحتوى أو على تشابه المستخدم مع مستخدمين.مستخدم
هذا المشاوع يهدف الى تطويا نظام توصية اجتماعي باستعمال لغة البامجة بيثون الذي سيتم.)آخاين (مناهج التعاونية
استخدامه في مجال تصفح اإلنتانت والذي بدوره يقتاح على مستخدم موارد على االرجح تقد تهمه استنادا إلى آراء
.مستخدمين آخاين الذين يشتاكون معه في نفس االهتمامات
. بيثون٬ تصفية على اساس المحتوى٬ مناهج التعاونية٬ نظام توصية االجتماعي٬ تعدين البيانات:كلمات الدالة