Petit algo deviendra grand

jvJean Vuillemin Professeur à l’École Normale Supérieure, nous parle ici de multiplication égyptienne. Pourquoi ? Car cet algorithme, très ancien, est redevenu un outil majeur, sous le nom de produit binaire. Le lecteur intéressé par les détails historiques se reportera à la version disponible ici

En 1703, Leibnitz publie son Explication de l’arithmétique binaire. Il n’utilise qu’une seule page pour donner la table des nombres binaires et décrire les 4 opérations +, −, ×, ÷ (addition, soustraction, multiplication et division). Les trois autres pages font une large place aux considérations historiques : « cette Arithmétique par 0 & 1 se trouve contenir le mystère des lignes d’un ancien Roi & Philosophe nommé Fohy, qu’on croit avoir vécu il y a plus de 4000 ans, et que les Chinois regardent comme le Fondateur de leur Empire et de leur Science ». Pouvait-il deviner que, un peu moins de trois siècles plus tard, des milliards de pucerons utiliseraient ce calcul ?

Et on retrouve cet algorithme de la multiplication sur l’antique Papyrus de Rhind !

L’égyptologue écossais Rhind achète à Louxor un Papyrus qui porte maintenant son nom et qui est conservé au British Museum. Ce Papyrus date des Hyksos (vers – 1800). Son auteur, le scribe Ahmès, indique reprendre des documents du Moyen Empire (vers – 2000).

rhind_mathematical_papyrus-copy
Détail de la première moitié du papyrus Rhind, original 199,5 × 32 cm, British Museum (EA 10058).

Ce document contient une initiation à l’Art du Calcul, avec près d’une centaine d’exemples pratiques, explicites et instructifs. Faisons abstraction des premières lectures – allez voir l’article de Jean Vuillemin qui étudie le sujet en détail – et ignorons tout ce qui concerne les fractions et le texte illustratif. Le fragment de fond ainsi extrait contient une dizaine d’exemples de produits entiers avec un algorithme commun qui est la Multiplication égyptienne. Cet algorithme jusqu’à aujourd’hui tient une place unique dans l’Histoire du Calcul.

L’approche décrite réduit la multiplication à une suite d’opérations primitives, exclusivement déterminée par les valeurs des opérandes entiers. Elle est donc indépendante du choix de la numération (base de représentation des nombres), modulo les trois opérations primitives que nous allons voir.

Le carré de 12, en hiéroglyphe et en hiératique extrait de K. Sethe.

Regardons comment ça marche !

Un peu de patience et d’attention, vous verrez ce n’est pas dur… Calculons le carré de 12, donc 12 * 12 en base 10. Le point clé est que nous ne « savons pas » faire de multiplication. Ici, on a juste le droit de diviser et multiplier par deux, et faire des additions.

On cherche avec cet algorithme à obtenir a*b (la multiplication de a par b). Pour cela, on effectue le calcul en 3 colonnes comme sur la figure ci-dessous, avec une ligne pour chaque étape (itération). On démarre la 1ère ligne avec la valeur de a et b de départ (ici 12 * 12).

me-udepart

On calcule une nouvelle ligne ainsi, dans la colonne de a en calculant la division entière par 2 de la dernière valeur (ici 12 divisé par 2 = 6). On passe à la ligne suivante dans la colonne b en dupliquant b, ce qui revient à le multiplier par 2 (ici 12*2 = 24). Pour la colonne c, si le résultat précédent de la colonne a est pair, on recopie la valeur précédente de la colonne c sinon (résultat impair) on fait la somme des colonnes précédentes b et c.

me-1ere-etape     . . .    me-3eme-etape

Et on obtient à la fin

me-3eme-etape

Autrement dit, on «bascule » de division par deux en multiplication par deux, la valeur du nombre a sur celui du nombre b.

Mais à quoi bon faire ainsi ?

Oui ! Pour quoi, me direz vous on ressort ce vieil algorithme…Eh bien parce que le Produit Binaire[1] de Leibnitz n’est rien d’autre que la Multiplication Égyptienne, en base 2. Ce petit algorithme, du rang de Curiosité Mathématique, va passer à celui d’Algorithme Fondamental avec les premiers ordinateurs, sous l’influence de Von Neumann et de bien d’autres.

En effet, la particularité de cet algorithme, c’est qu’il est très rapide:  chaque division divise a par 2 (élimine un bit de a, diront les informaticiens), jusqu’à ce que a = 0.

Plus précisément: le nombre de lignes du tableau est donc égal à la longueur de l’écriture binaire de l’opérande a, soit
 l = l2(a) = ⌈log2(a + 1)⌉. Le calcul de a*b nécessite l= l2(a) division et l−1 duplications; ce dernier nombre correspond au nombre de bits non nuls dans l’écriture binaire de a.

Attendez ! En langage plus simple: vous prenez un nombre, disons 1024, divisons le par 2, jusqu’à trouver 0 (ici, 1024 → 512 → 256 → 128 → 64 → 32 → 16→ 8 →  4 →  2 → 1→ 0) on a fait 11 divisions alors que le nombre est un peu plus grand que 1000, bref on réduit très rapidement même un très grand nombre en le divisant successivement par deux (pour un milliard on ne fait qu’une trentaine de divisions : essayez :)). C’est pour cela que l’algorithme est très rapide (et oui c’est bien cela ce fameux logarithme que l’on apprend en maths).

La bonne nouvelle est que pour les processeurs qui travaillent en base 2, l’addition est une opération simple et la duplication (la division par 2 d’un côté et multiplication par 2 de l’autre) n’est qu’un décalage des deux nombres.

Plus précisément c’est un décalage vers les poids forts (à gauche) d’un bit, avec l’insertion d’un 0 en poids faible. La division est un décalage dans l’autre sens, et la parité c’est le bit de poids faible ainsi expulsé ! Le calcul des 3 opérations primitives devient alors simple et rapide. Pour vous en convaincre le même exemple en base 2 :

me-4eme-etape-en-binaire
La multiplication de 12 * 12 en binaire.

c’est finalement encore plus simple en binaire, non ?

Tout microprocesseur moderne calcule chacune de ces opérations en quelques nanosecondes. Par souci d’économie, la grande majorité des processeurs ne dispose pas de multiplicateur câblé. On les dote alors d’un multiplieur logiciel en compilant le code de ce petit algorithme. Ce que le matériel ne peut pas faire directement, le logiciel le compense. C’est ainsi, que chaque microseconde, des milliards de circuits de notre monde numérique calculent à l’aide de la Multiplication égyptienne en base 2.

Jean Vuillemin (ENS, Paris) et Pierre Paradinas (Cnam, Paris).

Pour aller plus loin:

  • Retrouver l’article complet de Jean sur ce lien;

[1] Ici le mot binaire n’a rien à voir avec le titre du blog.

Les algorithmes en question

La CNIL lance un vaste débat public sur les algorithmes. On s’en réjouit. Nous soutenons cette initiative et voulons nous mettre au service de ce débat.

Parler des algorithmes, vraiment ?

Mais, de quoi parle-t-on ? Voici ce qu’on a pu en dire :

Cette définition, publiée par la CNIL, accumule les imprécisions*, montre combien tout se mélange dans nos esprits.

Quand les algorithmes deviennent aussi importants dans nos vies, quand l’État s’en inquiète au point de vouloir les réguler, il faut faire attention à comprendre ce qu’on dit.

La CNIL, a d’ailleurs corrigé sa définition suite aux nombres réations que sa publication a suscitées.

(*) un algorithme n’est pas une formule mathématique, ce n’est pas une formule, et ce n’est pas des maths; des modèles statistiques, il y en a parfois, mais c’est aussi tant d’autres choses…

Alors c’est quoi un algorithme ?

Cela s’explique en quelques secondes à une ou un collégien-ne :

et pour aller au delà de cette notion de base, la Société Informatique de France a proposé une définition de l’Informatique : Informatique – Quèsaco ?. Tandis qu’un livre arrive nous expliquer simplement ce que sont les algorithmes  Le temps des Algorithmes.

Pour en avoir plus on peut profiter de l’interview des auteurs par Annabelle Laurent.

Qui a intérêt à nous laisser dans l’ignorance ?

Un article du monde laisse à penser que le débat sur ce que l’on fait aujourd’hui des algorithmes pourrait se faire sans ceux qui les créent et qui les comprennent, c’est-à-dire les informaticiennes et les informaticiens.

On se retrouve du coup dans une démarche qui conforte ceux qui sont derrière les algorithmes pour faire du profit, dominer les autres, nous instrumentaliser au travers de nos données. Ceux qui  défendent leurs intérêts en la matière, à notre détriment.

Le principe est de personnifier les algorithmes pour leur attribuer finalement la responsabilité de la façon dont ils sont utilisés. « Ce n’est pas moi, M’sieur, c’est mon algorithme.

Pour cela il faut accepter l’idée que finalement les gens ne comprennent pas et ne comprendront jamais trop bien comment ça marche. Poser l’obscurantisme comme un préalable. Il faut donc en exclure les chercheur-e-s en science informatique ».

Le débat est-il vraiment sur les algorithmes ?

Heureusement, cet obscurantisme va prendre fin : les algorithmes s’apprennent désormais au lycée, et maintenant au collège et se découvrent même en primaire. Nos enfants* ne diront bientôt plus « les algorithmes vont me prendre mon job, me condamner à mort … ». Ils se tourneront non pas vers les algorithmes mais vers ceux qui utilisent les algorithmes et les dénonceront d’autant mieux qu’ils comprendront comment c’est fait.

Que le débat commence.

Toute l’équipe de Binaire.

(*) Et les plus grands peuvent tout de même profiter de Binaire pour devenir des citoyennes et citoyens éclairés sur le sujet 🙂

Le temps de Gilles Dowek et Serge Abiteboul

abitebouldowek-2Cher Serge,

Ce vendredi 27 janvier parait ce livre qui vous tient tant à cœur à Gilles et toi:  « Le temps des algorithmes » aux éditions du Pommier. Tu ne voulais pas (par déontologie) en faire la pub sur ce blog dont tu es le fondateur, mais nous lisons régulièrement vos écrits et sommes intimement convaincus que cet ouvrage nous aidera à nous poser des questions fondamentales sur la place des algorithmes dans notre société.

 

abitebouldowek-1
Alors l’ensemble de l’équipe de Binaire (sauf toi !) avons décidé, comme pour toutes les autres productions de ce type, d’en faire très simplement l’annonce. En attendant, compte sur nous, pour en faire aussi la critique 🙂

Amitiés.

Pour accéder aux critiques du livre c’est ici : le-temps-des-algorithmes-le-cadeau

Un turbo dans l’algo

Un nouvel « Entretien autour de l’informatique  ». Serge Abiteboul  et Christine Froidevaux interviewent Claude Berrou, un informaticien et électronicien, membre de l’Académie des sciences. Claude Berrou est Professeur à IMT Atlantique. Il est notamment connu pour ses travaux sur les turbocodes, très utilisés en téléphonie mobile. Sa recherche porte aujourd’hui sur les neurosciences informationnelles.

Cet article est publié en collaboration avec TheConversation
English version

Claude Berrou, Page perso
Claude Berrou, Page perso

Binaire : Tu étais électronicien au départ, comment es-tu arrivé à l’informatique ?
CB : Je suis un randonneur des sciences. Après une formation initiale à l’école qui s’appelle aujourd’hui Phelma, j’ai fait un peu de tout : électronique, traitement de signal, architecture de circuits. Puis je suis arrivé à l’informatique… par hasard, avec les codes correcteurs et la théorie de l’information.

Binaire : Une question que nous adorons poser à Binaire, c’est quoi l’informatique pour toi ?
CB : J’ai un aphorisme : l’informatique est à la science, ce que le langage naturel est à l’intelligence. Avant l’informatique, la science, c’étaient des équations, des formules et des théorèmes. L’informatique a permis de mettre en place des séquences d’opérations, des processus, des procédures, pour pouvoir traiter des problèmes complexes. Du coup, c’est presque synonyme de langage et c’est très comparable au langage naturel qui oblige à structurer. De même qu’on a un langage commun, l’informatique propose des langages compréhensibles par tous.

Binaire : Tu as travaillé sur les codes correcteurs. Tu peux nous dire à quoi ça sert ?
CB : Quand on transmet de l’information, on veut récupérer le message émis parfaitement. Même si on a beaucoup d’utilisateurs, et une bande passante limitée. Si le message est binaire, à cause du bruit et des interférences qui perturbent la ligne, certains 0 émis vont devenir des 1 reçus, des 1 devenir des 0. Plus le bruit est important par rapport au signal, plus fréquentes sont de telles erreurs. Le rapport signal sur bruit peut être dégradé, par exemple, par de mauvaises conditions météo ou par des perturbations causées par d’autres communications qui s’exécutent en même temps. Avec autant d’erreurs, la qualité est déplorable. Pour éviter cela, on code l’information à l’émission en ajoutant de la redondance. Le défi, c’est d’être capable de récupérer relativement bien le message sans avoir à mettre trop de redondance, sans trop faire grossir le message. Nous avons un peu le même problème avec le stockage dans les mémoires de masse. Des bits peuvent permuter, peut-être à cause de l’usure du disque. On introduit aussi de la redondance dans ces systèmes pour pouvoir récupérer l’information.

Binaire : Tu nous parles de ta super invention, les turbocodes.
CB : Les turbocodes sont nés grâce au Titanic, lorsqu’il a fallu assurer la transmission sans câbles de vidéos pour visualiser cette épave (des travaux d’Alain Glavieux). Je me suis amusé à essayer de diminuer l’effet du bruit dans les transmissions, et j’ai pensé qu’on pourrait introduire dans le décodage, pour le traitement d’erreurs, le principe de contre-réaction, une notion classique en électronique.

Pour moi, l’interdisciplinarité est fondamentale ; l’innovation est souvent à l’interface des disciplines. Vous prenez une idée qui a prouvé qu’elle marchait quelque part dans les sciences, et vous essayez de l’adapter dans un tout autre contexte. L’idée à l’origine des turbocodes, c’est d’importer une technique d’électronique en informatique.

Quand on veut réaliser un amplificateur avec un gain élevé, on en met 2 ou 3 en série. Mais ça donne des trucs instables. Pour stabiliser le montage, on met en œuvre un principe de contre-réaction : renvoyer vers l’entrée de l’amplificateur une fraction de sa sortie, avec le signe « – » , cela atténue les variations intempestives.

Je suis parti d’un algorithme connu : l’algorithme de Viterbi. Il permet de corriger (s’il n’y a pas trop de bruit) les erreurs survenues lors d’une transmission à travers un canal bruité et peut donc être considéré comme un amplificateur de rapport signal sur bruit. Le décodeur de Viterbi connaît la loi algébrique qui a servi à construire la redondance du message codé et l’exploite dans un treillis (l’équivalent déterministe d’une chaîne de Markov) et délivre ainsi le message d’origine le plus probable. J’ai donc mis deux algorithmes de Viterbi en série. Et j’ai ensuite essayé d’implémenter la notion de contre-réaction dans le décodage. C’est délicat et je n’étais pas un expert du codage.

Un problème, c’est que l’algorithme de Viterbi fait des choix binaires : le bit a été permuté ou pas. Nous l’avons adapté, avec un collègue, Patrick Adde, pour qu’il fournisse des décisions probabilistes, ce qui améliore nettement la performance du décodeur qui suit.

Turbo, Lauri Rantala, Flikr
Turbo, Lauri Rantala, Flickr

Binaire : comment ça fonctionne ?
CB : Comme je l’ai expliqué, pour protéger un message, on ajoute de la redondance. Le turbocode réalise le codage sur deux dimensions. Une bonne analogie est une grille de mots croisés avec les dimensions verticale et horizontale. Si les définitions étaient parfaites, une seule dimension suffirait. On pourrait reconstruire la grille, par exemple, juste avec les définitions horizontales. Mais comme on ne sait pas toujours à quoi correspondent les définitions et qu’il peut y avoir des ambiguïtés (les analogues du bruit, des effacements de bits, etc.), on donne aussi les définitions verticales.

Le décodage ressemble un peu à ce que peut faire un cruciverbiste. Le décodeur travaille en ligne (il exploite les définitions horizontales), puis passe à la dimension verticale. Comme le cruciverbiste, le décodeur fait plusieurs passes pour reconstruire le message.

Avec tout ça, les turbocodes sont efficaces.

Binaire : On te croit. Des milliards d’objets utilisent cette technologie !
CB : Oui. Toutes les données médias sur la 3G et la 4G sont protégées par les turbocodes.

Claude Shannon, Wikipedia

Binaire : Cela nous conduit à un autre Claude : Claude Shannon et la théorie de l’information ?
CB : Oui avec cet algorithme, on est en plein dans la théorie de l’information. J’ai d’ailleurs contribué récemment à l’organisation du colloque de célébration du centième anniversaire de la naissance de Shannon à l’IHP, un colloque passionnant.

Shannon a montré que toute transmission (ou stockage) idéale devait normalement se faire avec deux opérations fondamentales. D’abord, pour diminuer la taille du message, on le compresse pour lui enlever le maximum de redondance inutile. Ensuite, pour se protéger contre les erreurs, on lui ajoute de la redondance intelligente.

Shannon a démontré les limites des codes correcteurs en 1948 ! Les turbocodes atteignent la limite théorique de Shannon, à quelques dixièmes de décibels près !

ccn
© Nicolas Rougier

Binaire : Et maintenant. Tu as glissé vers les neurosciences… 
CB : Ma recherche actuelle porte sur les neurosciences informationnelles. Récemment, vous avez interviewé Olivier Faugeras qui vous a parlé des neurosciences computationnelles, une approche assez différente.

Mon point de départ, c’est encore l’information, cette fois dans le cerveau. Le cortex humain est assimilable à un graphe, avec des milliards de nœuds et des milliers de milliards d’arêtes. Il y a des modules spécifiques, et entre les modules, il y a des liens de communication. Je suis persuadé que l’information mentale, portée par le cortex, est binaire.

Les théories classiques font l’hypothèse que l’information est stockée par les poids synaptiques, des poids sur les arêtes du graphe. Je fais une autre hypothèse. Pour moi, il y a trop de bruit dans le cerveau ; c’est trop fragile, inconstant, instable ; l’information ne peut pas être portée par des poids mais par des assemblées de nœuds. Ces nœuds forment une clique au sens géométrique du terme, c’est-à-dire qu’ils sont tous reliés deux à deux. Cela devient une information numérique.

Binaire : C’est là que nous allons retrouver le codage et la redondance ? Pour éviter que l’information ne se perde dans le cerveau, il y a aussi des redondances ?
CB : Oui. Pour l’école classique c’est-à-dire analogique, l’information est portée par les synapses. En ce cas, la redondance ne pourrait être assurée que par des répétitions : plusieurs arêtes porteraient la même information.

Selon notre approche, l’information est codée dans les connexions d’une assemblée de nœuds. La redondance est présente de façon naturelle dans ce type de codage. Prenez une clique de 10 nœuds dans un graphe. Vous avez 45 connexions dans la clique. Le nombre de connexions est grand par rapport au nombre de nœuds. Je m’appuie sur la règle de Hebb (1949) : lorsqu’un neurone A envoie des spikes et qu’un neurone B s’active systématiquement, la liaison entre A et B va se renforcer si elle existe, et si elle n’existe pas elle va être créée. La clique étant redondante, cela va résonner, une liaison altérée va se renforcer : grâce à la règle de Hebb on a une reconstruction en cas de dégradation. Nous avons bâti toute une théorie autour de ça.

Binaire : tu nous as largué. Pour faire simple, une clique porte un morceau d’information. Et le fait qu’il y ait tant de redondance dans la clique garantit la pérennité de l’information ?
CB :  Oui. Et en plus, la clique peut être l’élément de base d’une mémoire associative. Je vais pouvoir retrouver l’information complète à partir de certaines valeurs du contenu. Et ça, c’est dû à la structure fortement redondante des cliques.

Binaire : Votre travail consiste en quoi ?
CB : J’ai mis en place une équipe pluridisciplinaire composée de neuropsychologues, neurolinguistes, informaticiens, etc. Nous essayons de concevoir un démonstrateur, une machine inspirée par le modèle du cerveau que nous imaginons, à l’échelle informationnelle. Dans un ordinateur classique, la mémoire est d’un côté et le processeur de l’autre. Dans notre machine, comme dans le cerveau, tout est imbriqué.

Selon la théorie que nous développons (pas encore complètement publiée), l’information mentale s’appuie sur des petits bouts de connaissance qui sont stockés dans des cliques. Les cliques sont choisies au hasard. Mais quand c’est fait, elles sont définitives. D’un individu à un autre, ce ne sont pas les mêmes cliques qui portent la même information. J’aimerais arriver à faire émerger de l’intelligence artificielle avec ce modèle de machine.

Binaire : Quelle est ta vision de l’intelligence artificielle ? 
CB : Il y a en fait deux intelligences artificielles. Il y a d’abord celle qui s’intéresse aux sens, à la vision, à la reconnaissance de la parole par exemple. On commence à savoir faire cela avec le deep learning. Et puis, il y a celle qui nous permet d’imaginer et de créer, de savoir répondre à des questions inédites. Ça, on ne sait pas faire pour le moment. Pour moi, la seule façon d’avancer sur cette IA forte est de s’inspirer du cortex humain.

Ce sujet me passionne. J’aimerais le voir progresser et continuer à faire longtemps de la recherche.

Entretien recueilli par  Serge Abiteboul et Christine Froidevaux

Voir aussi dans Binaire, Shannon, information et Sudoku

 

L’optimisation est dans les crêpes

cohen-addadIl était une fois… la thèse de Vincent Cohen-Addad, faite à l’Université Paris 7 et à l’ENS. Pendant sa thèse, Vincent s’est demandé si des successions de petites modifications d’un bidule pouvaient permettre d’atteindre un bidule parfait. C’est bien sûr très important si le bidule est une pâte à crêpes, comme vous le verrez ci-dessous… mais aussi s’il s’agit d’un problème super dur en optimisation combinatoire ! Charlotte Truchet

Qu’est-ce qu’un algorithme ? Une suite d’instructions permettant de résoudre un problème. Nos vies de tous les jours s’articulent souvent autour d’algorithmes. Par exemple, si vous avez envie de crêpes ce soir, vous aurez peut-être recours à un algorithme pour résoudre cet épineux problème : comment réaliser une pâte à crêpes.

Si vous avez choisi une bonne recette de pâte à crêpes, et que vous suivez les instructions correctement, vous obtiendrez de bonnes crêpes et votre problème est résolu. L’algorithmique est précisément la science qui conçoit et évalue rigoureusement des algorithmes. Elle cherche à montrer mathématiquement qu’un algorithme apporte une solution à un problème (dans notre exemple : évitant de vous retrouver avec une flammekueche…), et ce après un nombre d’instructions raisonnables (garantissant que vous ne mourrez pas de faim avant que vos crêpes soient prêtes).

By David Monniaux - Own work, CC BY-SA 3.0,
By David Monniaux – Own work, CC BY-SA 3.0

Revenons à notre pâte à crêpe et supposons que la suite d’opérations est la suivante :

  • mélanger de la farine, des œufs et du beurre,
  • tant que la pâte contient des grumeaux, mélangez,
  • et si besoin ajoutez du lait, ou de la farine.

Si vous êtes aussi doué que moi pour faire des crêpes, vous savez que la seconde partie peut prendre du temps : peut-être que vous aurez à ajouter un peu de lait, à mélanger plus longtemps, ou remettre de la farine parce que vous avez encore ajouté trop de lait, etc. Vous aurez recours à un algorithme dit de « recherche locale ».

Étant donné une solution provisoire à notre problème (une pâte à crêpe en cours de préparation), on essaie de l’améliorer en faisant des petites modifications dites « locales » : ajouter un peu de lait, ou un peu de farine, ou bien continuer à mélanger, sans repartir de zéro. Les algorithmes de recherche locale sont souvent utilisés en pratique car ils sont souvent très faciles à mettre en œuvre, et très intuitifs.  En revanche, il est plus difficile de prouver que le résultat obtenu est bon. Et pour certains problèmes on peut même se retrouver avec un résultat très mauvais (une flammekueche donc).

Alors pour quels problèmes peut-on utiliser une approche de type
pâte-à-crêpe, plus couramment appelée « recherche locale » ? Supposons que vous cherchiez à construire des casernes de pompiers dans votre ville (ou peut-être des entrepôts ou des serveurs). Comment allez-vous trouver les meilleurs emplacements ? Vous souhaiterez sans doute faire en sorte que tous les immeubles de la ville soient proches d’au moins une caserne (d’un entrepôt, d’un serveur, etc.) tout en limitant le nombre de casernes à construire. Ce problème est un problème classique en informatique, connu sous le nom de « facility location », pour lequel une recherche locale est bien indiquée.

Durant mon doctorat, j’ai prouvé mathématiquement qu’un algorithme de recherche locale pour ce problème, appliqué à des instances du problème représentant des réseaux routiers — la carte de la ville (ou plus formellement des graphes planaires) — a des performances presque optimales. C’est le premier algorithme avec de telles performances connu pour ce problème et il reste le meilleur à ce jour. J’ai aussi travaillé sur d’autres algorithmes de ce type appliqués à d’autres problèmes comme, par exemple, le fameux problème du voyageur de commerce. Ces résultats ont permis à la fois de répondre à des questions ouvertes depuis longtemps mais aussi d’expliquer mathématiquement pourquoi ces algorithmes sont aussi efficaces en pratique.

Vincent Cohen-Addad

Pour consulter la thèse de Vincent : From Practice to Theory

 

Mais pourquoi la bière et les couches ?

Ce qui suit n’est pas un fait historique. C’est une parabole. Une parabole qui puise sa source dans des faits réels, qui a connu de nombreuses « améliorations »,  mais surtout qui permet d’expliquer tellement bien qu’il faut se méfier de ce que semble nous apprendre l’analyse des données. À la fois bluffant sur certains résultats et … sans aucun sens sur d’autres.

L’exemple de corrélation.

Voici certainement l’exemple le plus célèbre concernant les applications du data mining, et en particulier la découverte de corrélations fréquentes. Une chaine de supermarché a décidé de valoriser les données de ses ventes. Pour cela, ils ont analysé les contenus des « paniers » qui passent aux caisses. Leur objectif est de savoir quels articles se retrouvent souvent ensemble, dans les paniers. On appellera ça des « corrélations fréquentes » (ou encore des itemsets, ou encore des « règles d’association »). Mais alors, qu’auraient-ils découvert, qui rende cet exemple aussi amusant ?

En fait, leur algorithme d’extraction de corrélations fréquentes aurait découvert que, dans un grand nombre de cas, les clients qui achètent de la bière et des gâteaux, achètent aussi… des couches culottes !

Si j’aime cet exemple, c’est parce qu’il présente toutes les qualités pour illustrer l’extraction de corrélations fréquentes. En particulier, cette corrélation est surprenante. Imaginez ce qui peut se passer dans la tête d’un décideur qui découvre ce motif. Mettez vous à sa place un moment. Qu’en feriez vous ? A mon avis, la première chose que vous voudriez, c’est comprendre. Tout simplement pour savoir si vous avez affaire à une erreur ou bien à un phénomène explicable.

Avez-vous entendu parler de cette histoire du père de famille qui, très énervé, a débarqué un jour dans un magasin de la chaîne « Target » aux USA ? Sa fille, adolescente, avait reçu des coupons de réduction pour des articles de puériculture et… La suite est racontée ici (in English).

Et une possible explication.

C’est justement cette explication qui rend l’exemple croustillant… Il y en a plusieurs, quelque peu « améliorées » au fil des années. Voici ma préférée, même si, et bien personne ne sait ce qu’il en est.

Cette corrélation s’expliquerait par le comportement des jeunes parents, qui viennent d’avoir leur premier bébé. Dans cette nouvelle famille, la jeune maman reste plus souvent à la maison avec l’enfant, au moins les premiers jours. C’est donc le jeune papa qui, prenant son courage à deux mains, va affronter le magasin (et c’est parti pour l’aventure). Il va donc acheter les produits de première nécessité pour son foyer. Et, dans la tête d’un jeune papa, les produits de première nécessité ce sont : des couches pour le bébé… et de la bière et des gâteaux, parce qu’il y a un match à la télé ce soir ! (on n’est pas contre un peu d’aventure, mais bon… après il faut s’en remettre).

Cela représente une niche (seul un petit nombre de clients achète les trois articles en même temps) mais l’association, au sein de cette niche, est tellement forte qu’on ne peut pas l’ignorer.

Une métaphore pour la médiation scientifique.

Ce qui fait le succès de cet exemple ? Plusieurs choses à mon avis :

Premièrement, il parle des gens. C’est l’ambiguïté du data mining appliqué aux habitudes des personnes réelles. J’ai souvent constaté le succès des exemples utilisant nos habitudes, qu’il s’agisse de comportements d’achats dans les magasins, de clics sur les réseaux sociaux, de navigations sur nos smartphones, etc. D’un côté ça créée un réel pic d’attention et de curiosité dans les présentations qui utilisent ce genre d’exemples. D’un autre côté, ça fait un peu peur…

Et puis, il y a l’étonnement. Et cette corrélation est pour le moins surprenante. Ce qui permet, à mon avis, de bien illustrer l’intérêt du data mining. C’est vrai, après tout… pourquoi irait-on torturer nos données et nos serveurs avec des algorithmes de data mining, si c’est pour découvrir quelque chose que l’on sait déjà. Alors oui, les corrélations du genre « coca – cacahuètes » sont sorties également. C’est ce qu’on appelle des motifs évidents. Il ne sont pas inutiles pour autant. Ils nous donnent confiance dans notre approche. Si je ne trouve pas ces motifs, alors je peux penser que mon algorithme n’est pas au point… Mais ce n’est pas pour ces motifs évidents du type « coca – cacahuètes » que je vais investir dans un logiciel de data mining. C’est bien pour « découvrir ». Découvrir de nouvelles corrélations, de nouveaux comportements (et là, pour le coup, bière+gateaux+couches, en général personne ne s’y attend).

Enfin, Cette corrélation n’aurait pas été découverte sans algorithme de data mining. En tout cas, il y a peu de chances… Tout simplement parce qu’avec n articles en vente dans le magasin, le nombre de corrélations possibles (le nombre de sous-ensemble d’articles) est de 2ⁿ.

De la métaphore au fait réel.

Maintenant, faisons un peu le point sur une autre facette de cet exemple : sa légende. Qu’en est-il exactement ? Il y a plusieurs versions de cet exemple. Elles ont été un moment prises pour vérité.

Mais il semble que les gâteaux ont été ajoutés à l’exemple plus tard, pour le rendre sexy. Et si on creuse un peu, on se rend compte que cet exemple, réduit au couple bière/couche, existait avant le data mining sous une forme différente.

On peut trouver ici (http://www.dssresources.com/newsletters/66.php) une enquête détaillée de D. J. Power sur ce sujet. En résumé, on y comprend que Teradata, en 1992, a analysé les ventes des magasins Osco. L’histoire ne dit pas quels outils ont été mis en oeuvre, mais on peut noter que le plus célèbre des algorithmes d’extraction de corrélations fréquentes, à savoir aPriori [1] , a été publié en 1994 et que le premier article sur ce sujet [2] a été publié en 1993.

Plus exactement, leur résultat mettait en évidence une corrélation entre bière et couches, de 17h à 19h. Sans précision sur l’age ou le genre des clients, ni sur les jours de la semaine concernés par ce comportement. Et puis, en fait de corrélation fréquente, il s’agissait plutôt d’un « pic ».

Entre le mythe et les faits qui l’ont certainement inspiré… il y a probablement l’imagination de quelques chercheurs qui, conscients de la difficulté d’une présentation réussie, voulaient s’assurer d’un peu plus d’attention de la part de leur public.

Je garde toujours cet exemple sous le coude, au cas où, car il est percutant, parlant, et d’une aide précieuse pour expliquer le data mining sans transpirer. Mais je dois avouer que depuis que je l’utilise, quand je vais dans un supermarché, je regarde discrètement et… je n’ai encore jamais vu de caddie contenant à la fois de la bière des gâteaux et des couches.

Florent Masseglia.

[1] Rakesh Agrawal and Ramakrishnan Srikant. 1994. Fast Algorithms for Mining Association Rules in Large Databases. In Proceedings of the 20th International Conference on Very Large Data Bases (VLDB ’94)

[2] Rakesh Agrawal, Tomasz Imieliński, and Arun Swami. 1993. Mining association rules between sets of items in large databases. SIGMOD Rec. 22, 2 (June 1993), 207-216.

Ref: http://www.florent-masseglia.info/biere-et-couches-un-exemple-mythique-du-data-mining

Ça y est : on va apprendre à inventer le numérique

Les lycéennes et lycéens de toutes sections commencent à apprendre de l’informatique pour ne plus être de simples consommateurs mais devenir créateur du numérique : c’est l’enseignement de l’option « Informatique et Création Numérique, I.C.N. », de la seconde à la terminale pour toutes les sections.

Comment aider les enseignants d’I.C.N ? Quels savoirs partager avec eux ? Quelles ressources sélectionner ? Quelles compétences leur transmettre pour qu’ils puissent assurer ce nouvel enseignement ?

C’est sous la forme d’un MOOC social et coopératif, que quelques collègues Inria en binôme avec des professeur-e-s de lycée proposent un espace de formation, et un endroit de partage et d’entraide, où chacune et chacun construira son parcours selon ses besoins et ce qu’il sait déjà, un espace qui va évoluer avec le temps ; on le commence quand on veut et on y revient aussi longtemps qu’on en a besoin. Il est réalisé en partenariat avec Class’Code, qui y apporte tous les éléments de formation initiaux dont on peut avoir besoin.

Des grains de culture scientifique pour découvrir le numérique et ses sciences dans le réel, lié au quotidien de ces jeunes. Commencer à apprendre l’informatique et ses fondements. S’outiller pour accompagner les initiatives de création et les projets scientifiques des élèves. L’ICN est une vraie formation par le faire à travers des projets.

Si ce MOOC est principalement destiné aux enseignants de lycée qui enseignent l’ICN, il n’y a besoin d’aucun prérequis en informatique et on y parle aussi des enjeux sociétaux liés au numérique, il intéresse aussi les citoyennes et citoyens qui veulent être éclairé-e-s sur ces sujets.

Bon, c’est un projet fou ce MOOC : tant mieux, nos enfants le méritent bien.

Pour toute l’équipe du MOOC, Sylvie Boldo.

BBC micro:bit – Quand la télé britannique promeut la créativité informatique

SONY DSC

On retrouve une nouvelle fois Alan Mc Cullagh notre ami irlandais du Vaucluse (Orange) qui nous avait conté l’histoire de la carte RaspberryPi. Cette fois, il nous parle d’un projet de la  « BeeB » qui a marqué des générations, propulsant à nouveau de petits matériels simples et pas chers pour accéder aux joies de la programmation et du faire soit même (« DiY »). Et chers/chères lecteurs/lectrice : vous y apprendrez aussi d’où vient le processeur de votre smartphone… Pierre Paradinas.

Un peu d’histoire

Au début des années 80, le groupe de chaînes publiques au Royaume-Uni, la « British Broadcasting Corporation », dite BBC, lança un appel à projet pour créer un ordinateur éducatif à destination des écoliers et des écoles. Une jeune entreprise de Cambridge « Acorn » (« gland » en anglais) fut retenue pour créer cette plateforme. Le « BBC Micro » était né. Beaucoup de personnes qui ont grandi à cette époque dans les « îles britanniques » (y compris moi-même en Irlande) peuvent remercier ces pionniers d’avoir favorisé nos premiers pas dans l’informatique au sein des établissements de l’enseignement publique. On peut lire l’engouement que j’avais déjà à l’âge de 5 ans dans mon bulletin scolaire ! Dans la même période, ici en France, nous avons connu une initiative comparable avec le Plan Informatique pour Tous basé sur des micro-ordinateurs Thomson MO5 (et TO7/70).

Photo @tyrower. Le BBC micro:bit

Plus récemment, quand les membres fondateurs du Raspberry Pi commencèrent à concrétiser leurs rêves d’un nano-ordinateur éducatif, ils voulurent y inscrire en guise de clin d’œil le label « BBC ». Ce droit ne leur fut pas octroyé ; néanmoins un journaliste high-tech de la célèbre « Corporation » sur son blog et sur la chaîne YouTube leur donna un coup de projecteur qui lancera le mouvement autour du Raspberry Pi.

L’histoire se répète

En 2012, trente ans plus tard, la BBC s’est « remis dans le bain » en lançant un objectif très ambitieux : envisager un « ordinateur de poche programmable permettant aux enfants d’explorer la créativité technologique ». Elle voulait formuler une réponse à la fracture numérique et aux lacunes perçues des compétences informatiques des citoyens. Dans l’environnement fertile des startups technologiques du Royaume Uni et inspiré par l’énergie des « makers » et « programmeurs » autour des cartes « hackables » comme l’Arduino, le Raspberry Pi, Beaglebone et bien d’autres, la BBC a de nouveau monté une initiative d’éducation numérique dans la continuité du projet « Make It Digital » (créer le numérique). Ils ont su rapidement rassembler une trentaine de partenaires et des industriels. Aujourd’hui, ces partenaires sont réunis dans la Fondation Micro:bit.

bbcmicrobit-2
Photo @tyrower.

Un million de cartes micro:bit ont déjà été fabriquées  pour équiper gratuitement les élèves de « Year 7 » (âgé de 11-12 ans – équivalent de la 6e en France) au Royaume Uni (ainsi que leur enseignants). La plateforme est désormais disponible  en ligne et de nombreux fournisseurs britanniques la distribuent depuis l’été 2016. La distribution en France devrait s’officialiser normalement courant 2017 (gardons un œil sur kubii.fr). Le prix de vente de la carte seule est actuellement de £13 (ce qui revient à un peu moins de 16€). Il existe aussi différents kits comme l’ensemble pour « invention électronique » à £37,50 (≈45€).

bbcmicrobit-3
Photo @tyrower. La carte ne pèse que 8g et contient : un processeur : CPU 32-bit ARM® Cortex™ Mo; avec la connectivité Bluetooth (BLE) ou Filaire (USB) ; un accéléromètre et une boussole ; un afficheur et des Led …

La prise en main

Pour l’utiliser, on peut créer son script via plusieurs interfaces de programmation. Une fois compilé et le « code machine » généré en format «*.hex » (du binaire compréhensible par la machine), il suffit de « glisser-déposer » depuis un ordinateur vers le  micro:bit connectée (ce dernier est reconnu comme un « disque externe ») ou de transférer par Bluetooth à partir d’un smartphone ou d’une tablette. Après un redémarrage du micro:bit, le script est lancé et le code s’exécute!

bbcmicrobit-4
Photo @tyrower. Et pour programmer, on peut utiliser : MicroPython (Python) ; Code Kingdoms (JavaScript) ; Block Editor Microsoft (logique similaire à Scratch/Snap/Blockly) ; Touch Develop (interface pour écran tactile) ; PXT Microsoft (blocks/JavaScript) Yotta (C/C++) ; … et connecter un mobile : Android (micro:bit Samsung app, micro:bit Blue app) ou iOS.

A travers le site officiel, des tutoriels en ligne, des présentations YouTube et d’autres ressources, les jeunes peuvent facilement trouver de quoi s’inspirer pour apprendre à exploiter toutes les fonctionnalités du micro:bit. La réussite de cette action dépendra de l’engagement non seulement des jeunes mais surtout de l’énergie et de la passion du corps enseignant. Heureusement, avec la mise à disposition de ressources pédagogiques adaptées qui facilitent la prise en main ce type de réalisation est accessible à un grand nombre de personnes. La force de ce projet est qu’avec une trentaine de partenaires engagés et compétents dans divers secteurs un très grand nombre de supports, guides, projets, idées et ressources sont d’ores et déjà à disposition gratuitement et librement à tous. Evidemment, il va falloir plusieurs années pour voir si les objectifs ont été vraiment atteints mais les retours des premiers trimestres sont positifs.

“From little acorns great oaks grow” (de petits glands de grands chênes poussent)

Pour boucler la boucle, j’aimerais revenir sur les racines des projets éducatifs informatiques de la BBC et leurs premiers partenaires. La petite entreprise « Acorn », dont on a fait référence tout au début de cet article, a aujourd’hui grandi pour devenir un grand « chêne » ! Elle s’est transformée et est devenue un des acteurs les plus importants dans le monde des smartphones et des objets connectés/embarqués (« embedded ») qui nous entourent. La technologie Acorn est devenue Acorn/Advanced Risc Machines, mieux connue sous le trigramme « ARM ». La vente de puces et de processeurs basés sur leurs architectures de silicium ne cesse pas de croître ; atteignant 15 milliards d’unités rien qu’en 2015 ! Le processeur au cœur du micro:bit est de la même famille, il s’agit d’un 32-bit ARM® Cortex™ M0 qui intègre les fonctionnalités dernier cri de connectivité Bluetooth Low Energy. ARM est présent en France, surtout à Sophia Antipolis en région PACA, où une douzaine de salariés sont actifs dans le Code Club France afin d’animer des activités d’initiation à la programmation via Scratch dans le périscolaire. Code Club est également un partenaire du micro:bit.

bbcmicrobit-5
Photo @tyrower. Des salariés volontaires d’ARM à Sophia Antipolis aident dans l’animation de Code Club en France – activités péri- et parascolaire d’initiation à la programmation.

Peut-être qu’un ordinateur éducatif développé par France Télévisions n’est pas pour demain, mais on peut rêver qu’un jour le grand public, à commencer par les plus jeunes, s’intéressera aux enjeux de l’informatique et des technologies du numérique grâce à un projet dans l’esprit du micro:bit.

Éducation Informatique et Matériel
À la rentrée 2014, le ministère de l’éducation en Grande-Bretagne (« Department of Education ») a mis à jour les programmes scolaires anglais pour y inclure formellement l’informatique (« Computer Science / Coding ») en tant que matière. Ce changement se faisait en réponse aux débats et rapports tels que celui de la « Royal Society » (2012). En France, nous connaissons des appels similaires comme celui de l’Académie des Sciences (2013). Aujourd’hui, nous continuons à chercher les réponses de demain. Avec l’introduction du code à l’école chez nous depuis la rentrée 2016 et grâce à des initiatives comme « Class’Code » et « 1, 2, 3… Codez ! », nous allons dans la bonne direction. En Angleterre, l’accent a été mis plus sur la formation et la pédagogie que sur des achats massifs. Si les constats au bout de 2 ans  sont parfois mitigés chez nos voisins, ces changements commencent à néanmoins porter ses fruits. Les anciens cours « ICT » de dactylographie et d’utilisation de suites bureautiques ont en général évolué vers des choses plus fondamentales, pour donner une compréhension profonde de l’objet informatique et numérique. Outre-manche, s’il a bien eu des investissements récents dans l’infrastructure et le matériel pour l’éducation numérique dans les établissements britanniques, la priorité a été clairement mise ailleurs que sur le « hardware ». Dans cet esprit, le plus grand avantage du projet Micro:bit est que le support peut être facilement interfacé avec les équipements existants. Il n’y a pas besoin d’acheter de « systèmes compatibles » ou de logiciels propriétaires car la plupart des plateformes, même vétustes, peuvent servir d’office dans l’apprentissage, voire dans l’innovation et la création avec la carte. On peut même voir là-dedans un petit geste pour la planète – un peu de retro-compatibilité et de minimalisme dans notre monde d’obsolescence programmée et de la Loi de Moore. Le Micro:bit est 18 fois plus rapide que le BBC Micro des années 80, 617 fois plus léger, 440 fois plus petit et consomme 1000 fois moins (environ 30mW même avec les DELs allumées).

Alan McCullagh (Code Club France)

 

À la recherche des données perdues

Elles ont nos données ; « elles », ce sont les grandes entreprises du Web : Google, Facebook, Yahoo!, Amazon… et les moins grandes, toutes aussi agressives dans l’entreprise de captation de données. Nous échangeons des messages avec un ami sur des vacances hypothétiques en Crète, et nous voilà inondés de pubs pour des hôtels, des transports… pour la Crète. Certaines viennent manifestement d’une analyse des emails échangés, mais les autres ? Comment sont-ils au courant ?

Cet article est publié en collaboration avec The Conversation.

@ Laure Cornu
@ Laure Cornu

Regardons d’abord comment fonctionne le Web. Que se passe-t-il quand je visite la page http://www.unsite.com/unepage.html ? Petit dialogue explicatif :

Mon navigateur : Hum, qui est www.n-importe-quel-site.com ?
Un service (DNS) de mon fournisseur d’accès à Internet : C’est le serveur Web 203.0.113.42
(par exemple 🙂 )
Mon navigateur : Bonjour 203.0.113.42.
Le Serveur Web : Bonjour Vous !
Mon navigateur : Pouvez-vous me donner la page /unepage.html ?
Oh, et puis, voici un tas d’autres choses sur ce que je suis, sur mes préférences…
Oh, et puis, voilà ces données incompréhensibles que vous m’avez demandé de retenir la dernière fois que je vous ai rendu visite (un cookie (+)).
Le serveur Web : Voici votre page. Mais, il vous faut d’autres trucs pour la visualiser en entier.
Chargez tous ces scripts et images. Et tant que vous y êtes…
Chargez aussi ces scripts depuis Twitter, Facebook, Google, Oracle…
Mon navigateur : Hum ok, bien sûr.
Mon navigateur : Hey Twitter, UnSite m’a dit de vous demander des petits trucs.
Pouvez-vous me donner…
Oh, et puis, voici un tas d’autres choses sur ce que je suis, sur mes préférences…Oh, et puis, voilà ces données incompréhensibles que vous m’avez demandé de retenir la dernière fois que je vous ai rendu visite (un cookie tiers).
(Idem pour les autres Facebook…)
Mon navigateur : Voilà. J’ai tout. Je n’ai plus qu’à exécuter tous ces scripts qui vont sans doute me faire rencontrer d’autres « amis » du net à qui j’aurai des tas de choses à raconter… Et, bien sûr, si ces scripts me demandent d’aller chercher du nouveau contenu, je le ferai. Je suis serviable…
Comment fonctionne le «Online Advertising» toute une technologie pour optimiser la vente des produits https://en.wikipedia.org/wiki/Ad_exchange ©wikimedia CC-BY-SA 2.0

Est-ce que cela se passe toujours comme ça ? Non, mais très souvent, et de plus en plus. Prenons l’exemple du blog que vous êtes en train de lire hébergé par lemonde.fr. À chaque fois que vous accédez à ce blog, vous effectuez également des demandes de ressources complémentaires (images, scripts, données) à d’autres serveurs qui n’ont rien à voir avec le journal Le Monde.

Au jour de la rédaction de ce billet, il s’agit (par ordre décroissant du nombre de ressources) de : Google, Facebook, Cedexis (fournisseur de services d’optimisation de trafic Web), Twitter, LinkedIn, Outbrain (publicité ciblée), Kameleoon (marketing), Inria (Institut de recherche prestigieux), Chartbeat (mesure d’audience), Automattic (créateur du système de gestion de contenu WordPress), comScore (marketing), AT Internet (mesure d’audience), et Wizbii (une plate-forme de recherche d’emplois).

Certains de ces accès aux ressources externes sont parfaitement légitimes : ainsi, une image issue du site d’Inria a été utilisée comme illustration. Les autres sont là parce qu’ils fournissent des services supplémentaires, pour le lecteur, le gestionnaire du blog ou la plate-forme d’hébergement : partage sur les réseaux sociaux, publicité, mesure d’audience, mise en commun de certaines ressources sur des sites tiers pour plus d’efficacité, etc.

bubu-exemple3
Quand on parle de cookies 🙂 ©universityofscrantonlibrary CC-BY 2.0

Mais quelle qu’en soit la raison, l’ensemble de ces sites tiers peut ainsi savoir, s’ils y font attention, que vous avez consulté cette page, et même faire le lien avec votre identité et les autres sites que vous consultez.

Quand vous naviguez sur le Web, vous procurez des données volontairement, par exemple en remplissant des formulaires. Mais le plus gros des données qui partent de chez vous vient de votre navigateur qui donne aux sites que vous visitez, et à l’ensemble des sites hébergeant des ressources annexes, des informations sur vos préférences, votre identité, votre historique de navigation. Et ce que vous devez savoir : ces données, beaucoup d’entreprises les récupèrent, les stockent, les analysent, les échangent, les vendent.

Bien sûr, une partie de cette information est échangée « pour mieux vous servir ». Par exemple, votre adresse IP est indispensable pour router vos données ; des informations techniques sur votre connexion internet vous permettent de visualiser des vidéos dans de meilleures conditions, etc. Mais cette adresse IP permet également de vous localiser. Et c’est inévitable, sans cela Internet ne marcherait pas : comment fournir de l’information sans voir sous une forme où une autre une adresse ? Mais cela permet de vous identifier partiellement aussi, du coup. Au final, toute cette information est utilisée pour déterminer votre profil. Et ce profil va être utilisé pour mieux capturer votre attention, par exemple en vous proposant des contenus dans la langue que vous maîtrisez.   Il va surtout permettre de vendre cette attention plus cher en ciblant de la publicité.

Les schémas d’échange d’informations entre entreprises du Web peuvent être complexes et aller au-delà des sites contenant des ressources référencées sur un site que vous visitez. Supposons par exemple que vous demandez un contenu et vous vous retrouvez avec un « cookie » d’une société, appelons-la SSP (*), qui va gérer les pubs du site que vous visitez. Vous cliquez sur une des pubs proposées et vous êtes en contact avec une nouvelle entreprise. Rien de surprenant, vous l’avez choisie ! Mais pour savoir quelle pub vous présenter, SSP a mis, sur une place de marché, les informations vous concernant, permettant à un client de cette place de marché, appelons-le DSP, de vous identifier et de vous proposer de la publicité correspondant à votre historique de navigation. Vous n’aviez pourtant aucun contact direct avec DSP. Que s’est-il passé ? Les cookies de SSP et de DSP se sont parlés. Vous êtes identifié…

Nous ne voulons pas encourager votre paranoïa. Après tout, il s’agit surtout de publicité plus ou moins anxiogène. Et il est des personnes qui trouvent intéressant de recevoir des publicités ciblées qui correspondent à leurs besoins, ce qui peut faire gagner du temps, ou affirment qu’elles ou ils n’ont rien à cacher. Mais, est-ce que ce sera toujours le cas quand notre santé pourrait avoir décliné sans qu’on veuille le faire savoir, ou que le régime politique se durcirait ? Si vous voulez vraiment vous protéger, quelques précautions :

  • Commencez par mieux comprendre comment l’informatique fonctionne, suivez des MOOCs, apprenez à programmer.
  • Utilisez un navigateur Web open source et hautement configurable comme Firefox, Chromium, ou Pale Moon.
  • Activez l’option « Do Not Track » (même si sa définition est tout sauf claire)
  • Utilisez des plugins comme AdBlock Plus ou uBlock Origin pour bloquer des publicités tierces sur les site que vous consultez.
  • Utilisez des Plugins tels que Ghostery ou DoNotTrackMe pour bloquer les cookies qui vous tracent.
  • Utilisez des Plugins tels que NoScript pour bloquer sélectivement les scripts…
  • Mettez vos données plutôt sur un Pims (système d’information personnelle) que sur des plateformes comme Apple ou Google.
  • Utilisez si vous le pouvez plutôt GnuSocial que Facebook (pas de chance, tous vos amis sont sur Facebook)…

Et pour allez plus loin, vous trouverez plus d’information dans l’excellent livre de Tristan Nitot, C&F Editions.

surveillance

Attention ! Certains sites Web ne fonctionneront plus pour vous. Après tout, nous nous sommes habitués à un Web gratuit et il faut bien que quelqu’un paye pour tout ça : la pub. Mais si seulement les systèmes étaient un peu moins opaques que ceux qui se sont mis en place… La loi et la réglementation devraient mettre un peu d’ordre dans tout cela. Mais quand ?

Un point quand même est réconfortant. Tous ces services Web qui pillent vos données ne reviennent pas si cher : quelques euros par mois par utilisateur pour les plus coûteux d’entre eux. Il faudrait juste passer à d’autres modèles commerciaux que celui des services web actuels basés sur la publicité ciblée.

Et si vous devenez vraiment parano, disparaissez ! Masquez votre IP, par exemple, avec le navigateur Tor. Partez, peut-être, pour un village perdu où Internet n’arrive pas encore. Mais ce serait dommage car vous vous priveriez alors de tous les services super cools de l’informatique.

Serge Abiteboul, Inria, et Pierre Senellart, ENS Paris.

Pierre Senellart, Page personnelle
Pierre Senellart, Page personnelle

(*) SSP = supply-side platform comme Google DFP ou Rubicon
DSP = demand-side platform comme Criteo ou AppNexus

(+) Un cookie est défini par le protocole de communication HTTP comme étant une suite d’informations envoyée par un serveur HTTP à un client HTTP, que ce dernier retourne lors de chaque interrogation du même serveur HTTP sous certaines conditions. Le cookie est l’équivalent d’un fichier texte de petite taille, stocké sur le terminal de l’internaute. Wikipédia 2016.