Comment Facebook a bâti son moteur de recherche "Graph Search" Graph Search : comment Facebook classe les résultats

Comme Google, Facebook reformule les requêtes des internautes avant que son moteur ne les traite. Il ne s'agit pas uniquement des fautes d'orthographe ou des synonymes, mais aussi du contexte social de la requête, qui se révèle déterminant pour les résultats personnalisés remontés. Là encore, Facebook n'est pas avare en détails et explique précisément comment les requêtes sont réécrites pour y injecter le contexte social. Pour résumer de manière très réductrice, le réseau social utilise en fait les opérateurs de recherche "et" (and) et "ou" (or) qui vont pouvoir définir les liens entre les entités. 

Par exemple, si les trois amis de X ont les identifiants 10, 11 et 12, et que X cherche "Mark", la requête pourra prendre la forme : "and mark (or friend:10 friend:11 friend:12)". Le moteur remontera alors tous les "Mark", qu'ils soient amis de X (c'est le sens du premier "and mark") ou ("or") amis des amis de X.

Ce n'est pas tout : Facebook peut affaiblir ("weak") ces opérateurs "ou" et "et". La requête (weak-and mark (or friend:10 friend:11 friend:12)[0.7]) indique ainsi que seuls 70% (c'est le 0.7) des résultats remontés doivent correspondre à l'opérateur "and". Ce qui permet aussi de faire remonter les Mark célèbres (et donc non amis) à hauteur de 30% dans les résultats, en plus des 70% de résultats dédiés aux Mark amis, ou ami d'amis.

Machine learning et classement des résultats

Comme tous les moteurs de recherche, celui de Facebook doit aussi classer les résultats remontés. Pour cela, il note les entités, et utilise aussi de manière assez classique le machine learning pour cela. Les requêtes, tout comme les entités, peuvent avoir plusieurs scores, ou notes. Une requête recherchant un lieu près d'un autre pourra par exemple s'intéresser à trois notes ou scores : la popularité du lieu, ses rapports "sociaux" avec l'utilisateur, et la distance qui le sépare de ce dernier. Autant de critères qui vont permettre de classer les résultats, selon le poids que leur donne Facebook et la diversité qu'il souhaite dans les résultats remontés.

traitement d'une requête par le graph search, depuis sa reformulation et sa
Traitement d'une requête par le Graph Search, depuis sa reformulation et sa ventilation par les "agrégateurs", jusqu'au tri et au score des résultats remontés. © Facebook

Si Facebook utilise le machine learning dans le processus de classement des résultats, il explique aussi ne pas vouloir trop compliquer cette méthode de classement. "Cela nous permet de garder la formule de classement compréhensible, et nous laisse la possibilité de le modifier facilement si nécessaire", se justifie un ingénieur de Facebook sur une page officielle. Dans un autre billet, publié en octobre 2013 lors du lancement de la recherche de post, un de ses collègues, Ashoat Tevosyan, précise que Facebook utilise "plus de cent critères de classement pour faire remonter les meilleurs résultats". Google, ou Bing, affirment de leurs côtés en utiliser plusieurs centaines, mais ils affichent un plus grand nombre d'années d'expérience que Facebook en la matière.

Facebook / Moteur de recherche