Professional Documents
Culture Documents
TITRE :
Attention : si le candidat prfre effectuer un autre travail sur le dossier, il lui est expressment recommand den informer le jury avant de commencer lexpos. CONSEILS GENERAUX POUR LA PREPARATION DE L'EPREUVE : * Lisez le dossier en entier dans un temps raisonnable. * Rservez du temps pour prparer l'expos devant le jury. Vous pouvez crire sur le prsent dossier, le surligner, le dcouper mais tout sera remettre au jury en fin doral. En fin de prparation, rassemblez et ordonnez soigneusement TOUS les documents (transparents, etc.) dont vous comptez vous servir pendant loral, ainsi que le dossier, les transparents et les brouillons utiliss pendant la prparation. En entrant dans la salle d'oral, vous devez tre prts dbuter votre expos. A la fin de l'oral, vous devez remettre au jury le prsent dossier, les transparents et les brouillons utiliss pour cette partie de l'oral, ainsi que TOUS les transparents et autres documents prsents pendant votre prestation.
Illustration 1: La carte de John Snow de 1854, 1 yard = 0.9144 m Ce dossier prsente un algorithme classique trs utilis dans le domaine de lAnalyse de 5 Donnes Spatiales (ADS) et son application dans un contexte lgrement diffrent : la Recherche d'Information (RI). LADS est l'analyse de donnes spatiales quantitatives (ou gographiques) pour essayer d'en tirer de l'information pertinente. L'origine de cette discipline remonte au XIXe sicle avec les travaux de John Snow, sur des pidmies de cholra Londres, comme indiqu dans l'illustration 1.
Page 1 sur 13
10
Les points sur la carte reprsentent des dcs ds au cholra, et les croix reprsentent des pompes eau. L'objectif de son tude tait de valider son hypothse selon laquelle la dissmination du cholra se faisait par l'intermdiaire de la distribution d'eau, ce qui a t dmontr en laboratoire en 1883 par Robert Koch. Pour ce faire, il a donc dress une carte avec les dcs ds au cholra localiss spatialement. Lobservation de la densit de dcs la
15
conduit la construction dune sorte de cluster (groupe), qui tait corrl avec la prsence de pompes eau contamines. Cette exprience peut tre considre comme l'une des premires tentatives dADS quantitatives. Nous allons donc tudier du point de vue informatique un algorithme de regroupement par densit en prsence de bruit, appel DBSCAN (Density-Based Spatial Clustering of
20
Applications with Noise) invent par Ester, Kriegel, Sander et Xui en 1996.
I- Survol de l'algorithme
Le pseudo-code de cet algorithme est donn en figure 1. Les paramtres de l'algorithme sont un ensemble de points D, de cardinal card(D) = n, une distance minimale et minPts, un nombre minimal de voisins pour qu'un point ne soit pas considr comme du bruit. Le rsultat 25 est un ensemble de clusters (groupes) numrots contenant des points, plus un ensemble de points appels BRUIT qui ne font partie d'aucun cluster. La fonction trouverVoisins(P, ) retourne l'ensemble des points voisins de P (et distincts de P), se trouvant une distance (ici euclidienne) d'au plus . La fonction card(N) retourne le nombre de points de l'ensemble N. Dans le code on utilise des {} pour reprsenter un ensemble et [ ] pour reprsenter une 30 structure de type produit* (les mots suivis dun astrisque sont dfinis en annexe). On peut noter quune variation dans le choix du point initial ne changera que la numrotation des clusters et non pas les lments les composant. La fonction calculerCluster(M, Cluster) permet le calcul rcursif dun cluster une fois quon a trouv un premier point permettant de commencer le construire.
Page 2 sur 13
35
Entres : D : {point} minPts : entier : rel
40
45
50
pour chaque point P non VISITE de l'ensemble D faire N = trouverVoisins (P, ) si (card(N) < minPts) alors
55
i = i + 1 crer un nouveau Cloc avec Cloc.id = i et ajouter P Cloc.points marquer P comme VISITE pour tout Q de N faire
60
Fin.
65
70
marquer M comme VISITE et ajouter M Cluster pour tout Q non VISITE de N faire calculerCluster (Q, Cluster) Fin.
II- Exemple
75 Regardons sur un exemple rapide, figure 2, le fonctionnement de cet algorithme en prenant
minPts=2, ce qui signifie qu'un point doit avoir au minimum 2 voisins dont le centre est une
distance infrieure pour ne pas tre considr comme tant du bruit.). On voit apparatre deux clusters, C1 et C2, contenant respectivement 3 et 4 points. Les points hachurs horizontalement sont des points de type BRUIT, qui ne font partie d'aucun cluster. 80 Notons que l'algorithme est dterministe, puisque les rsultats ne dpendent pas du choix du point initial. Ce n'est pas le cas de tous les algorithmes de regroupement par densit.
Figure 3, permet d'obtenir l'ensemble des voisins d'un point donn en paramtre, et le cardinal de cet ensemble en faisant appel une fonction distance(point, point) qui retourne la distance entre deux points en temps O(1).
Page 4 sur 13
On constate que cela nous cote un temps O(n) de calculer les plus proches voisins, ainsi que 95 la taille de l'ensemble. Le temps d'excution de l'algorithme n'est donc pas linaire en n comme annonc prcdemment mais quadratique ! Mais quelle est en ralit la manire dont un utilisateur va se servir de l'algorithme? Quelles tches va-t-il devoir effectuer de nombreuses fois, et quelles tches pourrait-il n'excuter qu'une seule fois ? Lors de l'utilisation d'un algorithme tel que DBSCAN qui possde des 100 paramtres d'ajustement (minPts et ), il est courant de l'excuter plusieurs fois pour trouver des paramtres pertinents, ou bien pour raliser un clustering plusieurs granularits, comme montr dans la figure 4. En effectuant une fois pour toutes le calcul des plus proches voisins de chaque point, nous allons pouvoir amliorer la complexit de l'algorithme lors d'excutions successives : si on sauvegarde pour chaque point dans un tableau tabVoisins, n lignes et 105 n colonnes, la liste ordonne de ses plus proches voisins avec la distance les sparant de ce point, alors il est immdiat de voir qu'on pourra dterminer en un temps O(1) si ses minPts plus proches voisins sont une distance de ou pas : il suffit de regarder la valeur de distance de l'lment minPts de ce tableau.
Entres :
110
Sortie :
P : point : rel
115
Variables globales : D : {point} est l'ensemble des points traits dans l'algorithme Variables locales : M : point
120
125
Fin.
Page 5 sur 13
Figure 4: Excutions successives de DBSCAN avec plusieurs valeurs de et minPts = 2 Le cot de construction du tableau des voisins est O(n2 lnn) si on utilise un algorithme naf comme celui de la Figure 5, et le temps d'excution de DBSCAN est donc O(n). On suppose 130 ici qu'on se donne un indiage arbitraire des points : P1, P2, ..., Pn
Entres : Sortie : tabVoisins : tableau de n, n : [point, rel] Variables globales :
135
D : {point} est l'ensemble des points traits dans l'algorithme Variables locales : i, j : entier Dbut :
140
pour i allant de 1 n faire pour j allant de 1 n faire tabVoisins[i, j] = (Pj , distance(Pi,Pj)) pour i allant de 1 n faire trier par ordre croissant la ie ligne de tabVoisins
145
Fin.
Figure 5- Algorithme de construction de tabVoisins Ainsi, si on prend tabVoisins[3,5] on connatra l'indice j et la distance du cinquime point le plus proche du point P3, ce qui nous cote O(1).
Page 6 sur 13
L'objectif de cette classification est de regrouper des documents traitant des mmes sujets. Ce genre de classification existe depuis longtemps dans les bibliothques : un ouvrage sera identifi comme un livre d'informatique, peut-tre avec une spcialit de Recherche 155 d'Information, selon la granularit de la classification. Dans les bibliothques, cette classification est manuelle : il existe une liste de classes et chaque livre doit tre rang dans la bonne catgorie. Lorsqu'on est sur Internet, et face au volume de donnes traiter, il est impossible d'esprer un jour que tous les documents (sites Web) soient classs la main. Il se prsente deux 160 problmes : (a) Obtenir pour chaque document une liste de mots-cls le reprsentant (b) Dfinir une distance entre des mots-cls, pour pouvoir appliquer un algorithme de clustering. Nous ne considrerons pas ici le problme soulev par (a), qui peut tre rsolu par des 165 techniques de data mining* textuel, permettant d'extraire un petit ensemble de mots pertinents caractrisant le document. Nous allons supposer connu cet ensemble, et nous concentrer sur le problme (b). Dans ce domaine, il est frquent de parler de la similarit (un rel entre 0 et 1) entre documents plutt que de leur distance (un rel entre 0 et +). Il est courant de passer de la distance d(a, b) la similarit S(a, b) par la fonction suivante : 1 2 arctan d ( a, b) S ( a, b ) =
170
(1)
Voici quelques proprits intuitives qui devront tre respectes par une mesure de similarit. Pour deux ensembles A et B: La similarit entre A et B est fonction de ce quils ont en commun. Plus ils ont dlments en commun, plus leur similarit sera leve. (P1) 175 La similarit entre A et B est fonction de leurs diffrences. Plus ils ont de diffrences, plus leur similarit sera faible. (P2) La valeur de similarit maximale est obtenue lorsque A et B sont identiques, quel que soit leur nombre d'lments communs. (P3) La mesure de similarit la plus courante utilise en recherche d'information est appele 180 coefficient de Jaccard, qui se calcule selon la formule : S ( A, B) = card( A B ) card( A B ) (2)
Page 7 sur 13
Il est facile de vrifier que cette mesure de similarit respecte les proprits P1, P2 et P3. Une fois que l'on dispose de cette mesure de similarit, on peut excuter l'algorithme de clustering pour obtenir des clusters de documents similaires. On voit galement apparatre la 185 problmatique du paramtrage de l'algorithme de clustering ! En effet, quelle signification faut-il donner une similarit de 0,5 entre deux documents ? Une similarit de 0,8 ? La validation des clusters se faisant par chantillonnage et vrification manuelle, on voit qu'il est capital de pouvoir lancer de nombreuses fois l'algorithme de clustering, avec de petites variations dans les paramtres, sans pour autant recalculer toutes les similarits entre les 190 documents. Nous sommes bien dans le cas de figure dcrit dans la partie III. Regardons comment peuvent tre regroups des documents contenant les mots-cls suivants : ID du document 1 2 3 4 5 6 7 8 9 10 11 Mots-Cls Achat Achat, voiture Vente, voiture Vente Achat, maison Achat, voiture, occasion Achat, voiture, neuve Achat, voiture, familiale Vente, maison Vendre, automobile Schmilblick Tableau 1- Exemples de documents identifis par leurs mots-cls
On voit se dessiner deux problmes, l'un d l'utilisation de DBSCAN, l'autre d la mesure de similarit utilise. 195 (a) Les clusters n'ont parfois pas de vritable signification, et peuvent devenir trop gros, ce qui est d au fait que la similarit est la mme entre 2 et 3 qu'entre 2 et 5, sans pour autant qu'il existe un lien smantique fort entre 3 et 5. Il est pourtant possible qu'ils se retrouvent dans le mme cluster. (b) La similarit entre 3 et 10 est nulle, ce qui est d notre utilisation de mots-cls, sans 200 essayer d'en comprendre leur sens. De nombreuses recherches ont t faites pour amliorer les algorithmes de clustering, pour pallier au problme (a), tout en essayant de conserver une complexit linaire dans le nombre de points, par exemple les travaux de Zamir et Etzioni (1998) qui utilisent des arbres des
Page 8 sur 13
suffixes*. Des travaux issus du domaine des ontologies ont permis d'amliorer la qualit des 205 mesures de similarit, et c'est ce que nous allons regarder dans la dernire partie de ce dossier.
(3)
Path(c) reprsente la distance depuis un nud origine R vers l'anctre commun de a et b, et Path(a) et Path(b) sont les plus courts chemins passant par cet anctre. Pour des raisons de calcul, on considre que Path(R) = 1. Ainsi sur lexemple de la Figure 6, Path(c) = 2 220 Path(b) = 3 et Path(a) = 4.
Figure 6: Exemple de distance entre nuds d'un graphe, par rapport une racine R
Page 9 sur 13
Figure 7- Exemple d'ontologie 225 Il nous reste dfinir une distance entre des ensembles de mots A et B. On peut choisir une gnralisation de la mesure de Wu et Palmer, propose par Halkidi et al. en 2003, donne par la formule suivante :
1 ( A, B ) = 1 1 max SW & P (a, b ) + max SW & P (a, b ) 2 card( A) aA bB card( A) bB aA
230
On peut vrifier que cette mesure respecte bien les proprits nonces au dbut de la section IV. Un exemple d'application de cette mesure est donn dans la figure 8.
Page 10 sur 13
a2 a1
b1
a3
b2
A = {a1, a1, a1} et B = {b1, b2} S(A, B) = 1/2 (1/3 (3/4 + 6/9 + 3/4) + 1/2 (3/4 + 3/4)) S(A, B) = 0,74 Figure 8: Exemple de calcul de similarit entre ensembles de mots
Disposant dsormais d'une mesure de similarit entre ensembles de mots, il est tout fait possible d'excuter l'algorithme DBSCAN sur les documents identifis dans la section IV. Il 235 est important de souligner que la qualit des rsultats dpend bien sr de la prcision de l'ontologie utilise.
Conclusion
L'utilisation d'algorithmes de clustering, dont l'origine vient de la fouille de donnes spatiale 240 est utilise aujourd'hui dans des domaines trs varis comme nous l'avons montr sur l'exemple du clustering bas sur une mesure de similarit entre documents. D'une manire gnrale, il est possible de regrouper n'importe quel ensemble d'informations reprsent sous la forme de mots-cls, Ainsi dans le domaine du Web la publicit cible se base sur ce principe. La difficult que nous n'avons pas aborde ici, comme dans le cas d'ailleurs des 245 simples documents Web, est de russir rduire les documents, ou les utilisateurs, une liste de mots-cls !
Page 11 sur 13
ANNEXES Glossaire
250 Type produit Un type produit est compos d'un ensemble de champs, chacun pouvant tre d'un type quelconque, possdant un nom de champ. Par exemple, on peut dfinir un type produit Voiture comme ayant les champs marque de type chane de caractres et puissance_fiscale de type entier. Dans ce cas, si on dfinit une variable v comme tant de type Voiture alors on 255 peut accder aux champs marque et puissance_fiscale en utilisant la notation pointe : v.marque et v.puissance_fiscale. On utilise ensuite v.marque exactement comme une variable de type chane et v.puissance_fiscale exactement comme une variable de type entier : on pourra crire v.marque = "Renault" et v.puissance_fiscale = 7.
260
Data mining Le data mining (en franais fouille de donnes ou encore extraction de connaissances partir de donnes) est une branche de l'informatique dont le but est l'extraction d'un savoir ou d'une connaissance partir de grandes quantits de donnes en utilisant des mthodes automatiques ou semi-automatiques, que nous ne dtaillons pas ici.
265
Le data mining est un processus d'analyse dont l'approche est diffrente de celle utilise en statistique. Cette dernire prsuppose en gnral que l'on se fixe une hypothse que les donnes permettent ou non de confirmer. Au contraire, le data mining adopte une dmarche sans a priori et essaie ainsi de faire merger, partir des donnes brutes, des infrences que l'exprimentateur peut ne pas souponner, et dont il aura valider la pertinence.
270
Trs utilis dans le monde professionnel, l'exemple le plus connu comme application est l'tude des tickets de caisses de supermarchs, afin de dcouvrir quels produits sont achets le plus souvent ensemble. Par exemple : si on achte une sauce bolognaise on achte souvent des ptes. Plus surprenant, le data mining a permis de dcouvrir que lorsqu'on achetait de la bire on achetait aussi des couches pour bbs !
275
Fort de cette information, le grant du supermarch peut choisir de mettre les produits achets ensemble ct les uns des autres, ou au contraire loin les uns des autres pour obliger le client traverser tout le supermarch, et donc voir et tre tent par l'achat d'autres produits. Un autre exemple souvent cit est le suivant : si on baisse le prix de la boisson XXX de 5%, on va par exemple en augmenter les ventes de 15%, ce que l'on savait sans data mining. Mais Page 12 sur 13
280
le data mining rvle l'lment inattendu (bien qu'vident a posteriori), savoir que les ventes des cacahoutes vont augmenter dans une proportion voisine (sans doute suite l'association d'ides : Puisque j'achte du XXX, il me faut aussi des cacahoutes ; le data mining ne fait pas d'hypothse sur le sujet). Si la marge sur la boisson XXX est relativement faible, et celle sur les cacahutes importante, la conclusion s'impose d'elle-mme : baisser le prix de la
285
Arbre des suffixes La Figure 9 reprsente l'exemple d'arbre des suffixes utilis par Zamir et Etzioni. L'objectif est de voir les similitudes entre trois phrases : "chat mange fromage", "souris mange fromage 290 aussi" et "chat mange souris aussi". Chaque feuille de l'arbre est tiquete par deux nombres, le premier correspondant au numro de la phrase et le deuxime correspondant la position dans la phrase du dbut de la sous-phrase reprsente par le chemin dans l'arbre menant cette feuille. Par exemple en passant par le nud d on peut avoir soit "souris mange fromage aussi" c'est--dire en premire position de la phrase 2, soit "souris aussi" c'est--dire une sous295 phrase commenant la 3e position de la phrase 3. L'intrt de cet arbre des suffixes est qu'il se construit en temps linaire, et que le rsultat va permettre de regrouper ensemble des phrases (ou documents) ayant des choses en commun.
chat mange
fromage mange
souris
aussi
a
fromage
b
souris aussi fromage
1,3
d
mange fromage aussi 2,4 aussi
e
3,4
aussi
f
1,1 3,1 aussi 1,2 3,2 2,3 2,1 3,3
3,2
Page 13 sur 13