Algorithmes pour le Traitement de Données - membres

Transcription

Algorithmes pour le Traitement de Données - membres
Introduction
Indexation, Représentation Vectorielle
L’algorithme des k plus proches voisins (RI et catégorisation)
E
Algorithmes pour le Traitement de Données
Eric Gaussier, Olivier Aycard
Université J. Fourier/Grenoble 1
UFR-IM2 AG
Informatique, Mathématiques et Mathématiques Appliquées de Grenoble
[email protected], [email protected]
Eric Gaussier, Olivier Aycard
Algorithmes pour le Traitement de Données
1
Introduction
Indexation, Représentation Vectorielle
L’algorithme des k plus proches voisins (RI et catégorisation)
E
Table des matières
1
Introduction
2
Indexation, Représentation Vectorielle
3
L’algorithme des k plus proches voisins (RI et
catégorisation)
4
Evaluation
5
Ouvrages de référence
Eric Gaussier, Olivier Aycard
Algorithmes pour le Traitement de Données
2
Introduction
Indexation, Représentation Vectorielle
L’algorithme des k plus proches voisins (RI et catégorisation)
E
Objectifs du cours
L’objectif de cours est d’introduire les principaux modèles et
algorithmes utilisés en Traitement des Données
Nous nous intéresserons en particulier à :
L’indexation et la représentation des documents
La recherche d’information (RI), y compris la RI sur le Web
La catégorisation et la classification (clustering)
La fouille de données
Eric Gaussier, Olivier Aycard
Algorithmes pour le Traitement de Données
3
Introduction
Indexation, Représentation Vectorielle
L’algorithme des k plus proches voisins (RI et catégorisation)
E
Domaines d’applications (1)
La recherche d’information (RI), y compris la RI sur le Web
Indexation des requêtes et des documents
Appariement entre requêtes et documents (ou entre documents)
Eric Gaussier, Olivier Aycard
Algorithmes pour le Traitement de Données
4
Introduction
Indexation, Représentation Vectorielle
L’algorithme des k plus proches voisins (RI et catégorisation)
E
Domaines d’applications (2)
La catégorisation
Binaire vs multi-classe, mono- vs multi-label
Hiérarchique ou à plat
Formalisation données étiquetées : (x (i) , y (i) ), 1 ≤ i ≤ n avec
x ∈ Rp , y ∈ Y Y = {−1; +1} ; trouver une fonction f , de Rp
dans Y qui à x associe y avec le moins d’erreurs possibles
Eric Gaussier, Olivier Aycard
Algorithmes pour le Traitement de Données
5
Introduction
Indexation, Représentation Vectorielle
L’algorithme des k plus proches voisins (RI et catégorisation)
E
Domaines d’applications (3)
La classification (clustering)
Partitionnement vs affectation souple
Hiérarchique ou à plat
Eric Gaussier, Olivier Aycard
Algorithmes pour le Traitement de Données
6
Introduction
Indexation, Représentation Vectorielle
L’algorithme des k plus proches voisins (RI et catégorisation)
E
Table des matières
1
Introduction
2
Indexation, Représentation Vectorielle
3
L’algorithme des k plus proches voisins (RI et
catégorisation)
4
Evaluation
5
Ouvrages de référence
Eric Gaussier, Olivier Aycard
Algorithmes pour le Traitement de Données
7
Introduction
Indexation, Représentation Vectorielle
L’algorithme des k plus proches voisins (RI et catégorisation)
E
Etapes de l’indexation textuelle
1
Segmentation
Découper un texte en mots :
l’information donne sens à l’esprit
l’, information, donne, sens, à, l’, esprit
soit 7 mots mais seulement 6 types ; nécessité d’un dictionnaire
(au moins léger) pour certains mots ou expressions
2
Filtrage par un anti-dictionnaire des mots vides
3
Normalisation
De la casse, des formes fléchies, des familles lexicales
Lemmatisation, racinisation
→ Sac-de-mots : inform, don, sens, esprit
Eric Gaussier, Olivier Aycard
Algorithmes pour le Traitement de Données
8
Introduction
Indexation, Représentation Vectorielle
L’algorithme des k plus proches voisins (RI et catégorisation)
E
Représentation vectorielle des docs (1)
L’ensemble des types forme le vocabulaire d’une collection. Soit
M la taille de ce voc., et soit N le nombre de doc. dans la
collection C. On considére l’espace vectoriel à M dimensions
(RM ), dans lequel chaque axe correspond à un type
Chaque document est alors représenté par un vecteur de RM de
coordonnées :
Présence/absence ou nbre d’occurrences du type dans le doc. :
xi (di ) = tfdi
Nombre d’occurrences normalisé par la long. du doc. :
tfd
xi = PM i d
tf
i=1 i
Le tf*idf :
N
tfd
xi = PM i d log
tf
df
i
i=1
| {z }i
idfi
où dfi P
représente la fréquence documentaire du mot i :
dfi = d∈C 1{i ∈ d}
Eric Gaussier, Olivier Aycard
Algorithmes pour le Traitement de Données
9
Introduction
Indexation, Représentation Vectorielle
L’algorithme des k plus proches voisins (RI et catégorisation)
E
Représentation vectorielle des docs (2)
La représentation vectorielle adoptée permet d’avoir
directement accès aux outils mathématiques associés :
distances, similarités, réduction de dimensions, ...
Exercices
Chaque document est représenté par un tableau à M
dimensions contenant les poids (coordonnées) des termes
(types, mots) ; écrire un algorithme qui calcule le produit scalaire
entre 2 documents
Quelle est la complexité d’un algorithme qui calcule le produit
scalaire entre un document et tous les autres documents de la
collection ?
Eric Gaussier, Olivier Aycard
Algorithmes pour le Traitement de Données
10
Introduction
Indexation, Représentation Vectorielle
L’algorithme des k plus proches voisins (RI et catégorisation)
E
Une représentation creuse !
La majorité des termes de la collection n’apparaissent pas dans
un document donné ; chaque document a donc la majeure
partie de ses coordonnées nulles ; un gain d’espace peut être
obtenu en ne représentant pas ces coordonnées nulles
Exemple de représentation creuse :

int l



TabTermes int[l]
document d
TabPoids float[l]



···
(long. du doc. (types))
(indices des termes)
(poids des termes)
Reprendre l’exercice précédent avec cette représentation
Eric Gaussier, Olivier Aycard
Algorithmes pour le Traitement de Données
11
Introduction
Indexation, Représentation Vectorielle
L’algorithme des k plus proches voisins (RI et catégorisation)
E
Le fichier inverse
Il est possible d’accélérer le calcul du produit scalaire, dans le
cas de représentations creuses, en utilisant un fichier inverse,
c’est-à-dire une structure qui fournit pour chaque terme
l’ensemble des documents dans lesquels il apparaît :

 int l
TabDocs int[l]
terme i

···
(nbre de docs assoc.)
(indices des docs)
Reprendre l’exercice précédent avec cette structure
Remarque Avantageux avec toute mesure (distance, similarité)
qui ne fait pas intervenir les termes non présents dans un
document
Produit scalaire ?, cosinus ?, distance euclidienne ?
Eric Gaussier, Olivier Aycard
Algorithmes pour le Traitement de Données
12
Introduction
Indexation, Représentation Vectorielle
L’algorithme des k plus proches voisins (RI et catégorisation)
E
Construction du fichier inverse
Dans le cadre d’une collection statique, 3 étapes principales
régissent la construction du fichier inverse :
1
Extraction des paires d’identifiants (terme, doc), passe compléte
sur la collection
2
Tri des paires suivant les id. de terme, puis les id. de docs
3
Regroupement des paires pour établir, pour chaque terme, la
liste des docs
Ces étapes ne posent aucun probléme dans le cas de petites
collections oï tout se fait en mémoire
Quid des grandes collections ?
Eric Gaussier, Olivier Aycard
Algorithmes pour le Traitement de Données
13
Introduction
Indexation, Représentation Vectorielle
L’algorithme des k plus proches voisins (RI et catégorisation)
E
Cas de mémoire insuffisante
Il faut dans ce cas stocker des informations temporaires sur
disque
Trois étapes :
1
Collecte des paires TermId-DocId et écriture dans un fichier
2
Lecture par blocs de ce fichier, inversion de chaque bloc et
écriture dans une série de fichier
3
Fusion des différents fichier pour créer le fichier inversé
Algorithme associé : Blocked sort-based indexing (BSBI)
Eric Gaussier, Olivier Aycard
Algorithmes pour le Traitement de Données
14
Introduction
Indexation, Représentation Vectorielle
L’algorithme des k plus proches voisins (RI et catégorisation)
E
L’algorithme BSBI (1)
1
n←0
2
while (tous les docs n’ont pas été traités)
3
do
4
n ←n+1
5
block ← ParseBlock()
6
BSBI-Invert(block)
7
WriteBlockToDisk(block,fn )
8
MergeBlocks(f1 , ..., fn ;fmerged )
Eric Gaussier, Olivier Aycard
Algorithmes pour le Traitement de Données
15
Introduction
Indexation, Représentation Vectorielle
L’algorithme des k plus proches voisins (RI et catégorisation)
E
L’algorithme BSBI (2)
L’inversion, dans BSBI, consiste en un tri sur les identifiants de
termes (premiére clé) et les identifiants de documents
(deuxiéme clé). Le résultat est donc un fichier inverse pour le
bloc lu. Complexité en O(T log T ) oï T est le nombre de paires
terme-document (mais étapes de lecture et de fusion peuvent
être plus longues)
Exemple
t1 = "brutus", t2 = "caesar", t3 = "julius", t4 = "kill", t5 = "noble"
t1 : d1
t3 : d10
t5 : d5
Eric Gaussier, Olivier Aycard
t2 : d4
t1 : d3
t2 : d2
t2 : d1
t4 : d8
t1 : d7
Algorithmes pour le Traitement de Données
16
Introduction
Indexation, Représentation Vectorielle
L’algorithme des k plus proches voisins (RI et catégorisation)
E
Table des matières
1
Introduction
2
Indexation, Représentation Vectorielle
3
L’algorithme des k plus proches voisins (RI et
catégorisation)
4
Evaluation
5
Ouvrages de référence
Eric Gaussier, Olivier Aycard
Algorithmes pour le Traitement de Données
17
Introduction
Indexation, Représentation Vectorielle
L’algorithme des k plus proches voisins (RI et catégorisation)
E
Les k plus proches voisins (kppv) (1)
L’idée sous-jacente est de faire reposer la classification d’un
exemple sur la base de la classification des exemples proches,
ce qui permet une modélisation fine de la frontière entre
classes (parfois trop fine) - Illustration au tableau.
C’est une approche dite memory-based, ou fondée sur la
mémoire. On parle aussi de lazy learning, c’est-à-dire
d’apprentissage paresseux car il n’y a pas d’apprentissage
proprement dit : les exemples d’apprentissage sont simplement
stockés et réutilisés lors de la classification.
Eric Gaussier, Olivier Aycard
Algorithmes pour le Traitement de Données
18
Introduction
Indexation, Représentation Vectorielle
L’algorithme des k plus proches voisins (RI et catégorisation)
E
Les k plus proches voisins (kppv) (2)
Algorithme standard
Soit un objet x à classer.
1
Déterminer Nk (x), l’ensemble des k plus proches voisins de x
2
Choisir la classe de x sur la base d’un vote majoritaire dans
Nk (x)
Eric Gaussier, Olivier Aycard
Algorithmes pour le Traitement de Données
19
Introduction
Indexation, Représentation Vectorielle
L’algorithme des k plus proches voisins (RI et catégorisation)
E
Illustration
Exemple
On considère le jeu de données suivant :
No exple
1
2
3
4
5
6
7
8
valeur att. 1 (x1 )
3
4
5
6
3
4
4
6
valeur att. 2 (x2 )
3
3.8
3
3.5
4
4.2
6
5
classe
+
+
+
+
k = 3, x T = (5, 3.5)
Quelle est la classe de x ?
Eric Gaussier, Olivier Aycard
Algorithmes pour le Traitement de Données
20
Introduction
Indexation, Représentation Vectorielle
L’algorithme des k plus proches voisins (RI et catégorisation)
E
Les k plus proches voisins (kppv) (3)
Améliorations
Le vote majoritaire est parfois remplacé par un vote majoritaire
pondéré par la distance (ou similarité) entre
exemples/objets/éléments.
Il est possible d’apprendre (malgré tout) certains éléments :
Seuil sur chaque classe - on utilise Nkc (x), ensemble des voisins
de x dans la classe c et la distance (ou similarité) obtenue sur
Nkc (x)
Métrique complète (exemple avec la distance de Mahalanobis)
Eric Gaussier, Olivier Aycard
Algorithmes pour le Traitement de Données
21
Introduction
Indexation, Représentation Vectorielle
L’algorithme des k plus proches voisins (RI et catégorisation)
E
Les k plus proches voisins (kppv) (4)
Implantation dans le cas de matrices creuses
Utilisation du fichier (ou de la table) inverse
Eric Gaussier, Olivier Aycard
Algorithmes pour le Traitement de Données
22
Introduction
Indexation, Représentation Vectorielle
L’algorithme des k plus proches voisins (RI et catégorisation)
E
Les k plus proches voisins (kppv) (5)
La malédiction des grandes dimensions (Curse of
dimensionality)
On suppose que l’on dispose uniformément des points dans un
hypercube de côté 1 d’un espace vectoriel de dimension p de
façon à ce que, pour chaque point, il existe un voisin situé à
une distance de 10−1 .
Combien faut-il de points pour réaliser cela dans un esapce
vectoriel de dimension 1, 2, p ?
Eric Gaussier, Olivier Aycard
Algorithmes pour le Traitement de Données
23
Introduction
Indexation, Représentation Vectorielle
L’algorithme des k plus proches voisins (RI et catégorisation)
E
Les k plus proches voisins (kppv) (6)
La malédiction des grandes dimensions (Curse of
dimensionality)
De manière générale, dans un espace vectoriel de grande
dimension, la distance entre un point donné x et son point le
plus proche dans un ensemble d’apprentissage est comparable
(proche) de celle entre x et son point le plus éloigné dans
l’ensemble d’apprentissage (malédiction des grandes
dimensions).
En pratique, il n’est pas certain que nous soyons frappé par
cette malédiction ! Les techniques de réduction de dimension et
de sélection d’attributs permettent de s’en affranchir.
Eric Gaussier, Olivier Aycard
Algorithmes pour le Traitement de Données
24
Introduction
Indexation, Représentation Vectorielle
L’algorithme des k plus proches voisins (RI et catégorisation)
E
Table des matières
1
Introduction
2
Indexation, Représentation Vectorielle
3
L’algorithme des k plus proches voisins (RI et
catégorisation)
4
Evaluation
5
Ouvrages de référence
Eric Gaussier, Olivier Aycard
Algorithmes pour le Traitement de Données
25
Introduction
Indexation, Représentation Vectorielle
L’algorithme des k plus proches voisins (RI et catégorisation)
E
Précision, rappel, F-mesure
Eric Gaussier, Olivier Aycard
Algorithmes pour le Traitement de Données
26
Introduction
Indexation, Représentation Vectorielle
L’algorithme des k plus proches voisins (RI et catégorisation)
E
Ensemble d’apprentissage, de validation et
de tests
Eric Gaussier, Olivier Aycard
Algorithmes pour le Traitement de Données
27
Introduction
Indexation, Représentation Vectorielle
L’algorithme des k plus proches voisins (RI et catégorisation)
E
Validation croisée
Eric Gaussier, Olivier Aycard
Algorithmes pour le Traitement de Données
28
Introduction
Indexation, Représentation Vectorielle
L’algorithme des k plus proches voisins (RI et catégorisation)
E
Table des matières
1
Introduction
2
Indexation, Représentation Vectorielle
3
L’algorithme des k plus proches voisins (RI et
catégorisation)
4
Evaluation
5
Ouvrages de référence
Eric Gaussier, Olivier Aycard
Algorithmes pour le Traitement de Données
29
Introduction
Indexation, Représentation Vectorielle
L’algorithme des k plus proches voisins (RI et catégorisation)
E
Ouvrages de référence
Recherche d’information : Applications, modèles et algorithmes M.-R. Amini, E. Gaussier - Eyrolles, 2013
Introduction to Information Retrieval - C. Manning, P. Raghavan,
H. Schütze - Cambridge Univ. Press, 2008
Eric Gaussier, Olivier Aycard
Algorithmes pour le Traitement de Données
30