Découverte de ce que sont les graphes de connaissances et leurs plongements.
Présentation d'algorithmes de plongements.
Analyse et comparaison des performances des différents algorithmes.
Embedeep est un projet lancé cette année qui consiste en la réalisation de notebooks Python à objectif pédagogique sur les plongements de graphes de connaissances.
Il y a en tout trois notebooks : un qui introduit la notion de graphes de connaissances, un pour présenter TransE, un algorithme de plongement, et enfin un dernier pour comparer leurs performances.
Si le temps nous le permets, nous aimerions également réaliser deux notebooks supplémentaires, présentant respectivement DistMult et RotatE, deux algorithmes de plongement supplémentaires.
Nous souhaitons néanmoins nous concentrer en priorité l'algorithme TransE, car il fait partie des premiers à avoir été créé et a en quelque sorte ouvert la voie pour les autres.
Nous sommes sept étudiants en quatrième année au département informatique de l'INSA de Rennes. Embedeep constitue notre projet d'année et est censé nous permettre de prendre en compétence et d'apprendre à planifier un projet, à rédiger des rapports scientifiques et à améliorer notre capacité à travailler en équipe.
Chaque notebook couvre une thématique importante du projet. Leur but est pédagogique, et bien que chacun fonctionne indépendamment des autres, il est recommandé d'au moins regarder le notebook d'introduction avant de se lancer dans les algorithmes, afin d'avoir des connaissances de bases sur les concepts abordés pour pouvoir comprendre les autres notebooks.
Ce premier notebook est une introduction aux principes des graphes de connaissances ainsi que leurs propriétés. Après quelques paragraphes explicatifs, il présente le jeu de données de jouet créé pour ces TPs, composé de 171 triplets, 79 entités et 12 relations différentes. Grâce à la librairie NetworkX, l'utilisateur pourra visualiser ce graphe de connaissance dynamiquement et devra répondre à quelques questions pour vérifier qu'il comprend bien ce que représente un tel graphe, et s'il peut retrouver quelques propriétés sur ce graphe (Symétrie, Anti-symétrie, Composition, inversion). L'utilisateur pourra ensuite aborder le notebook de son choix.
Ce notebook a pour but de présenter l'algorithme de plongement TransE. Il passe par toutes les étapes de fonctionnement de l'algorithme, expliquant sa manière de représenter les entités et relations, ses fonctions de score et de perte, sa façon de générer des exemples négatifs et son algorithme global. L'utilisateur est guidé au travers de ces notions et se voit proposer différents exercices corrigés l'aidant à mieux s'approprier les différents concepts.
Ce notebook a pour objectif de comparer plusieurs algorithmes de plongement de graphes de connaissances afin d’évaluer leurs performances pour la prédiction de liens. Pour cela, on utilise le jeu de données FB15K-237, issu de Freebase. Les résultats obtenus sont ensuite évalués à l’aide de métriques comme Hits@k et meanRank afin d’analyser les différences de performance entre les modèles et de comprendre l’influence des paramètres sur les résultats.