Loading...
 
[Show/Hide Left Column]

GraKel

Graph Kernels library for scikit-learn


Axe :DataSence
Coordinateur : Michalis.Vazirgiannis
Equipe constituée :
  • Giannis Siglidis
  • Giannis Nikolentzos
  • Stratis Limnios
  • Christos Giatsidis
  • Konstantinos Skianis
Laboratoire d'accueil :Lix

Résumé du projet :
Les données structurées sous forme de graphiques prennent de plus en plus d'importance dans la littérature récente. Mesurer la similarité entre ces données a toujours été considéré comme une tâche difficile car elle était liée à l'isomorphisme du graphique. En conséquence, les applications d'apprentissage machine se sont concentrées sur le traitement des représentations vectorielles des données. Un champ de recherche connu sous le nom de "noyaux graphiques", tente de résoudre ce problème en équilibrant la complexité et l'expressivité. Avec des applications efficaces et réussies dans la prédiction de la toxicologie des composés à l'intérieur de la chimio-informatique, dans la mutagénicité des composés en bioinformatique pour la détection des logiciels malveillants ainsi que dans la catégorisation des textes, elle s'est révélée être une approche prometteuse. Comme ces outils n'ont pas encore été rassemblés dans une bibliothèque de programmation complète et moderne, cette tâche semble aussi importante et prometteuse à mesure qu'ils arrivent à maturité. GraKeL a été proposé comme le projet qui couvrira et créera le besoin d'utiliser les noyaux graphiques dans la recherche et les applications contemporaines d'apprentissage machine

Description technique du projet :
GraKeL est une bibliothèque compatible programmée en python. Comme scikit-learn est devenu un paquet très important pour faire de l'apprentissage machine en python, il a été conçu pour être compatible avec scikit, permettant aux noyaux d'être intégrés dans un pipeline presque abstrait pour des tâches complexes d'apprentissage machine. A l'intérieur de GraKeL il y a actuellement 15 différents noyaux graphiques et 3 frameworks (qui fonctionnent sur tous les autres noyaux). Il utilise divers outils modernes tels que Cython pour inclure du code rapide et fiable de C+++, comme toutes les bibliothèques modernes de calcul scientifique. Permettant de travailler en collaboration avec le référentiel github (voir https://github.com/ysig/GraKeL) et une licence de logiciel libre (à savoir BSD 3-clause), il inclut également une documentation sphinx générée semi-automatiquement (téléchargée sur https://ysig.github.io/GraKeL/dev/) ainsi que des outils d'intégration continue pour garantir sa construction et son bon fonctionnement sur tous les systèmes d'exploitation supportés : Linux, Windows, OSX. Il peut être trouvé à la fois dans PyPI et Anaconda-Cloud (comme trouvé ici https://pypi.org/project/grakel-dev/ et ici https://anaconda.org/ysig/grakel-dev) supportant le binaire équivalent pour les deux plateformes, pour tous les systèmes d'exploitation supportés. Enfin, le projet est soumis au JMLR avec un document de soumission qui peut être trouvé ici : https://arxiv.org/abs/1806.02193.

Perspectives :
GraKeL peut être à la fois un premier pas en soi, notamment pour son expansion et pour un projet plus général, l'apprentissage machine avec graphiques. En ce qui concerne le premier, grakel peut être encore optimisé en ce qui concerne les performances du noyau (par exemple l'évolutivité), ainsi que la structuration du code. De plus, sa structure orientée objet peut être conçue pour intégrer de manière cohérente des frameworks de noyau graphique réussis (tels que des noyaux de graphes profonds ou des noyaux d'affectation optimale). En ce qui concerne le deuxième GraKeL peut être une autre partie d'une bibliothèque beaucoup plus grande à savoir celle qui peut concentrer l'apprentissage machine avec des graphiques, car ce domaine devient de plus en plus prometteur.

Références :
  • T. Gartner et al. "On graph kernels: Hardness results and efficient alternatives." COLT 2003
  • K. Borgwardt et al. “Protein function prediction via graph kernels”. Bioinformatics 2005
  • Gascon et al. “Structural detection of android malware using embedded call graphs”. AISec 2013
  • G. Nikolentzos et al. "Shortest-Path Graph Kernels for Document Similarity". EMNLP 2017
  • S. V. N. Vishwanathan et al. " Graph Kernels ". JMLR 2010
  • M. Sugiyama et al. "graphkernels: R and Python packages for graph comparison." Bioinformatics 2018
  • F. Pedregosa et al. "Scikit-learn: Machine Learning in Python". JMLR 2010
  • G. Siglidis et al. "GraKeL: A Graph Kernel Library in Python." Arxiv 2018 (Submitted to JMLR)
  • N. M. Kriege et al. "On Valid Optimal Assignment Kernels and Applications to Graph Classification" NIPS 2016
  • P. Yanardag and S.V.N. Vishwanathan. "Deep Graph Kernels." KDD 2015