Le terme « algorithme » est omniprésent dans notre vocabulaire. Mais lorsqu’on discute des algorithmes de plateformes comme YouTube ou Facebook, de quoi parle-t-on réellement? Qu’est-ce qu’un algorithme et pourquoi suscite-t-il autant de critiques?
Les algorithmes : des feuilles de route pour résoudre des problèmes
Notre monde est saturé d’ordinateurs, des outils souvent mal compris, même s’ils influencent chaque instant de notre existence. Pourtant, il existe un domaine de l’informatique où les bases sont accessibles à tous : la programmation.
La programmation, bien que parfois perçue comme une tâche ingrate, est le fondement de tous les logiciels informatiques, de Microsoft Office aux appels automatisés. Même si votre perception de la programmation se limite à des clichés de films des années 90, vous savez probablement qu’un programmeur crée du code que l’ordinateur exécute pour accomplir des tâches ou résoudre des problèmes.
Dans le domaine de l’informatique, un algorithme est simplement une façon élégante de désigner du code. Tout ensemble d’instructions qui explique à un ordinateur comment résoudre un problème est un algorithme, même si la tâche est élémentaire. Lorsque vous démarrez votre ordinateur, celui-ci suit un ensemble d’instructions pour se mettre en marche : c’est un algorithme en action. De même, lorsqu’un ordinateur de la NASA transforme des ondes radio en images de l’espace, c’est aussi un algorithme à l’œuvre.
Le terme « algorithme » peut s’appliquer à n’importe quel ensemble d’instructions, même en dehors de l’informatique. Par exemple, votre façon de ranger les couverts dans un tiroir est un algorithme, tout comme la manière dont vous vous lavez les mains après être allé aux toilettes.
Cependant, de nos jours, le terme « algorithme » est souvent réservé à des conversations techniques très spécifiques. On n’entend pas parler d’algorithmes de « mathématiques de base » ou d’algorithmes de l’outil de « graffiti MS Paint ». Par contre, les utilisateurs d’Instagram se plaignent des algorithmes de suggestion d’amis ou des groupes dénoncent les algorithmes de collecte de données de Facebook.
Alors, si « algorithme » est un terme générique pour des instructions informatiques, pourquoi l’utilisons-nous surtout pour décrire les aspects opaques, complexes et parfois pervers du monde numérique?
Un amalgame fréquent : algorithmes et apprentissage automatique
Autrefois, les programmeurs et la culture populaire désignaient la plupart des instructions informatiques par le terme « code ». C’est encore le cas dans de nombreux contextes. L’apprentissage automatique est le grand domaine nébuleux de l’informatique où l’on a tendance à employer le mot « algorithme » au lieu de « code ». Cela a contribué à la confusion et au malaise autour du terme « algorithme ».
L’apprentissage automatique existe depuis longtemps, mais il n’a pris une place significative dans le monde numérique qu’au cours des 15 dernières années. Bien que l’apprentissage automatique puisse sembler complexe, son principe est relativement simple. Plutôt que de créer du code spécifique pour chaque situation, les programmeurs conçoivent du code capable de s’auto-générer et de s’améliorer.
Considérez-le comme une forme d’intelligence artificielle plus pragmatique. Si vous marquez régulièrement les e-mails de votre supérieur comme spam, votre logiciel de messagerie finira par les classer automatiquement dans le dossier spam. De même, Google utilise l’apprentissage automatique pour que les résultats de recherche sur YouTube restent pertinents, et Amazon l’utilise pour suggérer les produits que vous pourriez acheter.
Bien entendu, l’apprentissage automatique n’est pas infaillible. Son appellation peut inquiéter certaines personnes et certaines de ses utilisations sont controversées d’un point de vue éthique. Les algorithmes que Facebook emploie pour collecter des données ou profiler ses utilisateurs sur le web sont un exemple peu reluisant de l’apprentissage automatique.
Dans les médias, on entend parler de « l’algorithme de Google » pour classer les résultats de recherche, de « l’algorithme de YouTube » pour recommander des vidéos et de « l’algorithme de Facebook » pour déterminer les publications affichées dans votre fil d’actualité. Ces sujets sont sources de discorde et de débat.
Pourquoi les algorithmes sont-ils sujets à controverse?
La division longue est un algorithme bien connu (parmi tant d’autres) pour diviser des nombres. C’est juste qu’elle est effectuée par des élèves plutôt que par des ordinateurs. Votre processeur Intel utilise un algorithme différent pour diviser les nombres, mais le résultat est le même.
La transcription vocale fait généralement appel à l’apprentissage automatique, mais on ne parle pas de « l’algorithme » de la transcription car il existe une réponse objectivement correcte que tout être humain peut reconnaître instantanément. On ne se soucie pas de savoir « comment » l’ordinateur comprend ce que vous avez dit ou si c’est de l’apprentissage automatique ou pas. L’important est que la machine donne la bonne réponse.
Cependant, d’autres applications de l’apprentissage automatique ne bénéficient pas d’une « bonne » réponse unique. C’est pourquoi les algorithmes sont devenus un sujet de discussion récurrent dans les médias.
Un algorithme de tri alphabétique d’une liste est un simple moyen d’accomplir une tâche précise. Mais un algorithme comme celui de Google pour « classer les meilleurs sites web pour une recherche » ou celui de YouTube pour « recommander la meilleure vidéo » est bien plus flou et ne répond pas à une tâche définie. On peut se demander si cet algorithme produit les résultats attendus et les avis à ce sujet divergent. En revanche, avec l’exemple du tri alphabétique, tout le monde est d’accord sur le fait que la liste est triée dans l’ordre alphabétique comme prévu. Il n’y a pas de controverse.
Comment utiliser le terme « algorithme »?
Les algorithmes sont le fondement de tous les logiciels. Sans algorithmes, vous n’auriez ni téléphone ni ordinateur, et vous seriez probablement en train de lire cet article sur une feuille de papier (si vous le lisiez du tout).
Toutefois, le grand public n’utilise pas le mot « algorithme » comme terme générique pour désigner le code informatique. La plupart des gens pensent qu’il existe une différence entre le code informatique et un algorithme, ce qui est faux. En raison de l’association du mot « algorithme » avec l’apprentissage automatique, sa signification est devenue floue, mais son utilisation plus spécifique.
Faut-il commencer à utiliser le mot « algorithme » pour qualifier même les plus petits morceaux de code informatique ? Probablement pas, car tout le monde ne comprendra pas ce que vous voulez dire. La langue est en constante évolution, et toujours pour de bonnes raisons. Les gens ont besoin d’un terme pour décrire le monde opaque, complexe et parfois douteux de l’apprentissage automatique, et « algorithme » est en train de devenir ce mot – pour le moment.
Ceci étant dit, il est important de garder à l’esprit qu’un algorithme (et l’apprentissage automatique) est, au fond, un ensemble de code conçu pour réaliser des tâches. Il n’y a pas de magie, c’est juste une version plus sophistiquée du logiciel que nous connaissons déjà.
Sources: Ardoise, Wikipédia, GeeksforGeeks