Les graphes au service de la data science

Avec l’avènement du big data, on a vu apparaître une nouvelle catégorie de professionnels : les data scientists, ces responsables de la gestion et de l'analyse de mégadonnées. Les outils de graphes peuvent-ils apporter un plus à ces professionnels ?

Lorsque l’expert de la donnée cherche à traiter les informations dont il dispose, il utilise la méthode dite de force brute, c’est-à-dire que le logiciel qu’il utilise va essayer toutes les possibilités de calculs possibles jusqu’à trouver l’information recherchée.

Cette méthode présente de nombreux avantages puisqu’elle offre une certaine garantie d’exhaustivité dans les données traitées. En revanche, se pose la question de la rapidité de traitement et de la pertinence des données analysées.

Un pas en avant : le traitement des données utiles

Une fois cette genèse de la science de la donnée révolue, et prenant en compte les limites de la méthode, ces professionnels ont tenté d’améliorer les temps de réponses en sélectionnant uniquement les données qui peuvent avoir du sens dans le cadre de leurs recherches.

Avec cette méthode, l’expert va entrer dans le logiciel contenant les calculs uniquement les données qui présentent une utilité dans la recherche qu’il mène. On va ainsi gagner en temps, puisque moins de données devront être compulsés par l’algorithme et on va également gagner en compréhension de ce que l’on cherche. Le problème avec cette méthode est que l’on va sciemment écarter des données qui pourraient se révéler utiles notamment dans leurs interactions avec d’autres données.  

L’exemple de la détection de fraude, ou comment détecter des données "anormales"

Dans le cadre de la détection de fraude, le statisticien va entrer dans son système toutes les données qui lui semblent intéressantes (revenus, relevés de compte, lieu de résidence, banque…) et va élaborer une fonction mathématique que ledit système va appliquer aux données entrées. On appelle cela la méthode d’Analyse Discrète. Cette fonction va alors permettre de déterminer les données qui ont un comportement considéré comme « normal » et les données en dehors de cette fonction sont ainsi considérées comme « anormales » et nécessitant une investigation car susceptibles d’être des preuves de fraude. 

La difficulté avec une telle méthode, va être de définir une fonction suffisamment large pour éviter l’identification de faux positifs, tout en garantissant une bonne détection des réels fraudeurs. Ainsi, à l’issue de ce premier passage de calculs souvent basé sur un score, le système va remonter 3 catégories : les fraudeurs avérés avec un score très élevé ; les non fraudeurs avérés avec un score très faible et les personnes entre les deux que seule une vérification complémentaire, souvent humaine, va permettre de classer.

L’enrichissement apporté par les graphes

La question qui se pose suite à l’exemple précédent : comment vérifier la nature des personnes pour lesquelles le score est non significatif ? et qui sont-ils, fraudeurs ou non fraudeurs ?

Créé en 1774 par un mathématicien Suisse Leonhard Euler, la théorie des graphes permet de travailler sur les relations entre les données. Dans le cadre de notre exemple sur la détection de fraudes, le système de graphes va s’occuper des relations entre ces données afin d’identifier les possibles fraudeurs. Par exemple, une personne peut être considérée comme « normale » dans l’analyse discrète. Or la théorie des graphes appliquée, il peut apparaître qu’une autre personne possède le même numéro de téléphone, le même numéro de compte en banque ou d’autres choses en commun qui sont souvent le signe d’utilisation d’identité synthétiques fabriquées sur la base de données unitaires valides dans le but de frauder. Lors de l’analyse discrète, le système n’aura pas relevé cette anomalie puisqu’il aura pris chaque donnée de façon individuelle. Avec les graphes, le Data Scientist va ainsi découvrir ce type de cas qui, malgré une apparente normalité, relève d’une irrégularité.

L’analyse connectée proposée par les graphes va ainsi pouvoir enrichir l’analyse discrète effectuée préalablement. Ce système permet ainsi aux utilisateurs métiers d’identifier des fraudes qu’ils n’auraient auparavant jamais pu identifier.

De la complexité mathématique exponentielle à la complexité mathématique logarithmique

L’utilisation des graphes s’intéressant aux relations entre les données, permet en outre de naviguer en temps réel dans les données et de pouvoir déclencher des contre-mesures immédiates en cas de fraude, comme par exemple bloquer une action bancaire au moment où elle a lieu car l’algorithme utilisé en interne par Neo4j à une complexité logarithmique O (log n) là où les technologies de graphes non natives sont dans la zone rouge selon l’excellent guide des algorithmes et structure de données pour les Data Scientists de Paulina Zheng (https://towardsdatascience.com/a-data-scientists-guide-to-data-structures-algorithms-1176395015a0 )

En effet, dans une méthode classique, l’ensemble des données est présenté sous forme de tableau, d’une matrice d’adjacence. Le système de base de données traditionnel (sans graphe natif) va ainsi devoir croiser toutes les données des lignes et des colonnes afin d’identifier les connexions au préalable de l’algorithme métier correspondant au travail du Data Scientist et ce à chaque appel de cet algorithme.

De plus, lorsque l’on ajoute une donnée, le système traditionnel va devoir ajouter une colonne et une ligne à la matrice pour permettre cette analyse croisée. Il apparaît donc rapidement que le volume de données à analyser est exponentiel dans un fonctionnement classique, celui-ci devient très vite gigantesque, quand bien même le sous ensemble des données métiers serait de taille bien plus modeste.

D’un point de vue général, ce problème de temps de calcul oblige alors l’expert à effectuer un choix dans les données à traiter afin de ne pas bloquer le système ou générer des temps de traitement trop longs qui produirait des résultats seulement une fois la fraude effectuée.

Avec les graphes natifs, une donnée est juste une donnée et est représentée par un « nœud » normalisé sans devoir générer de doublons inutiles. Ainsi, lorsque l’on ajoute une donnée dans un graphe, on ne multiplie pas la taille de la base de façon exponentielle. L’utilisateur va ainsi pouvoir analyser toutes les données utiles sans craindre pour la performance de son système d’analyse.

Fort de cette théorie mathématique vieille de 3 siècles, la technologie disponible aujourd’hui a évolué permettant d’en tirer parti et de permettre de faciliter le travail des Data Scientists en les faisant entrer de plain-pied dans une data science 3.0. Ainsi les graphes n’ont pas pour vocation de remplacer les outils du Data Scientist, mais de compléter ceux-ci grâce à l’analyse connectée, contextuelle et en temps-réel.