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