Graph-based contributions to machine-learning
Contributions à base de graphes à l'apprentissage automatique
Résumé
A graph is a mathematical object that makes it possible to represent relationships (called edges) between entities (called nodes). Graphs have long been a focal point in a number of problems ranging from work by Euler to PageRank and shortest-path problems. In more recent times, graphs have been used for machine learning.With the advent of social networks and the world-wide web, more and more datasets can be represented using graphs. Those graphs are ever bigger, sometimes with billions of edges and billions of nodes. Designing efficient algorithms for analyzing those datasets has thus proven necessary. This thesis reviews the state of the art and introduces new algorithms for the clustering and the embedding of the nodes of massive graphs. Furthermore, in order to facilitate the handling of large graphs and to apply the techniques under study, we introduce Scikit-network, a free and open-source Python library which was developed during the thesis. Many tasks, such as the classification or the ranking of the nodes using centrality measures, can be carried out thanks to Scikit-network.We also tackle the problem of labeling data. Supervised machine learning techniques require labeled data to be trained. The quality of this labeled data has a heavy influence on the quality of the predictions of those techniques once trained. However, building this data cannot be achieved through the sole use of machines and requires human intervention. We study the data labeling problem in a graph-based setting, and we aim at describing the solutions that require as little human intervention as possible. We characterize those solutions and illustrate how they can be applied in real use-cases.
Un graphe est un objet mathématique permettant de représenter des relations entre des entités (appelées nœuds) sous forme d’arêtes. Les graphes sont depuis longtemps un objet d’étude pour différents problèmes allant d’Euler au PageRank en passant par les problèmes de plus courts chemins. Les graphes ont plus récemment trouvé des usages pour l’apprentissage automatique.Avec l’avènement des réseaux sociaux et du web, de plus en plus de données sont représentées sous forme de graphes. Ces graphes sont toujours plus gros, pouvant contenir des milliards de nœuds et arêtes. La conception d’algorithmes efficaces s’avère nécessaire pour permettre l’analyse de ces données. Cette thèse étudie l’état de l’art et propose de nouveaux algorithmes pour la recherche de communautés et le plongement de nœuds dans des données massives. Par ailleurs, pour faciliter la manipulation de grands graphes et leur appliquer les techniques étudiées, nous proposons Scikit-network, une librairie libre développée en Python dans le cadre de la thèse. De nombreuses tâches, telles que le calcul de centralités et la classification de nœuds, peuvent être accomplies à l’aide de Scikit-network.Nous nous intéressons également au problème d’annotation de données. Les techniques supervisées d’apprentissage automatique nécessitent des données annotées pour leur entrainement. La qualité de ces données influence directement la qualité des prédictions de ces techniques une fois entrainées. Cependant, obtenir ces données ne peut pas se faire uniquement à l’aide de machines et requiert une intervention humaine. Nous étudions le problème d’annotation, sous un formalisme utilisant des graphes, avec pour but de décrire les solutions qui limitent cette intervention de façon optimale. Nous caractérisons ces solutions et illustrons comment elles peuvent être appliquées.
Origine | Version validée par le jury (STAR) |
---|