Les algorithmes utilisés par les moteurs de recherche sont pour moi, vous le savez déjà sans doute, à la fois une passion, un sujet de recherche et mon gagne-pain (par nos formations et parce que je bosse en partenariat avec le moteur Qwant).
Certaines des personnes qui me suivent veulent parfois en savoir plus, et pendant longtemps j’avais du mal à leur donner un conseil raisonnable, car la littérature accessible à un non spécialiste était rare voire inexistante. Mais depuis, j’ai trouvé par hasard un livre que je conseille à toutes et tous, même si bien sûr il est principalement accessible à des personnes familières de l’algorithmique.
Ce livre est le suivant (oui, il s’agit d’un lien d’affiliation amazon, oui je suis un vendu, oui si vous l’achetez via ce lien cela soutient mon blog) :
Le livre a été écrit par Massih-Reza Amini et Eric Gaussier, tous les deux sont professeurs à Grenoble 1, et effectuent leurs recherches dans le domaine de la recherche d’information. Il constitue pour moi un formidable support de cours pour des étudiants en dernière année de licence d’informatique, ou en première année de master.
On trouve dans ce livre toutes les bases permettant de réaliser un moteur de recherche ! On commence par les prétraitements, le modèle vectoriel avec la fameuse tf-idf, la notion d’index inversé, les index dynamiques, etc. On continue avec des choses plus complexes, comme les modèles probabilistes (BM25 par exemple) puis les modèles de langues. On apprend également comment qualifier les résultats d’un système de recherche d’information, ce qui est utile si on décide d’en coder un !
A partir du chapitre 4, le livre passe la seconde, avec le cas particulier de la recherche sur le web et des problématiques (de taille) associées. Il se poursuit avec un chapitre très intéressant sur la catégorisation des documents, qui vaut à lui seul le détour, avec un panorama qui va des méthodes simples (seuillage par exemple, ou information mutuelle/chi2) aux plus compliqués (SVM, perceptron, etc.).
Les chapitres 6 et 7 sont respectivement consacrés au clustering de documents, et à la recherche de thèmes latents. Ils sont intéressants, mais à mon sens un peu elliptiques, sur des sujets qui nécessitent un background algorithmique plus complexe. Le lecteur non familier devra donc travailler plus dur sur ces thématiques « avancées » et chercher des informations ailleurs.
Enfin, un très très court chapitre 8 donne quelques pistes vers des outils logiciels disponibles en ligne.
Globalement, il s’agit d’un livre indispensable si vous êtes intéressé par le développement des moteurs de recherche, que vous avez un background suffisant en algorithmique, et que vous êtes motivé.
N’hésitez pas à donner votre avis en commentaires, et bonne lecture/bon courage si vous vous lancez.