Accueil / Popularité / Référencement Google / Les mythes SEO / Google et la sémantique


Google et la sémantique

La sémantique dans le fonctionnement de Google est un sujet qui alimente les fantasmes. S’il est évident que le moteur de Google utilise la sémantique, de nombreux référenceurs surestiment sa capacité à « comprendre » le web.

Il y quelques années, un site américain a sorti un outil basé sur le LDA (latent Dirichlet allocation) pour organiser son site web. Le créateur de cet outil aurait mis en évidence une corrélation entre le LDA et les résultats de recherche dans Google. Selon lui, Google utilise le LDA et organiser son contenu en utilisant son outil permettrait de donner au moteur ce qu’il attend.

Le LDA est un algorithme permettant de calculer la proximité sémantique entre divers documents. Cet algorithme est similaire au LSA/LSI (latent semantic analysis/latent semantic indexing). Le LDA donne de meilleurs résultats que le LSI, mais demande plus de puissance de calcul. C’est d’ailleurs le problème de cette théorie. Ce type d’algorithme (autant pour le LSI que pour le LDA) est très gourmand en ressources.

Pour toute personne ayant un peu abordé les problématiques de data mining, prétendre que Google indexe le web de cette façon, c’est comme affirmer qu’une souris à accouché d’un éléphant. Pourtant, la sphère SEO a plutôt bien réagi à cette annonce. Même si certains émettent des doutes sur l’usage du LDA à l’échelle du moteur de Google, certains n’ont pas été étonnés, d’autres qui le savaient déjà depuis des années… Il existe des articles en anglais qui contredisent cette affirmation, mais aucun ne donne une démonstration. Comme la plupart des gens qui s’intéressent au SEO ne sont pas des experts en data mining, plutôt que d’affirmer les choses, je vous propose une démonstration simple qui montre que ce type d’algorithme n’est pas adapté à l’index de Google.

La complexité en temps du LDA est variable selon le corpus étudié (nombres de mots différents, nombre de sujets par document). La complexité est polynomiale pour des documents qui ne traitent que d’un sujet. Elle devient NP-difficile dans le cas où les documents traitent de plusieurs sujets. Pour ma démonstration je vais être gentil et considérer que le temps de calcul évolue avec le carré du nombre de documents, même si en réalité, la complexité explose bien plus vite qu’au carré. Je vais même être très gentil et considérer que l’espace mémoire n’est pas un problème, alors qu’en réalité, il est évident que les besoins en mémoire explosent avec le nombre de documents à indexer.

Gensim est une librairie python qui intègre le LDA. Certains me diront que python est un langage interprété, mais gensim utilise les librairies mathématiques numpy et scipy pour faire ses calculs. Ces librairies sont en fortran/c/c++. Et d’ailleurs il est connu que Google utilise un système similaire à base de librairies en langage compilé pour les calculs lourds, et des appels en python.

Le créateur de gensim a testé sa librairie sur les 3.9 millions d’articles du Wikipédia anglophone. Sur son ordinateur, l’indexation a pris 6h20. Il est connu que Google utilise des mini-serveurs bon marché, en grande quantité. Même si les gens de Google ne communiquent pas sur le nombre, certaines personnes estiment (en se basant sur la surface de data center occupé) que Google possède entre 1 million et 2 millions de serveurs. Pour faire simple, je vais considérer qu’un mini serveur Google a la même puissance que l’ordinateur utilisé pour cette expérience sur Wikipédia (un MacBook Pro, Intel Core i7 2.3GHz, 16GB DDR3 RAM).

Google indexait 30000 milliards de pages web en 2015, ce qui représente 7.7 millions de fois le Wikipédia anglophone. Mis au carré pour obtenir un ordre de grandeur en temps, cela fait un peu plus de 59000 milliards de fois le temps nécessaire pour l’indexation de Wikipédia. En estimant que Google utilise 1 million de serveurs pour ce calcul, il faut donc 59 millions de fois le temps nécessaire à l’indexation de Wikipédia. En ramenant le temps nécessaire sur une année, on trouve près de 43000 ans.

En prenant des hypothèses très favorables, il faudrait 43000 ans à Google pour indexer le web avec le LDA. Dans les faits, il faudrait probablement beaucoup plus.

En conclusion, il est possible que Google utilise le LDA à petite échelle. Mais contrairement à ce que suggérait le site que j’évoquais au début de cet article, pas pour indexer la totalité du web. A vrai dire, Google a d’autres cordes à son arc.

L’intérêt du LDA est de faire du deep learning. On part d’un corpus, et sans aucune connaissance préliminaire, il est possible de mesurer la proximité sémantique entre différents textes. Il existe d’autres moyens de faire, par exemple en utilisant un dictionnaire des synonymes… Le but du LDA est de faire de la sémantique en partant de rien.

Mais Google ne part pas de rien. Et il ne faut pas oublier que Google dispose d’une grande quantité d’informations sur le comportement des internautes, entre les recherches sur leur moteur, les sites qui affichent des campagnes Adsense, Google analytics…

Le but de cet article n’est pas de démonter un outil, mais le marketing qui l’entoure. Même si Google n’utilise pas le LDA pour son index, il est évident que la proximité thématique entre les pages donne plus de valeur aux liens qu’elles peuvent échanger. Et comme, « qui peut le plus peut le moins », et cela reste une bonne pratique d’organiser le maillage interne de son site en se basant sur un outil qui met en œuvre le LDA. Le but de cet article est juste de montrer qu’il ne faut pas croire toutes les histoires qui circulent.

D'autres pages qui peuvent vous intéresser :

Ce que Google fait vraiment de vos données personnelles
Le mythe du référencement white hat