Notre but principal dans ce stage est de développer une mesure de co-similarité en se basant sur des marches aléatoires d’un graphe biparti pour classifier des données textuelles.. 1.4
Trang 1Mémoire de fin d’études
Option Systèmes Intelligents & Multimédia
Sujet : Définissions de co-similarité,
à partir des marches aléatoires d’un graphe biparti
Trang 2"Petit à petit, l’oiseau fait son nid"
Dic Académie de 1835
Trang 3TABLE DES MATIÈRES
REMERCIEMENT IV LISTE DES FIGURES V LISTE DES TABLEAUX VI RÉSUMÉ VII ABSTRACT VIII
CHAPITRE I – INTRODUCTION 1
1.1 Problématique et motivation 1
1.2 Méthode de travail 3
1.3 Environnement de travail 3
1.4 Plan de ce mémoire 4
CHAPITRE II – ÉTAT DE L’ART 5
2.1 Représentation des données 5
2.1.1 Représentation par une matrice des co-occurrences 5
2.1.2 Représentation par un graphe biparti 6
2.2 Classification ascendante hiérarchique (CAH) 7
2.3 Évaluation 10
2.3.1 Matrice de confusion 10
2.3.2 Problème d’affectation et l’algorithme Hongrois 10
2.4 Notions de base du graphe 12
2.4.1 Définition de graphe 12
2.4.2 Graphe biparti 13
2.5 Marches aléatoires et Commute-Time Distance d’un graph 13
2.5.1 Matrice des degrés 14
2.5.2 Matrice Laplacienne 14
2.5.3 Marches aléatoires 16
2.5.4 Commute-Time Distance 17
2.6 Méthodes de co-similarité existantes 19
2.6.1 L’algorithme χ-Sim, 2008 19
2.6.2 La mesure SNOS, 2004 22
2.6.3 L’algorithme SIMRANK, 2001 23
2.6.4 L’analyse sémantique latente (LSA), 1990 24
2.6.5 Le noyau du temps d’aller-retour, 2007 25
CHAPITRE III – CO – SIMILARITE À PARTIR DES MARCHES ALÉATOIRES D’UN GRAPHE BIPARTI 26
3.1 Première approche : marches aléatoires d’un graphe biparti 26
3.2 Deuxième approche : nouvelle normalisation pour χ-Sim de base 29
3.3 Troisième approche : marches aléatoires et nouvelle normalisation 30
3.4 Quatrième approche : noyau du temps d’aller-retour d’un graphe 31
CHAPITRE IV - EXPÉRIMENTATIONS 33
Trang 44.1 Préparation des données 33
4.2 Environnement d’implémentation 34
4.3 Implémentation 34
4.4 Différence entre MATLAB et R 38
4.5 Résultat 41
4.6 Discussion 42
CHAPITRE V – CONCLUSION ET PERSPECTIVE 50
5.1 Conclusion 50
5.2 Perspective 50
BIBLIOGRAPHIE 51
Trang 5REMERCIEMENT
Je tiens à remercier tout particulièrement M Thomas BURGER, mon
superviseur de stage au laboratoire EDyP au CEA de Grenoble, et M Gilles BISSON,
mon co-superviseur de stage au laboratoire LIG Ils ont su m’orienter dans mon
travail dans les bonnes directions tout en me laissant une large autonomie Je les
remercie également pour leur gros travail pour corriger ce rapport de stage
Mes remerciements s’adressent également à M Syed Fawad Hussain qui m’a
envoyé son code MATLAB de sa thèse, et M Clément Grimal qui a extrait les jeux de
données que j’ai utilisé pour tester mon algorithme en ce stage Mon travail bénéficie
aussi ses travaux de thèse de la mesure co-similarité pour classifier des données
Je tiens à remercier également tous les membres du laboratoire EDyP qui
m’ont accueilli et ont créé un environnement idéal dans lequel j’ai travaillé pendant
cinq mois et demi de stage
Je voudrais aussi adresser mes remerciements à tous les professeurs de l’IFI
qui m’ont donné des connaissances et des expériences efficaces pendant ma scolarité à
l’IFI
Merci également à tous ceux que j’oublie mais qui d’une manière ou d’autre
manière m’ont permis de bien terminer mon stage
DAO Van-Sang
Grenoble, France, Octobre 2013
Trang 6LISTE DES FIGURES
Figure 1: Le but de la classification des données 1
Figure 2: Le processus de classification complet 2
Figure 3: Comparaison des mesures classiques de similarité avec l’approche de χ-Sim 2
Figure 4: Représentation des données par graphe biparti (sans poids) 7
Figure 5: Dendrogramme s’affiche des clusters différents de 5 documents 9
Figure 6: Le problème d’affectation 10
Figure 7 : La matrice de confusion de m5_8 de NG20-SMI 11
Figure 8 : La solution de problème d’affectation (le cỏt maximal) 11
Figure 9: Un graphe simple, non-orienté de 5 sommets 12
Figure 10: Marches aléatoires d'un graphe 17
Figure 11: Schéma de l'algorithme Χ-SIM de base (2008) 21
Figure 12: Illustration de la décomposition en valeurs singulières pour l’analyse sémantique latente 24 Figure 13: Illustration de co-occurrences d’ordres supérieurs dans un corpus simple, représenté sous la forme d’un graphe biparti 26
Figure 14: Schéma de la première appoche 29
Figure 15: Schéma de la deuxième approche 30
Figure 16: Schéma de la troisième approche 31
Figure 17: Schéma de la quatrième approche 32
Figure 18: Diagramme des résultats de M10 avec χ-Sim 2008 et la première approche 43
Figure 19: Diagramme des résultats de NG2 avec χ-Sim 2008 et la première approche 43
Figure 20: Diagramme des résultats de X-SIM 2008, 1eme approche et 2eme approche 44
Figure 21: Diagramme des résultats M2 de X-SIM 2008, XSIM 2010, 1eme approche et 2eme approche 45
Figure 22: Diagramme des résultats de M5 de X-SIM 2008, XSIM 2010, 1eme approche et 2eme approche 45
Figure 23: Diagramme des résultats de M10 de X-SIM 2008, 1eme approche et 2eme approche 46
Figure 24: Diagramme des résultats de NG1 de X-SIM 2008, XSIM 2010, 1eme approche et 2eme approche 46
Figure 25: Diagramme des résultats de NG2 de X-SIM 2008, XSIM 2010, 1eme approche et 2eme approche 47
Figure 26: Diagramme des résultats de NG3 de X-SIM 2008, XSIM 2010, 1eme approche et 2eme approche 47
Figure 27: Comparaison les résultats de la troisième approche et la deuxième approche 48
Figure 28: Comparaison les résultats de la deuxième approche et la quatrième approche 49
Figure 29: Comparaison les résultats de l'algorithme X-SIM 2010 et la quatrième approche 49
Trang 7LISTE DES TABLEAUX
Tableau 1: Un exemple de données à classifier 6
Tableau 2: Un exemple de représentation par matrice 6
Tableau 3: La matrice de confusion 10
Tableau 4: Matrice d'adjacences 13
Tableau 5: Matrice des degrés du graphe 14
Tableau 6: Matrice Laplacienne 16
Tableau 7: Matrice Laplacienne normalisée 16
Tableau 8: Matrice Pseudo-inverse de Moore-Penrose 18
Tableau 9: Matrice Commute-Temps Distance du graphe 19
Tableau 10 : Les noms des groupes de la base de données 20Newsgroup 33
Tableau 11: Les jeux de données extraites de la collection 20Newsgroups 33
Tableau 12: Liste des packages R utilisés 34
Tableau 13: Matrice SR en MATLAB après la boucle de l'échantillon m5_1 39
Tableau 14: Matrice SR en R après la boucle de l'échantillon m5_1 39
Tableau 15: Résultats dans l'article publié en 2010 par Gilles et al 41
Tableau 16: Résultats avec la base de données NG20-SMI 42
Tableau 17: Résultats avec la base de données NG20-PAM 42
Trang 8RÉSUMÉ
La classification de données (apprentissage non-supervisé) a pour but de
regrouper un ensemble d'observations sous la forme de classes homogènes et contrastées Les notions de distances et de similarités sont souvent utilisées dans le domaine d’apprentissage automatique, en particulier des méthodes de classification
La plupart des mesures classiques ne sont pas adaptées pour les bases de données réelles En effet, lorsque l’on applique ces méthodes à des données réelles, la grande taille de ces données et leur aspect creux rendent le plus souvent ces mesures inappropriées C’est en partie afin de mieux prendre en compte ces propriétés des
données réelles, que des approches de co-classification ont été développées Ces
approches classifient simultanément les attributs d’objets décrits par les données, permettant d’obtenir de bonnes performances, même lorsque celles-ci sont très creuses Récemment, quelques méthodes co-classification ont étés inventées par des chercheurs dans le monde Notre but principal dans ce stage est de développer une
mesure de co-similarité en se basant sur des marches aléatoires d’un graphe biparti
pour classifier des données textuelles
Mots-Clés: Co-similarité, marches aléatoires, graphe biparti, co-classification, co-
clustering, apprentissage automatique, fouille de texte
Trang 9ABSTRACT
Clustering is the unsupervised classification of patterns (observations, data items, or feature vectors) into groups in the homogeneous form and contrary classes The concepts of distance and similarity are often used in the machine for learning, especially in classification methods Most of conventional measures are not suitable for real databases Indeed, when these methods are applied to real data, the large size
of these data and their hollow appearance often make these inappropriate actions This
is partly in order to better take into account the properties of real data, as co-clustering
approaches have been developed These approaches simultaneously classify attributes
of objects described by the data, to obtain good performance, even when there are hollow Recently, some methods have summers co- classification invented by
researchers in the world Our main goal in this internship is to develop a measure of co -similarity based on a random walk of a bipartite graph to classify the data textual
Keyword: random walk, bipartite graph, co-clustering, co-similarity, machine
learning, text mining
Trang 10les similarités Cosinus1, les distances Euclidiennes, les distances Minkowski2, etc De telles mesures de similarité sont fondées sur le nombre de mots qui sont partagés
entre les deux documents Ici, la similarité dépend beaucoup des mots communs entre
des documents Enfin, on va utiliser des algorithmes dans le domaine d’apprentissage automatique pour regrouper des documents On peut citer quelques algorithmes
traditionnels : K-Mean3, Clustering Ascendante Hiérarchique – CAH (voir Sec 2.2) Ces étapes peuvent être illustrées dans la figure suivante :
Figure 1: Le but de la classification des données
Les étapes d’une classification sont comme les suivantes :
L’étape (1) consiste à pré-traiter les données brutes, afin de les mettre sous une
forme (matrice, graphe, etc.) Dans la tâche de classification de documents, il s’agira
de créer la matrice de co-occurrences avec les mots qui les composent
Trang 11L’étape (2) est le calcul des similarités ou de distances entre les objets que l’on
cherche à classifier Il existe d’ailleurs différentes fonctions permettant de transformer une similarité en distance et inversement Classiquement, on peut représenter ces valeurs dans une matrice carrée et symétrique
L’étape (3) consiste à créer les classes d’objets à partir de leurs similarités
L’étape (4) consiste alors à comparer les classes prédites aux classes réelles,
grâce à des mesures d’évaluation objectives On peut considérer cette étape comme la méthode d’évaluation
Figure 2: Le processus de classification complet
Comme nous avons mentionné ci-dessus, la méthode de classification classique, les notions de distances et de similarités sont souvent utilisées dans le domaine d’apprentissage automatique Mais, la plupart des mesures classiques ne sont pas adaptées pour les bases de données réelles En effet, lorsque l’on applique ces méthodes à des données réelles, la grande taille de ces données et leur aspect creux rendent le plus souvent ces mesures inappropriées C’est en partie afin de mieux prendre en compte ces propriétés des données réelles, que des approches de co-classification ont été développées
La figure ci-dessous illustre la différence entre la mesure de similarité classique
et la mesure de co-similarité χ-Sim (voir Sec 2.6.1)
Figure 3: Comparaison des mesures classiques de similarité avec l’approche de χ-Sim
(Réutilisation avec permission de Clément[1] )
Pour la notion de co-classification, on ne fait pas exactement comme la méthode
de classification classique Ici, l’idée fondamentale est deux documents n’ont pas nécessairement besoin d’avoir des mots en communs, mais peut-être ils ont des mots
Trang 12similaires Autrement dit, l’idée est donc de ne pas seulement prendre en compte les
mots communs, mais également toutes les paires de mots similaires qui y apparaissent Respectivement, deux mots sont similaires s’ils apparaissent dans des documents similaires On remarque immédiatement la dualité entre les documents et les mots, et
la symétrie dans leur relation Le problème qui se dégage immédiatement de cette idée
de départ est que les similarités entre documents dépendent des similarités entre mots,
et vice versa χ-Sim est une approche de co-similarité comme cela Il est proposé par Gilles BISSON et al [2]
Ce stage s'appuie sur cette idée de base de χ-Sim, mais ici, on va développer d’une autre manière, en se basant le théorique graphe Plus précisément, ce sont des marches aléatoires d’un graphe biparti En fait, on peut complètement représenter la relation entre des documents et des mots par un graphe biparti Pour l’instant, des chercheurs ont développé leurs algorithmes en se basant sur des marches aléatoires
pour classifier des données (clustering), on peut citer des articles [3] [4] [5] [6]
Quelques auteurs ont utilisé des marches aléatoires dans le domaine de segmentation d’images [7] Des marches aléatoires sont le cœur de la classification de spectre très
connu [8] (de l’anglais, spectral clustering), particulièrement utilisées dans des articles
de l’auteur Luh Yen et al [9] [10] [11] [12] [13] [14] Dans ce stage, on va utiliser des marches aléatoires (voir Sec 2.5.3) pour définir co-similarité
1.2 Méthode de travail
En 2008, Gilles et son étudiant a développé une mesure de co-similarité pour classifier des données Leur méthode donne le bon résultat avec les jeux de données de test Cette méthode s’appelle χ-Sim [2] Ensuite, ils ont créé une nouvelle version de l’algorithme χ-Sim en 2010 Au début, nous faison une bibliographie C’est-à-dire qu’on étudie des méthodes de co-similarité présentées par des chercheurs du monde Nous nous concentrons sur la mesure de co-similarité χ-Sim publiée par Gilles et al Ensuite, nous étudions des notions de base du graphe, surtout des marches aléatoires,
le noyau du temps d’aller-retour (de l’anglais, Commute – Time Kernel) (voir Sec 2.6.5) du graphe
Ainsi, les travaux concrets à réaliser dans le cadre du stage sont les suivants :
o D’implémenter des solutions proposées en langage R ;
o De tester avec des jeux de données réels
1.3 Environnement de travail
Trang 13Le stage est réalisé au laboratoire Étude de la Dynamique des Protéomes
(EDyP)4 L'équipe EDyP développe un ensemble d’approches protéomiques dans le cadre de projets biologiques de grande envergure Il a consolidé une expertise dans le domaine de l’analyse protéomique d’échantillons biologiques complexes et de quantification des protéines par spectrométrie de masse Ce savoir-faire est mis en œuvre pour répondre à des problématiques variées en biologie cellulaire, biologie végétale et dans le domaine biomédical
L'équipe EDyP fait partie du Laboratoire de Biologie à grande Echelle (BGE), au sein de l'Institut de la vie Division des sciences Technologies / Vie (iRTSV / DSV) de l'établissement français Commissariat à l'Energie Atomique et aux énergies alternatives (CEA) Le laboratoire est situé dans la soi-disant capitale des Alpes françaises, Grenoble
1.4 Plan de ce mémoire
• Chapitre II - Etat de l’art : ce chapitre présentera des façons pour représenter
des jeux de données aux approches d’apprentissage automatiques, les méthodes
de classifications classiques, des notions de base concernant le graphe, par exemple : des marches aléatoires, Commute-Time Distance, la matrice de Laplacienne d’un graphe Dans cette partie, nous allons décrire la méthode d’évaluation, ainsi que des méthodes qui concernent la co-classification
• Chapitre III – Co-similarité à partir des marches aléatoires d’un graphe :
ce chapitre décrira les jeux de données que l’on va utiliser dans ce stage pour tester nos algorithmes De plus, nous allons proposons 4 approches co-similarité
qui concernent des connaissances présentées dans le chapitre dernier
• Chapitre IV - Expérimentations : ce chapitre exposera l’environnement
d’implémentation, la méthode d’implémentation nos algorithmes, ainsi que les résultats et des discussions sur ces résultats
• Chapitre V - Conclusion et Perspective :Ce chapitre donnera des conclusions sur les travaux ayant été réalisés et des perspectives de ces travaux dans l’avenir
4 Le site web du laboratoire EDyP au CEA de Grenoble : http://edyp.fr/
Trang 14
CHAPITRE II – ÉTAT DE L’ART
Dans ce chapitre, nous allons parler de la méthode de représentation des données dans le domaine d’apprentissage automatique Ensuite, la classification ascendante hiérarchique – CAH (voir Sec 2.2) sera décrite C’est l’algorithme que l’on
va utiliser pour classifier des données de test Nous présenterons la méthode d’évaluation, des notions de base du graphe concernant des marches aléatoires, le noyau du temps d’aller-retour d’un graphe Enfin, quelques méthodes de co-classification existantes qui se basent des co-similarités seront présentées
2.1 Représentation des données
Les données que nous considérerons dans l’ensemble de ce stage décrivent des relations entre deux types d’objets Ces types d’objets pourront représenter aussi bien des documents, des mots Dans ce stage, on s’intéresse seulement à des jeux de données de documents textuels Chaque document comporte plusieurs mots En fait, il existe différentes façons de modéliser de telles données, mais, ici, nous allons voir quelles sont les deux principales dans les sections suivantes : représentation des données par une matrice et par un graphe biparti En ce stage, on s’intéressera à ces deux représentations
2.1.1 Représentation par une matrice des co-occurrences
Sans perte de généralité, nous supposons que l’on a N documents Xi (i : 1-N), et chaque documents comporte mi mots Nous introduisons la notation suivante : wij est le
nombre d’occurrences du mot i (mi)dans le document j (Xj) A partir de cela, on peut créer une matrice des co-occurrences M
citées : Supervised Mutual Information preprocessing (SMI)[15] et Partitioning Around Medoids preprocessing (PAM)[16] La pondération TF-IDF (de l’anglais, Term Frequency - Inverse Document Frequency)[17] a aussi été utilisée dans la
littérature Un exemple5 de représentation des données par une matrice, en utilisant le nombre d’occurrences
5 Cet exemple est extrait à partir de l’article[18] : "Learning Similarity Measures in Non-orthogonal Space" , par
Ning Liu et al - 2004
Trang 15
Tableau 1: Un exemple de données à classifier
Tableau 2: Un exemple de représentation par matrice
Dans ce stage, nous utiliserons le deuxième modèle
2.1.2 Représentation par un graphe biparti
Dans ce modèle de représentation, on parle de la représentation des données textuelles par un graphe Chaque instance d’objets est représentée par un sommet d’un graphe Dans notre cas, le graphe sera plus précisément biparti Un ensemble des sommets de ce graphe est celui des documents, l’autre est celui des mots Les liens entre un mot et les documents sont connectés si ce mot apparait dans les documents Si
le mot i n’apparait pas dans le document j, alors, il n’y a pas d’arête entre le sommet i
et le sommet j Les poids des arêtes sont le nombre d’occurrences des mots dans les
documents
Trang 16Figure 4: Représentation des données par graphe biparti (sans poids)
2.2 Classification ascendante hiérarchique (CAH)
En fait, il existe plusieurs techniques de classification En ce stage, on
s’intéressera juste à la classification ascendante hiérarchique (CAH) L'objectif de
cette méthode (CAH) est de classer des individus en groupes ayant un comportement similaire sur un ensemble de variables On commence par agréger les 2 individus les plus proches Puis, on continue en agrégeant les éléments (individus ou groupes d'individus) les plus semblables Ces agrégations sont effectuées 2 à 2 L'algorithme continue jusqu'à ce que l'ensemble des individus se retrouve dans une unique classe Les individus sont donc regroupés de façon hiérarchique C’est parce que cette technique part du particulier pour remonter au général qu’elle est
dite «ascendante» Chaque classe d'une partition est incluse dans une classe de la
partition suivante Le principal problème de cette méthode hiérarchique consiste à définir le bon critère de regroupement de deux classes, c'est-à-dire trouver une bonne méthode de calcul des distances entre classes
Algorithme CAH:
• Initialisation : les classes initiales sont les n individus Calculer la matrice de
leurs distances deux à deux
• Répérer les deux étapes suivantes jusqu’à l’agrégation en une seule classe :
Regrouper les deux éléments (classes) les plus proches au sens de la distance entre groupes choisie
Mettre à jour le tableau de distances en remplaçant les deux classes regroupées par la nouvelle et en calculant sa distance avec chacune des autres classes
• Nécessité de définir une distance entre groupes d’individus (appelé stratégie d’agrégation)
• Nécessite de choisir le nombre de classes à retenir
Trang 17Dans la méthode CAH, pour calculer les distances entre deux individus, nous
pouvons utiliser la Distance Euclidienne ; la Distance de Manhattan; la Distance de Minkowski ; la Distance de Tchebychev6 Ensuite, pour choisir un indice d’agrégation
(Autrement dit, c’est une "distance" entre classes A et B), les choix proposés sont les
suivants (des photographies de cette section sont pris du site http://bis.net.vn/forums/t/571.aspx) :
- Single linkage (distance minimum): la distance minimum entre toutes les
distances entres les points de A et ceux de B
- Complète linkage (distance maximum) Dans cette méthode, les distances entre
classes sont déterminées par la plus grande distance existant entre deux objets
de classes différentes (c'est-à-dire les "voisins les plus éloignés")
- Moyenne non pondérée des groupes associés Ici, la distance entre deux classes
est calculée comme la moyenne des distances entre tous les objets pris dans l'une et l'autre des deux classes différentes
- Centrọde : Le centrọde d'une classe est le point moyen d'un espace
multidimensionnel, défini par les dimensions Dans cette méthode, la distance entre deux classes est déterminée par la distance entre les centrọdes respectifs
6 Le site : http://fr.wikipedia.org/wiki/Distance_(math%C3%A9matiques)
Trang 18
- Médiane : Cette méthode est identique à la précédente, à une différence près ;
une pondération est introduite dans les calculs afin de prendre en compte les tailles des classes (c'est-à-dire le nombre d'objets contenu dans chacune)
- Méthode de Ward [19] Cette méthode tente de minimiser la somme des carrés
de tous les couples (hypothétiques) de classes pouvant être formés à chaque étape Les indices d'agrégation sont recalculés à chaque étape à l'aide de la règle suivante : si une classe M est obtenue en regroupant les classes K et L, sa distance à la classe J est donnée par :
Dendrogramme : représentation graphique sous forme d’arbre binaire,
d’agrégations successives jusqu’à réunion en une seule classe de tous les individus La hauteur d’une branche est proportionnelle à la distance entre les deux objets regroupés
Figure 5: Dendrogramme s’affiche des clusters différents de 5 documents
(photographie de F.S.Housain[20])
La classification ascendante hiérarchique (CAH) est maintenant très connue et est utilisée dans plusieurs domaines pour classifier des données Cette méthode a été implémentée dans la plupart logiciels de fouille de données, comme R7, MATLAB8, Statistica9 , WEKA10, SPSS11 La classification hiérarchique est décrite complètement
Trang 19dans le livre « Algorithms for clustering data » [21], écrit en 1988 par Anil K Jain et
2.3.1 Matrice de confusion
La matrice de confusion est un outil servant à mesurer la qualité d’un système
de classification dans l’apprentissage supervisé (pas apprentissage non-supervisé)
Dans ces systèmes, les classes ont été bien étiquetées Généralement, soit K le nombre
de classes notées l1 lK On note la matrice de confusion C de taille KxK pour une
classification des objets en K classes Les lignes de C représentent les classes réelles et
les colonnes de C représentent les classes prédites Le terme c ij de C est égal au nombre d’objets appartenant à la classe l i et ayant été classifiés à la classe lj Sur la diagonale, on
trouve donc les valeurs bien classées, hors de la diagonale les éléments mal classés
Tableau 3: La matrice de confusion
2.3.2 Problème d’affectation et l’algorithme Hongrois
Tout d’abord, le problème d’affectation (de l’anglais, the assignment problem) est celui de déterminer un couplage maximum (de l’anglais, a maximum weight matching) dans un graphe biparti ayant des poids
Figure 6: Le problème d’affectation
Nous pouvons mentionner un exemple de ce problème est comme le suivant :
Trang 20on a n employés et n tâches Chaque employé ne peut être affecté qu’à une seule tâche
et chaque couple (tâche, employé), qui a un cỏt Le but est de minimiser le cỏt total d’exécution des tâches L’algorithme Hongrois[22] (de l’anglais, The Hungarian method) est un algorithme spécialisé permettant de résoudre le problème d’affectation
Normalement, l’algorithme Hongrois sert à déterminer le cỏt minimal, mais on peut transférer un peu pour faciliter trouver le cỏt maximal Pour le problème de maximisation, on doit ajouter une étape initiale C'est de choisir le plus grand nombre
et trouver l’écart de tous les éléments restants par rapport à ce nombre pour trouver la matrice des pénalités Le problème initial est alors équivalent au problème de minimiser les pénalités
Dans un contexte d’apprentissage non-supervisé (autrement dit, c’est clustering
C’est le cas dans ce sujet de stage), les classes que l’on obtient ne sont pas étiquetées, c’est à dire que lors de la comparaison avec les classes attendues des objets, on ne
connaỵt pas le couplage entre classes prédites et classes réelles On ne peut pas garantir que la classe prédite i correspond au classe réel li Donc, on cherche une association : chaque classe prédite à une certaine « meilleure» classe réelle Ce problème est alors
équivalent au problème d’affectation de maximisation, et il peut être résolu par l’algorithme Hongrois [22] Le but est maintenant de trouver le cỏt maximal Par exemple, on a une matrice de cỏt comme le suivant :
Figure 7 : La matrice de confusion de m5_8 de NG20-SMI 12
Nous pouvons considérer cette matrice comme une matrice de cỏt Nous allons déterminer le cỏt maximal Le résultat est comme suit :
Figure 8 : La solution de problème d’affectation (le cỏt maximal)
Maintenant, pour calculer l’exactitude de l’algorithme clustering (de l’anglais,
accuracy), nous prenons la somme des valeurs dans les positions ayant le numéro 1
(Elles sont encadrées par un rectangle rouge), qui correspondent aux valeurs dans les mêmes places dans la matrice de confusion au-dessus Nous divisons cette somme sur
le nombre de tous éléments au début Si le résultat de cette division est égal à 1,
c’est-12 Pour obtenir ce résultat, on exécute le code R de X-SIM en 2008, avec le nombre d’itérations est de 3 Le jeu
de données m5_8.txt de NG20-SMI, qui peut être téléchargé sur le site de Clément lig.imag.fr/grimal/data.html
Trang 21
à-dire que l’algorithme a pu faire clustering 100% la base de données Nous récupérons souvent les résultats qui sont moins d’un Dans cet exemple, la somme est
de 479 Tous les éléments au début sont de 500 (c’est le nombre des éléments pour chaque exemplaire de la base de données M5 de NG20 - SMI) Donc, nous avons :
accuracym5_8= 479/500 = 0.958
Cette valeur qui est calculée de manière au-dessus, est considérée comme la précision micro-moyenne de l’algorithme de clustering Dans le logiciel R, nous
pouvons utiliser la fonction lp.assign(), avec la paramètre direction = « max », dans le package lpSolve13
# http://hosho.ees.hokudai.ac.jp/~kubo/Rdoc/library/lpSolve/html/lp.assign.html
#On peut voir la solution en utilisant la commande: lp.assign #(matrix_confusion,
direction = "max" )$solution
max[z] = lp.assign(matrix_confusion, direction="max")$objval;
y, et que y est un successeur ou voisin de x (et vice versa) On dit qu’un graphe est
sans boucle si A ne contient pas d’arête de la forme (x, x), c’est-à-dire joignant un
sommet à lui-même En dessous, c’est un graphe de 5 sommets : P, Q, S, R et T
Figure 9: Un graphe simple, non-orienté de 5 sommets
Un graphe ne possède pas de boucle ni d'arêtes parallèles (deux arêtes distinctes
joignant la même paire de sommets) est appelée graphe simple ou 1-graphe Dans un
graphe, on peut assigner un chiffre non-négatif pour chaque arête du graphe Il
13 Le site : http://cran.r-project.org/web/packages/lpSolve/index.html
Trang 22
s'appelle le poids de l’arête Ce graphe est appelé le graphe du poids (de l’anglais, weighted graph), au contraire, on l’appelle le graphe sans poids
Remarque 1 : Dans ce stage, nous ne considérons que des graphes simples :
non-orientés, sans boucle et sans arêtes parallèles Donc, toutes les définitions en bas sont pour les graphes ont ces propriétés
Matrice d’adjacence d’un graphe : il existe plusieurs méthodes pour
représenter d'un graphe, une entre eux est la matrice d'adjacence
Définition : Considérons un graphe G = (X; A) comportant n sommets La
matrice d'adjacence de G est égale à la matrice U = (uij) de dimension n x n telle que :
Pour les graphes du poids, les valeurs des cases de la matrice d’adjacences sont
des poids de chaque arête correspondante La matrice d’adjacence du graphe dans la Fig 9 est :
Tableau 4: Matrice d'adjacences
Remarque 2 : Dans ce stage, nous aurons une matrice co-occurrences
documents-mots A partir de cette matrice, on va créer une matrice carrées qui va considérer comme une matrice d’adjacences d’un graphe (biparti) du poids
2.4.2 Graphe biparti
Un graphe est biparti si l'ensemble de ses sommets peut être partitionné en deux
classes X1 et X2 de sorte que deux sommets de la même classe ne soient jamais voisins
Un graphe biparti permet notamment de représenter une relation binaire C'est
le cas dans ce stage, quand on classifie des données textuelles qui comportent des mots
La matrice d’adjacence A d’un graphe biparti de r et s sommets est sous forme :
Où: B est la matrice de r x s, et 0 représente la matrice zéro
2.5 Marches aléatoires et Commute-Time Distance d’un graph
Dans cette partie, nous allons présenter des marches aléatoires (de l’anglais,
random walk) et Commute-Time Distance d’un graphe
Trang 232.5.1 Matrice des degrés
En théorie des graphes, la matrice des degrés est une matrice qui contient des informations sur le degré de chaque sommet d'un graphe La matrice des degrés est une matrice diagonale Elle est utilisée en conjonction avec la matrice d'adjacence pour construire la matrice Laplacienne d'un graphe
Définition14 : Étant donné un graphe contenant sommets, la matrice des degrés de est la matrice carrée définie par :
Pour le graphe du poids, on va remplacer le degré par poids
Graphe de la Fig 9 Matrice des degrés
Tableau 5: Matrice des degrés du graphe
2.5.2 Matrice Laplacienne
Définition (selon Wikipédia)15: La matrice Laplacienne d'un graphe G non orienté et non réflexif est définie par : ó est la matrice des degrés de G et la matrice d'adjacence de G Plus formellement, soit un graphe non orienté et non réflexif G = (S, A) à n sommets, pondéré par la fonction poids qui à
toute arête associe son poids
La matrice Laplacienne de G vérifie :
La matrice Laplacienne est considérée comme la matrice Kirchhoff 16 Dans le
cas du graphe simple et sans poids G On peut définir la matrice Laplacienne en se
14 Accessible le site : http://en.wikipedia.org/wiki/Degree_matrix
15 Accessible le site : http://en.wikipedia.org/wiki/Laplacian_matrix
16 Accessible le site : http://en.wikipedia.org/wiki/Kirchhoff's_theorem
Trang 24
basant la dégrée des sommets du graphe, M = D – A, ó : M est la matrice
Laplacienne, D est la matrice des degrés, A est la matrice d’adjacences, comme suivant17 (deg(vi): le degré du sommet i):
La matrice Laplacienne d'un graphe pondéré par des poids positifs est positive
La matrice Laplacienne est utilisée pour calculer le nombre d'arbres couvrants d'un graphe L'analyse des vecteurs propres de la matrice Laplacienne du graphe dans ce que l'on appelle la méthode spectrale[23], permet de trouver une partition du graphe Cette méthode a des applications dans des domaines aussi divers que la répartition de tâches en calcul parallèle, la segmentation d'image, la résolution de systèmes linéaires,
etc Elle est aussi utilisée pour calculer la matrice Commute-Temps Distance d’un graphe Dans ce stage, on a besoin de calculer la matrice Commute-Temps Distance
d’un graphe
Matrice Laplacienne normalisée :
Soit une matrice Laplacienne, on obtient sa forme normalisée par
, ó est la matrice identité, ou on peut aussi l'obtenir directement par chacun de ses éléments :
Dans le cas du graphe du poids, on remplace des degrés par des poids des arêtes
du graphe
17 Accessible le site : http://mathworld.wolfram.com/LaplacianMatrix.html
Trang 25
Matrice d’adjacences :
Matrice des degrés :
Matrice Laplacienne :
Tableau 6: Matrice Laplacienne
La matrice Laplacienne normalisée du graphe dans la Fig 9:
Tableau 7: Matrice Laplacienne normalisée
2.5.3 Marches aléatoires
Marches aléatoires :
G = (V, E) est un graphe non-orienté sur les sommets V d'arêtes E Dans ce cas,
le degré sortant et le degré entrant sont égaux On appelle deg(u) le degré d’un sommet
u Une marches aléatoire est un déplacement aléatoire sur les sommets V de G en
suivant les arêtes E de G, tel que la probabilité de déplacement entre deux sommets u
et v d'une arête est Pr [u->v] = 1/deg(u)
Trang 26Figure 10: Marches aléatoires d'un graphe
(Photographie de Frédéric Magniez 18 )
On considère la variable aléatoire Xn prenant les valeurs des arêtes à l'étape n Les arêtes s’appellent les états de Xn La suite de variables aléatoires ( )X n est appelée
marche aléatoire sur l'ensemble des valeurs sur les arêtes Dans une marche aléatoire, l'état du processus à l'étape n + 1 ne dépend que de celui à l'état n Donc, on peut dire qu’une marche aléatoire sur un graphe G est une chaîne de Markov19 adaptée à la structure de graphe
Matrice de transition :
On considère la loi de probabilité de Xn, appelée probabilité de transition La matrice de transition d'une marche aléatoire est la matrice carrée dont le coefficient situé sur la ligne i et la colonne j est la probabilité de transition du sommet j vers le
sommet i La somme des coefficients d'une même colonne d'une matrice de transition est égale à 1 La matrice colonne des états de la marche aléatoire après n étapes est la matrice colonne dont les coefficients sont les probabilités d'arrivée en chaque sommet après n étapes On note Pn la matrice colonne des états de la marche aléatoire après n
étapes On considère une marche aléatoire de matrice de transition M (au début) et
dont la matrice colonne des états à l'étape n estP n Pour tout entier naturel n, on a :
En anglais, c’est Commute-Time Distance ou Resistance-Distance Matrix[24]
En fait, Commute-Time Distance a une interprétation électrique[25] Fondamentalement, ils sont équivalents, jusqu'à un facteur de mise à l'échelle, à la résistance effective entre les nœuds d'un réseau électrique dérivé
18 Accessible le site : http://www.liafa.jussieu.fr/~magniez/teaching/quantum-X07-6.pdf
19 Accessible le site : http://en.wikipedia.org/wiki/Markov_chain
Trang 27
Considérer des marches aléatoires sur un graphe G, chaque étape, le marcheur déplace à un sommet d’adjacences, à partir d'un sommet courant, aléatoirement avec
une probabilité de transition Le hitting time H (u, v), du sommet u au sommet v, est
calculé par le nombre d'étapes pour une marche aléatoire sur le graphe G, part du
sommet u et arrive au sommet v la première fois C'est zéro si u = v Le commute time
C (u, v) du sommet u au sommet v est défini par C (u, v) = H(u, v) + H(v, u)
Pseudo-inverse de Moore-Penrose:
Définition20: Soit A une matrice réelle On appelle la matrice Pseudo-inverse de
Moore-Penrose (de l’anglais, Moore–Penrose pseudoinverse ou Generalized inverse)
de A une matrice B vérifiant les quatre propriétés :
• ABA = A
• BAB = B
• AB est une matrice symétrique, (soit Hermitian)
• BA est une matrice symétrique (soit Hermitian)
La matrice Pseudo-inverse de Moore-Penrose d’une matrice réelle est unique
La matrice Pseudo-inverse de Moore-Penrose d'une matrice A peut se calculer en
utilisant la décomposition en valeurs singulières UDV *21 de la matrice A (U : une matrice unitaire, D : une matrice dont les coefficients diagonaux sont des réels positifs
ou nuls et tous les autres sont nuls – la matrice diagonale positive décroissante, V* : la matrice adjointe à V, matrice unitaire) La matrice Laplacienne du graphe dans la Fig
10 est comme suivante :
Tableau 8: Matrice Pseudo-inverse de Moore-Penrose
Calcul de la matrice Commute-Temps Distance :
Dans l’article [4], les auteurs ont montré que le Commute time C(u,v) peut se
calculer en se basant sur la matrice Pseudo-inverse de Moore-Penrose de la matrice Laplacienne du graphe Concrètement, si G est un graphe connexe avec l'ensemble des sommets {v1,…,vn} Alors,
C (vi, vj) = 2m (l ii++ −l jj+ 2l ij+ )
Où :
- m est le nombre des arêtes du graphe, ou, le poids du graphe
- l+ est les valeurs de la matrice Pseudo-inverse de Moore-Penrose de la matrice Laplacienne du graphe
20 Accessible le site : http://www.lsv.ens-cachan.fr/~picaro/COURS/OPTIONC/TEXTES/pseudo_inverse.pdf
21 Accessible le site : http://www.cse.unr.edu/~bebis/CS791E/Notes/SVD.pdf
Trang 28
La matrice Commute-Temps Distance du graphe dans la Fig 10 est (sans le facteur 2m):
Tableau 9: Matrice Commute-Temps Distance du graphe
2.6 Méthodes de co-similarité existantes
Dans cette partie, nous allons présenter quelques méthodes de co-classification
en se basant des co-similarités
2.6.1 L’algorithme χ-Sim, 2008
L’algorithme χ-Sim est inventé par Gilles BISSON22 et al Dans cette section, nous allons présenter sa première version en 2008[2] et sa nouvelle version en 2010[26]
Notions utilisées :
Nous considérons que la matrice M est une matrice de co-occurrences
documents-mots, et on veut calculer la matrice de similarité entre documents SR La matrice M comporte r lignes (documents) et c colonnes (mots) Chaque valeur mij caractérise la nature de la relation entre le j ème mots et le i ème document ; mi = [mi1 … mic] est la vectrice ligne correspondant au document i et m j = [m1j … mrj] est le vecteur colonne correspondant au mot j Deux matrices de similarité SR (de taille rxr) et SC (de taille cxc) représentent les matrices carrées et symétriques contenant respectivement les valeurs de similarité entre documents et entre mots, avec srij ∈ [0,1],
1 ≤ i, j ≤ r et scij ∈ [0,1], 1 ≤ i, j ≤ c Le vecteur sri = [sri1 … srir ] (respectivement scj = [scj1 … scjc] ) indique la similarité entre le document i et l’ensemble d’autres
documents (respectivement entre le mot et d’autres mots) La fonction Fs(∙ , ∙) prend en
entrée deux valeurs mij et mkl de la matrice M et retourne la similarité entre ces valeurs
avec Fs(mij , mkl) ∈ [0,1] La fonction Fs est appelée la fonction de similarité
L’algorithme de co-similarité χ-Sim:
La similarité entre deux documents mi et mj est alors calculée par une fonction
que nous notons ici Sim (m i ,m j) tel que :
22 http://membres-liglab.imag.fr/bisson/
Trang 29
Symétriquement, la similarité entre deux mots m i et m j est donnée par :
Cependant, les valeurs des éléments srij de SR et scij de SC doivent appartenir
à l’intervalle [0, 1] Alors, on va faire une normalisation comme suivante:
Autrement dit, on peut écrire sous autre forme (L’opérateur « ◦ » désigne le produit de Hadamard, défini tel que, pour C = A ◦ B, les éléments de C sont calculés ainsi : cij = aij × bij ) :
Symétriquement, la matrice SC se calcule comme suivante :
Ces deux équations SR et SC au-dessus ne sont pas indépendantes On peut utiliser une méthode itérative pour calculer SR et SC Les deux matrices de similarité sont initialisées avec la matrice identité I, soit SR(0) = Ir et SC(0) = Ic Le nombre d’itérations nécessaires pour calculer les valeurs finales de similarité est de 3 ou 4, d’après les auteurs Normalement, on utilise le nombre d’itérations est de 4 Enfin, on classifie des documents en utilisant la méthode CAH sur la matrice de similarité SR entre documents La complexité de cet algorithme est O (k.N3) ; k : le nombre d’itérations, N : la dimension de données
A partir de maintenant, on l’appelle l’algorithme χ-Sim 2008 Quand on
implémente χ-Sim en logiciel R, on peut représenter cet algorithme par un schéma comme le suivant :
Trang 30Figure 11: Schéma de l'algorithme Χ-SIM de base (2008)
Nouvelle version de l’algorithme χ-Sim:
Dans l’article publié [26], Gilles et al ont créé une nouvelle version de
l’algorithme χ-Sim Ils ont ajouté une nouvelle normalisation k et un pruning p Tout
d’abord, nous notons : , c’est-à-dire que toutes les valeurs de la
matrice M sont en puissance de k L’algorithme est comme suivant :
Etape 1 : Les deux matrices de similarité SR(0) et SC(0) sont initialisées les
matrices identités
Etape 2 : A chaque itération t, nous calculons la nouvelle matrice de similarité
SR(t) entre documents en utilisant la matrice de similarité entre mots SC(t-1) :
La matrice SR(t) est ensuite normalisée, afin que les valeurs de similarités soient
entre 0 et 1 :
De même façon, on calcule pour la matrice de similarité entre mots SC(t)
: