On entend trop le mot « algorithme »

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î à 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, 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 é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.