Web review and comments

Google continue de s’attaquer à la recherche sémantique

Depuis de nombreuses années, la fonctionnalité de recherche de Google est le produit phare de l’entreprise, qui l’améliore sans cesse, comme en témoigne le site web Inside Search. Parmi les différentes améliorations, la volonté d’apporter des résultats plus sémantiques est une direction très intéressante que suivent les moteurs de recherche. Il ne s’agit plus alors de se baser sur des mots-clés, mais aussi de les comprendre pour apporter des réponses toujours plus pertinentes. La définition qu’on donne ici à la sémantique n’est pas formelle, mais utile : elle permet de désigner sous un même nom un ensemble d’innovations très différentes.

Réponses sémantiques

Google

Chez Google, le dernier exemple en date concerne la recherche de peintres. Lorsque vous cherchez « Monet » sur la version anglaise de Google, le moteur de recherche détecte que vous souhaitez certainement en savoir plus sur les oeuvres du peintre « Claude Monet », et des peintures sont effectivement affichées parmi les résultats.

Peintures de Claude Monet

Ce n’est pas le seul exemple. La recherche Boeuf Bourguignon retourne des informations extraites du site qui contient la recette, et pas seulement les mots-clés identifiés. Par exemple, Google mentionne les ingrédients nécessaires et indique « 1h10 », qui correspond à la somme des 10 minutes de préparation et des 60 minutes de cuisson. Cet exemple montre bien que le moteur de recherche a été capable d’extraire ces informations du site web puis les a manipulées en comprenant leur sens. La version anglaise du moteur de recherche dispose même d’une interface permettant de filtrer les recettes qui nous intéressent le plus, en demandant par exemple des recettes avec moins de 100 calories.

DuckDuckGo

Il ne faut pas penser pour autant que ces innovations se limitent à Google. La concurrence se fait en effet de plus en plus rude dans le secteur. DuckDuckGo a récemment atteint un million de recherches quotidiennes. Même si le support pour les requêtes en français reste limité, c’est un moteur de recherche intéressant qui se distingue principalement par son respect de la vie privée (cf. Don’t track us), son impartialité (cf. Don’t Bubble Us), ou encore son système de bangs permettant de faire des recherches dans d’autres sites très facilement.

Mais DuckDuckGo apporte aussi des fonctionnalités sémantiques, plus ou moins utiles :

  • Quand un nom ambigu est utilisé, par exemple lawyer, DuckDuckGo inclut directement dans la page de recherche la page de désambiguïsation Wikipedia permettant de choisir le sens préféré.
  • Quand l’utilisateur entre « password », un mot de passe aléatoire est proposé.
  • Si c’est “X or Y”, le moteur de recherche répondra soit X, soit Y, et ce aléatoirement.
  • De manière plus intéressante, la recherche The Simpsons characters renvoie une liste triée alphabétiquement des personnages de la série.

Bart Simpson dans DuckDuckGo

Ces exemples ne représentent qu’une fraction des possibilités offertes pas les moteurs de recherche aujourd’hui ; possibilités qui sont amenées à se développer d’année en année.

Le Web Sémantique

Ces nombreuses fonctionnalités des moteurs de recherche sont plébiscitées, mais restent limitées pour le moment. En effet, il ne s’agit pas vraiment ici de comprendre ce que dit l’utilisateur, mais simplement d’apporter des fonctionnalités utiles. L’objectif du Web Sémantique est de décupler les possibilités offertes à ce niveau.

La vision du W3C

Le web sémantique en 1994 (attention les yeux)

La volonté de rendre le Web toujours plus sémantique ne date pas d’hier. En septembre 1994, Tim Berners Lee présentait sa vision du web sémantique. Tel qu’il est défini par le W3C (organisme qui normalise notamment HTML, CSS et PNG) le web sémantique ajoute des informations sémantiques au Web actuel. Ces informations sémantiques peuvent être utilisées pour connecter des applications intelligentes entre elles. Dans son article daté de mai 2001 (PDF), Tim Berners-Lee donne l’exemple d’une application qui serait possible avec le web sémantique : l’agent sémantique. Il décrit cet agent comme un assistant personnel capable d’utiliser des données riches pour automatiser des tâches comme la prise de rendez-vous. Dans son exemple, l’agent sémantique est capable de trouver un dentiste spécialisé et bien noté à une distance de 30km du domicile du patient. L’agent prend ensuite un rendez-vous avec ce même dentiste et décale des rendez-vous peu importants du patient pour qu’il puisse être pris en charge rapidement étant donné l’urgence de la situation.

Pour qu’une telle application soit envisageable, de nombreuses données doivent être disponibles. Il faut notamment :

  • établir une liste de médecins et leur spécialités ;
  • connaître leur réputation étant donnée une tâche donnée ;
  • connaître leur emplacement et leurs emplois du temps ;
  • savoir quand est-ce que le patient est libre pour un rendez-vous ;
  • connaître les conditions de circulation à différents moments de la journée ;
  • etc.

Une fois l’emplacement connu, l’agent sémantique est par exemple capable de déduire le temps nécessaire pour arriver chez un dentiste suivant l’heure de la journée, en se basant sur les conditions de circulation. En utilisant un service qui répertorie les dentistes en fonction de leurs caractéristiques, l’agent sémantique est capable de prendre un rendez-vous automatiquement avec ce dentiste en prenant en compte les agendas du patient et du médecin.

Face à la réalité du Web

Les Pages Jaunes

Aujourd’hui, pour trouver un dentiste, une possibilité est d’aller sur le site des Pages Jaunes (qui s’avère être envahi de publicités) pour demander un dentiste près de chez nous. Les dentistes sont alors ordonnés par proximité et leur numéro de téléphone est disponible. Il est alors possible de les contacter à certains horaires pour essayer de se mettre d’accord sur un rendez-vous.

Quelle est la différence avec le système proposé par Tim Berners-Lee ? Rien n’est automatique ici. Il faut nécessairement se rendre sur le site des Pages Jaunes, puis appeller le dentiste soi-même, puis examiner son calendrier. Même si tout ça peut se faire via Internet, nous utilisons des applications et non des données. C’est naturellement volontaire : aujourd’hui, seules des applications peuvent générer des revenus via la publicité, alors qu’il est bien plus complexe de gagner de l’argent avec des données.

Cela ne se limite pas au seul exemple de prise de rendez-vous. Le site J’aime Attendre ,qui indique les horaires, est disponible uniquement sous forme d’application (que ce soit un site web ou une application pour smartphone), mais ces données ne sont pas utilisables directement. Ce serait pourtant formidable : mon agent qui détecte un problème de désimlockage pourrait déduire que je peux appeller le service client de mon opérateur demain soir à 18h30, étant donné que mon emploi du temps me le permet. C’est la même chose pour le cinéma : AlloCiné, pour ne citer que lui, n’est qu’une application et les données ne sont pas disponibles facilement. La réservation de places peut se faire sur le web, mais il faut encore une fois passer par une application spécifique que mon agent ne peut pas manipuler de manière fiable.

Informations riches

Logo microformats

Comment extraire ces données des applications publiques ? Si vous avez déjà écrit en HTML, vous vous imaginez peut-être la difficulté qu’un ordinateur peut avoir à extraire des informations riches d’un site web. Par exemple, si je vous donne le code HTML correspondant à un tutoriel quelconque, êtes-vous capable d’écrire un programme qui m’indique son auteur ? Peut-être que le programme fonctionnera pour les tutoriels du Site du Zéro, mais il est extrêmement difficile de le faire fonctionner sur tous les tutoriels possibles, sans faire d’erreur.

Pour pallier ce problème, les microformats ont été inventés. Ils permettent d’ajouter des informations riches au HTML pour indiquer à quoi correspondent certains contenus. Par exemple, le microformat hCalendar permet d’indiquer des évènements. Prenons pour exemple la phrase suivante, tirée du site Kiwi Party :

Citation : Kiwi Party

La Kiwi Party est un événement réunissant conférences et ateliers, autour des thèmes de la conception web et de ses bonnes pratiques accessibilité, ergonomie, nouveautés technologiques, conformité aux standards. 4 mai 2012 à Strasbourg. À vos agendas ! Inscription ouvertes.

De nombreuses informations utiles pour une machine sont disponibles ici. Par exemple, j’aimerais pouvoir, en un clic, indiquer à mon agenda de réserver cette journée. Mais ce n’est pas possible simplement : je dois rentrer ces informations à la main. Pourtant, cette information aurait pu être annotée avec des microformats :

Code : HTML

1
2
3
4
5
6
7
8
9
<p class="vevent">
  La <span class="summary"><a class="url" href="http://kiwyparti.fr">Kiwi Party</a></span>
  est un événement réunissant conférences et ateliers, autour des thèmes de la conception
  web et de ses bonnes pratiques  accessibilité, ergonomie, nouveautés technologiques,
  conformité aux standards.

  <span class="dtstart">4 mai 2012</span> à <span class="location">Strasbourg</span>.
  À vos agendas ! Inscription ouvertes.
</p>

Il est alors très facile pour mon calendrier d’obtenir le nom de l’évènement, sa date et son lieu. Facebook a récemment déclaré utiliser le microformat hCalendar pour tous ses évènements, et Google supporte les microformats hCalendar et hRecipe. De tels microformats restent encore à être utilisés de manière universelle.

Le rôle des moteurs de recherche

Ainsi, même si Google encourage l’utilisation de microformats, le moteur de recherche n’a pas attendu que tous les sites l’implémentent, et utilise des techniques d’apprentissage automatique pour extraire les informations qui ne sont pas annotées avec des microformats. Plus les moteurs de recherche voudront retourner des résultats riches (et pas simplement des liens vers d’autres pages) plus ils vont devoir comprendre ces pages. En parallèle, les requêtes des utilisateurs deviendront de plus en plus spécifiques et les moteurs de recherches auront à gagner à comprendre le sens des requêtes, sans se contenter d’identifier des mots-clés dans les pages présentes sur le web.

Comprendre le langage naturel

XKCD : Computational Linguists
XKCD. Oeuvre sous licence CC by NC 2.5.

Il s’avère que comprendre des textes et des requêtes, c’est un vaste programme. La conception des moteurs de recherche (aussi appelé la recherche d’information) s’inscrit ainsi dans le cadre plus général du Traitement Automatique des Langues, discipline à la frontière de la linguistique, de l’informatique et de l’intelligence artificielle. Le Traitemant Automatique des Langues connaît de nombreuses applications. Citons-en ici quelques-unes :

Nous avons déjà parlé de recherche d’information. Ce terme désigne en Traitement Automatique des Langes la tâche d’identifier les documents remplissant au mieux les attentes que l’utilisateur a exprimé via une requête. Ce n’est pas limité aux moteurs de recherche classiques : de telles recherches sont courantes pour rechercher des documents sur votre ordinateur, sur le Site du Zéro, ou même sur le site de la Sécurité Sociale.

Le dernier exemple, les systèmes de questions-réponses, ou question answering en anglais, consiste à répondre à des questions factuelles telles que « Qui a construit le château de Versailles ? ». Pour répondre à de telles questions, il faut comprendre la question avant de donner la réponse : c’est très complexe étant donné l’ambiguïté présente à tous les niveaux dans le langage naturel. Il est alors heureux que la recherche d’information n’ait pas besoin d’une véritable compréhension des requêtes et des documents retournés pour obtenir des résultats performants.

Recherche d’information

Comment les moteurs de recherche peuvent-il, à partir d’un ensemble de mots tapés en langage naturel, identifier les documents intéressants pour l’utilisateur ? Il faut d’abord identifier ce qu’est un document « intéressant ». Pour une requête donnée, par exemple, « excellent tutoriel d’algorithmique », un utilisateur donné est capable de dire si le résultat obtenu est pertinent ou non après avoir examiné rapidement la page retournée. Par exemple, Algorithmique pour l’apprenti programmeur est un résultat pertinent, alors que Le Programmeur Moderne n’est pas pertinent, puisque la page ne contient pas d’excellent tutoriel en algorithmique.

La première chose qui est faite par les moteurs de recherche est d’extraire de la requête une information utilisable par l’ordinateur. C’est souvent un sac de mots qui est utilisé : le principe est d’extraire tous les mots pleins d’une requête. Par exemple, une requête « le sac à main de Margaret Thatcher » pourra être transformée en {main, Margaret, sac, Thatcher}. Seuls les mots pleins ont été conservés et l’ordre a été supprimée. Il s’agit ensuite d’identifier les documents les plus pertinents vis-à-vis de cette requête, en utilisant un certain nombre d’indices, par exemple :

  • la présence de ces mots dans une page donnée ;
  • la fréquence d’apparition de ces mots dans la page ;
  • des liens qui mentionnent ces mots ;
  • le PageRank de la page ;
  • la vitesse de chargement de la page ;
  • la quantité de clics sur un lien donné étant donne une requête donnée.

Google utilise plus de 200 de ces signaux (avec au moins 50 variations) pour ordonner les pages webs étant donné la requête, avant de servir les résultats à l’utilisateur. Bing utiliserait un millier de signaux. Toute la complexité de la recherche d’information est d’utiliser ces signals judicieusement pour obtenir les meilleurs résultats possibles.

Le futur de la recherche sémantique

Population moyenne de grandes villes

Nous l’avons vu dans la news, la recherche d’information par mots-clés n’est pas toujours le meilleur moyen de répondre à l’attente d’un utilisateur. L’exemple le plus frappant concerne les questions factuelles. En effet, un moteur de recherche est conçu avant tout pour renvoyer des informations pertinentes, mais ne peut pas savoir si la réponse à une question est exacte. Par exemple :

Pour certaines questions, le moteur de recherche obtient des résultats intéressants, mais il n’y a pas de réponse définitive. Pourtant, un moteur de recherche sachant répondre à des questions factuelles comme celles présentées ci-dessus aurait plusieurs longueurs d’avance sur ses concurrents et faciliterait encore plus la vie de ses utilisateurs.

Selon le Wall Street Journal, c’est exactement ce que Google compte réaliser : répondre à des questions factuelles. Il s’avère qu’il est possible de vérifier cette annonce en se penchant sur une publication récente par des chercheurs en lien avec Google. En effet, Percy Liang et son équipe ont publié l’an dernier un article intitulé « Learning Dependency-Based Compositional Semantics (PDF) » qui présente un système de questions-réponses très performant. Un système de questions-réponses désigne en Traitemant Automatique des Langues un système qui répond à des questions factuelles, comme celles citées plus haut.

L’article du Wall Street Journal indiquait que parmi les questions auxquelles pourraient répondre Google, « What are the 10 largest lakes in California? » en fait partie, ce qui correspond aux exemples cités par Percy Liang dans son article et sa présentation sur le même sujet faite à NIPS 2011 (YouTube). Quand est-ce que Google incorporera cette technologie dans son navigateur ? Il est encore trop tôt pour le dire, malheureusement. Les lecteurs armés de cachets d’aspirine pourront aller lire la publication qui décrit comment les chercheurs parviennent (à l’aide d’un modèle graphique probabiliste) à extraire les représentations sémantiques des questions posées en anglais ou français, ce qui permet ensuite d’y répondre à partir d’une base de données pré-remplie. Les résultats sont excellents et améliorent de manière significative les précédents travaux, ce qui laisse espérer une implémentation intégrée au moteur de recherche dans le futur.

Conclusion

En conclusion, cet article aura été l’occasion de présenter différents aspects de la recherche sémantique, en montrant à quel point un moteur de recherche moderne ne doit plus simplement gérer des mots-clés, mais bien comprendre de plus en plus les intentions de l’utilisateur et le contenu des documents présents sur le web. Toutes ces innovations sont rendues possibles grâce à la recherche passionnante qui a lieu en Traitement Automatique des Langues. Si vous voulez en savoir plus sur le sujet, le meilleur moyen est actuellement de surveiller les cours de Traitement Automatique des Langues proposés gratuitement en ligne ! N’hésitez pas à vous inscrire pour être notifié des prochains cours.

Merci aux newsers pour leur travail et à Elodie et lastsseldon pour leur relecture.

Source : Le Site du Zéro : l'actualité des tutoriels, de la communauté et du Web en général !

No Comments Yet

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Translation


About author

Stéphane Cocallemen is MD of imaginaty, a Paris based web agency and Digital Director of Territoires Conseil Group, a french global communication group.