Tải bản đầy đủ (.pdf) (62 trang)

Vers une approche personnalisée de la recherche dinformations

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.37 MB, 62 trang )

Laboratoire Lorrain de
Recherche en Informatique
et ses Applications

Institut de la Francophonie
pour l'Informatique

MÉMOIRE DE FIN D'ÉTUDES

Vers une approche personnalisée
de la recherche d'informations
(Étude des stratégies de combinaison des méthodes de filtrage
basé sur le contenu et des méthodes de filtrage collaboratif)

Étudiant
DO Minh Chau
Promotion 11, IFI
Responsables
Anne BOYER
Équipe MAIA, LORIA

Jean-Charles LAMIREL
Équipe CORTEX, LORIA

Nancy, France – 2007



Table des matières
Remerciements..............................................................................................................v
Résumé.........................................................................................................................vi


Abstract.......................................................................................................................vii
Liste des figures.........................................................................................................viii
Liste des tableaux..........................................................................................................x
Chapitre 1. Introduction.................................................................................................1
1.1. Problématique...........................................................................................................................1
1.2. Motivation.................................................................................................................................2
1.3. Objectifs....................................................................................................................................2
1.4. Contribution..............................................................................................................................3
1.5. Environnement de stage............................................................................................................3
1.6. Revue de la bibliographie.........................................................................................................4

Chapitre 2. Filtrage basé sur le contenu (FBC).............................................................6
2.1. Vue d'ensemble.........................................................................................................................6
2.2. Stemming..................................................................................................................................9

Chapitre 3. Filtrage collaboratif (FC)..........................................................................10
3.1. Filtrage collaboratif basé sur la mémoire...............................................................................10
3.2. Filtrage collaboratif basé sur un modèle.................................................................................12

Chapitre 4. Combinaison du FBC et du FC.................................................................15
4.1. FC – FBC séparé.....................................................................................................................16
4.2. FC – FBC combiné.................................................................................................................18
4.3. FBC ressources – FC..............................................................................................................19
4.4. FBC utilisateurs – FC.............................................................................................................21
4.5. Fusion......................................................................................................................................23

Chapitre 5. Implémentation.........................................................................................25
5.1. Collection de données.............................................................................................................25
5.2. Outils de développement........................................................................................................27
5.3. Structures des tables dans la base de données........................................................................28


Chapitre 6. Métriques d'évaluation..............................................................................44
6.1. MAE (Mean Absolute Error)..................................................................................................44
6.2. Métrique d'exactitude de classification...................................................................................45
6.2.1. Rappel.............................................................................................................................46
6.2.2. Précision..........................................................................................................................47
iii


Chapitre 7. Conclusion................................................................................................48
Bibliographie...............................................................................................................49

iv


Remerciements
Mes remerciements s'adressent naturellement à l'ensemble des membres de l'équipe CORTEX
et de l'équipe MAIA au LORIA.
Je tiens à remercier sincèrement Anne BOYER et Sylvain CASTAGNOS de l'équipe MAIA
pour leur disponibilité et pour m'avoir donné des connaissances de base au début ainsi que leur
aide au cours de mon stage. Leur avis a été très utile pour ma mission.
Je tiens à remercier chaleureusement Jean-Charles LAMIREL et Randa KASSAB de l'équipe
CORTEX qui m'ont beaucoup guidé dans mon travail chaque fois que le besoin s'en faisait sentir.
Je remercie Jean-Charles LAMIREL d'avoir fait les formalités nécessaires au LORIA. Cela m'a
permis d'effectuer cette mission dans les meilleures conditions.
Le 5 octobre 2007
DO Minh Chau

Anne et moi


Jean-Charles et moi

Sylvain et moi

Randa et moi

v


Résumé
Nous nous intéressons à la recherche d'informations sur Internet, dans un contexte « grand
public », avec pour objectif de déterminer quelles ressources sont pertinentes pour un utilisateur.
Nos travaux s'inscrivent dans le domaine des systèmes de recommandation avec l'objectif de prédire
la pertinence d'une ressource web (film, document, page, site w3, blog, vidéo en ligne, …) pour un
utilisateur particulier à partir de l'observation de son comportement et des éventuelles appréciations
(votes numériques, annotations, traces, …) qu'il dépose lors de ses consultations.
Parmi les techniques possibles, nous avons choisi dans l'équipe CORTEX d'utiliser le filtrage
basé sur le contenu et dans l'équipe MAIA d'utiliser le filtrage collaboratif. Ces deux paradigmes
ont été appliqués dans le contexte des systèmes de prédiction de préférence d'utilisateur et de
recommandation. Le filtrage basé sur le contenu crée des prédictions complètes et rapides grâce à la
vitesse des ordinateurs. Le filtrage collaboratif combine les avis des utilisateurs pour créer des
prédictions personnalisées et précises. Ces deux paradigmes de filtrage sont très différents l'un de
l'autre et tous les deux ont encore quelques limites. Il apparaît que les deux approches sont
complémentaires. Il est donc intéressant d'essayer de les combiner ensemble afin de surmonter ces
limites.
Mots clés : filtrage collaboratif, filtrage basé sur le contenu, système de recommandation,
prédiction de préférence d'utilisateur, personnalisé, combinaison, recherche d'informations, base de
données

vi



Abstract
We are interested in information searching on the Internet, in a context "general public", in
order to determine which resources are relevant for a user. The field of our work is the
recommendation system whose objective is to predict the relevance of a resource Web (film,
document, page, w3 site, blog, online video, ...) for a particular user from the observation of his
behaviour and from the possible appreciations (numerical ratings, annotations, traces, ...) which he
deposits at the time of his consultations.
Among the possible techniques, we chose in the team CORTEX to use the content-based
filtering and in the team MAIA to use the collaborative filtering. These two paradigms have been
applied in the context of user preference prediction and recommendation systems. Content-based
filtering uses the speed of computers to make complete, fast predictions. Collaborative filtering
combines the opinions of humans to make personalized, accurate predictions. These two filtering
paradigms are very different from each other and both have yet some limits. It appears that these
two approaches are complementary. It is therefore interesting to try combining them together in
order to overcome those limits.
Key words: collaborative filtering, content-based filtering, recommendation system, user
preference prediction, personalized, combination, information searching, database

vii


Liste des figures
Figure 1. Matrice des fréquences..........................................................................................................7
Figure 2. Matrice des votes................................................................................................................10
Figure 3. Valeurs possibles de la corrélation Pearson........................................................................11
Figure 4. Espace de représentation utilisateurs/ressources (K-Means)..............................................12
Figure 5. Organisation hiérarchique des utilisateurs..........................................................................13
Figure 6. Initialisation de l'algorithme 2-Means.................................................................................14

Figure 7. Structure générale d'un système de filtrage de film............................................................15
Figure 8. Modèle de la méthode de combinaison FC-FBC séparé.....................................................16
Figure 9. Modèle de la méthode de combinaison FC-FBC combiné.................................................18
Figure 10. Modèle de la méthode de combinaison FBC ressources – FC..........................................19
Figure 11. Modèle de la méthode de combinaison FBC utilisateurs – FC.........................................21
Figure 12. Modèle de la méthode de combinaison Fusion.................................................................23
Figure 13. Exemple des données de la table Actors...........................................................................28
Figure 14. Exemple des données de la table Countries......................................................................29
Figure 15. Exemple des données de la table Genres..........................................................................30
Figure 16. Exemple des données de la table KeyWords....................................................................30
Figure 17. Exemple des données de la table Languages....................................................................31
Figure 18. Exemple des données de la table Movie_Actor................................................................32
Figure 19. Exemple des données de la table Movie_Country............................................................32
Figure 20. Exemple des données de la table Movie_Genre...............................................................33
Figure 21. Exemple des données de la table Movie_KeyWord.........................................................34
Figure 22. Exemple des données de la table Movie_Language.........................................................35
Figure 23. Exemple des données de la table Movie_Movie...............................................................36
Figure 24. Exemple des données de la table Movie_StemmerSummary...........................................36
Figure 25. Exemple des données de la table Movie_StemmerTitle...................................................37
Figure 26. Exemple des données de la table Movies..........................................................................38
Figure 27. Exemple des données de la table StemmerSummaries.....................................................38
Figure 28. Exemple des données de la table StemmerTitles..............................................................39
Figure 29. Exemple des données de la table StopWords....................................................................40
Figure 30. Exemple des données de la table TrainingRatings............................................................41
Figure 31. Exemple des données de la table User_Movie..................................................................41
Figure 32. Exemple des données de la table Users.............................................................................42
Figure 33. Relations des tables dans la base de données....................................................................43
Figure 34. Comparaison des trois méthodes de filtrage avec la MAE...............................................44
viii



Figure 35. Résultat d'évaluation selon le Rappel................................................................................46
Figure 36. Résultat d'évaluation selon la Précision............................................................................47

ix


Liste des tableaux
Tableau 1. Exemple des mots non importants......................................................................................8
Tableau 2. Exemple des mots en forme de Stemming.........................................................................9
Tableau 3. Table Actors.....................................................................................................................28
Tableau 4. Table Countries.................................................................................................................28
Tableau 5. Table Genres.....................................................................................................................29
Tableau 6. Table KeyWords...............................................................................................................30
Tableau 7. Table Languages...............................................................................................................31
Tableau 8. Table Movie_Actor...........................................................................................................31
Tableau 9. Table Movie_Country.......................................................................................................32
Tableau 10. Table Movie_Genre........................................................................................................33
Tableau 11. Table Movie_KeyWord..................................................................................................33
Tableau 12. Table Movie_Language..................................................................................................34
Tableau 13. Movie_Movie.................................................................................................................35
Tableau 14. Table Movie_StemmerSummary....................................................................................36
Tableau 15. Table Movie_StemmerTitle............................................................................................37
Tableau 16. Table Movies..................................................................................................................37
Tableau 17. Table StemmerSummaries..............................................................................................38
Tableau 18. Table StemmerTitles.......................................................................................................39
Tableau 19. Table StopWords............................................................................................................39
Tableau 20. Table TrainingRatings....................................................................................................40
Tableau 21. Table User_Movie..........................................................................................................41
Tableau 22. Table Users.....................................................................................................................42


x


Chapitre 1. Introduction

1.1. Problématique
Nous nous intéressons à la recherche d'informations sur Internet, dans un contexte « grand
public », avec pour objectif de déterminer quelles ressources sont pertinentes pour un utilisateur,
connaissant le contexte dans lequel il est immergé. Nos travaux s'inscrivent dans le domaine des
systèmes de recommandation avec l'objectif de prédire la pertinence d'une ressource web
(document, page, site w3, blog, vidéo en ligne, …) pour un utilisateur particulier à partir de
l'observation de son comportement et des éventuelles appréciations (votes numériques, annotations,
traces, …) qu'il dépose lors de ses consultations.
Différentes approches sont envisageables, suivant que l'on considère le contenu des ressources
ou au contraire une dimension plus subjective qui est l'intérêt qu'elle présente pour un utilisateur
donné.
Ainsi une approche consiste à modéliser le comportement utilisateur en se fondant sur une
analyse des usages. Parmi les techniques possibles, nous avons choisi dans l'équipe MAIA d'utiliser
le filtrage collaboratif qui pallie le manque de données disponibles sur l'utilisateur en transformant
le problème de l'apprentissage individuel en un apprentissage collaboratif. Pour cela, il exploite les
comportements connus d'une population d'utilisateurs et construit la communauté virtuelle des
internautes présentant un comportement similaire à celui de l'utilisateur courant.
Le principe du filtrage collaboratif est d'implanter informatiquement le principe du bouche-àoreille [J. L. Herlocker et al., 2004]. Il détermine pour l'utilisateur actif Ui quels sont les utilisateurs
similaires, c'est-à-dire les utilisateurs dont l'intérêt pour des ressources données est similaire à celui
de Ui. Les données disponibles sur ce sous ensemble des utilisateurs appelés communauté virtuelle
d'intérêt sont ensuite exploitées pour prédire la pertinence dune ressource pour Ui. Dans l'équipe
MAIA, nous avons développé plusieurs approches permettant de traiter notamment le problème du
passage à l'échelle et du respect de la vie privée [S. Castagnos and A. Boyer, 2006][S. Castagnos
and A. Boyer, 2006b].

La technique de filtrage collaboratif a fait l'objet d'une implémentation dans le cadre du projet
CASABLANCA, dont le rôle est la diffusion ciblée de site Web par satellite [S. Castagnos et al.,
2005].
Une limite de cette approche est qu'elle ne fonctionne que pour des ressources qui ont déjà été
consultées, et qu'il y a un risque de « sclérose » pour une communauté virtuelle (consultation en
vase clos des mêmes ressources).
C'est pourquoi il peut s'avérer intéressant de combiner le filtrage collaboratif avec une autre
approche.
Une part de l'activité de l'équipe CORTEX porte sur un autre mode de filtrage basé sur
l'analyse du contenu des documents. Ce mode du filtrage conserve une représentation interne des
besoins d'un utilisateur à travers un profil principalement construit à partir de la description des
documents qu'il a sélectionnés. Par l'intermédiaire de ce profil, l'accès est donc limité aux
informations susceptibles de répondre à ses besoins spécifiques [P. W. Foltz and S. T. Dumais,
1


Chapitre 1. Introduction

Vers une approche personnalisée de la recherche d'informations

1992][Belkin et al., 1992]. Nous avons testé plusieurs approches qui permettent de définir le profil
individuel de chaque utilisateur, d'analyser son comportement et de réagir en fonction de celui-ci,
ou encore de moduler l'effet de ses décisions passées, ainsi que de lui faire des propositions
intelligentes concernant des documents entrants qu'il n'a jamais consultés. Certaines de ces
méthodes ont également fait l'objet d'une première implémentation dans le cadre du projet
CASABLANCA [S. Castagnos et al., 2004][S. Castagnos et al., 2005b].
Le filtrage basé sur le contenu présente cependant des limites dues à son principe, qui est celui
de ne prendre en compte que les décisions se rapportant à un seul utilisateur. Ces décisions doivent
donc être suffisamment exhaustives pour couvrir l'ensemble des besoins de l'utilisateur, ce qui
s'avère être rarement le cas dans la pratique. Il est de plus mieux adapté au traitement des décisions

à cours terme qu'à celui des décisions à long terme.
Il apparaît que les deux approches sont complémentaires et c'est la raison pour laquelle les
recherches actuelles s'orientent plutôt vers une combinaison des deux types de filtrage [J. Basilico,
2004].

1.2. Motivation
Plusieurs raisons me motivent à choisir le sujet.
Premièrement, j'aimerais étudier des algorithmes et des méthodes qui peuvent être appliqués
rapidement et largement dans le réel, surtout dans le développement de logiciel. Mon but est
d'acquérir des expériences de recherche en informatique ainsi que de nouvelles connaissances sur
un domaine spécifique.
Deuxièmement, le sujet de stage concerne la combinaison des méthodes de filtrage
d'informations. Cela a pour but d'essayer de trouver une nouvelle solution pour beaucoup de
problèmes restés dans le réel. Je souhaite trouver quelque chose nouvelle pour contribuer à la
recherche de ce problème.
Troisièmement, en effectuant mon stage au LORIA, j'ai des occasions pour profiter un bon
environnement de recherche scientifique et de rencontrer des enseignants, des chercheurs
internationaux.
Quatrièmement, j'apprécie le contact avec d'autres cultures et me trouver en terre étrangère.

1.3. Objectifs
Définition du but de travail
Le but de ce stage est à la fois celui de proposer tester différents types de combinaison mettant
en jeu les deux modes de filtrage. La première étape consiste à faire un état de l'art des différentes
techniques de filtrage par le contenu et de filtrage collaboratif, de manière à appréhender les deux
approches. La deuxième étape consistera à proposer plusieurs approches mixant filtrage par contenu
2


Chapitre 1. Introduction


Vers une approche personnalisée de la recherche d'informations

et filtrage collaboratif de manière à permettre un filtrage personnalisé de sites web. Une
implantation ainsi qu'une méthode de test devront être mises en place de manière à valider ces
propositions.
Méthode pour la vérification et validation des objectifs
Afin de vérifier et valider des objectifs, il faut avoir une méthode d'évaluation appropriée.
Cette tâche n'est pas toujours facile car une méthode d'évaluation ne peut pas toujours donner des
résultats fiables. De plus, deux méthodes d'évaluation différentes peuvent donner des résultats
différents. Dans le cadre de mon stage, je n'ai pas trouvé de méthode unique pour évaluer toutes les
méthodes de combinaison proposées. J'ai donc proposé d'utiliser quelques méthodes d'évaluation
différentes (MAE, Recall, Precision), et chaque méthode est appliquée pour certaines méthodes de
combinaison. L'objectif est d'avoir une vue de qualité sur le résultat des méthodes de combinaison.

1.4. Contribution
En proposant 5 nouvelles méthodes de combinaison du filtrage basé sur le contenu et du
filtrage collaboratif, mon travail a contribué à la théorie de filtrage d'information. Même s'il n'y a
pas encore une métrique d'évaluation fiable pour toutes les méthodes proposées en même temps, les
résultats obtenus ont montré que certaines des méthodes de combinaison que j'ai proposées sont
meilleures qu'une méthode non combinée.

1.5. Environnement de stage
Le LORIA est le Laboratoire Lorrain de Recherche en Informatique et ses Applications. Il est
situé à Vandœuvre-lès-Nancy, près de Nancy, sur le campus de l'Université Henri Poincaré (Nancy
1). Sa création remonte à décembre 1997.
Cinq établissements sont partenaires du laboratoire :
● le CNRS, Centre National de Recherche Scientifique (UMR 7503)






l'INPL, Institut National Polytechnique de Lorraine
l'INRIA, Institut National de Recherche en Informatique et en Automatique
l'Université Henri Poincaré, Nancy 1
l'Université de Nancy 2

3


Chapitre 1. Introduction

Vers une approche personnalisée de la recherche d'informations

Le LORIA
Le LORIA est un laboratoire de plus de 450 individus comprenant :
● plus de 150 chercheurs et enseignant-chercheurs



un tiers des étudiants de doctorat et de post-doctorat
des ingénieurs, des techniciens, etc.

Le LORIA a trois missions :







La recherche fondamentale et appliquée dans le domaine des sciences de l'information et
de communications et technologie sur une base internationale
L'enseignement dans des université de technologie, les universités de Nancy et des
écoles de doctorat
Le transfert de technologie via des associés individuels, l'assistance dans la création des
compagnies et un club des associés

1.6. Revue de la bibliographie
[Belkin et al., 1992] a montré que l'approche de filtrage basé sur le contenu a une relation
avec la recherche d'information. Dans [P. W. Foltz and S. T. Dumais, 1992], une analyse des
méthodes de filtrage par le contenu a été abordée. Depuis long-temps, le filtrage basé sur le contenu
se base principalement sur le calcul de similarité des vecteurs contenant des mots clés des
ressources (document, film, etc.). [R. Kassab and J. Lamirel, 2006] a proposé une méthode de
filtrage basé sur le contenu. Cette méthode se base sur le modèle de NDF et est appliquée avec de
gros documents textuels. L'approche de filtrage basé sur le contenu a généralement une limite que
seule l'information de la ressource est prise en compte. Cela n'est pas toujours suffisant car un
4


Chapitre 1. Introduction

Vers une approche personnalisée de la recherche d'informations

utilisateur peut aimer deux ressources très différentes.
L'approche de filtrage collaboratif est considérée être plus efficace et flexible que celle de
filtrage par le contenu. Il existe déjà plusieurs articles et travaux concernant cette approche. Dans
[John S. Breese et al., 1998], [Philip Chan, 1999] et [W. W. Cohen, 2004], une vue d'ensemble du
filtrage collaboratif a été abordée. Certaines méthodes pour améliorer le filtrage collaboratif ont été
proposées pour des applications spécifiques dans [A. Gokhale, 1999], [N. Good et al., 1999], [B. N.

Miller et al., 2004] et [D. Pavlov et al., 2004]. Plusieurs méthodes d'évaluation pour le filtrage
collaboratif ont été présentées dans [J. L. Herlocker et al., 2004].
En ce qui concerne la combinaison du filtrage basé sur le contenu et du filtrage collaboratif,
certains chercheurs ont déjà proposé quelques méthodes. [J. Basilico, 2004], [J. Basilico and T.
Hofmann, 2004] ont proposé un algorithme enligne JRank pour la combinaison. [M. Garden and G.
Dudek, 2006] a suggéré une solution de façon sémantique. Plus clairement, la prédiction ne se base
pas seulement sur des votes mais aussi sur la sémantique des ressources. [M. J. Pazzani, 1998] a
proposé de combiner trois filtrages en même temps : filtrage par le contenu, filtrage collaboratif et
filtrage démographique. Cette méthode utilise les informations démographiques (âge, sexe,
profession, etc.) des utilisateurs pour la prédiction. [M. Claypool et al., 1999] a présenté une
méthode de combinaison pour un magazine enligne; alors que [D. Pemberton and T. Rodden, 2000]
a proposé une méthode de combinaison pour un site web. Certaines méthodes de combinaison du
filtrage collaboratif et du filtrage par le contenu ont été proposées dans [R. D. T. Júnior, 2004] pour
prédire des préférences d'article de recherche. [P. Baudisch, 2004] a présenté une méthode de
combinaison selon la relation entre des tables dans la base de données. Une méthode d'utiliser le
filtrage par le contenu pour remplir la matrice des votes et puis d'utiliser le filtrage collaboratif pour
prédire des préférences selon la nouvelle matrice a été proposée dans [Prem Melville et al., 2002].
Dans le cadre de mon stage, j'ai proposé des méthodes de combinaison du filtrage collaboratif
et du filtrage par le contenu, mais de façon différente.

5


Chapitre 2. Filtrage basé sur le contenu (FBC)

2.1. Vue d'ensemble
À cause de la disponibilité croissante des informations en forme électronique, il est plus
important et faisable d'avoir des méthodes automatiques pour le filtrage d'information. On génère de
très grandes quantités d'information tous les jours. Ce volume d'information nous rend difficile de
maintenir des informations pertinentes. En outre, seulement une petite fraction d'information

disponible sera réellement pertinente pour tout le monde dans un groupe particulier. Ainsi, il y a un
problème de déterminer quelle information est intéressante pour une personne, tout en réduisant au
minimum la quantité de recherche d'information non pertinente [P. W. Foltz and S. T. Dumais,
1992].
Le filtrage d'information n'est pas un nouveau concept, ni un qui est limité aux documents
électroniques. Quand nous lisons des textes de papier standard, le filtrage d'information se passe.
Nous n'achetons que certains magazines, puisque d'autres magazines peuvent contenir des
informations superflues/redondantes ou non pertinentes. De cette façon, nous rejetons une grande
quantité d'information à laquelle nous avons accès. Dans n'importe quel magazine particulier, nous
choisissons également les articles semblant appropriés à nos intérêts. Ainsi, quand les gens sont
attirés par une sorte d'acquisition d'information, ils filtrent continuellement des informations. Avec
l'arrivée de la présentation électronique de l'information, une partie de ce filtrage ne doit plus être
faite par nous, mais pourrait être effectuée automatiquement par le système qui présente
l'information.
Tandis que le filtrage d'information automatique semble une vision merveilleuse, il y a
beaucoup de difficultés pour déterminer l'information qu'une personne veut voir. La description
signifiant quelle information est intéressante est représentée souvent sous forme un « profil
d'utilisateur » (user profile). Largement défini, ceci peut également être considéré comme un genre
rudimentaire de modèle d'utilisateur. Il y a beaucoup de problèmes sur le développement d'un bon
modèle des intérêts d'un utilisateur. Par exemple, plusieurs facteurs pourraient être utilisés pour
décrire les intérêts d'une personne. Généralement, les gens fournissent un ensemble des mots clés
pour décrire leurs intérêts. Cependant, beaucoup d'autres sources d'information pourraient être utiles
(les documents qu'ils ont lus dans le passé, leurs professions, leurs sexes, leurs âges, etc.).
Une des méthodes les plus simples pour déterminer si une information correspond aux intérêts
d'un utilisateur est de se baser sur la correspondance de mot-clé. Si les intérêts d'un utilisateur sont
décrits par certains mots, alors l'information contenant ces mots devrait être pertinente. Cependant,
cette méthode ne donne pas de bons résultats. Les correspondances inadéquates peuvent surgir car
l'utilisation de mots des gens ne reflète pas clairement la matière ou le contenu. Un mot simple peut
avoir plusieurs significations, et réciproquement, un concept peut être décrit étonnamment par
beaucoup de mots différents. [Furnas et al., 1983] a montré que la possibilité pour que deux

personnes différentes utilisent le même mot pour décrire un objet est seulement 10-20%.
Pour le filtrage basé sur le contenu, le contenu d'une ressource (film, site web, ...) est
considéré comme un document textuel. Autrement dit, une ressource est présentée par un ensemble
des mots, et on distingue de deux ressources différentes selon leurs mots. Dans un système de
6


Chapitre 2. Filtrage basé sur le contenu (FBC)

Vers une approche personnalisée de la recherche d'informations

filtrage par le contenu, une base de données textuelle peut être représentée par une matrice dont
l'entrée représente la fréquence d'apparition d'un mot dans le document.
k1

k2

k3

...

km

d1

5

12

3


...

8

d2

2

9

11

...

0

d3

4

0

6

...

10

...


...

...

...

...

...

dn

9

4

25

...

20

Figure 1. Matrice des fréquences
{d1, d2, ..., dn} : liste des documents
{k1, k2, ..., km} : liste des mots clés
Ainsi, un document peut être considéré comme un vecteur dans un espace multidimensionnel,
dont les dimensions sont les mots utilisés pour représenter des textes. On peut le faire en utilisant un
dictionnaire contenant une liste des mots standards. Dans ce cas, les positions des mots sont
passées, donc il est évidement impossible de rétablir le document original.

Par exemple : Le dictionnaire contient 30.000 mots. Chaque document sera représenté par un
vecteur de taille 30.000. La valeur du 100ième élément de ce vecteur est la fréquence de répétition du
100ième mot trouvé dans le dictionnaire.
Cette méthode se base sur l'hypothèse que deux documents différents ayant une même
fréquence des mots sont pareils. Jusqu'à présent, l'idée de cette méthode est encore la seule solution
pour le développement de filtrage basé sur le contenu.
Comme il y a un très grand nombre des mots en réel, alors que l'importance des mots est
différente, quelques mots sont très réguliers mais contiennent pas beaucoup d'informations (par
exemple : je, tu, mais, que, autre, ...), il faut diminuer le nombre des mots dans le dictionnaire pour
réduire la taille du vecteur de présentation en conservant encore l'information importante. Le
programme traitant le contenu du document fonctionne donc plus vite.
Par exemple : Au lieu d'utiliser tous les 30.000 mots, le dictionnaire contient maintenant
seulement 500 mots les plus importants. La taille du vecteur de représentation est beaucoup plus
petite.

7


Chapitre 2. Filtrage basé sur le contenu (FBC)

Vers une approche personnalisée de la recherche d'informations

a

while

through

in


an
the

of
at

during
before

out
on

and
but

by
for

after
above

off
over

if
or

with
about


below
to

under
again

because
as

against
between

from
up

further
then

Tableau 1. Exemple des mots non importants
Une prétention importante dans ce modèle de l'espace de vecteur est que les mots (c-à-d,
dimensions de l'espace) sont orthogonaux ou indépendants. Tandis que c'est une première
approximation raisonnable, la prétention que les mots sont indépendants par paires n'est pas
vraiment réaliste.
Certains formules sont appliqués afin de calculer la corrélation entre deux documents
différents à partir de leurs vecteurs de représentation. Les deux formules utilisés le plus souvent
sont la distance euclidienne et le cosinus entre deux vecteurs. Supposons que les deux vecteurs sont
a(a1, a2, ..., an) et b(b1, b2, ..., bn).
La distance euclidienne entre a et b est définie comme le suivant :
d a , b =




n

∑ a i − bi 2
i =1

Plus la valeur de la distance d(a,b) est petite, plus le vecteur a est semblable au vecteur b
(donc plus le document représenté par a est plus semblable à celui représenté par b).
Réellement, la distance euclidienne fait défaut car la valeur de distance est très sensible aux
valeurs des éléments du vecteur de présentation. La similarité entre deux documents est donc
calculée souvent comme le cosinus entre a et b, ce qui est calculé comme suit :
a.b
cosa , b =
∥a∥.∥b∥

n

a.b = ∑ ai b i
i =1

et

∑
n

∥a∥ =

i =1


a

2
i

∑
n

, ∥b∥=

i=1

b2i

Plus la valeur du cosinus cos(a,b) est proche de 1, plus le vecteur a est semblable au vecteur b
(donc plus le document représenté par a est plus semblable à celui représenté par b).
La sortie d'une application de recommandation appliquant le filtrage par le contenu est une
liste des documents dont les documents au haut sont considérés être meilleurs que les autres. En
général, l'idée pour le filtrage par le contenu est de créer un espace des documents dont certains ont
8


Chapitre 2. Filtrage basé sur le contenu (FBC)

Vers une approche personnalisée de la recherche d'informations

été précédemment jugés par un utilisateur pour être pertinents à ses intérêts. Si un nouveau
document est proche des documents pertinents dans l'espace, alors il soit probablement considéré
comme étant intéressant à l'utilisateur. Réciproquement, si ce document est loin des documents
pertinents, alors on considérerait qu'il n'est pas intéressant à l'utilisateur. Cette approche peut être

appliquée pour déterminer la distance entre un nouveau document est les mots-clés d'un profil
d'utilisateur.

2.2. Stemming
Concernant le filtrage par le contenu, nous utilisons la méthode Stemming. Cette méthode a
pour objectif de convertir un mot quelconque à un autre mot que nous appelons « mot de root ».
Pourquoi faut-il appliquer le Stemming ? La réponse est que cela pourrait donner des résultats plus
précis, puisque réellement, deux mots écrits différemment peuvent être formés à partir un même
mot.
Mot

Stemming

Mot

Stemming

Mot

Stemming

consign

consign

consolation

consol

knack


knack

consigned

consign

consolations

consol

knackeries

knackeri

consigning

consign

consolatory

consolatori

knacks

knack

consignment

consign


console

consol

knag

knag

consist

consist

consoled

consol

knave

knave

consisted

consist

consoles

consol

knaves


knave

consistency

consist

consolidate

consolid

kneaded

knead

consistent

consist

consolidated

consolid

kneading

knead

consistently

consist


consoling

consol

knee

knee

consisting

consist

consolingly

consol

kneel

kneel

consists

consist

consols

consol

kneeling


kneel

Tableau 2. Exemple des mots en forme de Stemming
Nous pouvons trouver une explication détaillée ainsi qu'un code source de Stemming sur
Internet, par exemple ce lien :
/>Il faut faire attention qu'un mot en forme de Stemming n'existe pas toujours dans le
dictionnaire. Par exemple, la forme de Stemming du mot « story » est « stori », du mot « people »
est « peopl », etc.
9


Chapitre 3. Filtrage collaboratif (FC)
La tâche du Filtrage Collaboratif est de prédire l'utilité d'une ressource à un utilisateur
particulier en se fondant sur une base de données de votes issue d'un échantillon ou d'une
population d'autres utilisateurs [John S. Breese et al., 1998].
Le filtrage collaboratif a été formée à partir de très simples idées. Elsa veut trouver un film
quelconque qu'elle n'a jamais vu et qu'elle aime probablement. Ce n'est pas une tâche facile car elle
a très peu d'informations des films. Elsa a deux amis, Lorraine qui a le même goût et Pierre dont le
goût est très différent. Elsa demandera à Lorraine de lui proposer une liste des films que Lorraine
aime les plus. De cette façon, il y a une grande possibilité que Elsa verra un film qu'elle aime. Il ne
faut pas se baser sur les films que Pierre aime. Cette méthode peut être appliquée dans plusieurs cas,
par exemple pour la recherche de restaurant, de musique, de vêtement, etc. Normalement, dans le
réel, nous ne nous basons pas sur seulement une personne, mais aussi sur un groupe de plusieurs
personnes dont le goût est pareil.
Historiquement, il y a deux classes d'algorithme de filtrage collaboratif [John S. Breese et al.,
1998] : basé sur la mémoire et basé sur un modèle.

3.1. Filtrage collaboratif basé sur la mémoire
Le filtrage collaboratif basé sur la mémoire utilise une matrice des votes contenant des

préférences des utilisateurs pour prédire des sujets additionnels ou des produits auxquels un
nouveau utilisateur peut-être s'intéresse. L'objectif d'un filtrage collaboratif basé sur la mémoire est
de prédire l'utilité des ressources (items) pour un utilisateur particulier (l'utilisateur actif) basé sur la
base des votes d'utilisateur.
R1

R2

R3

...

Rm

U1

5

2

3

...

4

U2

4


1

1

...

0

U3

4

0

2

...

3

...

...

...

...

...


...

Un

4

3

5

...

5

Figure 2. Matrice des votes
{R1, R2, ..., Rm} : liste des ressources
{U1, U2, ..., Un} : liste des utilisateurs
La base de données des votes d'utilisateur contient un ensemble des votes vi,j correspondant au
vote de l'utilisateur i sur la ressource j. Soit Ii l'ensemble des ressources pour lesquelles l'utilisateur i
a voté, la moyenne des votes de l'utilisateur i est définie comme suit :
10


Chapitre 3. Filtrage collaboratif (FC)

Vers une approche personnalisée de la recherche d'informations

1
vi , j
∣I i∣ ∑

j ∈I

vi =

i

On considère que le vote prédit de l'utilisateur actif pour la ressource j, pa,j, est calculée à
partir de la somme des votes des autres utilisateurs :
n

p a , j = va   ∑ a ,iv i , j − vi
i=1

Avec :
n le nombre des utilisateurs dont le poids n'est pas égal à zéro;
v i , j l'évaluation de la ressource j par l'utilisateur i;
vi la moyenne de l'ensemble des évaluations fournies par l'utilisateur i;
a , i le coefficient de pondération liant l'utilisateur actif et i;
 un coefficient de normalisation;
κ est un coefficient de normalisation permettant d'harmoniser les votes afin de minimiser
l'influence des utilisateurs ayant tendance à noter de façon extrême (uniquement des notes très
élevées ou très basses). Par ailleurs, le coefficient de pondération ω(a,i) représente la similarité
existante entre l'utilisateur actif et les autres. Plus ils sont proches et plus le coefficient est grand. Ce
coefficient peuvent être définis à partir de la distance, de la corrélation ou de la similarité entre
chaque utilisateur i et l'utilisateur actif.
En considérant le coefficient de corrélation Pearson comme la base pour les poids [Resnick et
al., 1994], la corrélation est calculée comme suit :

∑ v a , j − va v i , j − vi
a , i =


j

∑  v
j

a,j

− va 2 ∑ v i , j − vi 2
j

Dans ce cas, la valeur de ω(a,i) est entre -1 et 1. Si cette valeur est égale à -1, nous disons que
les deux utilisateurs sont fortement corrélés opposés. Si la valeur est égale à 1, les deux utilisateurs
sont fortement corrélés semblables. Les deux utilisateurs sont considérés être indépendants si la
valeur est égale à 0.

Figure 3. Valeurs possibles de la corrélation Pearson
Pour le cas de la similarité, ces poids sont définis selon le formule suivant :

11


Chapitre 3. Filtrage collaboratif (FC)

Vers une approche personnalisée de la recherche d'informations

a , i = ∑
j

va , j


∑ v
k ∈ Ia

vi , j
2
a ,k

v 2i , k


k∈ I i

3.2. Filtrage collaboratif basé sur un modèle
Certaines approches ont été abordées dans [John S. Breese et al., 1998] comme l'approche
probabiliste, l'approche de réseaux bayésiens, l'approche de Clustering dans [S. H. S. Chee et al.,
2001] et dans [S. Castagnos and A. Boyer, 2006]. Dans le cadre de mon stage, je me suis intéressé
au modèle de Clustering.
Les méthodes de Clustering permettent de limiter le nombre d'individus considérés dans le
calcul de la prédiction. Le temps de traitement sera donc plus court et les résultats seront
potentiellement plus pertinents puisque les observations porteront sur un groupe le plus proche de
l'utilisateur actif. Autrement dit, au lieu de consulter l'ensemble de la population, nous estimons la
préférence d'un groupe de personnes ayant les mêmes goûts que l'utilisateur.
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. En suite, 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. Cet algorithme est en o(k2n)
pour k clusters et n individus.



Figure 4. Espace de représentation utilisateurs/ressources (K-Means)
Nous considérons ensuite seulement le cluster de l'utilisateur courant.

12


Chapitre 3. Filtrage collaboratif (FC)

Vers une approche personnalisée de la recherche d'informations

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. La
construction de l'arbre s'opère en O(nlog2n).


Afin de diviser l'ensemble des données, on utilise l'algorithme K-Means. Cet algorithme,
expliqué ci-dessus, choit d'abord k graines (seeds) initiales comme les k centres provisoires de
groupe et puis assigne des utilisateurs au groupe dont ils sont les plus proches. Le centre de chaque
groupe est puis pris comme le nouveau centre et les utilisateurs sont ré-assignés. Ces étapes sont
répétées jusqu'à ce que le changement des positions des centres tombent au-dessous d'un seuil. Pour
former l'arbre de recommandation, on cherche à maximiser les similarités entre les membres d'une
même clique et à minimiser celles entre les membres de deux cliques différentes. Ainsi, plus on
descend dans l'arbre et plus les clusters sont spécifiques à un certain groupe d'utilisateurs similaires.
Par conséquent, plus on parcourt l'arbre en profondeur, plus les individus partagent le même avis.
FRAC

Le modèle FRAC se base sur le formule de Chan [Philip Chan, 1999] et sur le clustering
hiérrachisé expliqué ci-dessus (RecTree). Cette méthode divise l'ensemble des utilisateurs en
cliques en appelant récursivement la méthode K-Means avec k = 2 [S. Castagnos and A. Boyer,
2006]. L'algorithme FRAC est une approche basée sur un modèle, décrit comme une méthode de
clustering. Cependant, il fonctionne comme une approche basée sur la mémoire car toutes les
informations sont utilisées pour le calcul de similarité.


Figure 5. Organisation hiérarchique des utilisateurs
Nous travaillons dans une espace de N-dimensions. Nous commençons avec le principe que
deux utilisateurs les plus lointains sont à deux cliques différentes. Nous constituons donc les
candidats idéaux pour les points initiaux. Afin de les identifier, nous cherchons le point le plus
lointain par rapport au centre M de l'espace utilisateurs/ressources, ce qui est appelé A. En suite,
nous trouvons le point B qui est le plus lointain par rapport au point A. Les points A et B sont les
deux points initiaux de l'algorithme 2-Means. Cette phase d'initialisation est en o(2n), où n est le
nombre des utilisateurs. La métrique utilisée pour déterminer des distances est le coefficient de
13


Chapitre 3. Filtrage collaboratif (FC)

Vers une approche personnalisée de la recherche d'informations

corrélation de Pearson [Resnick et al., 1994].

Figure 6. Initialisation de l'algorithme 2-Means
Une fois que les groupes des utilisateurs sont formés, la position du centre de chaque clique
est recalculée. Cette opération est répétée jusqu'à obtenir un état stable où les centres ne bougent
plus quand nous recalculons leurs positions. Le centre final de chaque feuil de l'arbre de FRAC
correspond à un profil d'un utilisateur typique (typical user). C'est à dire que nous considérons ces

centres comme des utilisateurs virtuels signifiant la préférence de chaque ensemble d'utilisateur. Il
faut faire attention que à la fin de chaque itération, nous pouvons remplacer certains utilisateurs
dans un clique à un autre pour que les nombres des utilisateurs dans les deux nouveaux cliques
soient semblables.
Le coefficient de corrélation de Pearson est utilisé pour calculer les distances entre l'utilisateur
actif et les utilisateurs typiques. Nous considérons que l'utilisateur actif est à la communauté dont le
centre est le plus proche à lui/elle. Finalement, nous pouvons prédire l'intérêt de l'utilisateur actif ua
sur une ressource rl comme suit :
p u ,r = max r min , min r u ,l   ru − ru  , r max 
a

l

t

a

t

Avec :
p u ,r la prédiction de ua pour rl;
a

l

u a utilisateur actif;
u t utilisateur typique le plus proche;
ru la valeur moyenne des votes de u;
r min et r max sont les valeurs minimale et maximale possible des votes


14


Chapitre 4. Combinaison du FBC et du FC
Dans le cadre de mon stage, toutes les méthodes proposées sont testées avec une base de
données des films.
La structure générale d'un système de filtrage de film est comme suit :

Figure 7. Structure générale d'un système de filtrage de film
Pour un utilisateur s'appelant l'utilisateur actif, le système de filtrage crée une liste des films
en ordre de priorité. Puis seulement les N premiers films de la liste sont retenus pour la
recommandation, les autres sont rejetés.
J'ai proposé 5 méthodes de combinaison du filtrage collaboratif et du filtrage basé sur le
contenu :
● FC – FBC séparé





FC – FBC combiné
FBC ressources – FC
FBC utilisateurs – FC
Fusion

15


×