Human computation ou calcul réalisé par des humains
30 août 2007 par GhusseIl y a quelques jours semaines, je voulais écrire un article sur les captchas.
Vous avez certainement entendu parler de la dernière affaire les concernant : la création d’un grand nombre de comptes destinés au spam sur gmail et hotmail. Et cela m’avait donné envie d’écrire un article sur le sujet des captchas, car les spammeurs avaient trouvé un moyen de contourner cette petite protection : une image où l’on doit déchiffrer des lettres déformées sur un fond compliqué.
Ca fera peut-être l’objet d’un autre billet tant le sujet est intéressant.
Mais ce n’est pas le sujet de ce billet car je suis tombé au fil de mes recherches sur une initiative très intéressante : recaptcha.net, qui m’oblige à parler d’human computation.
Vous allez comprendre pourquoi.
Détournement d’une application pour réaliser du calcul par des humains
ReCaptcha est remarquable d’un point de vue … intelligence artificielle (un de mes dadas). Pourquoi ? Parce que lorsque vous saisissez la réponse à un tel captcha, vous êtes employé comme logiciel de reconnaissance de caractère.
Comme vous pouvez le constater, les captchas fournis par ReCaptchas contiennent deux mots en anglais. Le premier mot sert de vérification : le système connaît les lettres qu’il faut entrer et si vous vous trompez, il rejette votre demande. Le deuxième mot est quant-à lui inconnu. Et le but est justement que vous fournissiez sa traduction de l’image vers du texte, car il est issu (comme le premier) de livres scannés.
On vous emploie donc avantageusement comme un supercalculateur spécialisé dans la reconnaissance de caractères. Je vous rassure : l’initiative est à but non lucratif, le but est de numériser des livres de internet archive.
L’intelligence artificielle en prend un coup
Ce que je trouve magique chez ReCaptcha ; c’est qu’ils ont réussi à trouver un moyen très simple, astucieux et surtout performant de réaliser une tâche extrêmement complexe d’intelligence artificielle.
Car la reconnaissance de caractères est un des thèmes de prédilection de cette discipline, une des applications des réseaux de neurones. Une solution purement IA au problème de numérisation des livres aurait demandé beaucoup de ressources humaines en conception de logiciel et de ressources informatiques pour la phase de calcul.
La solution ReCaptcha demande de découper des images pour séparer les mots, puis de laisser faire le travail par le système de calcul le mieux adapté pour ce travail : le cerveau humain.
Si simple, et si beau…
Description d’images : solution simple à un problème compliqué
La description automatisée : Graal des moteurs de recherche
Un des problèmes aux centre de la recherche en IA est en ce moment la description d’une image. Le rêve de ces chercheurs est d’arriver à trouver un logiciel qui permet d’attacher des mots-clé à des images inconnues.C’est encore un problème simple pour un humain : reconnaître qu’une image représente un chien, ou qu’une photo a capturé un paysage est l’enfance de l’art pour nous autres.
Par contre pour un ordinateur, c’est la galère. Au mieux arrive-t-on à créer des algorithmes chargés de reconnaître un objet très spécifique. Mais ils demandent un énorme ensemble d’images d’apprentissage, et ils font des erreurs grotesques.
Pourtant on a besoin de tels programmes, par exemple pour les moteurs de recherche. Ils indexaient les images selon le nom de fichier il n’y a encore pas longtemps. Aujourd’hui je viens de jeter un coup d’oeil sur Google Image et Yahoo Image, apparemment ces deux moteurs indexent maintenant selon le texte environnant. C’est toujours loin d’être parfait.
Human computation et images
Et si des humains passaient la totalité de la base google en revue ? Ils devraient en écrire des mots-clés pour chaque image. Il faudrait que ces personnes soient rapides et que les descriptions soient les plus complètes possible. Et puis il faudrait que ça soit bon marché.
La première solution serait d’embaucher des personnes dans le tiers monde. La deuxième solution est celle de Luis von Ahn : un jeu, ou plutôt plusieurs jeux :
Le premier jeu est très simple : il se joue à deux joueurs qui ne se connaissent pas, et qui ne peuvent pas communiquer. On leur présente la même image et ils doivent s’accorder sur un mot concernant cette image, tout en ne fournissant pas certains mots tabous. Chacun écrit de son côté des mots à la suite, dès qu’un mot apparait dans la listes des deux joueurs le jeu s’arrête. Chaque joueur obtient des points selon le nombre de mots qu’ils ont entré.
Les descriptions sont très bonnes car :
- les mots clés proviennent de l’accord de deux sources indépendantes : les mots ont de grandes chances de d’êtres pas trop mauvais.
- des mots tabous sont ajoutés au fur et à mesure : la complétude de la description est assurée.
C’est tout simplement génial.
Le futur de l’IA
Ce genre d’initiatives ouvre des perspectives fort intéressantes dans le domaine de l’IA. Et si on faisait faire ce qui est trop compliqué par des humains ? Au final, le rôle de l’IA ne serait que de rendre un problème amusant.
Si on vous demandait de travailler sur un projet d’indexation d’images en entreprises, vous proposeriez un jeu ?
[Edit 30 août 07, 22h20] : Le lien vers la conférence de Luis von Ahn n’était pas assez visible, le voici donc de nouveau : excellente conférence de Luis sur le sujet (à voir absolument).
C’est effectivement très intéressant et absolument pas nouveau. En 1996 ou 98 (je suis plus sur), dans l’optique de d’étudier la vie artificielle, Millenium Interactive (peu après acheté par Sony) avait créé un jeu faisant un (très) grand usage d’algorithmes génétique et réseaux de neurones ; j’ai nommé « Creatures ». Dans ce cas, les humains avaient été utilisés comme « nounous », « experts » dans le jargon IA, pour les « Norns » (les créatures en question) avec pour but de voir jusqu’où les algorithmes étaient capable de simuler la vie artificielle et l’apprentissage des bestioles. Dans ce cas, rien de bien fabuleux à la clé, pas de projet utile à la communauté toussa toussa.
Pour en venir à ta question, je voudrais commencer par parler du concept de « jeu ». C’est le point noir de tout ça en fait. Chercher à donner des mots clés pour décrire une image en collaboration avec un autre humain est intéressant, mais selon moi absolument pas marrant et encore moins captivant. A la rigueur quand on sait ce que nos actions impliquent et les conséquences sur le système c’est intéressant de voir comment ça se passe… mais de la a qualifier une telle application de « jeu » je ne sais pas. En tout cas, ce n’est pas un jeu pour l’utilisateur lambda je trouve… et c’est ça qui est dommage.
- Est ce qu’un jeu doit être marrant ? C’est mieux…
– Est ce qu’un jeu doit être captivant ? Certainement!
La puissance de cette logique (utiliser l’humain comme IA) fonctionne dans en considérant le poids du nombre et l’ultra répétition de ces actions. L’utilisation des multiples « checks » faits par les utilisateurs au moyen des captchas s’adresse vraiment à l’utilisateur de base…
Pour en finir avant de commencer (c’est déjà fait ?) à raconter trop de bêtises, un tel système marche s’il est vraiment ludique et captivant (ou intégré à) ou s’il est très simple et utilisé au jour le jour en tant qu’utilitaire… et dans les deux cas, par un grand nombre de personnes.
Alors un jeu pour faire de l’indexation d’images en entreprise ? Ok, je commence à réfléchir dans ces deux directions!
Merci pour ces infos, je connaissais pas.
Certes, utiliser l’humain comme expert n’est pas nouveau, c’est même le principe des systèmes experts justement. Ils sont sensés reproduire des décisions déterminées par des experts qui ont été interrogés au préalable.
La différence c’est qu’ici l’humain ne fournit pas son expertise pour réaliser un apprentissage, il fournit directement le résultat.
Concernant le concept de jeu, regarde le lien vers la conférence du gars. Certaines personnes jouent 20h par semaine à ce jeu. Il y a 75 000 inscrits pour 15 millions de mots-clé.
Je sais que je parle à un adepte de WoW, un gamer qui considère le jeu comme une œuvre d’art. Mais je dois te rappeler que le démineur est un jeu, le solitaire est un jeu. Quand on y pense c’est vraiment con : classer des cartes par couleur ça casse pas trois pattes à un canard. Pourtant ça marche, des gens y jouent.
(Stop le troll sur les jeux, pliz)
Dans ce jeu (oui, j’ose l’appeler comme ça), les gens on trouvé marrant la connexion qui s’établit avec le partenaire. Les joueurs apprennent à connaître un inconnu au travers des mots pour lesquels ils sont d’accord. Tomber d’accord pour le mot ’Yuck’ sur une photo de George Bush peut être jouissif pour certains joueurs (véridique).
Le simple fait qu’il y ai des joueurs prouve que ça marche.
Je ne comprends pas ce que tu as voulu dire par là.
Les captchas étaient un exemple d’application détournée, pas de jeu.
Chiche ?
C’est vrai que c’est génial, ces trucs. Faire bosser un peu les cerveaux humains au lieu de les laisser s’abrutir devant Jean Pierre Pernault, c’est une super idée.
Ceci dit, je peux pas m’empêcher d’y penser : quand les IA auront bien compris comment distraire le cerveau humain, comment le faire jouer pour résoudre des problèmes qu’elles ne savent pas résoudre, l’étape suivante logique, c’est Matrix, non ? :-p
Quoi ? On veut m’utiliser à mon insu ? Ca se passera pas comme ça !
Non, quand même, c’est bien pensé. D’un certain côté, je trouve que c’est un peu dans la lignée de l’évolution des services au niveau internet où l’utilisateur est de plus en plus mis à contribution pour générer du contenu (genre les revues des articles qui ne sont même plus faites par les sites de vente mais par les utilisateurs, etc.). Mais l’idée de faire travailler des cerveaux (à leur dépends quand même) pour des tâches de calculs extrêmement complexe d’un point de vue informatique est sacrément bien pensée.
C’est vrai que ça fait un peu IA 2.0, mais c’est un peu trop marketing.
La vidéo est très intéressante effectivement. Il pointe du doigt ce que je disais : il faut beaucoup de joueurs effectuant beaucoup d’actions d’indexation pour que ça marche.
Le principe de son jeu très puissant c’est sûr, mais s’adresse (je trouve) à un public trop restreint.
D’où ce que je disais, intégrer l’action au sein d’un jeu est peut être plus facile que de créer un jeu à part entière autour de cette indexation. Ou en intégrant cette indexation dans un truc qui n’a rien à voir, l’exemple de captchas résolus par des « adultes en mal de relations humaines »
J’ai compris ta remarque de la dernière fois (enfin il me semble (gné, lent le ghusse)), tu montrais que le jeu devait être basé sur une action répétitive. Je suis d’accord.
On peut confier ce genre de tâches à des humains lorsque les calculs sont indépendants et assez simples pour l’humain. De plus pour que le jeu ait un sens, il faut que les actions à mener se ressemblent.
On peut difficilement trouver un moyen de résoudre par ce biais des problèmes où la solution est globale (dépend de tout un tas de paramètres impossible à évaluer pour une personne), par exemple les recherches de chemin le plus court ou plus rapide.
Concernant le public, je pense au contraire qu’il est assez large. Certes on ne va pas passer ses nuits à jouer à ESPGame, mais c’est un jeu dans la lignée du solitaire ou du démineur. Il sert à passer 5 minutes pour se détendre. Ce qui peut restreindre le plus son public, c’est qu’il se joue pour l’instant uniquement en anglais.
De là à devenir un best seller, je pense qu’on peut rêver aussi. Mais Luis a montré qu’il suffisait finalement de peu de joueurs pour arriver à indexer toutes les images de Google.
Mais j’ai toujours pas compris ta référence aux captchas.
Je viens de comprendre la ou tu butte : quand je disais « captchas », je parlais de ceux que tu présentais en haut de ton post, ceux qui servent à reconnaitre des mots.
Alors ma référence aux Captchas est simple. Si tu ne peux pas créer un jeu pour faire faire ton taf à des êtres humains (Luis a trouvé de très bonnes idées, mais c’est pas garanti que ce soit répétable pour tout plein de pb d’IA), il suffit d’intégrer ton « taf » au sein d’un truc qui n’a rien à voir. Imagine si tous les utilisateurs de Windows devaient donner un mot décrivant une image au démarrage de leur ordinateur (exemple à la con trouvé la maintenant sur le coup donc juste pour illustrer hein)… même si le jeu est super con et pas marrant du tout, en croisant toutes les données obtenues (plusieurs utilisateurs se voient donné la même image) tu obtiens probablement une bonne description de ton image (je vois plein de contre exemples déjà mais bon, encore une fois c’est pour illustrer).
Donc sois tu crée une application (jeu) autour du but que tu recherches (indexer des images). Soit tu intègre le but recherché au sein d’une application n’ayant rien à voir ; l’idée de vérification des mots par captchas.
La tu devrais mieux comprendre… dsl pour la confusion
Ok, je comprends mieux ce que tu veux dire. Tu fais ressortir exactement ce que je pense et ce que j’ai essayé de présenter au travers des deux exemples qui sont les captchas et ESPGame.
Merci pour ces précisions Tim.
Perso, Windows peut bien demander tous les exercices qu’il veut… C’est pas pour ce que je le lance souvent… ^_^
Pour ma part, je trouve l’idée du jeu intéressante mais je pense qu’un problème se pose aussi au niveau du mot clef. Par exemple est-ce qu’un sentiment est représentatif pour décrire une image ? Imaginons que 2 personnes tombent d’accord sur le mot « Sérénité » pour une photo d’un lac par exemple. Pour certain, la sérénité correspondra plutôt à une photo d’une fleur, du ciel, d’une forêt… Cela dépend en plus de la culture, de la religion ou même de la langue de l’individu.
Donc est-ce que les mots clefs subjectifs décrient réellement une image ? Est-ce qu’il faut se limiter aux mots clefs factuels ?
Un exemple musical de mot clef subjectif : j’ai vu des musiques taguées avec le mot clef «Lovely». Quel genre de musique cela évoque t’il pour vous ?!
Il faut voir que seuls les mots-clé qui ressortent le plus souvent sont pris en compte. Par exemple si « sérénité » ne ressort qu’une fois, il ne sera pas choisi comme mot-clé représentatif pour la photo.
Maintenant si plusieurs personnes s’accordent sur ce mot, sachant qu’elles ne se connaissent pas, qu’elles peuvent venir d’horizons différents et qu’elles ne peuvent pas communiquer, c’est certainement que le mot clé a un sens pour l’image en question.
Effectivement, ce système peut du coup faire des associations subjectives entre mot-clé et image ; mais c’est plutôt intéressant à mon sens !