S'il y a bien un sujet qui revient périodiquement dans les discussions entre SEO, c’est celui de l’impact du comportement des utilisateurs au niveau de la SERP sur le classement en lui-même : clics, CTR, Dwell Time, pogosticking, etc. Chacun a son intime conviction, entre ceux qui pensent que Google ne prend pas en compte du tout le comportement de ses utilisateurs, et ceux qui pensent que c’est un facteur très important (à tel point que des dispositifs ont été mis au point pour simuler en masse des clics dans les SERP dans l’espoir de faire bouger les lignes).
Dans cet article, je vais rappeler pourquoi la mesure de la satisfaction en temps réel est importante, et je ferai ensuite un panorama de ce qui est utilisable pour faire cette mesure.
Re-ranking et learning-to-rank
Si vous êtes un lecteur assidu de Réacteur, vous savez qu'un moteur de recherche fonctionne avec des signaux, et que ces signaux sont agrégés pour donner un score à chaque page de l’index pour une requête. Les pages avec les scores les plus hauts sont alors présentées en haut du classement.
Historiquement, les signaux sont agrégés en faisant une somme pondérée, et la pondération était déterminée de manière assez besogneuse, était fixe pendant un temps, puis revue, etc. Déjà dans ce contexte, des données liées aux comportements des utilisateurs pouvaient être utilisées pour faire ce que l’on appelle du re-ranking, c'est-à-dire des modifications “rapides” d’un classement assez statique, pour améliorer les résultats. On notera que le re-ranking est un concept qui peut servir dans d’autres contextes (pour faire de la personnalisation par exemple). Des études menées chez Microsoft (référence [1]) montre que l’usage d’information de comportements utilisateurs pour faire du re-ranking améliore la qualité perçue drastiquement (augmentation de la précision à 10, c’est-à-dire du nombre de résultats du top 10 qui sont pertinents, de près de 15%).
Mais ce qui va rendre l’usage d’informations comportementales au niveau de la SERP très important est la mise en place d'algorithmes de learning-to-rank. Le principe du learning-to-rank est un principe d’apprentissage automatique (machine learning) dont les premières approches ont été mises au point chez Altavista (voir le brevet de David Cossock, référence [2]).
L’idée du learning-to-rank est très simple. On détermine les caractéristiques importantes pour le classement, on pondère les caractéristiques, on regarde l’erreur commise en termes de qualité de résultat, puis on modifie les pondérations pour améliorer la qualité, et on recommence…
Les travaux de l’équipe de Chris Burges, chez Microsoft Bing (voir l’article [3]) vont tout changer pour les moteurs. Dès les premiers tests, ces méthodes vont montrer une réussite exceptionnelle pour calculer rapidement un bien meilleur classement, en se basant principalement sur des préférences exprimées par les utilisateurs du moteur. Les algorithmes de learning-to-rank ont bien évolués depuis (Google en a même présenté un à base de réseaux de neurones profonds, référence [4]) mais tous se "nourrissent" des préférences, qui peuvent être sous forme pointwise (j’aime/j’aime pas telle page), pairwise (je préfère la page A à la page B), ou encore listwise (voici la liste ordonnée des pages que j’aime). La plupart des approches modernes sont pairwise, car l’information de préférence par comparaison est la plus naturelle pour l’homme.
Données explicites et implicites
Pour récolter les préférences des utilisateurs, il existe plusieurs manières de faire. La plus évidente est tout simplement de le leur demander ! A partir des années 2000, on voit des méthodes de classement qui prennent en entrée des avis utilisateurs explicites. Vous remarquerez que parfois, Google fait apparaître une boîte de dialogue demandant votre avis : cela s’inscrit dans ce type de démarche.
Mais ce qui nous intéresse ici est l’expression des préférences de manières implicites, c’est-à-dire par analyse du comportement de l’utilisateur dans son interaction avec le moteur. Ce qui est intéressant est bien entendu que la récolte des préférences implicites n’est pas intrusive et peut donc être opérée à très grande échelle.
Il faut également noter un point très important : les préférences implicites ne riment pas forcément avec utilisation en temps réel. En pratique, il faut suffisamment de préférences exprimées (merci les belles bornes statistiques) pour avoir une assez bonne idée de la réalité de ce qui plaît et ne plait pas. L’acquisition sera généralement en temps réel (avec un log spécifique, souvent appelé le click graph) mais l’utilisation sera soit séquencée régulièrement, soit faite de manière paresseuse (ce qui signifie à chaque fois que le volume de données récoltées le permet).
Les étapes de l’interaction avec le moteur, et avec le Web
Le comportement de l'utilisateur est mesuré essentiellement lors de trois phases comportementales différentes :
- Présentation. Le temps de présentation est l'intervalle de temps existant entre le moment où l'internaute a tapé sa requête et le moment où il clique sur l'un des résultats proposés par le moteur.
- Action. L'utilisateur a plusieurs actions possibles, mais la principale est le clic sur l'un des résultats. Le clic est donc l'objet de base du monitoring. On peut le mesurer en termes de fréquence, mais aussi en termes temporel (par exemple en mesurant l'intervalle de temps entre deux clics sur les SERPs d'une même requête).
- Visualisation. Une fois que l'utilisateur a cliqué sur un lien, il visualise la page cible du lien cliqué.
Tout ce qui est dans les étapes 1 et 2 est du ressort de l’étude de la SERP, les actions peuvent être directement monitorées par le moteur directement. L’étape 3 est l’analyse du comportement de l’internaute lorsqu’il quitte le moteur et visite une ou plusieurs pages web. On pourrait croire que c’est donc de la donnée hors de portée du moteur, et pour briser cette croyance, il faut rappeller que Google possède Chrome, un navigateur très utilisé et qui collecte de la donnée de navigation…
Quels sont les éléments sur lesquels on peut récolter de la donnée lors de chaque phase ?
Lors de la phase de présentation, on peut s’intéresser à la position des pages cliquées, on peut s’intéresser à la requête (longueur, sujet, intention, complexité, etc.), on peut enfin analyser la chaîne de requêtes (la suite de requêtes qui est faite par un utilisateur et qui permet de quantifier la notion de reformulation, voir la référence [5] pour en savoir plus).
C’est lors de la phase d’action qu’il y a la plus grande richesse d’information et en même temps toujours une grande facilité de captation (ce sera le sujet de la prochaine section). Mais on peut mesurer le temps pour agir (moment de saisie de la requête versus moment du premier clic), on peut regarder les patterns de clics, on peut faire toute sorte de statistiques de fréquence, etc.
Enfin, lors de la phase de visualisation on peut mesurer via un monitoring extérieur (au niveau du navigateur par exemple) le dwell time (c’est-à-dire le temps passé sur la page), la poursuite de visite, etc. On est alors dans une logique de tracking plus global de l’utilisateur.
Feedback implicite et SERP
C’est l’article [5] qui est la référence sur ce sujet. La figure 1 ci-dessous, tirée de l’article, montre les principales stratégies pour transformer un pattern comportemental vu pendant la phase d’action en l’expression, implicite, d’une préférence.
Pattern comportementaux au niveau de la SERP (tirée de [5]).
Ces patterns s’inscrivent soit dans le suivi des actions sur une chaîne de requêtes, soit sur une seule requête.
Je vais commencer par expliquer le cas d’une seule requête. Il s’agit des deux schémas du haut de la figure. A gauche on voit la notion de click-skip : pour une requête q, l’internaute va cliquer sur le troisième résultat (le X dans la figure), mais pas sur le premier et le deuxième. Indiquant de manière implicite qu’il pense que les deux premiers résultats sont moins pertinents que le troisième. Il crée ainsi deux paires de préférences qui vont pouvoir être envoyées en entrée au learning-to-rank.
A droite on voit ce que l’on appelle un no-click second : l’utilisateur du moteur clique sur le premier résultat et ne revient jamais. C’est une confirmation implicite de la qualité du premier résultat.
Le moteur va également regarder ce qu’il se passe lors de la saisie de plusieurs requêtes à la suite sur un même sujet (des reformulations). Je ne vais pas m’attarder sur le “comment” de la détection des reformulations, mais juste sur les patterns qui vont être analysés.
Les deux motifs du milieu de la figure sont des variantes des motifs à une seule requête et ne nécessite pas d’explications.
Mais les deux motifs du bas sont plus complexes. Celui de gauche indique que la page X est préférée à celle au-dessus pour la requête q, et à toutes les pages de la requête q’ (la requête précédente). Dans ce cas, le moteur part donc du principe qu’une reformulation indique que quasiment tous les résultats précédents sont mauvais. Enfin, le motif en bas à droite indique juste une préférence par rapport au premier. Ainsi sur le schéma, dans ce cas X est préférée à la page au dessus pour q, et aux pages 1 et 2 pour q’. L’idée est de se dire que si un humain clique sur le 2eme résultat pour la deuxième requête, il est possible qu’il ne se soit pas embêté à regarder plus loin que le deuxième pour la première requête et donc qu’il n’a pas comparé plus que les 2 premiers.
Est-ce que ces motifs montrent réellement les préférences ?
On trouve la réponse dans le même article qui décidément couvre bien le sujet. Tous les patterns de la figure 1 donnent bien des préférences pairwise implicites. Le click-skip est précis à quasiment 80% (plus ou moins 5%), tandis que le no-click second n’est précis qu’à 63% (plus ou moins 16% !). La palme de la précision est pour le motif en bas à droite, qui utilise click-skip et deux requêtes, avec une précision de 84% (plus ou moins 6%).
On voit donc deux choses : en premier que ces motifs permettent vraiment de comprendre ce qui plait et ne plait pas, mais aussi qu’il y a toujours un taux d’erreur important. En utilisant plusieurs motifs simultanément, la précision monte un peu, mais pas au-delà de 87% dans cet article. Pour aller plus loin, il faudrait utiliser l’information de la phase de visualisation, ce qui est un tout autre sujet.
Ensuite, pour que les préférences des utilisateurs soient agrégées de manière significative, il faut avoir surveillé l’apparition des patterns pour un grand nombre d’utilisateurs (plusieurs milliers), et c’est pour cela qu’on peut avoir des (bonnes) corrections de SERP bien plus fréquentes sur des mots clés à fort volume de recherche.
Le pogo-sticking ?
Chez les SEOs, on parle beaucoup du pogo-sticking, c’est-à-dire le fait de cliquer sur un lien de la SERP, aller sur le site pointé par le lien et revenir aussitôt sur la SERP. Ce type de motif pourrait être analysé, mais en réalité il a une précision tellement faible par rapport à des motifs aussi simple à analyser (comme le click-skip et le click top-two du bas à droite de la figure 1) que le moteur n’a aucun intérêt à s’en servir pour générer des préférences pairwise.
Conclusion
On le voit, il est très simple pour un moteur de comprendre de manière implicite ce qui plaît à ses utilisateurs.
Gruger le moteur sur cet aspect est conceptuellement simple, mais techniquement très complexe. En effet, générer ces patterns comportementaux implique la capacité à simuler des êtres humains dispersés partout, statistiquement “normaux”, avec un comportement bien choisi, dans un volume suffisant pour changer la vision que le moteur a de la qualité d’une SERP.
Sur un mot-clé à fort volume, cela devient vraiment très difficile, plus même que de simuler des clicks publicitaires ! Autant faire directement des sites de bonne qualité 😉
Références
[1] Agichtein, Eugene, Eric Brill, and Susan Dumais. ”Improving web search ranking by incor- porating user behavior information.” Proceedings of the 29th annual international ACM SIGIR conference on Research and development in information retrieval. ACM, 2006.
http://susandumais.com/sigir2006-fp345-ranking-agichtein.pdf
[2] https://patents.google.com/patent/US7197497B2/en
[3] Burges, C., Shaked, T., Renshaw, E., Lazier, A., Deeds, M., Hamilton, N., & Hullender, G. (2005, August). Learning to rank using gradient descent. In Proceedings of the 22nd international conference on Machine learning (pp. 89-96).
https://icml.cc/2015/wp-content/uploads/2015/06/icml_ranking.pdf
[4] https://ai.googleblog.com/2018/12/tf-ranking-scalable-tensorflow-library.html
[5] Radlinski, Filip, and Thorsten Joachims. "Query chains: learning to rank from implicit feedback." Proceedings of the eleventh ACM SIGKDD international conference on Knowledge discovery in data mining. 2005.
https://arxiv.org/pdf/cs/0605035
Sylvain Peyronnet, concepteur de l'outil SEO Babbar.