Mesurer la performance de l’ordinateur humain ?

Mesurer la performance de l’ordinateur humain ?

Aujourd'hui je vais vous parler d'un article de recherche issu des équipe de Google research. Plus précisément, il s'agit de l'article suivant : Pay by the Bit: An Information-Theoretic Metric for Collective Human Judgment, écrit par Tamsyn Waterhouse.

Il ne s'agit pas à strictement parler de résultats liés au moteur de recherches, mais je pense que l'idée est très intéressante, en particulier pour ceux qui font travailler des gens via des plateformes comme Amazon Mecanical Turk. Pour rappel, ce que l'on appelle l'ordinateur humain (human computing, ou encore social computing en anglais), c'est la réalisation par des humains de tâches répétitives que l'ordinateur ne résout pas bien (captchas, classification d'images, OCR, etc.), l'incitative financière étant fournie via des micro-paiements. Ces tâches répétitives sont généralement assez simples par essence : il s'agit de prendre une décision objective (c'est-à-dire que la réponse d'une personne est toujours soit totalement correcte, soit totalement incorrect, et donc qu'il n'y a pas de demi-mesure). La tâche qu'on retrouve le plus souvent est la classification, et ensuite la saisie d'information.

Dans ce domaine en plein essor, il y a de nombreux problèmes intéressants. Par exemple, je travaille sur la mise en place de mécanismes de jeu avec but : l'idée est de faire travailler les gens, mais au lieu de les payer on va les faire jouer. Lorsque l'on s'adresse à un certain type de personnes, l’incitative du jeu est plus puissante que celle du gain de quelques centimes ou euros. Ici, l'article s'intéresse à un problème différent : comment mesurer la performance d'un humain qui réalise une tâche de calcul ? 

Cette question est importante. D'abord il faut voir ce que l'on appelle performance. C'est intuitivement un mix entre la vitesse de réalisation et la qualité de la réalisation : un briseur de captchas qui réussit 100% de ceux qu'il traite mais qui en fait 1 par heure, n'a pas d'intérêt ; un autre qui en ferait 1000 à l'heure, mais tous ratés, ce n'est pas mieux. Mais celui qui en fait 180 par heure et qui se trompe 20 fois, c'est pas mal du tout... Quand on réussit à noter la performance, on peut faire des arbitrages : ne plus donner de tâches à certains (peu performants ou malhonnêtes), donner certaines tâches à certaines personnes (car elles sont plus performantes sur ces tâches là), etc.

Je ne vais pas rentrer dans la technique ici, mais l'important est l'idée principale de l'article : la valeur de la décision d'un travailleur est son pouvoir de diminution de la surprise qu'on éprouve quand on voit la réponse correcte pour la question
Avec un exemple, ça passe toujours mieux. Imaginons que le travailleur me donne la réponse "il fait chaud" à une question donnée et que je découvre ensuite que la réponse correcte est "il fait -5 degrés". Je suis très surpris par la réponse correcte vu ce qu'on m'avait dit. La réponse du travail est donc de valeur très faible. Si en revanche il avait dit "il fait très froid", je ne suis pas surpris en voyant le résultat correct, et donc la réponse avait une bonne valeur, la performance est bonne.

Ce concept de relation entre la réponse et la solution n'est pas nouveau et est issu de la théorie de l'information. Ce qui signifie qu'il existe déjà des outils mathématiques pour le traiter. Basiquement, on va utiliser la notion d'entropie. L'entropie d'un objet, c'est la quantité d'information qui lui est associée, et généralement on mesure cette quantité par le nombre de bits nécessaires pour coder l'information. La valeur d'un travailleur sera proportionnelle à la diminution d'entropie fournie par ses réponses, c'est à dire proportionnelle à la quantité d'information qu'il nous fourni (en moyenne lorsque ce sera calculé sur plusieurs questions).

Cette mesure de performance est naturelle, mais elle est surtout indépendante des problèmes et des modèles qui sont utilisés (du texte, des images, des lolcats ? rien ne change dans la mesure). Par ailleurs, au delà de la simple quantification de la performance des travailleurs, on peut utiliser la mesure pour tuner les attributions de problèmes. Imaginons qu'un travailleur ait une performance mesurée de 2, mais qu'on voit qu'en fait la performance sur les données ayant un certain type est 4, et que sur le reste elle est de 0,5, alors on va fournir au travailleur uniquement des problèmes sur lesquels il a la performance maximale (de 4 donc).

Bref, une approche intéressante, et qui marche bien, comme le montre les nombreux exemples disponible dans l'article. Ensuite, question à plein de dollars, est-ce que ce mécanisme est utilisé par Google ? je ne sais pas, mais on pourrait imaginer que chaque internaute soit monitoré dans sa performance à casser du captcha, et qu'on lui fournisse de préférence ceux qu'il sait le mieux réussir. Pour lui c'est mieux car il perd moins de temps dessus, et pour Google c'est mieux car les tâches sont réalisées plus vite ! Bref, affaire à suivre...