alt=

Comment fonctionne Google ? Par Sylvain Peyronnet
 vendredi 24 mai 2013   Sylvain  49 vues

Il y a quelques semaines, je vous ai donné mon retour d'expérience concernant ce qui m'avait aidé à devenir un meilleur référenceur. Dans ces quelques conseils, j'évoquais le fait de connaître le fonctionnement des moteurs de recherches, et vos commentaires démontraient une certaine envie d'en savoir plus sur ce point-là. C'est pour quoi j'ai décidé d'en parler avec un spécialiste des algorithmes de classement : Sylvain Peyronnet.

Avant de commencer l'interview, je tiens à vous parler d'une formation que Sylvain prévoit de lancer avec son frère, et pour que ce rendez-vous soit parfait ils ont besoin de votre avis.

 

Bonjour Sylvain ! Certains lecteurs ne te connaissent peut-être pas encore, pourrais-tu te présenter, ton travail, ton parcours ?

Bonjour ! Je m'appelle donc Sylvain Peyronnet, et je suis actuellement Professeur des Universités à l'Université de Caen Basse-Normandie, dans le labo GREYC (https://www.greyc.fr/). Ca veut dire que je suis enseignant et chercheur.

Mon domaine de recherche est celui de l'algorithmique probabiliste : je conçois et j'analyse des algorithmes qui utilisent des sources aléatoires, généralement dans le but d'accélérer les calculs ou d'utiliser moins de mémoire quand on fait un calcul complexe. Mes principaux domaines d'applications sont la vérification de protocoles complexes, la lutte contre le webspam, les réseaux sociaux et le calcul haute-performance. Pour ceux qui veulent en savoir plus, il faut faire un tour sur ma page pro (http://sylvain.berbiqui.org).

Pour l'enseignement, c'est aussi tourné web, je suis responsable du master 2 ingénierie web à l'UCBN, et avant j'ai été responsable de l'apprentissage en info à Polytech Paris-Sud. Enfin, je collabore aussi à l'un des masters de l'école Polytechnique.

En parallèle je m'intéresse au webmastering et au SEO depuis longtemps. Avec mon frère Guillaume (http://www.gpeyronnet.fr/) nous avons d'abord monté krinein.com, puis on a fait le mangeur de cigogne en 2004, puis on a fait d'autres sites. Et quand Guillaume a monté sa boite, on s'est associé et depuis je l'aide sur certains points, pour lesquels nous sommes complémentaires : conseil et formation, principalement en SEO, algorithmique et techno moteurs pour moi.

Mon parcours est celui d'un universitaire: la filière scientifique à la fac, depuis le DEUG jusqu'à la thèse. Ce qui est plus amusant c'est qu'à part ma thèse je n'ai pas de diplôme d'info : j'ai fait des maths (maths pures puis logique mathématique) et aussi un peu d'économie/finance. Sinon, point de vue vie professionnelle j'ai monté (et planté) une première boite, j'ai bossé comme prof et chercheur à l'EPITA, j'ai fait du conseil et enfin je suis devenu maitre de conférences puis prof des universités. En bref on peut dire que j'ai toujours fait ce que je voulais faire, et que ça a plutôt réussi au final.

On peut dire que tu connais ton sujet ! Comme tu t'en doutes, ce sont tes connaissances des algorithmes qui vont intéresser les lecteurs du blog. Pourrais-tu nous en dire un peu plus sur les préoccupations que l'on a lorsqu'on crée un algorithme prenant en compte le webspam, les réseaux sociaux et tout ce qui a trait à la relation entre les sites ?

Tout d'abord, il faut voir qu'il y a deux types de choses qu'on peut vouloir faire.

Par exemple, une chose qu'on peut vouloir faire est de réaliser des tâches standards, comme par exemple calculer un score d'importance pour un site, ou une personne quand on est sur les réseaux sociaux, ou déterminer la valeur d'un texte par rapport à une thématique. Ces tâches sont de difficultés diverses en elles-mêmes, mais elles sont rendues TRES difficiles sur le web et les réseaux sociaux car le contexte est *adversarial*.

Cela signifie qu'il y a un adversaire qui lutte pour maximiser l'utilité qu'il a de l'objet (site, texte, etc.) lorsqu'il est traité par un algorithme donné. L'exemple typique est le pagerank. Le pagerank a pour objectif de déterminer la popularité d'une page, et dans un contexte naturel, c'est à la fois assez simple à calculer, et le PR est une bonne approximation de la popularité réelle. Malheureusement (ou heureusement pour les SEOs), on peut manipuler l'algorithme en modifiant les schémas de liens qui sont fait (en en rajoutant, enlevant, en modifiant des chemins de liens entre pages, etc.). Prendre en compte l'existence de manipulations pour rendre robuste le calcul de popularité, c'est très dur. Je parle ici de créer des algorithmes dits robustes, c'est à dire qui fonctionnent sans avoir besoin de beaucoup de modifications, même lorsqu'il y a des manipulations conséquentes. Dans le cadre de la lutte contre le webspam, on parle d'algorithme de déclassement (demotion en anglais). Il s'agit d'algorithmes qui annule l'effet du webspam SANS le détecter : on ne sait pas quelles sont les pages de spam, mais elles n'apparaissent pas dans les SERPs quand même.

Ce qui m'amène à l'autre chose qu'on veut faire : la détection de mauvais comportements. Il s'agit de choses plus simples, et c'est la voie empruntée par Google avec ses filtres. Ici on va avoir une approche a posteriori : une fois identifié un adversaire, on va créer un mécanisme qui va le dézinguer en le détectant. Par exemple, si on voit que des gens font du spam de bourrin sur les blogs WP en utilisant un outil de génération aléatoire de texte, alors on va créer un outil qui va faire deux choses. La première est de classifier les textes en deux catégories : ceux générés aléatoirement et les autres. La deuxième va être de repérer tous les sites qui profitent des liens générés via un générateur de textes particulier. Ensuite le moteur pourra décider d'une action sur les sites détectés.

Au final, je résume, pour faire un très bon travail, on se focalise sur la notion de robustesse, c'est la vraie préoccupation. Dans les autres cas, on va se focaliser sur la modélisation de l'adversaire, pour le détecter.

Donc si je comprends bien, Google a commencé par développer un algorithme de classement en prenant en compte les relations entre sites puis a éliminé les abus au fur et à mesure qu'il les a découverts ? Comment fait-il pour découvrir ces abus ? Il repère des anomalies dans ses bases ou il est obligé de vérifier manuellement ses propres résultats ?

L'algorithme du PageRank prend effectivement en compte toutes les relations entre sites (les liens). Cependant, Google doit très probablement appliquer différents filtres pour moduler l'impact de certains abus (déclassement de certains liens, non considération d'autres, etc.). Ces filtres peuvent intervenir avant ou après le pagerank.

Il ne faut pas confondre un filtre et une modification de l'algorithme. Par exemple, la prise en compte de la thématique des liens est sans doute une modification de l'algorithme, et pas un filtre (sauf pour les thématiques adultes, qui sont filtrées).

Pour découvrir les abus, plusieurs possibilités : interventions humaines de Quality Raters, statistiques comportementales des visiteurs de Google (par exemple retour rapide d'un visiteur avec une même requête alors que la personne avait cliqué sur le premier résultat), et plus probablement un mix des deux.

Donc la prise en compte du comportement utilisateur est bien effective, intéressant. Je reviens sur les réseaux sociaux, comment peuvent-ils être pris en compte ? Entre les comptes privés, les liens nofollow, les réseaux thématiques, l'importance d'un compte (par la taille de sa communauté), ça doit être un vrai boxon à gérer ?

Pour la prise en compte du comportement c'est une manière de faire un système d'alerte, après, est ce Google y accorde beaucoup d'importance, c'est à voir ;)

Pour les réseaux sociaux, je ne peux rien répondre, car en fait je n'en sais vraiment rien. Je sais qu'il y a des travaux universitaires pour quantifier l'influence, les trending topics, etc. Mais je n'en sais pas plus.

On a beaucoup parlé de liens jusqu'à présent, je vais te poser une question piège. Admettons que tu crées un algorithme de classement et que celui-ci repère deux sites qui ont exactement le même profil de liens, comment travaillerais-tu cet algorithme pour qu'il arrive tout de même à établir un classement entre ces sites ? J'imagine que tu vas jouer sur des aspects internes aux sites, mais lesquels ?

Même si c'est une hypothèse peu probable, on va faire comme si ;)

Je jouerais sur plusieurs aspects pour affiner la comparaison :

- Le contexte des liens sur les sites émetteurs : je pondérerais les liens selon l'ancre (générique, optimisée, sur-optimisée), selon l'emplacement sur le site (ligne de flottaison, menu, footer, etc.), selon le texte autour du lien, etc.

- Le contenu du site cible : est-ce que le contenu est de plus ou moins grande qualité ? Cette aspect peut être évalué par des méthodes de classification. Je renvoie le lecteur de cette interview vers les travaux de Ntoulas, Najork, Manasse et Fetterly à ce propos (http://www.ntoulas.net/pubs/ntoulas_spam.pdf). Il s'agit de déterminer les critères qualitatifs (dans leur cas pour le spam, mais ça marche pour la qualité perçue) et de créer un algorithme qui va quantifier globalement le site à partir de critères séparés.

- le contenu du site cible : est-ce qu'il est pertinent (cosinus de Salton, tf*idf, etc.) ? est-ce qu'il est généré à la main ? est-ce qu'il est unique ? Tout cela peut être déterminé algorithmiquement.

- la cohérence des liens : ici on rejoint la notion de cocon sémantique dont on entend assez souvent parler. Personnellement je parle de continuité sémantique. Est-ce que les liens sont cohérents en terme de thématique (un lien d'un site de fans du PSG vers un site de vente de légumes, c'est louche) ? Avec la notion de pagerank sémantique, on peut analyser cette cohérence et la valoriser.

A noter que toutes les questions que j'évoque ici, on sait les résoudre algorithmiquement au niveau d'un moteur de recherche.

Il me semble qu'après tout ça, on est bien équipé pour comprendre le fonctionnement des algorithmes des moteurs de recherches. Tu aurais quelque chose à ajouter, quelque chose qu'on a pas encore évoqué ?

Il y a de très nombreuses choses que l'on n'a pas évoqué, mais il faut bien s'arrêter à un moment. J'ajouterais juste qu'il faut vraiment se maintenir au courant des nouveautés algorithmiques des moteurs. Pour Google il faut regarder les brevets qui sortent, mais surtout les articles issus de Google Research (http://research.google.com/pubs/papers.html).

Ou encore mieux, me contacter pour notre formation moteur ou de la veille techno (subtile ma pub, non ?).

Avec la qualité de tes réponses, j'accepte ta pub sans soucis




Vous souhaitez poster un commentaire :
Cette adresse ne sera ni publiée, ni revendue...
Cette URL aura pour ancre votre nom
Facultatif
Facultatif
Facultatif