Une question très ordinaire arrive au support.

« Qu’est-ce qu’un espace personnel ? »

La base de connaissances contient 4 862 pages. La réponse s’y trouve. Plusieurs fois, même.

La première page explique ce qu’est cette partie du site, comment s’y connecter et ce qu’on peut y faire. La deuxième est une ancienne liste de changements du service. La troisième est longue et l’expression « espace personnel » y apparaît vingt-sept fois. La quatrième explique la récupération de mot de passe et l’appelle « profil utilisateur ».

La recherche choisit la troisième.

Elle n’est pas en panne. Elle a honnêtement trouvé davantage d’occurrences.

C’est exactement ce qui la rend dangereuse.

La personne qui ouvre la troisième page passe du temps à lire et revient avec la même question. Celle qui arrive à la bonne section de la première comprend tout de suite à quoi sert cet espace. Pour cette requête, la première page devrait être le résultat principal. La différence ne tient ni à la qualité du texte ni à la capacité de la personne à chercher. Elle tient à la façon dont le système comprend le document.

Pour un humain, un document n’a jamais été une simple suite de mots. Le titre « Espace personnel : connexion et possibilités » a un sens. Les mêmes mots dans des archives de changements en ont un autre. Un tableau de fonctions, l’adresse d’une page et le texte principal portent des informations différentes. La recherche doit remarquer cette différence ; sinon, elle rendra une instruction et son ombre avec la même assurance.

BM25F est l’une des réponses à ce problème.

Quand le document a cessé d’être du texte plat

Pendant longtemps, les modèles classiques de recherche ont travaillé avec une simplification pratique : un document était une suite de mots. Le système savait qu’un mot rare est en général plus utile qu’un mot courant, et que plusieurs occurrences valent mieux qu’une seule. De cette logique sont nés TF-IDF, qui évalue la rareté des mots, puis BM25, une formule qui aide à classer les pages trouvées.

BM25 a apporté deux limites importantes. Répéter un mot ne doit pas augmenter sans fin la confiance dans l’utilité d’une page : la première mention d’« espace personnel » compte, la seconde confirme le sujet, et la vingt-septième ne rend pas la page vingt-sept fois plus utile. Un document long ne doit pas non plus gagner uniquement parce qu’il offre plus de place aux occurrences accidentelles.

BM25 est ainsi devenu une bonne base pour la recherche plein texte. Mais à mesure que les documents se sont structurés, une limite est apparue : BM25 travaille avec les mots, mais ne sait pas par lui-même où ils se trouvent dans le document.

Une expression, quatre signaux différents

« espace personnel » dans le titre de la page indique son sujet.

« espace personnel » dans le titre d’une section indique le sujet d’un fragment précis.

« espace personnel » dans un tableau de fonctions peut être une option disponible.

« espace personnel » dans le texte principal peut être une instruction, un contexte ou une mention fortuite.

Ce n’est pas une différence de mise en forme. Pour la recherche, c’est une différence de sens.

L’erreur de la solution évidente

Dès qu’un document a des parties structurées, la première idée est presque inévitable : compter séparément les occurrences dans le titre de page, le texte principal et l’adresse de la page, puis additionner les scores. Donner un coefficient de dix au titre et de un au texte. Dans une documentation, ajouter le titre de section, sa place dans le sommaire et les noms d’objets importants.

Cela semble raisonnable. Mais l’ordre du calcul compte.

BM25 est conçu pour que chaque répétition supplémentaire apporte de moins en moins de certitude. Si l’on évalue d’abord chaque partie du document avant d’additionner les résultats, cette logique change. Chaque partie atteint sa propre limite, puis le système les traite comme des preuves indépendantes.

Le problème n’est pas dans les poids. Il est dans le moment où ils interviennent dans la recherche.

En 2004, Stephen Robertson, Hugo Zaragoza et Michael Taylor ont décrit une approche plus rigoureuse dans Simple BM25 Extension to Multiple Weighted Fields. C’est ainsi qu’est apparu BM25F : une extension de BM25 pour des documents divisés en parties. Voir la source 1.

Ce que change BM25F

BM25F rassemble d’abord les occurrences provenant de différentes parties du document, en tenant compte de leur poids et de leur longueur. Il applique ensuite la saturation non linéaire de BM25 au signal combiné.

Pour chaque mot de la requête :
  signal combiné =
    titre de page × son poids
    + titre de section × son poids
    + noms d’objets × leur poids
    + texte principal × son poids

  Le signal combiné passe ensuite par la saturation BM25.

Dans la formule complète, chaque partie du document possède son propre ajustement de longueur. C’est nécessaire : un titre de page contient quelques mots, tandis que le texte principal peut en contenir des milliers. Employer la même normalisation pour les deux serait aussi erroné que de donner le même poids à une occurrence dans un titre et dans un pied de page.

Une expérience de pensée

Dans le document A, « espace personnel » se trouve dans le titre et dans un titre de section : « Que peut-on faire dans l’espace personnel ? ». Dans le document B, l’expression apparaît huit fois dans une section de questions fréquentes.

BM25F n’est pas obligé de choisir A à chaque fois. Mais il permet d’expliquer pourquoi deux signaux structurels forts peuvent l’emporter sur huit répétitions dans un texte long.

Dans cet exemple, la première page doit devenir le résultat principal car elle répond à toute la question. La longue liste de changements reste parmi les résultats, mais elle ne masque plus l’explication dont la personne a réellement besoin.

On peut ainsi régler la recherche selon le type de document. Dans un catalogue, la marque, la catégorie et les propriétés du produit sont particulièrement importantes. Dans une collection scientifique, ce sont le titre de l’article, son résumé et les mots-clés. Dans l’aide d’un site, ce sont le titre de page, le titre de section et le texte principal.

Où cette idée est utilisée

BM25F n’est pas resté une formule universitaire. Apache Lucene possède un mécanisme qui traite plusieurs parties d’un document comme un ensemble et permet de régler leur importance relative. Voir la source 2.

SharePoint appelle explicitement BM25F sa variante de BM25 par champs et permet de définir les poids et la normalisation de longueur des propriétés gérées. Voir la source 3.

Manticore Search propose BM25F comme méthode distincte pour classer les résultats selon le poids des parties d’un document. Voir la source 4.

Il ne faut pas confondre ces idées. Rechercher dans plusieurs parties d’un document, ou donner une priorité artificielle au titre de page, ne signifie pas automatiquement utiliser BM25F au sens classique. Un système peut évaluer les parties indépendamment, amplifier une occurrence déjà trouvée ou combiner le texte autrement. Ces approches peuvent être utiles, mais elles ne se comportent pas de la même façon.

La limite de la correspondance exacte

Revenons à la question de départ. Tant que la personne saisit « espace personnel », BM25F travaille dans sa zone de force : il voit les mots et leur place dans la structure du document.

Mais la question peut être formulée autrement : « Où puis-je voir les montants et payer une facture ? » Elle peut mener à l’espace personnel, mais n’en contient pas le nom. Ici, le modèle par champs ne peut plus s’appuyer sur une correspondance exacte.

Ce n’est pas un défaut de BM25F, mais la limite de sa tâche. Il répond à cette question : où les mots de la requête se trouvent-ils dans la partie la plus appropriée d’un document ? Il n’a pas à comprendre seul que deux formulations différentes décrivent la même situation.

La recherche ne choisit pas un seul gagnant

Nom exact, code d’erreur, nom de paramètre ou référence produit : recherche exacte.

Question reformulée : recherche par le sens, qui rapproche des formulations similaires.

Documents liés : recherche par les liens entre pages et notions.

Plusieurs candidats solides : comparaison complémentaire des résultats.

Dans une bonne recherche, ces méthodes ne s’excluent pas. La recherche exacte retient les codes d’erreur, les noms de tarifs, les paramètres, les formulations juridiques et les références. La recherche par le sens aide lorsqu’une personne se souvient de la situation, mais pas du nom exact. Le système compare ensuite plusieurs résultats solides et choisit ceux qui répondent à la question dans son ensemble.

Où se situe Dzen

Dans Dzen, la recherche par mots tient aussi compte de la structure de la source : le titre de page, l’adresse de la page, le titre d’un fragment et le texte principal sont traités différemment. Les correspondances exactes deviennent ainsi un signal à part entière plutôt qu’un effet secondaire aléatoire.

Ce signal n’a toutefois pas le dernier mot. Il est associé à la recherche par le sens et à la recherche par les liens entre pages, puis plusieurs résultats sont comparés avant la préparation de la réponse. Une correspondance exacte dans un titre n’est pas perdue, mais elle ne peut pas décider seule quelle source la personne verra.

L’idée de BM25F importe ici davantage que la formule exacte. Elle rappelle que la recherche doit voir la forme de la connaissance : pas seulement les mots présents dans un document, mais le rôle qu’ils y jouent.

Comment la recherche choisit une page sur l’espace personnel

Changez de méthode de recherche et modifiez l’importance du titre de page et du titre de section.

    Sources

    1. Robertson, Zaragoza, Taylor. Simple BM25 Extension to Multiple Weighted Fields, CIKM 2004.
    2. Apache Lucene. CombinedFieldQuery.
    3. Microsoft Learn. Customizing ranking models to improve relevance in SharePoint.
    4. Manticore Search. Функции поиска и ранжирования.