Améliorer la pertinence des résultats en ajoutant des profils de score

Effectué

Recherche Azure AI utilise l’algorithme de classement de similarité BM25. L’algorithme note les documents en fonction des termes de recherche utilisés.

Ici, vous verrez comment ajouter des profils de score pour modifier les scores des documents en fonction de vos propres critères.

Calcul des scores de recherche

Le scoring est la dernière phase de traitement d’une requête de recherche.

Diagramme montrant la phase de scoring de la recherche mise en évidence.

Le moteur de recherche note les documents retournés à partir des trois premières phases. Le score est une fonction du nombre de fois où les termes de recherche identifiés apparaissent dans un document, de la taille du document et de la rareté de chacun des termes. Par défaut, les résultats de la recherche sont classés par score de recherche, le plus élevé en premier. Si deux documents ont un score de recherche identique, vous pouvez déterminer l’ordre en ajoutant une clause $orderby.

Améliorer le score pour les documents plus pertinents

Comme le scoring par défaut fonctionne selon la fréquence des termes et leur rareté, le score final calculé peut ne pas renvoyer le score le plus élevé pour le document le plus pertinent. Chaque jeu de données est différent. La recherche IA vous permet donc d’influencer un score de document à l’aide de profils de score.

Diagramme montrant un score de champ pondéré.

Le profil de score le plus simple définit différents poids pour les champs d’un index. Dans l’exemple ci-dessus, l’index Hotel a un profil de score avec le champ Description cinq fois plus pertinent que les données des champs Location ou Rooms. Le champ Catégorie est deux fois plus pertinent que HôtelName.

Le profil de score peut également inclure des fonctions, par exemple une distance ou un degré de fraîcheur. Les fonctions fournissent plus de contrôle que la pondération simple. Par exemple, vous pouvez définir la durée de l’augmentation appliquée aux documents plus récents avant de leur appliquer le même poids qu’aux documents plus anciens.

La puissance des profils de score signifie que, au lieu de renforcer un terme spécifique dans une requête de recherche, vous pouvez appliquer un profil de score à un index afin que les champs soient automatiquement optimisés pour toutes les requêtes.

Ajouter un profil de score pondéré

Vous pouvez ajouter jusqu’à 100 profils de score à un index de recherche. La façon la plus simple de créer un profil de score est d’utiliser le portail Azure.

  1. Accéder à votre service de recherche.
  2. Sélectionnez Index, puis choisissez l’index auquel ajouter un profil de score.
  3. Sélectionnez Profils de score.
  4. Sélectionnez + Ajouter un profil de scoring.
  5. Dans Nom du profil, entrez un nom unique.
  6. Pour définir le profil de score comme une valeur par défaut à appliquer à toutes les recherches, sélectionnez Définir comme profil par défaut.
  7. Dans Nom du champ, sélectionnez un champ. Ensuite, pour Poids, entrez une valeur de poids.
  8. Cliquez sur Enregistrer.

Capture d’écran du volet des profils de scoring du portail Azure.

Dans l’exemple ci-dessus, le profil de score boost-category a été ajouté au hotels-sample-index. La catégorie a un poids de cinq.

Le profil a également été défini comme profil par défaut. Vous pouvez ensuite utiliser cette requête de recherche :

search=luxury AND Tags:'air con'*&$select=HotelId, HotelName, Category, Tags, Description&$count=true&queryType=full

Les résultats correspondent désormais à la même requête avec un terme renforcé :

search=(Description:luxury OR Category:luxury^5) AND Tags:'air con'*&$select=HotelId, HotelName, Category, Tags, Description&$count=true&queryType=full

Vous pouvez contrôler le profil de score appliqué à une requête de recherche en ajoutant le paramètre &scoringProfile=PROFILE NAME.

Les profils de score peuvent également être ajoutés par programmation à l’aide de l’API REST Update Index ou dans des kits SDK Azure, comme la classe ScoringProfile dans le SDK Azure pour .NET.

Utiliser des fonctions dans un profil de score

Les fonctions disponibles pour l’ajout à un profil de score sont les suivantes :

Fonction Description
Magnitude Modifier les scores en fonction d’une plage de valeurs dans un champ numérique
Actualisation Modifier les scores en fonction de l’actualisation des documents comme indiqué dans un champ DateTimeOffset
Distance Modifier les scores en fonction de la distance entre un emplacement de référence et un champ GeographyPoint
Tag Modifier les scores en fonction de valeurs de mots clés courantes dans des documents et des requêtes

Par exemple, l’utilisation de l’index hotel peut être appliquée à la fonction d’évaluation. Le portail Azure vous guidera tout au long du remplissage des paramètres de chaque fonction.

Capture d’écran montrant les paramètres de la fonction de magnitude.