Prendre une décision

Chaque jour, nous prenons des milliers de décisions.

La plupart du temps de façon inconsciente, en automatique. Et d'autres fois, il faut réfléchir un peu. Voire beaucoup sur des décisions dont les conséquences sont durables.

Dans une entreprise, votre niveau de responsabilité s'évalue en fonction de l'impact des décisions que vous prenez.

Dans certains secteurs à fort enjeu (santé, aéronautique, industrie, armée, ...), il existe même des procédures d'aide à la prise de décision opérationnelle. Ça m'est arrivé d'en rédiger.

J'observe que les logiciels investissent eux aussi ce sujet sous l'angle des systèmes de recommandations.

Une recommandation, c'est une aide à la décision. Un moteur de recommandation formule la décision qu'il prendrait à votre place.

Prenez par exemple le widget "Smart Stack" d'iOS.

Mon iPhone me suggère l'application dont la probabilité d'utilisation est la plus élevée selon mes habitudes. La météo et l'agenda le matin. Le site hackerNews le soir.

La recommandation est une réponse à l'abondance de contenus. NetFlix me recommande une série parce qu'il y a pleins (trop ?) de choix possibles.

Décider, c'est choisir entre plusieurs options. Plus les options sont nombreuses et méconnues, plus ça génère de la charge cognitive. Lorsque le logiciel nous facilite cette tâche, on le perçoit comme intuitif, fluide.

Mais ça fait débat aussi.

Les moteurs de recommandations peuvent nous emmener dans le terrier du lapin. Cette formule reprise d'Alice au pays des Merveilles désigne l'enchaînement des recommandations de vidéos youTube qui aboutissent à des vidéos complotistes, racistes, misogynes ou peu adaptées aux plus jeunes utilisateurs.

Alors comment injecter dans nos logiciels de l'aide à la décision sans transformer l'utilisateur en mouton qui fonce vers le bord de la falaise ?

Le bandit manchot

Imaginez-vous devant 10 machines à sous. Vous avez un pactole de pièces à jouer, assez conséquent.

Quelle machine allez-vous choisir ?

Chaque machine a une probabilité différente de gain pour les prochains tirages.

Etes-vous du genre à jouer petit sur toutes les machines, pour être sûr de ne pas passer à côté de celle qui est au bord du jackpot ?

Ou bien plutôt à faire confiance à votre instinct et à tout miser sur une seule ?

Voila 2 profils de décideurs très différents ! Mais ça n'est pas qu'une question de personnalité. C'est d'abord une question de contexte.

Quand on a toutes les billes, c'est facile de décider.

Mais ça se corse quand on n'a pas toutes les informations.

Faut-il aller jouer un peu sur une autre machine pour évaluer son potentiel, au risque que ce soit pire que celle sur laquelle on s'acharne ?

Par extension : faut-il suggérer une série d'horreur à un utilisateur qui n'en a jamais regardé ? Faut-il suggérer ce restaurant qui vient d'ouvrir, alors qu'on en connaît bien un autre (mais qui est peut-être moins bien) ?

Cette question se résume à une affaire de compromis entre l'exploration et l'exploitation.

  • L'exploration = acquérir de nouvelles informations en testant de nouvelles options,
  • L'exploitation = utiliser les informations dont on dispose pour faire un choix rationnel.

La vie d'une entreprise, c'est chercher en permanence ce compromis.

L'ingénierie logicielle propose plusieurs algorithmes pour trouver l'optimum. Parmi eux, il y a les "algorithmes de bandits" (en référence aux machines à sous) dont on mesure la performance par le regret : il s’agit de la différence de gain entre la recommandation de l'algorithme et la stratégie optimale à suivre si on connaissait à l'avance tous les résultats.

Le but est de faire en sorte que le regret augmente le plus lentement possible au fur et à mesure du jeu.

On pourrait en faire une citation d'un coach de vie sur youTube.

En 1989, Chris Watkins (professeur de Machine Learning à l'université Royal Holloway de Londres) propose dans sa thèse l'algorithme "glouton epsilon" (epsilon greedy).

Hello Chris

Son principe est assez simple. Mais il sert encore aujourd'hui de point de comparaison des algorithmes de recommandation (passe ton chemin si tu ne fais pas mieux).

Pour choisir la prochaine machine à sous sur laquelle on va jouer, on procède ainsi :

  • on se fixe un seuil de probabilité (epsilon) par exemple 5%.
  • on tire un chiffre au hasard entre 0 et 100.
  • Si le chiffre est < 5 ⇒ alors on joue sur une machine au hasard = exploration
  • Sinon (95% des cas), on joue sur la machine qui a rapporté le maximum jusqu'à maintenant (en moyenne sur chaque tirage) = exploitation

On voit quelques pistes d'optimisation possible sur l'exploration :

  • ne pas aller voir des machines qu'on connait déjà bien,
  • réduire l'exploration lorsqu'on connaît bien toutes les machines.

C'est un terrain de jeu algorithmique très intéressant !

Avec des applications directes, sonnantes et trébuchantes, lorsqu'il s'agit par exemple de recommander des produits sur un site de e-commerce.

Sinon, dans la vie, c'est combien votre epsilon ?

Pour aller plus loin :