On entend trop le mot « algorithme »

Classé dans : Enjeux du numérique | 14

Temps de lecture 8 min

image_pdfimage_print

Dans les débats politiques au sujet du Web et du numérique en général, on parle souvent d’« algorithmes ». Il n’est peut-être pas inutile de revenir sur ce qu’est un algorithme et sur ce qu’il n’est pas. Si vous êtes informaticien·ne, vous savez déjà tout cela, mais, si ce n’est pas le cas, vous apprendrez peut-être ici une chose ou deux.

Par exemple, dans le numéro 3790 du magazine Télérama, en date du 3 septembre 2022, la directrice générale de YouTube, Susan Wojcicki, déclarait « Nous ne faisons pas d’éditorial au sens propre puisque tous nos contenus sont recommandés par des algorithmes ». Cette phrase est un condensé de mensonges, bien sûr. Wojcicki est bien placée pour savoir ce qu’est un algorithme mais elle essaie de faire croire qu’il s’agirait d’une sorte de processus magique et éthéré, flottant loin au-dessus des passions humaines, et n’agissant que pour notre bien.

Au contraire, un algorithme est une suite de décisions. Un algorithme, c’est un ensemble d’étapes qu’on va suivre pour un certain but. Choisir le but est déjà une décision. (Quel est le but des algorithmes de recommandation de YouTube ? Probablement de vous faire rester le plus longtemps possible, pour que vous avaliez davantage de publicité.) Mais choisir les étapes est aussi une décision. Rien dans le monde numérique ne se fait tout seul : des personnes ont décidé de l’algorithme. Que les recommandations de YouTube soient issues d’un humain qui vous observerait et déciderait, ou d’un programme automatique, dans les deux cas, c’est la décision de YouTube. Et il y a donc bien « éditorialisation ». YouTube n’est pas neutre. Même chose évidemment pour le moteur de recherche de la même entreprise, Google. Il classe les résultats en fonction de ce que Google a décidé, lors de l’écriture du programme. (Notez que c’est bien ce qu’on demande à un moteur de recherche : s’il trouvait 10 000 résultats et ne les classait pas, on serait bien ennuyé·e.)

On explique parfois l’algorithme en citant l’exemple d’une recette de cuisine : faites ceci, puis faites cela, ajouter ça, mettez le four à telle température. Mais les algorithmes ne sont pas juste une suite d’étapes, à effectuer quoiqu’il arrive. Ils incluent notamment ce qu’on nomme des tests, par exemple « si telle condition, alors faire ceci, sinon faire cela ». Un recette de cuisine qui contiendrait « si vous avez de la moutarde, ajoutez-en une cuillère » donne une meilleure idée de ce qu’est un algorithme.

Le mot d’algorithme vient d’Al-Khwârizmî (محمد بن موسى الخوارزمي), un mathématicien d’origine persane du 8e-9e siècle, qui travaillait à Bagdad (la Silicon Valley de l’époque, là où il fallait être pour travailler au plus haut niveau). Mais le concept d’algorithme existait bien avant lui. Vous avez peut-être appris à l’école l’algorithme d’Euclide pour trouver le PGCD (plus grand commun diviseur), algorithme conçu plus de dix siècles avant Al-Khwârizmî. Mais ce dernier a été le premier à décrire en détail l’idée d’algorithme et à proposer une classification des algorithmes.

 

Statue d'Al-Khwârizmî
Statue d’Al-Khwârizmî à Khiva, Ouzbékistan (portrait imaginaire, car on ne connait pas de portrait réel de l’époque).

 

Le principe de l’algorithme est donc très antérieur à l’ordinateur. Par exemple, une personne qui répond au téléphone pour une « hotline » a en général reçu des instructions extrêmement précises sur ce qu’il faut dire et pas dire, avec interdiction de s’en éloigner. Dans le monde des « hotlines », cela se nomme un script, mais c’est aussi un algorithme ; si le client dit ceci, répondre cela, etc. Remplacer les algorithmes par des humains pour les décisions, comme le préconisent certains, n’a donc pas de sens si ces humains appliquent strictement un script : ce sera toujours un algorithme.

 

Euclide
Euclide, vu par le peintre Justin de Gand. (Là encore, c’est une œuvre d’imagination, on ne sait pas à quoi ressemblait Euclide)

 

Et à propos d’humains qui suivent un algorithme, comment se faisaient les calculs longs et complexes avant l’invention de l’ordinateur ? Il y avait des aides mécaniques (boulier, règle à calcul…) mais le gros du travail était fait par des humains. En français, autrefois, une « calculatrice » n’était pas un ordinateur mais une humaine qui passait sa journée à mouliner des chiffres. On pouvait avoir comme métier « calculatrice dans une compagnie d’assurances ». Même chose pour « computer  » en anglais ; désignant aujourd’hui un ordinateur, il désignait autrefois un·e humain·e. Ce travail est bien montré dans le film « Les figures de l’ombre », de Theodore Melfi, qui se passe au moment où ces calculateurs humains sont peu à peu remplacés par des ordinateurs. (Le titre français du film fait perdre le double sens du mot « figures » en anglais, qui désigne un visage mais aussi un chiffre.)

Les programmes, eux, sont bien plus récents que les algorithmes. Ils sont également apparus avant l’invention de l’ordinateur, mais n’ont réellement décollé qu’une fois qu’on disposait d’une machine pour les exécuter automatiquement, et fidèlement. Un programme, c’est la forme concrète d’un algorithme. Écrit dans un langage de programmation, comme PHP, Java, Python ou Rust, le programme est plus précis que l’algorithme et ne laisse place à aucune ambiguïté : les ordinateurs ne prennent pas d’initiatives, tout doit être spécifié. La maternité de la programmation est souvent attribuée à Ada Lovelace au 19e siècle. Comme toujours dans l’histoire des sciences et des techniques, il n’y a évidement pas un·e inventeu·r·se unique, mais une longue chaîne de personnes qui ont petit à petit développé l’idée.

 

Un programme mettant en œuvre l'algorithme d'Euclide
Un programme écrit dans le langage Python, et mettant en œuvre l’algorithme d’Euclide de calcul du PGCD.

 

Le premier point important de cet article était qu’un algorithme, c’est une série de décisions (et la déclaration de Wojcicki au début, lorsqu’elle essaie de diminuer la responsabilité de YouTube, est donc ridicule). Un algorithme n’est pas un phénomène naturel mais la formalisation de décisions prises par des humains. Le fait qu’il soit programmé, puis exécuté par un ordinateur, n’exonère donc pas ces humains de leurs choix. (Et, je me répète, demander que les décisions soient prises « par des humains et pas par des algorithmes » n’a guère de sens : ce sont toujours des humains qui ont décidé, même quand leur décision passe via un algorithme.)

Le deuxième point qui me semble important est que tout système informatique (et je rappelle que l’engin plat qu’on met dans sa poche, et que le marketing nomme « smartphone  », est un ordinateur) fonctionne avec des algorithmes. Le ministre de l’Intérieur Gérald Darmanin avait déclaré, à propos de la surveillance automatisée des citoyens, « De plus, alors que toutes les sociétés commerciales peuvent utiliser les données fournies par des algorithmes, seul l’État n’aurait pas le droit de le faire […] ? » et avait appelé à « pérenniser l’utilisation des algorithmes ». Par delà la question politique de fond, ces déclarations sont bien sûr absurdes. L’État utilise des algorithmes depuis longtemps, depuis qu’il utilise des ordinateurs. Mais il ne s’agit pas seulement de l’ignorance (et du mépris pour la technique) d’un ministre. L’utilisation du terme « algorithme » vise à faire croire qu’il s’agit de quelque chose de nouveau, afin de brouiller le débat sur les usages de l’informatique, et d’empêcher les citoyen·nes d’y participer utilement. La réalité, je le redis, est que cela fait longtemps qu’il existe des algorithmes et qu’ils sont utilisés.

Il y a par contre une nouveauté qui a pris de l’importance ces dernières années, ce sont les systèmes à apprentissage (parfois désignés par l’acronyme marketing IA – Intelligence Artificielle, qui ne veut rien dire) ou machine learning en anglais. Il existe de nombreux systèmes de ce genre, très variés. Mais le point commun est l’utilisation d’algorithmes qui évoluent sous l’influence des données qu’on leur donne. Pour prendre un exemple simpliste, on donne au programme des photos de chiens et de chats, lui indiquant à chaque fois s’il s’agit d’un chien ou d’un chat, et, après un grand nombre de photos, le programme aura « appris » et pourra classer correctement une nouvelle photo. Il y a beaucoup à dire sur ces systèmes à apprentissage mais, ici, je vais me contenter de faire remarquer qu’ils ne remettent pas en cause le pouvoir de décision. Au lieu de règles explicites dans un algorithme (« s’il a des griffes rétractiles, c’est un chat »), le système de décision est composé de l’algorithme qui apprend et des données qu’on lui soumet.

Il n’y a donc pas de changement fondamental : le système informatique qui prend la décision a toujours été conçu et entraîné par des humains, et ce sont leurs choix qui se refléteront dans les décisions. Ainsi, si on utilise un tel système pour traiter les CV dans un service de ressources humaines, si l’entreprise avait l’habitude de recruter préférentiellement des hommes, et si on entraîne l’algorithme avec les choix passés, il se mettra à privilégier les CV des hommes, pas parce qu’il serait « sexiste » (les algorithmes n’ont pas d’opinion ou de préjugés) mais parce que c’est ce que ses maîtres humains lui ont demandé, via les données qu’ils ont choisies.

Bref, chaque fois que vous entendrez quelqu’un éluder sa responsabilité en se cachant derrière « c’est l’algorithme », rappelez-lui qu’un algorithme, c’est un ensemble de décisions prises par des humains, et que ces humains sont responsables de ces décisions.

14 Responses

  1. 0liv')

    bon rappel!

    j’ai fait du développement pendant un paquet d’années, et d’expérience je sais aussi qu’il y a parfois des bugs qui peuvent faire dérailler un programme et provoquer des résultats inattendus, non prévus par les humains qui l’ont créé!
    c’est là que le programme prend son indépendance? 😧!

    mais ça ne peut pas être une excuse non plus, c’est une erreur humaine à la base…

    • ale abdo

      Ni!

      > les algorithmes n’ont pas d’opinion ou de préjugés

      Cette phrase est fausse et contredit les propos de l’article. Ce n’est pas uniquement par la donnée qu’on communique des décisions aux systèmes d’apprentissage.

      Sinon, très bon article !

  2. Benoît

    Bonjour,
    Il y a aussi dans l’actualité le sujet de la société chinoise dont le PDG est un robot : NetDragon a nommé PDG une machine qui signe des contrats et prend des décisions (en particulier RH !).
    Donc on aura un manager qui pourra dire à son employé : « ton augmentation a été refusé par la DRH, je n’y peux rien », « la direction a refusé que tu travailles à temps partiel », « compte-tenu de tes performances passées, la direction a décidé que tu travailleras en horaires décalés » alors que ce sont les choix et les décisions du CA ou du Comex qui auront conçu l’algorithme qui mène à ces décisions.
    À moins que ça ne soit directement le PDG qui annonce ça aux personnes (à toute heure du jour ou de la nuit puisqu’il peut travailler 24h/24). Quel honneur !
    NB : le PDG est représenté en femme.
    Dans votre billet, au lieu d’écrire « Il classe les résultats en fonction de ce que Google a décidé, lors de l’écriture du programme. », vous auriez pu écrire « en fonction de ce que les personnes de Google » parce que même si l’entité est Google, ce sont bien des personnes qui paramètrent.
    Benoît

  3. Gaël

    Je ne suis pas vraiment d’accord avec cet article, même si ce qui est dit est strictement vrai, et que je trouve ça important d’être clair sur les définitions.

    Certes un algorithme est toujours écrit par un humain. Pour avoir fait de la recherche en apprentissage automatique, je peux aussi préciser que même dans ce domaine il y a de nombreux choix possibles pour l’algorithme d’apprentissage, celui qui fait que les données-exemples seront assimilées par le programme d’une façon ou d’une autre.

    Là où je suis en désaccord, c’est que cette remarque passe à côté du point dans la plupart des cas. Dans les faits, les gens invoquent « les algorithmes » pour parler d’un manque de contrôle, soit de l’utilisateur soit des développeurs eux-mêmes. Par exemple, on n’appellera pas spontanément « algorithme » celui qui charge la page de YouTube parce que son comportement est tout à fait prévisible. Il va charger les suggestions de vidéos sur le côté, les commentaires en dessous et la vidéo au milieu à chaque fois. En revanche, on appellera facilement « algorithme » l’algorithme de recommendations de vidéos, parce qu’on voit bien qu’il prend des décisions et on voit qu’on n’a pas de contrôle dessus. L’utilisateur y voit « un algorithme » car quelqu’un décide en partie pour lui ou elle, mais qu’il ne s’agit pas d’un humain. Parmi les politiciens, on parle plus souvent d’algorithmes lorsque les développeurs eux-mêmes ne contrôlent pas les conséquences de leurs algorithmes. Par exemple, si l’algorithme de recommendations vous envoie sur d’obscures vidéos conspirationnistes, c’est contre le gré des développeurs et pourtant ça arrive. Alors que s’il y avait eu un opérateur humain à la place de la machine, celui-ci aurait certainement dérogé à la règle et suggéré d’autres vidéos que les vidéos conspirationnistes prévues par l’algorithme.

    En gros, quand des gens parlent d’algorithmes, ils parlent le plus souvent du manque de contrôle humain sur les algorithmes. C’est pour ça que le ton de l’article est problématique d’après moi, car il semble dire que les développeurs ordonnent aux machines avec des algorithmes pour que celles-ci fassent exactement ce qu’ils veulent. Un algorithme serait à peu près équivalent à ce que le développeur aurait fait à sa place. Mais c’est faux pour de nombreuses catégories d’algorithmes dont on a du mal à se représenter ce que les algorithmes feraient dans certaines situations. Typiquement, les algorithmes de recommendations.

    Par conséquent, si une entreprise dit qu’elle n’est pas responsable des actions de ses algorithmes, elle n’a pas strictement tort car les conséquences desdits algorithmes peuvent échapper aux développeurs. Néanmoins, utiliser des algorithmes dont on ignore en partie les effets immédiats est critiquable en soi. À ce niveau-là, il y a effectivement une décision du développeur qui peut choisir de jouer avec le feu.

    • Stéphane Bortzmeyer

      Je précise que je suis d’accord avec Guillaume, et j’ajoute que je ne crois pas vraisemblable qu’une société à but lucratif cotée en bourse (comme Google) utilise un algorithme dont elle ne maitrise pas les résultats (à part quelques bogues de temps en temps).

  4. Vincent

    Bonjour,
    L’article a l’air intéressant, mais je suis désolé, je n’ai pas pu aller au bout. L’écriture inclusive est un cauchemar qui se révèle un obstacle majeur à la lecture. Totalement exclusive, donc, alors qu’une rédaction normale n’aurait nuit à personne, ni conduit à l’exclusion de quiconque. D’autant plus sur ce type de sujet technique, on aurait pu souhaiter ne pas faire entrer de telles considérations sociologiques revendicatives et sujettes à tant de débats.
    Bonne continuation.

  5. Guillaume

    Je crois justement que ta dernière phrase répond à ta remise en question.

    Si un algorithme de recommandations envoie du public sur des contenus qui créent de l’adhésion (y compris conspirationnistes), c’est parce qu’il remplit son but qui premier est de faire rester les utilisateurs sur la plateforme afin de leur diffuser davantage de publicités.

    « Jouer avec le feu » consiste ici à favoriser ce but premier au mépris de tout éventuel risque lié à la nature des contenus.

    Si le but premier de ces plateformes était d’informer les utilisateurs tout en les prémunissant contre les fake-news, leurs algorithmes de recommandation fonctionneraient différemment (par exemple, plutôt qu’être entraînés pour pour diriger l’utilisateur vers des contenu à très forte adhésion, ils pourraient être entraînés pour détecter et avertir les utilisateurs des contenus « polémiques »).

    Certes des conséquences imprévues à un algorithme peuvent survenir de manière ponctuelle (c’est alors de l’ordre du bug). Mais s’abriter derrière un algorithme qui pose problème de manière chronique, c’est juste cacher son objectif initial.

  6. ale abdo

    Ni!

    > les algorithmes n’ont pas d’opinion ou de préjugés

    Cette phrase est fausse et contredit les propos de l’article. Ce n’est pas uniquement par la donnée qu’on communique des décisions aux systèmes d’apprentissage.

    Sinon, très bon article !