Qu’est-ce que le Big Data?

Le but de cette partie est de présenter ce que l’on nomme « Big Data », ou mégadonnées, afin de rendre cette notion compréhensible dans un premier temps, de mettre à jour quelques-uns des domaines d’applications dans un second temps, puis de présenter les principales techniques de traitement des mégadonnées, pour enfin évoquer les enjeux majeurs actuels et futurs liés à leur analyse.

  1. Définition des mégadonnées
    Le modèle des 5V
    La différence entre mégadonnées et informatique décisionnelle
    Le but des mégadonnées
  2. Domaines d’applications
  3. Techniques et méthodes mises en œuvre
    Apprentissage statistique (Machine Learning)
    Apprentissage profond (Deep Learning)
    Calcul parallèle
    Fouille de flots de données
    Fouille de texte
    Fusion de données
    Théorie des graphes
  4. Enjeux actuels et futurs liés aux mégadonnées
    La modélisation de la donnée
    Le calcul parallèle
    Le traitement de flots de données
    La visualisation des données
    De nouvelles manières d’interaction avec les données
    La logistique de l’information
    Les méthodes relatives à l’apprentissage profond

Définition des mégadonnées

Le « Big Data », dont la traduction en français est « mégadonnées », est une application de la science des données, qui désigne le traitement d’ensembles de données devenus si volumineux, variés et véloces qu’ils dépassent l’intuition et les capacités humaines d’analyse, et même celles des outils informatiques classiques de gestion de base de données. Sa naissance est liée aux progrès des systèmes de production, de transmission, de stockage, de fouille et d’analyse de l’information numérisée. Les mégadonnées ont amené l’émergence de méthodes à visée analytique, qui traitent les données pour en tirer du sens.

Le modèle des 5V

Pour caractériser ce que représentent les mégadonnées, il faut prendre conscience du fait que les enjeux inhérents à leur évolution répondent à la règle des 5V :

  • Volume
    • Cette dimension vient du fait que la quantité d’informations est devenue trop volumineuse pour être acquise, stockée, traitée, analysée et diffusée par des outils standards.
    • L’esprit humain a désormais besoin d’ordinateurs pour leur puissance de calcul, et de traitement automatisé pour faire face au volume de données collectées.
  • Variété
    • Cette dimension vient du fait que les mégadonnées sont brutes, semi-structurées voire souvent non structurées et non catégorisées (ce qui rend leur analyse complexe), et se caractérisent par une grande hétérogénéité de :
      • Formats : texte (e-mail, médias sociaux, sites internet, bibliothèques numériques), image, son, vidéo, données de capteurs (température, vitesse, luminosité…), enregistrements de transactions d’achats, informations cellulaires issues des téléphones mobiles…
      • Sources (données internes, données externes, données ouvertes), ce qui implique que les données ne sont pas structurées et organisées de la même manière, voire, pas structurées du tout.
    • Vélocité
      • Cette dimension porte sur l’aspect dynamique et temporel des données, et sur la fréquence à laquelle les données sont générées, capturées, analysées et mises à jour.
      • Ces flux croissants de données doivent être analysés en quasi-temps réel, grâce à des techniques de fouille de flots de données, pour répondre aux besoins des processus chrono-sensibles comme le trading haute fréquence, la détection de fraudes, ou le contrôle d’un véhicule en temps réel.
    • Véracité / Validité
      • Cette dimension fait référence à la qualité des mégadonnées, ainsi qu’à la fiabilité et à l’utilité des résultats obtenus par leur analyse, qui peuvent être variables avec le nombre croissant de sources et de formats de données. Elle comprend aussi les problèmes de valeurs aberrantes ou manquantes (ces problèmes pouvant être résolus par le volume de données), et de confiance que l’on peut avoir dans les données.
      • Ainsi, un décideur sur trois n’a pas confiance dans les données sur lesquelles il base sa décision. Ceci vient du fait de la potentielle faible précision de celles-ci, de leur manque probable de pertinence ou de fiabilité, de l’ignorance de leur origine et de leur manque de traçabilité. Ce phénomène s’illustre notamment lors de croisements entre bases de données internes à une entreprise, avec celles issues de parties tierces ou de bases de données ouvertes.
      • Cette dimension peut être traitée par des méthodes mathématiques de quantification de l’incertitude, pour aider la prise de décision en encadrant les risques liés aux données.
    • Valeur
      • Cette dimension fait référence à la potentialité des données en termes économiques, et au fait qu’il faut trouver comment traduire très concrètement la donnée pour générer de la valeur pour l’entreprise. Cette dimension est associée à l’usage qui peut être fait de ces mégadonnées au sein de l’entreprise : améliorer sa connaissance clients, optimiser la sécurité de ses systèmes, dynamiser ses performances marketing grâce aux enchères en temps réel (RTB), réduire ses coûts d’entretien en mettant en œuvre des logiques de maintenance prédictive, tirer parti de la puissance des objets connectés…

La différence entre mégadonnées et informatique décisionnelle

De plus, il est à préciser que les mégadonnées diffèrent de l’informatique décisionnelle (Business Intelligence). En effet, l’informatique décisionnelle utilise des techniques de statistique descriptive sur des volumes de données qui peuvent certes être grands, mais qui sont fortement structurés selon un modèle défini et à forte densité en information pertinente (par rapport aux besoins de l’utilisateur), afin de mesurer des phénomènes, de détecter des tendances…

Tandis que les techniques d’analyse des mégadonnées utilisent des techniques de statistique inductive, sur de très grands volumes de données, qui sont structurés ou non et à faible densité en information pertinente (par rapport aux besoins de l’utilisateur). Sur ces grands volumes de données, les techniques d’analyse utilisent la statistique inductive pour inférer des lois (régressions…). La statistique inductive utilise la théorie des probabilités pour restreindre le nombre d’individus en faisant des sondages sur des échantillons. L’objectif principal est ainsi de préciser un phénomène sur une population globale, à partir de son observation sur une partie restreinte de cette population, l’échantillon. Il s’agit donc d’induire du particulier au général avec un objectif principalement explicatif, ceci au moyen de modèles et d’hypothèses probabilistes. L’usage de la statistique inductive donne aux mégadonnées (avec les limites de l’induction) des capacités prédictives.

En résumé, l’informatique décisionnelle est basée sur un modèle du monde conçu a priori, tandis que les techniques d’analyse des mégadonnées visent à ce que les mathématiques trouvent un modèle dans les données pour leur donner du sens.

Le but des mégadonnées

Le but ultime des mégadonnées est donc de puiser efficacement dans les données, sans se perdre dans la masse d’informations qui les entourent, puis de les traiter avec des algorithmes pour en tirer du sens. Cette information intelligible et pertinente est alors interprétable par l’être humain, qui peut ainsi prendre une décision légitimée par l’analyse des données venues du terrain.

Domaines d’application

L’analyse des mégadonnées aide les entreprises à réduire leurs risques et faciliter la prise de décision, grâce à une meilleure compréhension des phénomènes en jeu dans bien des domaines :

  • Assurance
    • Meilleure connaissance de la santé des individus et adaptation de l’offre en conséquence
  • Automobile
    • Vue d’ensemble sur la coordination d’un système complexe au travers de l’analyse des données issues des capteurs embarqués : interaction véhicule/route et véhicule/véhicule, simulation de situations de circulation, remontée d’informations d’usage au fabricant…
    • Reconnaissance de l’espace environnant (route, trottoirs, poteaux, panneaux …) et des objets y évoluant (piétons, vélos, autres véhicules…) par des techniques de vision par ordinateur (Computer Vision), notamment par de l’apprentissage statistique (Machine Learning) et de l’apprentissage profond (Deep Learning)
    • Fusion de données pour le véhicule autonome, issues des différents capteurs embarqués (image, ultrason, lidar, radar…), afin d’obtenir une information robuste qui permet de se positionner correctement sur la route et d’éviter les piétons
  • Banque
    • Détection de fraudes en temps réel, avec l’analyse des très nombreuses transactions effectuées quotidiennement, en étant capables de déceler des corrélations, de détecter mathématiquement des incongruités, des anomalies, et donc de remonter des alertes qui seraient autrefois passées totalement inaperçues
  • Calcul haute performance pour les industries aéronautique, automobile, énergétique, financière, pétrolière, et spatiale
    • Développement d’outils de post-traitement in-situ/in-transit avec des approches d’apprentissage statistique/profond (Machine/Deep Learning) afin de détecter des structures pertinentes dans les quantités massives de données générées par les simulations numériques de phénomènes physiques (écoulement de fluide autour d’une structure, combustion dans un moteur thermique, déformation d’une structure, écoulement d’un fluide dans un milieu poreux…) afin de pouvoir stocker et analyser seulement la donnée pertinente
  • Communication
    • Compréhension poussée des opinions et des sentiments sur un produit ou une campagne de communication, en analysant les messages créés quotidiennement sur les réseaux sociaux, grâce à des techniques de traitement automatique du langage naturel
  • Éducation
    • Dans le télé-enseignement (dont les Massive Open Online Courses – MOOC), le traitement des mégadonnées permet d’analyser les activités des élèves (temps consacré, façon de suivre les programmes, arrêt-retour dans les vidéos pédagogiques, recherches Internet parallèles, etc.) pour améliorer les modes d’enseignement.
  • Énergie
    • Gestion de réseaux énergétiques complexes et connectés :
      • Adaptation de la production d’énergie fossile par rapport à celle générée par les énergies renouvelables en fonction de la météorologie, en temps réel, et de manière locale
      • Gestion en temps réel de pics de consommation saisonniers et adaptation des moyens de production
      • Décision de production par certains types d’énergie en fonction des conditions d’achat de la matière première en temps réel
    • Capacité prédictive de l’équilibre entre offre et besoin, sur tout le réseau
    • Détermination du prix en fonction des conditions de production et d’approvisionnement
  • Finance
    • Définition de stratégies de trading de haute fréquence en fonction des initiatives des autres acteurs et des réactions des marchés
  • Génomique et métagénomique
    • Connaissance de l’évolution de systèmes biologiques complexes et divers (bactéries, virus… et autres microorganismes) grâce à l’analyse des génomes en présence
  • Grande distribution et commerce sur internet
    • Analyse des comportements d’achat et proposition de nouvelles offres pertinentes grâce à des algorithmes de recommandation
  • Industrie du futur
    • Maintenance prédictive des moyens de production grâce à l’analyse des données issues des capteurs embarqués, afin d’anticiper les pannes et d’améliorer la durée de vie de l’appareil en question, et de réduire ou supprimer les temps d’immobilisation
    • Contrôle en temps réel des stocks, et optimisation de la chaine d’approvisionnement
  • Internet des objets
    • Analyse et gestion des données générées par les multiples objets connectés : téléphone, tablette, montre, enceinte de son, téléviseur, détecteur de mouvement, réfrigérateur, machine à laver, miroir, lampe, dispositifs sportifs…
  • Publicité
    • Enchères en temps réel entre annonceurs pour des bannières publicitaires sur une page internet, grâce à l’analyse en temps réel du profil des internautes qui la visitent
    • Construction de systèmes de recommandation (Recommender System / Recommendation System) qui proposent à l’utilisateur d’acheter d’autres produits (commerce en ligne, recommandation de musique ou d’événements) grâce à une approche basée sur le contenu (recommandation d’un autre produit similaire à celui que l’utilisateur a déjà acheté, « Content-Based Approach »), ou à une approche basée sur l’environnement social (recommandation d’un produit entre utilisateurs similaires qui expriment des goûts comparables sur certains produits, « Collaborative Filtering ») à partir des données de comportement de l’utilisateur (recherches internet, pages et images vues, clics…)
  • Santé
    • Aide au diagnostic grâce à une meilleure connaissance de la santé des individus au travers de l’analyse statistique des phénomènes sous-jacents intervenants dans l’apparition des maladies : interactions entre patients, interactions entre maladies, influence des facteurs d’environnement (alimentation, lieu de vie, stress, pratique du sport…) pour tendre vers une médecine plus robuste voire prédictive
    • Santé connectée et analyse des données issues des dispositifs portatifs (montre connectée, ceinture cardio, lunettes de vue connectées…)
    • Épidémiologie : suivi de la consommation de paniers de médicaments mesurée en temps réel, et détection de phénomènes sanitaires multiples (pathologies chroniques, phénomènes saisonniers (allergies, épidémies de grippe…)) grâce à des modèles prédictifs issus d’analyse de ces données
  • Télécommunications
    • Analyse des données issues des antennes relais pour maximiser la couverture réseau en fonction de la densité et de la dynamique de déplacement des personnes
    • Analyse des données issues des téléphones pour mieux comprendre les usages des utilisateurs et adapter l’offre commerciale en fonction
  • Transport
    • Gestion intelligente et en temps réel des infrastructures de transport des personnes en fonction de leur disponibilité, de leur état d’utilisation et de saturation…
    • Adaptation des infrastructures et des services (horaires des trains, densité temporelle des départ…) grâce à la modélisation des déplacements des populations au travers de l’analyse de données multiples (tickets de transports en commun, données cellulaires issues des téléphones…)
    • Modification des couloirs aériens afin de réaliser des économies de carburant, en associant les données issues de capteurs sur les avions à des données météo
  • Veille technologique
    • Analyse sémantique de corpus documentaires (bases de brevets, publications, articles scientifiques…) : mise en évidence de points communs, conception de filtres adaptés aux besoins spécifiques d’un domaine, analyse des signaux faibles pour détecter des tendances,…

Techniques et méthodes mises en œuvre

Apprentissage statistique (Machine Learning)

L’apprentissage statistique consiste à déterminer automatiquement un modèle formel décrivant des données disponibles, et permettant une généralisation sur de nouvelles données des motifs appris lors de la phase d’apprentissage. L’objectif d’une méthode d’apprentissage est de déterminer le modèle qui minimise les erreurs de généralisation, c’est-à-dire qui permet d’obtenir une classification la plus exacte possible sur de nouvelles données. L’apprentissage s’effectuant sur un jeu de données réduit, toute la difficulté réside dans l’obtention d’un bon équilibre entre qualité de la classification sur les données exemples (ce sur quoi l’apprentissage est optimisé) et sur les données nouvelles, par définition inconnues au moment de l’apprentissage. Si l’apprentissage est essentiellement statistique via des modèles probabilistes dans les systèmes actuels, il peut aussi être symbolique par l’induction de règles, toujours à partir d’exemples, ou mixte comme c’est le cas avec les arbres de classification qui produisent, par analyse statistique, des règles de classification symboliques et compréhensibles par un opérateur humain.

Il existe différents types d’algorithmes d’apprentissage, selon le mode d’apprentissage qu’ils emploient :

  • Apprentissage supervisé

C’est une technique qui vise à amener le système à apprendre à classer les données selon un modèle de classement dont les classes sont prédéterminées au préalable, avec des exemples connus et étiquetés par un expert du domaine. Dès lors, le processus se passe en deux phases. Lors de la première phase (hors ligne, dite d’apprentissage), il s’agit de déterminer un modèle des données étiquetées. La seconde phase (en ligne, dite de test) consiste à prédire l’étiquette d’une nouvelle donnée, connaissant le modèle préalablement appris. Parfois il est préférable d’associer une donnée non pas à une classe unique, mais une probabilité d’appartenance à chacune des classes prédéterminées (on parle alors d’apprentissage supervisé probabiliste).

A titre d’exemple, voici quelques exemples d’algorithmes d’apprentissage supervisé :

  • Arbre de classification / Arbre de décision

C’est une technique d’apprentissage supervisé qui utilise un ensemble de données pour lesquelles la valeur de la variable-cible est connue et permet de construire l’arbre, puis les résultats sont extrapolés à l’ensemble des données de test. Un arbre de classification peut être décrit comme un diagramme de flux de données où chaque nœud interne décrit un test sur une variable d’apprentissage, chaque branche représente un résultat du test, et chaque feuille contient la valeur de la variable cible (une étiquette de classe). Les arbres de classification ont l’avantage d’être lisibles et interprétables par un opérateur humain. Cependant, ils ont tendance à fournir des arbres trop complexes du fait du surapprentissage, à nécessiter des stratégies d’élagage délicates, et à être sensibles au bruit et données aberrantes. On pallie à ces problèmes en employant la méthode des forêts aléatoires, décrites ci-dessous.

  • Classification bayésienne naïve (Naive Bayes Classifier)

C’est une classification probabiliste qui considère une forte indépendance (dite naïve) des hypothèses, l’existence d’une caractéristique pour une classe étant indépendante de l’existence d’autres caractéristiques. L’avantage du classeur bayésien naïf est qu’il requiert relativement peu de données d’entraînement pour estimer les paramètres nécessaires à la classification, à savoir moyennes et variances des différentes variables. En effet, l’hypothèse d’indépendance des variables permet de se contenter de la variance de chacune d’entre elles pour chaque classe, sans avoir à calculer de matrice de covariance.

  • Classification par stimulation (Boosting)

C’est une famille d’algorithmes d’apprentissage automatique qui convertit des classeurs faibles en classeurs forts. Un apprenant faible est un classeur capable de reconnaître deux classes à peine mieux que le hasard ne le ferait. A l’inverse, un apprenant fort est un classeur qui est plutôt bien corrélé avec la vraie classification. Les algorithmes de stimulation consistent en l’ajout itératif de classeurs faibles, par rapport à une distribution, à des classeurs forts. Après qu’un classeur faible soit ajouté, les poids assignés aux données sont de nouveau estimés : les données mal classées gagnent en poids (elles sont donc stimulées) alors que celles qui ont été classées correctement perdent en poids. Ainsi, les futurs classeurs faibles concentreront leurs efforts sur les données que les classeurs faibles précédents ont mal classées.

  • Forêts aléatoires (Random Forests)

L’algorithme des forêts aléatoires effectue un apprentissage sur de multiples arbres de classification indépendants entre eux, entraînés sur des sous-échantillons tirés au hasard dans le jeu de données initial. Chaque nœud de chaque arbre trouve la variable qui optimise la séparation entre données, parmi un sous-ensemble de variables, choisi au hasard. Ainsi, la profondeur des arbres est fortement limitée. Ensuite, on décide à quelle classe affecter les données en effectuant un vote majoritaire des arbres (Ensemble Learning). Le but est d’arriver à une très bonne performance de classification, tout en limitant le surapprentissage.

  • K plus proches voisins

C’est une méthode qui permet de catégoriser des données par calcul de similarités. Elle considère une base de données d’apprentissage constituée de n couples « entrée-sortie » afin d’estimer la sortie associée à une nouvelle entrée x, en prenant en compte les k échantillons d’apprentissage dont l’entrée est la plus proche de la nouvelle entrée x, selon une distance à définir.

  • Machine à vecteurs de support, ou séparateurs à vaste marge (Support Vector Machine)

Les séparateurs à vastes marges reposent sur deux idées clés : la notion de marge maximale et la notion de fonction noyau. La marge est la distance entre la frontière de séparation et les échantillons les plus proches. Ces derniers sont appelés vecteurs supports. Le problème est donc de trouver cette frontière séparatrice optimale qui maximise la marge, à partir d’un ensemble d’apprentissage. Ceci est fait en formulant le problème comme un problème d’optimisation quadratique. Afin de pouvoir traiter des cas où les données ne sont pas linéairement séparables, la deuxième idée clé est de transformer l’espace de représentation des données d’entrées en un espace de plus grande dimension, dans lequel il est probable qu’il existe une séparation linéaire. Ceci est réalisé grâce à une fonction noyau, qui transforme un produit scalaire dans un espace de grande dimension en une simple évaluation ponctuelle d’une fonction (Kernel Trick).

  • Apprentissage non supervisé

Quand le système ou l’opérateur ne disposent que d’exemples, mais non d’étiquettes, et que le nombre de classes et leur nature n’ont pas été prédéterminés, on parle d’apprentissage non supervisé. Avec cette technique, aucun expert n’est requis. L’algorithme doit découvrir par lui-même la structure plus ou moins cachée des données, en les ciblant selon leurs attributs disponibles, pour les classer en groupe homogènes d’exemples. La similarité est généralement calculée selon une fonction de distance entre paires d’exemples. C’est ensuite à l’opérateur d’associer ou de déduire du sens pour chaque groupe et pour les motifs d’apparition de groupes, ou de groupes de groupes.

Cette technique peut être utilisée pour faire émerger des hypothèses explicatives d’un phénomène complexe, l’algorithme proposant une différenciation des données en plusieurs groupes, afin que l’expert du domaine cherche à associer ces groupes à divers facteurs explicatifs.

Par exemple, un épidémiologiste pourrait étudier un ensemble assez large de victimes de cancer du foie pour tenter de faire émerger des hypothèses explicatives, et grâce à la différenciation en plusieurs groupes effectuée par l’algorithme, il pourrait ensuite associer la maladie à divers facteurs explicatifs : origine géographique, génétique, habitudes alimentaires, pratique sportive, exposition à divers agents toxiques, interaction entre patients…

Voici quelques exemples d’algorithmes d’apprentissage non supervisé :

  • Algorithme d’espérance-maximisation (Expected Maximization Algorithm)

L’algorithme d’espérance-maximisation permet d’estimer des paramètres dans des modèles probabilistes (modèles de Markov caché, réseaux bayésiens) avec des données manquantes. Pour résoudre ce problème d’estimation de paramètres inconnus depuis des données, l’algorithme d’espérance-maximisation alterne entre une étape de calcul de valeurs espérées de variables conditionnelles non observées sur des données observées, et une étape de maximisation de la vraisemblance complète en partant du principe que les valeurs espérées calculées dans l’étape précédente sont correctes. Finalement, ce processus converge vers une vraisemblance maximale des valeurs des paramètres. En résumé, l’algorithme d’espérance-maximisation alterne entre des étapes d’estimation de distribution de probabilités sur des reconstructions de données manquantes (étape d’évaluation de l’espérance), et de ré-estimation des paramètres du modèle à partir de ces données reconstruites (étape de maximisation).

  • K-moyennes (nuées dynamiques)

Le partitionnement en k-moyennes (ou nuées dynamiques) est une méthode de classification, répartissant les données en k groupes, tout en minimisant une fonction de distance entre chaque donnée et la moyenne du groupe, et en maximisant l’écart entre les classes.

  • K-médoïdes

L’algorithme des k-médoïdes est un algorithme de partitionnement plus robuste vis-à-vis les données aberrantes que celui des k-moyennes. Ainsi, il minimise l’erreur quadratique moyenne qui est la distance entre les points de la classe et le médoïde (le représentant le plus central de la classe).

  • Apprentissage semi-supervisé

C’est une technique hybride des deux précédentes, qui combine des exemples étiquetés et d’autres non étiquetés pour l’apprentissage, et qui est notamment utilisée lorsque des données manquent, ou que le coût d’annotation par un expert humain est trop grand. Les algorithmes d’espérance-maximisation, et d’apprentissage actif (décrit ci-dessous) utilisent ce type d’apprentissage.

L’apprentissage actif est un modèle d’apprentissage semi-supervisé où un expert humain intervient au cours du processus. Contrairement à l’apprentissage supervisé, pour lequel les données sont étiquetées de manière imposée, en apprentissage actif, c’est l’algorithme d’apprentissage qui demande des informations pour des données précises. L’algorithme d’apprentissage actif va donc réfléchir aux questions les plus intéressantes à poser à l’expert humain, afin de maximiser le savoir acquis sur les cas les plus ambigus, ou qui rapporteraient le plus d’informations pour améliorer la classification, tout en minimisant le coût de sollicitation de l’expert humain. Dans un premier temps, l’algorithme d’apprentissage actif apprend un classeur à partir de données étiquetées, et applique les motifs appris sur des données non étiquetées. Ensuite, certaines des données encore non étiquetées dans l’étape précédente (car le classeur n’est pas encore capable de les catégoriser avec ce qu’il a appris jusque-là) sont sélectionnées pour être annotées par un expert humain. Grâce à ces nouvelles connaissances, le processus reprend depuis la première étape pour continuer à étiqueter les données restantes, et ainsi de suite, jusqu’à ce qu’un critère d’arrêt soit atteint. Ce critère peut être que le coût maximal d’annotation est atteint, que la performance minimale du classeur est atteinte, ou qu’il n’y a plus de données à étiqueter. Le point crucial de ces algorithmes d’apprentissage actif est l’étape de sélection des exemples à faire annoter à l’expert. Sont choisis les exemples les plus bénéfiques pour l’apprentissage, ceux permettant d’obtenir les meilleures performances de classification. Par exemple, la sélection par incertitude (Uncertainty Sampling) choisit les données pour lesquelles le classeur courant est le moins certain de sa classification. Un défaut connu de cette approche est qu’au début du processus, les mesures d’incertitude du classeur ne sont pas fiables quand il y a peu d’exemples annotés. Une autre méthode très usuelle est la sélection par comité (Query By Committee). Son principe est d’apprendre non pas un mais plusieurs classeurs (ou modèles de données) sur différents échantillons indépendants des données annotées (Bagging, Bootstrapping), d’appliquer ces motifs appris sur les données non étiquetées, et de sélectionner les exemples sur lesquels le comité de classeurs est le plus en désaccord par un processus de votes, allié à des techniques de stimulation (Boosting). En plus du coût calculatoire plus important généré par ces apprentissages multiples, ces techniques souffrent du même problème que la sélection par incertitude : les classeurs sont peu fiables durant les premières itérations avec un petit nombre de données annotées. Une dernière famille usuelle est la sélection basée sur la modification attendue du modèle (Expected Model Change). Le principe est ici de sélectionner l’exemple qui impacterait le plus le modèle, en supposant que cet impact résulterait en une amélioration des performances. L’intuition sous-jacente est que la donnée choisie couvre des cas non traités par les données déjà étiquetées. Une variante de cette approche, la méthode de densité d’information (Information Density), repose simplement sur le choix des données non étiquetées les plus différentes des données déjà étiquetées. Ainsi, le gain d’informativité d’une donnée est pondéré par sa similarité moyenne avec toutes les autres données non étiquetées. En effet, une donnée non étiquetée très marginale n’apprendra que très peu de choses au classeur sur une région plus riche en données non étiquetées mais éloignée de celle-ci.

  • Apprentissage par renforcement (Reinforcement Learning)

C’est une technique d’apprentissage dont le but est d’apprendre, à partir d’expériences, ce qu’il convient de faire en différentes situations, de façon à optimiser une récompense quantitative au cours du temps. Ainsi, l’algorithme cherche, au travers d’expériences itérées, un comportement décisionnel (qui est une fonction associant l’action à exécuter à l’état courant) optimal, en ce sens qu’il maximise la somme des récompenses au cours du temps, en s’adaptant à son environnement suivant un processus d’essais-erreurs qui le fait gagner en expérience. Les modèles de Markov caché (Hidden Markov Model) sont notamment utilisés pour l’apprentissage par renforcement.

  • Apprentissage par transfert

L’apprentissage par transfert peut être vu comme la capacité d’un système à reconnaître et appliquer des connaissances et des compétences, apprises à partir de tâches antérieures, sur de nouvelles tâches ou domaines partageant des similitudes. Tout l’enjeu de l’utilisation de cette technique réside dans l’identification des similitudes entre le groupe cible et le groupe source, et dans le transfert de la connaissance depuis le groupe source vers le groupe cible.

Applications directes de l’apprentissage statistique

  • La classification automatique de contenus, ou partitionnement de données (Data Clustering) : étiquetage d’une donnée en l’associant à une classe
  • La fouille de données (Data Mining) : construction de modèles à partir des données selon des critères fixés au préalable, afin de trouver :
    • Des structures intéressantes sous-jacentes
    • Des motifs communs entre des groupes de données : analyse de comportements de consommation, reconnaissance d’objets (visages, schémas, formes syntaxiques, images…), aide au diagnostic médical (détection de symptômes communs sur des patients connus et catégorisation de nouveaux patients en risque estimé, au vu de leurs analyses médicales, de développer telle ou telle maladie)
    • Des déviations entre certains groupes
    • Des données aberrantes (détection de fraudes)
    • Des données manquantes
  • La compréhension du langage humain, en mettant en œuvre des logiques de traitement automatique du langage naturel (Natural Language Processing) :
    • Analyse de données textuelles non structurées produites par des humains et à destination d’autres humains (corpus d’articles, contenus de sites internet, discussions sous forme de chat récupérées sur les réseaux sociaux, scripts d’appels) : voir partie « Fouille de texte »
    • Analyse de données sonores produites par des êtres humains pour des applications de reconnaissance vocale
  • La vision par ordinateur, permettant la reconnaissance de l’espace environnant (route, trottoirs, poteaux, panneaux …) et des objets y évoluant (piétons, vélos, autres véhicules…) par des techniques de vision par ordinateur (Computer Vision)
  • L’analyse robuste des données bruitées ou incomplètes

Apprentissage profond (Deep Learning)

Les algorithmes d’apprentissage profond extraient des abstractions complexes de haut niveau, depuis des structures complexes de données (formats variés et/ou provenant de diverses sources), de manière non supervisée, au travers d’un processus d’apprentissage stratifié hiérarchiquement. Cette capacité en fait un outil remarquable pour aborder de grands défis des mégadonnées (celles-ci étant largement non catégorisées et non structurées) : la reconnaissance d’images, le traitement automatique du langage naturel pour la fouille de texte et la reconnaissance vocale, l’analyse de vidéos, la fouille de flots de données…

De plus, les représentations abstraites fournies par les algorithmes d’apprentissage profond peuvent permettre de séparer les différentes sources de variations dans les données (pour une image, ce sera par exemple la lumière, les formes et les matériaux des objets), et ainsi de mettre à jour les facteurs de variation dans celles-ci, qui proviennent majoritairement d’interactions complexes entre plusieurs sources de données. Ils révèlent aussi des associations complexes entre ces données, ce qui mène à une compréhension plus fine de celles-ci. Enfin, en stockant les caractéristiques extraites dans des vecteurs, ils rendent possible une comparaison basée sur ces vecteurs de représentation, qui est plus efficace qu’une comparaison directe depuis les données brutes. Par exemple, dans la fouille de texte, les données avec des vecteurs de représentations similaires ont de fortes chances d’avoir une signification sémantique similaire.

Les algorithmes d’apprentissage profond sont constitués d’architectures profondes comportant des couches consécutives. Chaque couche applique une transformation non linéaire sur son entrée et fournit une représentation à sa sortie. L’objectif est d’apprendre une représentation abstraite et complexe des données de manière hiérarchique, en faisant passer les données à travers de multiples couches de transformation. Par conséquent, des abstractions complexes sont apprises à un certain niveau, à partir d’abstractions plus simples formulées lors de l’étape précédente dans la structure multicouches. Les données sensorielles (des pixels dans une image, par exemple) sont injectées dans la première couche. Par la suite, la sortie de chaque couche est connectée à l’entrée de la couche suivante. Plus les données traversent de couches dans l’architecture profonde, plus les transformations non linéaires vont être complexes. La représentation finale est alors une fonction fortement non linéaire des données d’entrée, qui capture les facteurs sous-jacents explicitant les données.

Par exemple, à partir d’images de visages, la première couche de l’algorithme d’apprentissage profond va être capable d’apprendre à reconnaitre les bords et les arêtes dans différentes orientations, puis dans la seconde couche, il va combiner ces arêtes pour apprendre des caractéristiques plus complexes comme les différentes parties du visage (lèvres, nez, yeux). Dans la troisième couche, il va associer ces caractéristiques pour apprendre des caractéristiques encore plus complexes comme les formes des visages de différentes personnes.

Les deux blocs de construction fondamentaux d’une couche d’algorithme d’apprentissage non supervisé sont les Autoencodeurs (Autoencoders) et les Machines de Boltzmann Restreint (Restricted Boltzmann Machines – RBMs). Ils sont souvent associés pour construire des modèles profonds comme les Autoencodeurs empilés (stacked Autoencoders) et les Réseaux de Conviction Profonde (Deep Belief Networks).

Les Autoencodeurs sont des réseaux construits sur trois couches : la couche d’entrée, la couche cachée, la couche de sortie. Ils essaient d’apprendre des représentations de l’entrée dans la couche cachée d’une manière qui rend possible la reconstruction de l’entrée dans la couche de sortie, en se basant sur les représentations intermédiaires. Ainsi, le but de l’Autoencodeur est que l’objet en sortie soit le même que celui en entrée, grâce à un apprentissage de ses paramètres de telle manière qu’il minimise l’erreur de reconstruction. Cette minimisation est obtenue par des algorithmes de descente de gradient stochastique (Stochastic Gradient Descent).

L’autre algorithme non supervisé à couche simple qui est utilisé pour la construction de Réseaux de Conviction Profonde (Deep Belief Networks) est celui relatif aux Machines de Boltzmann Restreint (Restricted Boltzmann Machines – RBMs). Il contient une couche visible et une couche cachée, et est capable d’apprendre une distribution de probabilités sur un lot d’entrées. La restriction est la suivante : il n’y a aucune interaction entre les unités d’une même couche, et les connections se font uniquement entre les unités de couches différentes.

Parmi les algorithmes d’apprentissage profond les plus performants pour la reconnaissance non supervisée d’images non catégorisées figurent par exemple : les réseaux de neurones convolutifs (Convolutional Neural Networks), les réseaux neuronaux profonds (Deep Neural Networks) à autoencodeurs épars (Sparse Autoencoder) connectés utilisant des méthodes de descente de gradient stochastique (Stochastic Gradient Descent), les réseaux neuronaux récursifs (Recursive Neural Networks).

La section « Fouille de flots de données » ci-dessous détaille les techniques d’apprentissage profond qui sont performantes dans ce type d’analyse : autoencodeurs débruiteurs (Denoising Autoencoders), réseaux de conviction profonde adaptatifs (Adaptive Deep Belief Networks).

Calcul parallèle

Le calcul parallèle permet de traiter de grandes quantités de données en les partitionnant et en distribuant les calculs sur plusieurs machines. La première étape consiste en une analyse globale du problème exécutée par un nœud spécifique. Ce nœud découpe le problème en sous-problèmes, et délègue ensuite la résolution de ces sous-problèmes à d’autres nœuds de traitements, afin qu’ils soient traités en parallèle. Ces nœuds font ensuite remonter leurs résultats au nœud qui les avait sollicités. Ce dernier synthétise les retours et restitue la solution.

Fouille de flots de données

Lorsqu’il s’agit de requêter un flot de données rapide et variable (capteurs industriels et domotiques, transactions financières, télécommunications, médias en ligne, voiture connectée…), il n’est pas toujours possible de produire des réponses exactes aux requêtes sur ces flots. Cependant, des techniques de réduction de données et de construction de résumés comme les fenêtres glissantes (Sliding Window), le traitement par lots (Batch Processing), l’échantillonnage, les résumés (Sketches), les histogrammes, les ondelettes (Wavelets), et les requêtes adaptatives permettent d’interroger des flots de données, dont l’intensité et les caractéristiques peuvent varier considérablement. Ainsi, un système de traitement des flots de données se doit d’être adapté à ces variations, notamment en ce qui concerne la gestion de la mémoire disponible pour leur traitement, notion qui est prise en tenaille entre la précision requise pour les résultats des requêtes et la latence de livraison de ces résultats. De nouveaux algorithmes ont donc été optimisés en temps de traitement, et en occupation mémoire, pour répondre à ces contraintes de fouille et d’analyse de flots de données : l’approximation et l’adaptabilité. De plus, de nouvelles contraintes apparaissent lorsque l’on considère la richesse souhaitée des résumés des données, et la complexité de la structure de ces données.

Les fenêtres glissantes

Une technique pour produire une réponse par approximation à une requête sur un flot de données, est de faire une requête non pas sur tout l’historique passé du flot de données, mais plutôt sur une fenêtre glissante (Sliding Window) du passé récent du flot. Les fenêtres glissantes empêchent les données anciennes d’influencer les statistiques d’analyse, et sont un outil de choix pour faire face aux problèmes de limitation de mémoire disponible pour le traitement des données.

Le traitement par lots, l’échantillonnage, les résumés

Les techniques produisant des réponses par approximation ne prennent pas en compte l’intégralité des éléments d’un flot, mais se résolvent plutôt à faire de l’échantillonnage (Sampling) ou du traitement par lots (Batch Processing), et ce afin d’en accélérer le traitement. Une requête sur un flot de données utilise une structure de données qu’elle maintient de manière incrémentale, grâce à deux opérations : la mise à jour des données au fur et à mesure que de nouveaux éléments arrivent, et le calcul de la réponse à la requête sur le flot de nouvelles données. L’objectif est alors de calculer la réponse à la mise à jour des données en un temps inférieur au temps moyen d’arrivée des nouvelles données.

Le traitement par lots

Le premier scénario est celui d’une phase rapide de mise à jour des données, mais d’une phase lente de calcul de la réponse à la requête. Dans ce cas, la solution naturelle est le traitement par lots (Batch Processing). Plutôt que de produire des réponses actualisées continuellement, les données sont mémorisées aussitôt qu’elles arrivent, et la réponse à la requête est calculée périodiquement quand le système en a la capacité. Ainsi, les réponses à la requête ne sont qu’approximatives dans le sens qu’elles ne représentent la réponse exacte que dans un passé proche, au lieu d’être exactes à l’instant présent. Cette méthode sacrifie l’instantanéité de la réponse à une requête au profit de la précision, retirant alors toute incertitude quant à celle-ci. Cette méthode est particulièrement adaptée pour les flots de données à hauts pics d’arrivées : l’algorithme peut absorber le taux moyen du flot, en le mémorisant quand il y a un pic d’arrivées de données, tout en refaisant son retard durant les périodes plus calmes.

L’échantillonnage

Dans le second scénario, la phase de calcul de la réponse à la requête est rapide, alors que la phase de mise à jour des données est lente. Il est alors futile de vouloir utiliser toutes les données, vu qu’elles ne pourront pas toutes être traitées. Ainsi, des ensembles de données sont ignorés, pour que la requête soit évaluée sur un échantillon du flot de données plutôt que sur son intégralité. Une réponse par approximation est obtenue, dont les bornes de confiance sur le degré d’erreur peuvent être estimées. Cependant, cette méthode n’est pas adaptée dans de nombreuses situations, comme pour les requêtes impliquant des filtres sélectifs ou jointures (Join Query) permettant d’associer des données par le biais d’un lien logique. D’autre part, l’échantillonnage stratifié (Stratified Sampling) est une alternative à l’échantillonnage uniforme, et réduit l’erreur due à la variance dans les données et celle due aux requêtes groupées (Group-By Queries). Enfin, l’échantillonnage de réservoir (Reservoir Sampling) est tout à fait adapté à l’analyse de flots de données, n’ayant besoin de passer qu’une fois sur l’ensemble des données pour en tirer de l’information.

Les résumés

Pour les requêtes sur des flots de données hétérogènes, il est souhaitable d’en approximer la structure au travers de techniques de réduction des données comme la construction de résumés (Sketches), afin de limiter le temps de calcul par donnée au minimum. Les techniques de résumés utilisent une faible quantité de mémoire pour estimer des réponses à des requêtes sur les données, notamment au travers de concepts tels que les moments fréquentiels (Frequency Moment, Fi), qui capturent des statistiques de distribution sur un ensemble de données, comme le nombre distinct de valeurs (F0), la longueur de la séquence (F1), l’index d’homogénéité de Gini (F2),  la multiplicité de l’objet le plus représenté (F∞).

Par exemple, les histogrammes sont des structures de résumé des données qui capturent succinctement des distributions de valeurs d’un ensemble de données, et sont utilisés pour l’estimation de la taille d’une requête, l’approximation de la réponse à une requête, la fouille de données. Il existe différents types d’histogrammes suivant le but recherché :

  • L’histogramme V-optimal (V-Optimal Histogram) approche la distribution d’un ensemble de valeurs.
  • L’histogramme à largeur égale (Equi-Width Histogram) divise le domaine en sous-domaines en répartissant les valeurs de manière uniforme. Cette technique caractérise les distributions de données d’une manière qui est peu sensible aux cas particuliers.
  • L’histogramme biaisé (End-Biased Histogram) va compter les fréquences d’occurrence de données si celles-ci sont supérieures à un seuil, et approcher le comptage des autres données par une distribution uniforme. Ainsi, les requêtes iceberg (Iceberg Queries) vont compter des événements sur un attribut pour finir par trouver des valeurs dépassant un certain seuil, ce qui peut par exemple être intéressant pour des applications de fouille de données, de gestion de stock, de détection de plagiat, de classement, d’analyse de tendances.

D’autre part, l’analyse en ondelettes est aussi utilisée pour produire des résumés de données, ou faire de la compression de données (et notamment de la compression d’image). Cette méthode projette un signal (un ensemble de valeurs de données) sur une base orthogonale de vecteurs pour obtenir des coefficients d’ondelettes, ces derniers permettant la reconstruction du signal original (les données, dans ce cas) avec une très bonne approximation. L’analyse en ondelettes est efficace pour les tâches d’estimation de la sélectivité, d’approximation des cubes (Data Cube Approximation) pour explorer les données selon différents axes d’analyse et sur plusieurs niveaux d’abstraction, ou de calcul d’agrégats multidimensionnels (Multi-Dimensional Aggregates). Il a été prouvé que l’analyse en ondelettes produit des estimations plus précises que les histogrammes avec la même quantité de mémoire.

Les opérateurs bloquants

Les opérateurs de classement et d’agrégation (somme, comptage, minimum, maximum, moyenne) sont autant d’opérateurs de requêtes bloquants, car ils sont donc incapables de produire une sortie tant qu’ils n’ont pas vu tout le flot de données en entrée. De tels opérateurs sont problématiques lorsque l’on considère l’interrogation continue d’un flot de données au travers d’un arbre de requêtes, par lequel les données entrent par les feuilles, et les réponses aux requêtes finales sortent par les racines. Une approche pour résoudre ces problèmes d’incorporation d’opérateurs bloquants est l’insertion d’informations (appelées ponctuations) directement dans le flot de données, à propos de ce qui est susceptible d’apparaitre dans le reliquat du flot. Par exemple, l’insertion d’un attribut seuil dans le flot de données va permettre à un opérateur d’agrégation qui était en train de classer les données par périodes d’envoyer ses résultats pour toutes les données étiquetées comme ayant une ancienneté inférieure à ce seuil. De plus, un filtre sélectif ou jointure (Join Operator) pourra alors déverser tous ses états sauvegardés, en rapport avec les données vues précédemment, dans le flot relatif aux données inférieures au seuil, réduisant ainsi la mémoire occupée.

L’apprentissage profond

Les algorithmes d’apprentissage profond peuvent être employés pour de l’apprentissage incrémental de caractéristiques sur de très grandes bases de données, ou sur des flots de données, en utilisant des autoencodeurs débruiteurs (Denoising Autoencoders). Ceux-ci extraient des caractéristiques de manière robuste depuis une entrée corrompue par du bruit présent dans les données, et sont donc tout à fait indiqués pour des tâches de classification. Dans les autoencodeurs débruiteurs, la couche cachée (de l’architecture d’apprentissage profond) est composée d’un nombre de nœuds égal au nombre estimé de caractéristiques pouvant être extraites. De manière incrémentale, les échantillons de données qui n’entrent pas en conformité avec la fonction objectif (leur erreur de classification est par exemple supérieure à un certain seuil) sont collectés et utilisés pour ajouter de nouveaux nœuds à la couche cachée, ces nouveaux nœuds étant initialisés grâce à ces échantillons. Cependant, l’ajout monotone de caractéristiques peut mener à avoir de la redondance dans les caractéristiques extraites des données. Par conséquent, les caractéristiques similaires sont fusionnées de manière optimale pour produire un ensemble plus compact de caractéristiques.

Cette technique, performante pour l’extraction de caractéristiques depuis des flots de données, rend caduque le besoin d’une coûteuse validation croisée de sélection des caractéristiques pertinentes. Des résultats similaires sur des flots de données ont été obtenus par des Réseaux de Conviction Profonde Adaptatifs (Adaptive Deep Belief Networks).

Fouille de texte

Les techniques de traitement automatique du langage naturel (TALN) permettent d’analyser des données textuelles non structurées produites par des humains et à destination d’autres humains (corpus d’articles, contenus de sites internet, discussions sous forme de chat récupérées sur les réseaux sociaux, scripts d’appels). Ces techniques sont principalement statistiques, mais aussi symboliques, et rendent possibles l’acquisition lexicale et l’extraction de terminologie, la désambiguïsation sémantique, la reconnaissance d’entités nommées (noms propres, dates, quantités…), l’étiquetage syntaxique. Ainsi, les techniques de TALN statistique pour la fouille de texte sont capables de construire des modèles de langue par apprentissage, en construisant des distributions de probabilités décrivant comment les mots apparaissent les uns par rapport aux autres.

Un autre processus relatif au TALN est la reconnaissance d’entités nommées (Named Entity Recognition), qui identifie les éléments atomiques dans le texte, et les classe en catégories prédéfinies (par exemple, noms, lieux, dates). D’autre part, une famille d’algorithmes, les « topic models », permet de découvrir les principaux thèmes qui imprègnent une grande collection non structurée de documents. Dans ce cas, un thème n’est pas représenté par un mot mais par un vecteur de mots, chacun associé à un score. Plusieurs variantes ont été proposées, parmi lesquelles les « Author Topic Models », qui permettent d’identifier les thèmes qui caractérisent les auteurs et les « Sentiment Topic Models » qui proposent de différencier les thèmes qui font l’objet de sentiments positifs des autres.

Par exemple, l’allocation de Dirichlet latente (LDA – Latent Dirichlet Allocation) s’appuie sur une approche générative (modélisation de probabilités jointes et non pas conditionnelles). Elle pose l’hypothèse que chaque thème est associé à une distribution probabiliste de mots (une fois un thème choisi, il est possible de générer un texte à son sujet) mais aussi que chaque document correspond à une distribution probabiliste de thèmes (il est possible de générer un document comme étant une mixture de thèmes). Utilisée en analyse de documents, la LDA permet d’obtenir la liste des thèmes (une liste de listes de mots) qui les caractérisent au mieux.

Un autre pan de cette thématique est la fouille ou analyse d’opinion ou de sentiments (Sentiment Analysis), qui se réfère aux techniques pour extraire, classer, comprendre et évaluer les sentiments exprimés dans diverses sources en ligne, dans des commentaires sur les médias sociaux, et dans d’autres contenus générés par les utilisateurs. L’analyse de sentiments est l’objet de plusieurs variantes destinées à estimer l’affect, la subjectivité, et d’autres états émotionnels dans les textes en ligne. Internet et le contenu des médias sociaux ont créé de nombreuses opportunités passionnantes pour comprendre les opinions du grand public et des consommateurs en ce qui concerne les événements sociaux, les mouvements politiques, les stratégies d’entreprise, les campagnes de marketing, et les préférences de produits.

Dans le domaine multimédia, ces approches de fouille de texte sont exploitées via des modules de transcription automatique de la parole en texte, de reconnaissance du locuteur pour distinguer les intervenants dans une bande audio et structurer le document en sortie ou d’analyse d’images pour différencier des plans dans une vidéo.

Fusion de données

La fusion de données désigne un ensemble de méthodes scientifiques visant à combiner des données ayant des formats différents, depuis des sources indépendantes, pour en dériver de nouveaux enseignements. La fusion de données permet en outre de garantir la robustesse de l’information grâce aux signaux redondants extraits des données (référencement croisé intelligent), ainsi que la simplicité et l’interprétabilité de la visualisation de l’information en supprimant cette redondance de signaux. Cette technique peut par exemple être employée dans l’automobile pour le véhicule autonome (fusion de données de capteurs (images, radar, lidar, ultrasons) pour reconnaitre l’environnement (route, piéton, panneaux, autres véhicules)), les systèmes de recommandation pour la publicité (fusion de données récoltées (recherches internet, pages visitées et fréquence de visite, clics) afin de déduire un comportement et de comprendre un besoin).

Théorie des graphes

La théorie des graphes appliquée aux mégadonnées permet de structurer la donnée en la représentant sous la forme de graphes, ce qui facilite la fouille de donnée (Data Mining) ultérieure, afin d’en extraire de l’information pertinente pour un besoin spécifique.

Le modèle s’appuie sur la notion de nœuds, de relations et de propriétés qui leur sont rattachées. Les entités sont alors les nœuds du graphe (personne, centre d’intérêt, entreprise,…) et les relations que partagent les entités sont alors des arcs qui relient ces entités (amitié, relation de travail, intérêt pour une activité…). Ce modèle est notamment adapté au traitement des données des réseaux sociaux. Les systèmes NoSQL orientés graphe trouvent un certain intérêt pour des applications dans le domaine de la toile sémantique (modèle qui permet aux données d’être partagées et réutilisées entre plusieurs applications, entreprises et groupes d’utilisateurs; afin de permettre aux utilisateurs de trouver, partager et combiner l’information plus  facilement, sans intermédiaires), dans la gestion de bases de données de triplets RDF qui permettent de décrire les métadonnées (sujet, prédicat ou type d’arête, objet ou valeur littérale), de stocker des connaissances ou ontologies, et de traiter de telles descriptions de manière automatique, un triplet étant une arête d’un graphe.

Enjeux actuels et futurs liés aux mégadonnées

D’après notre expérience et les retours que nous avons eus de la part des entreprises, voici les principaux enjeux liés aux mégadonnées et à leur analyse :

  1. La modélisation de la donnée
    Extraction de la donnée pertinente depuis des bases de données très hétérogènes et non structurées
    Amélioration des techniques de traitement automatique du langage naturel pour une reconnaissance automatique de plus en plus fine des éléments de langage
    Structuration et catégorisation de la donnée pour un ciblage intelligent de la donnée pertinente pour l’utilisateur
    Automatisation et généralisation des algorithmes de caractérisation et de représentation des données brutes (Feature Engineering)
    Définition d’indicateurs clés d’interprétation des résultats pour l’utilisateur
    Développement de techniques d’anonymisation de la donnée lors de la fouille de données, et conception d’outils d’impénétrabilité de la donnée (pour répondre aux préoccupations croissantes de respect de la vie privée dans diverses applications de commerce en ligne et de santé)
    Conception de filtres pertinents pour l’utilisateur pour trier la donnée
    Ajout d’informations contextuelles sur la donnée pour juger de sa valeur
    Développement de techniques de représentation de l’incertitude
    Qualification de la qualité de la donnée par l’attribution de notes grâce à des critères définis par l’utilisateur
    Développement de techniques de réduction des données : résumés (Sketches), ondelettes…
  2. Le calcul parallèle
    Optimisation du calcul parallèle afin de pouvoir traiter de très gros volumes de données au sein d’une architecture distribuée
    Distribution des tâches effectuées par les algorithmes de fouille de données (stockées ou en flots) sur des machines multi-cœurs
    Compression de données adaptée au calcul parallèle
  3. Le traitement de flots de données
    Amélioration des techniques relatives à : ordonnancement, marquage temporel, requêtes sur les fenêtres glissantes (définition des limites temporelles, développement de l’algèbre relationnelle pour incorporer des spécifications explicites, impact sur l’optimisation des requêtes…), amélioration de l’incorporation de requêtes bloquantes (classement, comptage, minimum, maximum, moyenne), contournement des opérateurs bloquants et quantification de l’erreur introduite par de tels opérateurs par rapport aux opérateurs bloquants, optimisation de requête, réduction de données (ondelettes, algorithmes de listes efficaces (List-Efficient Streaming Algorithms)…), construction de résumés, calcul des coefficients d’ondelettes (Top Wavelet Coefficients), dilemme entre précision de la réponse à une requête et gestion de l’allocation de mémoire, allocation d’espace entre différents processus de résumés de données rivalisant pour le même espace, approximation des réponses aux requêtes, quantification de l’incertitude de la réponse approximative d’un algorithme d’échantillonnage par rapport à la réponse exacte, traitement en temps réel des requêtes sur les données
    Développement de méthodes relatives à : prédiction sur les séries temporelles, classification (apprentissage statistique supervisé ou non), construction incrémentale de modèles (apprentissage profond…), prédiction de diffusion, allocation dynamique d’espace pour pouvoir s’adapter aux distributions variées des données et aux charges variables de requête, construction d’une métrique globale de mesure de l’erreur pour les résumés de données
    Développement d’outils de visualisation adaptés aux flots de données, permettant un bon compromis entre aperçu des données traitées et qualité du résumé proposé
  4. La visualisation des données
    Pour rendre clairement interprétable une masse de données en la représentant de façon simple et exhaustive sous la forme d’objets visuels : tableaux, graphes, réseaux, cartes de territoires, espace de points,…
    Développement de méthodes de réalité augmentée pour superposer en temps réel les résultats de l’analyse des données sur leurs supports générateurs, c’est-à-dire transposer les résultats informatiques dans le domaine physique réel, afin d’augmenter la capacité d’interprétation de ces résultats d’analyse
  5. De nouvelles manières d’interaction avec les données
    Manipulation à distance par joystick, interaction par le toucher, réalité augmentée,…
  6. La logistique de l’information
    Garantie de l’acheminement de l’information pertinente au bon endroit au bon moment
    Développement de méthodes de traçabilité des mégadonnées afin d’être capable d’évaluer leur provenance, et de garantir une plus grande confiance dans leur validité/véracité
  7. Les méthodes relatives à l’apprentissage profond
  • Détermination du nombre optimal de paramètres décrivant un modèle de très grande taille
  • Amélioration de l’estimation du volume de données d’entrée nécessaire pour entrainer les algorithmes, et avoir de bonnes représentations des données, pour que celles-ci puissent ensuite être généralisées sur des données nouvelles
  • Amélioration du processus d’apprentissage, en augmentant le potentiel de généralité des motifs et représentations extraits des mégadonnées, par :
    • La quantification d’incertitude sur le phénomène d’adaptation de domaine (qui symbolise la différence de distributions en variétés entre les données d’entrainement de l’algorithme et celle des données de test)
    • La prise en compte l’information disponible sur le changement de distribution entre les données d’entrainement et celles de test
    • L’interpolation des abstractions intermédiaires extraites entre les domaines des données d’entrainement et de test
  • Définition d’un critère permettant d’extraire des abstractions de données capables de fournir du sens (le critère d’erreur de mauvaise classification, vu que la plupart des problèmes de mégadonnées relèvent de données majoritairement non catégorisées)
  • Incorporation de méthodes d’entrainement semi-supervisé ou d’apprentissage actif, afin de définir des critères permettant de juger de la qualité de l’apprentissage des abstractions de données, en réglant les abstractions apprises des données de manière non supervisée par l’exploitation des données étiquetées de manière supervisée