Nicolas Rouyer, consultant senior chez Neo4j, est intervenu sur le thème « Innovation en machine learning : données connectées pour des prédictions plus efficaces ». Il a présenté comment les bases de données graphes permettent d’exploiter les relations entre les données et de lancer des flux de travail où les algorithmes de graphes calculent de nouvelles caractéristiques qui enrichissent les modèles prédictifs et donnent un sens nouveau aux données, quelles qu’elles soient.
Il a accepté de se prêter à l'exercice de l'interview pour en dire un peu plus aux professionnels de l'informatique.
Developpez.com : Pouvez-vous nous présenter Neo4J et nous en indiquer les usages ?
Neo4j, Inc. est l'entreprise de graphes derrière Neo4j, la plateforme n°1 pour les données connectées. La plateforme de graphes Neo4j aide les organisations à donner du sens à leurs données en révélant comment les personnes, les processus et les systèmes numériques sont interconnectés. Cette approche privilégiant les connexions alimente des applications intelligentes qui relèvent des défis tels que l'intelligence artificielle, la détection des fraudes, les recommandations en temps réel et la gestion des données de référence (MDM).
Neo4j est la solution idéale pour améliorer l'expérience client grâce à des recommandations personnalisées en temps réel, lutter contre la criminalité financière et d'autres types de crimes, exploiter l'IoT et l'intelligence artificielle, offrir une nouvelle efficacité en matière de fabrication et de chaîne d'approvisionnement, et intégrer de manière transparente des données de base disparates pour créer une "entreprise connectée." Neo4j peut être utilisé par toute taille ou tout type d'organisation, que ce soit en tant que plateforme centrale de graphes ou aux côtés d'une technologie de gestion des données existante.
Neo4j est une marque mondialement reconnue, aidée par son rôle de facilitateur dans les enquêtes internationales Panama Papers et Paradise Papers, récompensées par un Pulitzer. Il s'agissait d'événements majeurs du journalisme de données en raison de l'ampleur des données qui devaient être traitées et analysées. Ces événements ont porté la base de données de graphes Neo4j à l'attention du monde entier, avec une couverture mondiale allant de publications grand public telles que Forbes et le Washington Post à l'éventail complet des médias informatiques.
Pouvez-vous nous en dire plus sur sa compatibilité avec les outils préférés des professionnels de l’informatique (langage de programmation, langage de requêtes, bibliothèques, etc.) ?
Nous nous appuierons sur le schéma ci-dessous pour commenter l'écosystème qui constitue la plateforme de graphes Neo4j :
- Base de données de graphes native : La base de données Neo4j est graphe depuis le stockage jusqu'à la visualisation, en passant par le langage et le moteur de traitement. C'est une base de données transactionnelle ACID (= les transactions sont Atomiques, Cohérentes, Isolées, Durables).
Neo4j est à l'origine du langage Cypher, langage expressif et simple basé sur l'ASCII-ART pour représenter les patterns de connexion entre objets.
Neo4j implémente le graphe de propriété (LPG : Labelled Property Graph) : les objets manipulés sont des nœuds, des relations et des propriétés sur les nœuds et sur les relations.
La catégorie des bases de données de graphes est celle qui progresse le plus en popularité et en marché (source : db-engines)
L'édition neo4j enterprise intègre des fonctionnalités indispensables autour de la sécurité, des sauvegardes, de la haute disponibilité et du SSO. Sur le plan des performances, le trillion graph a permis de montrer un passage à l'échelle inédit sur 1000 milliards de noeuds distribués sur 1000 machines AWS, avec une latence stable sur des requêtes profondes, normalisées par le LDBC (Linked Data Benchmark Council) - Data science et analytics : La base neo4j transactionnelle est complétée par des plugins (exemples : apoc, neosemantics, extensions customs, etc.), dont la bibliothèque neo4j Graph Data Science. Cette bibliothèque intègre plus de 65 algorithmes et modèles de machine learning permettant d'exploiter les connexions entre les données : similarité, centralité, détection de communauté, parcours de graphes, prédiction topologique de liens, graph embeddings.
Le manuel de la librairie GDS récapitule son fonctionnement et ses fonctionnalités. Un client python est également disponible, pour une intégration de la graph data science dans les notebooks.
La graph data science permet notamment de réconcilier automatiquement des données (MDM), de faire des recommandations plus précises et plus pertinentes, et d'améliorer les prédictions dans différents secteurs d'activité (télécom, banque, industrie, etc.). - Outils de développement et frameworks : L'outil Neo4j Desktop téléchargeable sur n'importe quel poste de travail intègre Neo4j enterprise et un certain nombre d'outils comme le Neo4j Browser et Neo4j Bloom. Neo4j Browser est un outil de requêtage et de visualisation, alors que Neo4j Bloom est un outil de visualisation et d'exploration plus orienté métier/data scientist (pas besoin de connaître Cypher contrairement au Neo4j browser).
Il existe aussi un outil de tableaux de bord, NeoDash, qui permet de convertir les résultats de requêtes Cypher en tableaux de bord dynamiques.
Pour les développeurs, Neo4j est accessible au travers de drivers et de frameworks comme spring data neo4j. Les drivers officiels sont unifiés et disponibles dans 5 langages : Java, Javascript, Python, .NET et Go.
Neo4j est compatible avec GraphQL, et permet même de générer automatiquement une API GraphQL grâce à l'introspector. - Support GQL : C'est la première fois depuis SQL qu'une standardisation de langage de base de données a lieu à l'ISO avec GQL (Graph Query Language). GQL est grandement basé sur Cypher.
- Écosystème et intégrations : En termes d'ingestion de données, on peut importer des données massivement des données dans Neo4j en utilisant Apache Spark ou Apache Kafka. Les procédures apoc (autre plugin neo4j) permettent aussi d'importer/exporter des données depuis/vers des data lakes, depuis/vers le cloud.
Le connecteur neo4j pour la BI permet de plugger à Neo4j les outils décisionnels d'entreprise comme Tableau Software, QlikSense, Microsoft PowerBI, Tibco Analytics, Looker, etc. Enfin, les fournisseurs de cloud GCP, AWS et Azure sont tous des partenaires de Neo4j et il existe des architectures de référence sur l'ingestion, le traitement et la visualisation des données graphes. - Hébergement : Neo4j s'installe on premise, dans le cloud, mais est également disponible dans une offre DBaaS, Neo4j Aura. L'offre Aura se décline elle-même en AuraDB (base de données transactionnelle hautement disponible) et AuraDS (base de données de graphes analytique). L'intérêt d'Aura est d'être une solution entièrement infogérée, avec mises à jour et sauvegardes automatiques. En matière de prérequis techniques, il faut simplement un OS Linux avec Java 17 (pour Neo4j 5.x) ou Java 11 (pour Neo4j 4.x).
Pouvez-vous nous parler des innovations de la base de données de graphes Neo4j en machine learning ?
La bibliothèque Neo4j Graph Data Science intègre plus de 65 algorithmes et modèles de machine learning permettant d'exploiter les connexions entre les données :
similarité, centralité, détection de communauté, parcours de graphes, prédiction topologique de liens, graph embeddings. Certains algorithmes de graph embeddings utilisent les réseaux de neurones orientés graphe (GNN).
C'est l'offre de graph data science la plus exhaustive du marché ; elle s'intègre de plus très bien avec les plateformes d'IA de GCP (Vertex.ai), AWS (Sagemaker) et Azure (Synapse). Le manuel de la librairie GDS récapitule son fonctionnement et ses fonctionnalités. Un client python est également disponible, pour une intégration de la graph data science dans les notebooks.
La graph data science permet notamment de réconcilier automatiquement des données (MDM), de faire des recommandations plus précises et plus pertinentes, et d'améliorer les prédictions dans différents secteurs d'activité (télécom, banque, industrie, etc.)
On peut résumer les innovations de Neo4j en IA de la façon suivante :
- le stockage graphe et le langage Cypher permettent de capturer le contexte complexe autour des données ;
- les algorithmes de graphes permettent d'apprendre de la structure globale en graphe des données, et utiliser ces nouvelles connaissances pour améliorer les prédictions.
Pourquoi les professionnels de l’informatique devraient-ils choisir votre solution ? Qu’est-ce qui différencie votre offre de la concurrence ?
Sécurité, agilité, performances, gestion de la complexité :
Contrairement aux autres modèles de bases de données, Neo4j connecte les données au fur et à mesure qu'il les stocke. Cela signifie que l'intelligence créée à partir de ces connexions est disponible directement dans la base de données. Par conséquent, le développement est grandement accéléré et les applications basées sur Neo4j fonctionnent plus rapidement. L'accent mis par Neo4j sur le stockage natif des graphes et le traitement en temps réel est essentiel pour aider les organisations à exploiter facilement et efficacement les connexions de données avancées. L'ensemble des capacités de la plateforme de graphes Neo4j comprend une base de données de graphes native, des outils d'intégration de données, des analyses de graphes, un outil de visualisation de graphes, des API riches et des outils de développement pour répondre aux besoins des data scientists, des développeurs d'applications et des utilisateurs professionnels. Parmi les innovations technologiques spécifiques qui rendent Neo4j incontournable, citons le clustering à l'échelle de l'entreprise, la prise en charge de la cohérence causale et les capacités de sécurité avancées.
Neo4j permet de réconcilier les silos de données des entreprises et de créer un graphe de connaissances à l'échelle de toute organisation :
La performance pour des requêtes complexes est aussi un atout majeur de Neo4j :
La base de données de graphes Neo4j permet :
- des requêtes plus sophistiquées (poser des questions auparavant impossibles à résoudre) ;
- des applications et informations en temps réel (obtenir des réponses à des requêtes complexes en quelques millisecondes) ;
- l'amélioration de la science des données (l'exécution d'algorithmes de graphes sur des données contextualisées et connectées permet d'obtenir de meilleurs résultats en IA et en ML) ;
- des applications à l'épreuve du temps (il faut quelques minutes, et non des mois, pour modifier votre schéma).
Comment gérez-vous la sécurité des données ?
Neo4j est une base de données d'entreprise permettant de gérer des systèmes transactionnels critiques. Les transactions sont ACID (Atomiques, Cohérentes, Isolées, Durables). La gestion fine des rôles et des droits est réalisée avec le Role-Based Access Control, un système de gestion fine des rôles et des droits, permettant de « traverser sans voir », ce qui est inédit dans les systèmes de gestion de bases de données :
- un utilisateur avec un rôle administrateur a le droit de savoir que 2 noeuds du graphe sont reliés et peut accéder aux propriétés des noeuds et des relations traversées ;
- un utilisateur avec un rôle auditeur a le droit de savoir que 2 noeuds du graphe sont reliés, mais ne peut accéder aux propriétés des noeuds et des relations traversées.
La fédération d'identité pour l'authentification et l'autorisation est assurée par simple configuration, ainsi que le SSO avec Openid Connect (OIDC) et les terminaisons SSL pour le chiffrement. À noter : dans le service Aura, les données sont chiffrées sur disque et les flux sont chiffrés également. Mentionnons la checklist de sécurité Neo4j, qui recense toutes ces mesures à prendre pour sécuriser les données. La plupart de ces mesures sont déjà incluses dans le service Aura.
Comment exploiter vos API ? Y a-t-il des kits de développement spécifiques ? Faut-il utiliser un langage de programmation précis ?
Tous les langages de programmation peuvent être utilisés pour exploiter la base de données Neo4j, mais il existe 5 drivers officiels. Les drivers officiels sont unifiés et disponibles dans 5 langages : Java, Javascript, Python, .NET et Go. L'utilisation de ces drivers est la même quel que soit le langage utilisé : 1) j'instancie le driver 2) j'ouvre une session 3) je réalise des transactions en lecture ou en écriture, au sein de cette session. Neo4j est compatible avec GraphQL, et permet même de générer automatiquement une API GraphQL grâce à l'introspector.
Qu’en est-il de la tarification ?
Différentes tarifications sont disponibles, en fonction des besoins (base de données graphes transactionnelle critique ou base de données de graphes analytiques).
Il faut également distinguer l'offre as a service (Aura) ou on premise. Il existe une base de données gratuite, Aura DB free, pour tout développeur souhaitant se familiariser avec la technologie des graphes. Ensuite, pour les petites et moyennes entreprises, Aura Pro permet d'accéder à des instances Neo4j hautement disponibles à partir de 65$ par mois. Pour les grandes entreprises, on peut aller jusqu'à 384 GB de RAM, avec des VPC dédiés et un support premium 24x7.
Quels types d’entreprises sont vos clients et comment utilisent-elles vos API ? Avez-vous un cas client à partager avec nous ?
Les cas d'usage client partagés sont nombreux et sont disponibles en ligne. On peut citer dans le retail Adeo, maison-mère de Leroy Merlin, qui utilise Neo4j pour son moteur de recommandation sur le site leroymerlin.fr, dans le top 3 des sites Web consultés en France. Un des cas d'usage les plus connus est celui de la NASA, avec un graph de connaissances qui a permis d'économiser 2 ans de recherche et plusieurs millions de dollars. Les catégories de cas d'usage accélérés par la solution graph Neo4j sont recensées ici. Elles comprennent :
- la détection de fraude ;
- la supervision de réseau ;
- l'analyse customer 360° ;
- les moteurs de recommandation ;
- le Master Data Management ;
- l'analyse de réseaux sociaux ;
- l'identité et la gestion de l'accès (IAM) ;
- les graphes de connaissances.
- etc.
Pouvez-vous nous présenter quelques exemples d’applications qui reposent sur Neo4j pour l’apprentissage automatique dans l’analyse prédictive ?
On peut citer Meredith Marketing et Caterpillar. Meredith Marketing utilise Neo4j et la Graph Data Science pour désambiguïser des profils clients. Ces cas d'usage sont disponibles ici. Le cas d'usage de Caterpillar est décrit en détail ici. Celui de Meredith Marketing est ici.
Quels conseils donneriez-vous aux professionnels de l’informatique qui veulent tenter l’aventure de l’IA
La data science est un domaine très vaste, avec des milliers de publications scientifiques chaque année qui font avancer le domaine. La graph data science est la branche de la data science qui exploite les données connectées. C'est un domaine extrêmement prometteur par ses capacités de capture du contexte via les connexions, un contexte permettant d'obtenir une IA explicable.
Par ailleurs, on obtient de meilleures performances et de meilleures précisions dans les modèles de machine learning entraînés avec des caractéristiques issues du graphe.
Voir le blog post ici. Donc, mon conseil serait : ne négligez pas cette branche de l'IA qu'est la Graph Data Science !
Des perspectives d’embauches en France ?
Le site Internet de Neo4j répertorie les offres d'emplois disponibles en France, en Europe et ailleurs. Les offres d'emploi Neo4j sont également publiées sur Linkedin.
Des futurs projets dont vous voulez parler ?
Relayé largement, la perspective d'un standard de langage de base de données de graphes (GQL = Graph Query Language), s'appuyant largement sur Cypher, constitue une perspective de plus en plus proche. Les avancées de la bibliothèque Graph Data Science, tous les trimestres, sont également à suivre.
Mentionnons enfin 2 projets particulièrement intéressants :
- le Neo4j workspace, qui offre une expérience unifiée intégrant en mode zéro-code la modélisation, l'alimentation et la visualisation des données connectées ;
- le Neo4j Ops Manager, interface d'administration des instances et clusters Neo4j déployés dans une infrastructure client, qui va faciliter le travail des exploitants.
En savoir plus sur les produits Neo4J