Un moteur de recherche comme Google ou Bing est loin d'être un système simple pouvant être expliqué en quelques lignes. Il est au contraire l'addition de nombreuses technologies souvent assez complexes, lui permettant de renvoyer à l'internaute qui l'utilise les résultats les plus pertinents. Cette série de sept articles vous a expliqué, au fil des mois, quelles sont les différentes briques d'un moteur et vous en a dévoilé les arcanes qui constituent leurs entrailles. Après nos précédents articles sur les technologies de crawl, l'index inversé, le duplicate content, le PageRank thématique, la pertinence et l'analyse de la requête de l'internaute et enfin la lutte contre le spam, il était temps de voir comment toutes ces briques s'articulent entre elles...

Par Guillaume Peyronnet, Sylvain Peyronnet et Thomas Largillier


 

Nous avons étudié dans les six articles précédents le fonctionnement indépendant d’un certain nombre de briques algorithmes qui composent un moteur de recherche. Dans ce dernier article, nous allons voir comment toutes ces briques a priori disparates s’assemblent, pour fabriquer la belle maison “moteur de recherche”.

En effet, une fois que les pages trouvées sur Internet ont été crawlées, indexées, analysées pour leur pertinence et leur popularité, le moteur peut finalement renvoyer des résultats de recherche. Lorsque l’internaute va saisir une requête, le moteur de recherche va choisir dans son index les pages les plus pertinentes, et il va les renvoyer dans l’ordre décroissant de popularité. Ainsi plus une page pertinente est populaire, plus elle a de chances de se retrouver dans les premiers résultats de la SERP pour les requêtes qui la concerne. Tout cela est très théorique, mais bien sur la réalité n’est pas si évidente. Voyons donc comment cela se passe dans la véritable vie du moteur.

Tout d’abord, il faut comprendre l’objectif du moteur de recherche : il s’agit de fournir à l’utilisateur des documents qui le satisfont raisonnablement. Il n’y a donc pas besoin de trouver les “meilleurs” documents, pour peu que ce terme de “meilleur” ait le moindre sens, d’ailleurs.

Dans ce contexte, il existe un certain nombre de tâches qui vont permettre de simplifier et/ou d'accélérer les calculs tout en maintenant une qualité raisonnable. Ces tâches sont des heuristiques, c’est-à-dire des actions plus ou moins algorithmiques qui marchent... parce qu’elles marchent (et c’est là toute la beauté de la chose !).

La suite de cet article va donc présenter chacune de ces tâches, sans trop de fil conducteur car il s’agit de points assez indépendants, qui vont s’associer afin de créer “LE” moteur de recherche.

Un index plus léger, ou plutôt des index plus légers

Première chose à absolument comprendre : il n’y a en fait pas un seul index mais plusieurs, ce que l’on va appeler des verticales ou des shards, et qui vont correspondre à des sous-index thématiques (voyage, e-commerce, adulte, etc.), ou techniques (les blogs, les sites de vente, etc.) ou n’importe quelle autre découpe qu’on estime pertinente. Une page web peut se retrouver dans plusieurs verticales ; un site peut avoir des pages dans une verticale et d’autres pages dans une autre verticale. Bref, il s’agit d’une découpe plus ou moins habile de tout ce qui a été crawlé puis indexé par le moteur.


Pour accélérer la vitesse de réponse du moteur, on va pré-traiter ces index, dans le but de ne garder que les documents qui contiennent toujours au moins un terme de la requête dans le cas d'une requête longue. C’est essentiellement dans ce but que l’on crée le fameux index inversé. Pour économiser encore un peu plus, on ne va créer cet index que pour les termes que l’on estime importants, généralement il s’agit des termes avec une IDF passant un certain seuil (ceux qui sont sous ce seuil correspondent à ce que l’on appelle les stop-words ou mot vides : articles, conjonctions de coordination, etc.).

Si on veut gagner en qualité de résultat, on va étendre l’index inversé en y incluant également des groupes de mots (n-grams) pour prendre en compte plus rapidement des requêtes étendues. Dans ce cas, on va généralement rajouter un signal spécifique pour prendre en compte le fait que plusieurs termes qui constituent un n-gram peuvent être dans le document mais non contigus (ce que l’on appelle un “partial match”).

Après cette élimination (il s'agut du terme consacré), on obtient généralement un index beaucoup plus petit, ce qui en dit long sur cette forme d’imposture qui consiste à annoncer des index de taille gigantesque.

Les top documents

Cette idée de nettoyage à l’avance des index, on peut la pousser encore plus loin avec la notion de top documents (ou champions) pour un terme. La liste des champions pour un terme est un filtrage supplémentaire des documents associés au terme, selon une fonction de score bien choisie. Par exemple, si on utilise la TF-IDF, on ne va garder que les documents qui dépassent un certain seuil de TF pour le terme que l’on analyse. Une fois que c’est fait, cela simplifie la création d’un ensemble de champions pour une requête : on prend l’union des top documents pour chacun des termes de la requête, et c’est dans cet ensemble (petit) de documents que l’on va rechercher les meilleurs documents en termes de pertinence.
Le problème principal pour le moteur dans cette approche est de fixer la bonne valeur pour le seuil de score, sachant que ce seuil n’est pas forcément le même pour tous les termes. On va par exemple avoir des seuils plus bas pour les termes plus rares (ceux à fort IDF). En effet, ces termes plus rares sont plus importants pour comprendre la pertinence, et on peut être intéressé à avoir plus de documents les contenant.

Score : la “qualité” des pages

Vous l’avez compris, il existe de très nombreux signaux manipulés par le moteur. Certains sont des signaux absolus comme par exemple le PageRank, le spam score d’une page, le fait que la page comporte des images pour adultes ou de la publicité, etc. D’autres sont des signaux relatifs à un “site en lui même” (généralement défini comme un domaine ou un sous-domaine). Il s'agit par exemple du cas du taux de duplication moyen interne au site, ou encore le cas des nombreux signaux liés à la qualité ou à l’historique d’un domaine (EMD, date de première apparition dans l’index, nombre de modifications du Whois, etc.). Et enfin, certains signaux sont relatifs à la requête en elle-même (TF-IDF, BM25, présence des termes de la requête dans le title, le h1, à droite, à gauche, en haut, en bas, etc.).

La question que tous les SEO se posent est toujours la même : quel est l’impact de chacun des signaux ? Vous avez ainsi sans doute déjà vu une de ces nombreuses études qui vous dit quels sont les signaux importants et dans quel ordre il faut les traiter.

Pour le moteur, la question est cruciale : il possède dans ses index de très nombreuses pages, et toutes possèdent quelques dizaines ou centaines de scores différents, pour des signaux différents. Une page peut ainsi se positionner devant une autre pour un signal particulier, mais derrière pour un autre signal. Dans ce cas, comment faire pour donner un et un seul classement aux pages, pour présenter seulement les meilleures ?

Pour répondre à cette question, le moteur va agréger les scores de chacun des signaux pour obtenir une valeur unique pour chaque page. Par exemple, imaginons qu’il n’existe que deux signaux : le pagerank P, et la pertinence syntaxique S. Imaginons que P et S soient deux valeurs qui varient entre 0 et 1, 1 étant le meilleur score. Pour classer les pages par rapport à une requête, le moteur va calculer un score unique SU en faisant une combinaison linéaire de P et S :

SU = alpha * P + beta * S

La somme des coefficients doit toujours valoir 1 (ici alpha +beta =1).
Par exemple, si la page p1 a un pagerank de 0,2 et une pertinence de 0,8, tandis que la page p2 a un pagerank de 0,3 et une pertinence de 0,6, et si alpha = beta = 0,5, alors on a :

SU(p1) = 0,5 * 0,2 + 0,5 * 0,8 = 0,1 + 0,4 = 0,5
SU(p2) = 0,5 * 0,3 + 0,5 * 0,6 = 0,15 + 0,3 = 0,45

Avec cette fonction d’agrégation, la page p1 sera classée avant la page p2 lorsque l’utilisateur tapera la requête. Sans aucune surprise, la question est donc : comment le moteur détermine-t-il les valeurs des coefficients (ici alpha et beta) qui amènent les meilleurs résultats ?

C’est à ce moment-là qu’intervient un algorithme d’apprentissage des poids. Pour cela on va faire une évaluation humaine d’un grand nombre de pages, pour des requêtes-tests choisies à l’avance. On va demander à des évaluateurs (des quality raters dans le jargon des référenceurs) de dire pour chaque requête-test quelles sont les pages pertinentes, non pertinentes, et surtout de comparer deux pages éligibles à la pertinence pour la requête. Attention, ici le mot pertinence veut dire “éligible à être dans les premières positions dans les SERP”.

Une fois que l’on a rassemblé un volume de données suffisant, un algorithme spécifique va trouver une distribution de valeurs pour les coefficients qui va permettre d’aboutir à un classement le plus proche possible de celui produit par les êtres humains. L’espoir étant (mais c’est généralement le cas) que ces poids permettront d’avoir un classement considéré comme corrects par des humains pour les requêtes et pages qui ne sont pas dans le dataset d'entraînement.

Rétroaction

Bien évidemment, le contexte dans lequel évolue un moteur de recherche est très dynamique, et les poids qui fonctionnaient un jour ont toutes les chances d’être caduques le lendemain. La faute en incombe bien sûr aux référenceurs, qui vont assez vite deviner de manière très intuitive quels sont les signaux les plus importants et vont les utiliser pour pousser leurs pages. Sans rétroaction de la qualité, le moteur va assez vite dévier des résultats optimaux. Pour que cela n’arrive pas, de nombreux algorithmes prennent en compte la qualité perçue par les utilisateurs. C’est par exemple le cas de l’algorithme de Rocchio que l’on a décrit dans un article précédent. Et pour la fonction d'agrégation des poids, cela va être pareil : périodiquement, les poids sont ajustés  pour coller aux avis des utilisateurs du moteur sur la qualité des SERP.

Agrégation des verticales

Un autre problème crucial est celui de la constitution du bon mélange de verticales lors de la demande de constitution des SERP pour une requête (par l’utilisateur donc). C’est là où rentre en jeu tout le travail effectué par le moteur sur les requêtes.

Si le moteur connaît les intentions et catégories associées à une requête, il va pouvoir constituer une SERP qui va prendre en compte ces intentions et catégories.

Par exemple, imaginons que l’internaute tape “machine à café à grains”. Il y a plusieurs intentions possibles : une intention commerciale (“je veux acheter une machine à café qui moud le grain elle-même”) ou une intention informationnelle (“comment fonctionne une machine à café à grains ?”). Si en plus le moteur sait que l’intention commerciale est majoritaire et que, par exemple, elle concerne 70% des internautes qui tapent cette requête tandis que 30% veulent s’informer, alors il va constituer une première page des résultats en prenant 7 pages dans la verticale commerce, et 3 pages dans la verticale information. Le classement des pages dépendra ensuite de l’agrégation des signaux, comme vu précédemment.

Re-ranking

La notion clé ici est celle de rétropropagation implicite de pertinence : Il s’agit d’observer les actions de l’utilisateur pour déterminer quelle est sa perception en termes de qualité du classement proposé. Une fois déterminée cette perception, on peut ajuster, à la marge, le classement en modifiant légèrement les positions.

L’avantage de cette approche est qu’elle est basée sur le comportement des utilisateurs réels et donc qu’elle est automatique et raisonnablement peu coûteuse.

La principale difficulté de l’approche est la mise en place d’un système de monitoring permanent et transparent en termes de performances (il ne faut pas allonger le temps de réponse), et dans une moindre mesure le volume de données associé (car la méthode implique de garder une mesure de la performance de chaque triplet requête-page-position).

Ce que l’on va observer est un ensemble de mesures statistiques du comportement des utilisateurs face aux SERP :

  1. Si un internaute revient sur le moteur et tape une requête proche de la précédente, à quel point est-elle proche (nombre de mots en commun par exemple) ?
  2. Combien de temps s’écoule entre l’affichage de la SERP et le premier clic ? L’idée est que si ce temps est plus long que la moyenne les résultats sont très probablements mauvais.
  3. Est-ce que le taux de clic sur les pages en position 1, 2 , 3, etc. est cohérents avec la moyenne qu’on observe habituellement ? Une page au dessus de la moyenne est sans doute plus pertinente que prévu, une autre sous la moyenne moins pertinente…
  4. Combien de temps l’internaute passe-t-il sur la page ? Est-ce qu’il continue de surfer depuis la page plutôt que de revenir vers le moteur ? Si c’est le cas, c’est sans doute que la page a répondu à son attente et lui a donné de nouvelles pistes de lecture.

Bref, vous l’aurez compris : de nombreux micro-signaux supplémentaires permettent de raffiner les résultats en donnant un petit boost ou une petite fessée aux pages selon l’interaction entre le moteur et l’utilisateur.

Conclusion

Depuis maintenant plus de six mois, nous vous avons présenté les principales briques algorithmiques employées par un moteur de recherche, d’une manière que nous espérons didactique et toujours dans une optique de vulgarisation.

Même si la réalité pratique est toujours plus complexe que les explications épurées des détails, vous devriez maintenant avoir une vision assez claire des leviers employés par les moteurs, leviers que vous pouvez également activer de votre côté, pour obtenir un référencement toujours plus efficace.

Le doigt mouillé et l’intuition permettent peut-être de trouver de bonnes astuces en référencement web. Mais savoir comment fonctionne la machine apporte une efficacité incomparable, tout en étant bien plus satisfaisant. Bonne chance pour la suite !


Thomas Largillier, Guillaume Peyronnet et Sylvain Peyronnet sont les fondateurs de la régie publicitaire sans tracking The Machine In The Middle (http://themachineinthemiddle.fr/).