Lorsque vous effectuez une recherche dans votre application Vertex AI Search, vous pouvez spécifier des filtres de pertinence au niveau du document afin que seuls les documents qui répondent au seuil de filtre soient renvoyés en tant que résultats. Cette page explique les types de seuils, l'importance de les optimiser et comment spécifier des filtres de pertinence et leur seuil.
À propos du filtrage par pertinence au niveau du document
Lorsqu'une requête de recherche renvoie un résultat, un niveau de pertinence est attribué à chaque document récupéré. Dans votre demande de recherche, vous pouvez définir un seuil pour ne renvoyer que les documents qui le respectent. Définir un seuil élevé peut réduire le nombre de documents renvoyés par la requête. En revanche, définir un seuil bas peut diluer les résultats avec des documents peu pertinents par rapport à la requête de l'utilisateur.
Par conséquent, si vous constatez que le résultat contient trop de documents dont la pertinence est insuffisante pour vos utilisateurs, définissez un seuil de pertinence élevé pour limiter les résultats aux quelques-uns qui sont les plus pertinents. Si un seuil élevé est trop restrictif, vous pouvez le baisser à une valeur plus optimale.
Types de recherches
Vous pouvez appliquer des filtres de pertinence aux types de recherches suivants :
- Recherche par mot clé : récupère les documents en fonction d'une recherche par mot clé.
- Recherche par similarité sémantique : récupère les documents en fonction des embeddings.
Dans la définition de votre filtre de pertinence, vous pouvez spécifier le type de seuil pour chacune de ces recherches. La recherche récupère les documents pour la recherche donnée, puis applique le seuil spécifié.
Types de seuils
Vous pouvez spécifier l'un des types de seuil suivants pour la recherche par mot clé et par similarité sémantique lorsque vous envoyez votre demande de recherche.
Seuil de pertinence : lorsque vous définissez ce seuil, la recherche utilise un modèle propriétaire pour déterminer la pertinence d'un document. Dans ce cas, la recherche peut utiliser n'importe quel signal pertinent, tel que le score de similarité des mots clés, le score de pertinence thématique et le score de similarité sémantique.
Le seuil de pertinence est un paramètre approximatif qui autorise les valeurs suivantes :
HIGH,MEDIUM,LOWetLOWEST. Un seuilHIGHpeut renvoyer moins de documents avec un score de pertinence élevé, tandis qu'un seuilLOWESTpeut renvoyer plus de documents qui ne sont pas pertinents pour la requête de recherche.Seuil de pertinence sémantique : lorsque vous définissez ce seuil, le filtre s'appuie uniquement sur le score de similarité sémantique pour déterminer la pertinence d'un document.
Le seuil de pertinence sémantique est un paramètre précis. Il s'agit d'une valeur à virgule flottante comprise entre 0 et 1. Si vous définissez le seuil sur zéro, tous les documents sont renvoyés. Si vous le définissez sur un, seuls les documents les plus pertinents sont renvoyés.
Définition et exemple de filtre de pertinence
Pour définir des filtres de pertinence dans votre requête de recherche, spécifiez un seul type de seuil (seuil de pertinence et seuil de pertinence sémantique) pour chaque type de recherche (recherche par mots clés et recherche sémantique). Vous pouvez spécifier un ou les deux types de recherche dans la spécification du filtre de pertinence. Toutefois, un seul type de seuil doit être défini dans chaque type de recherche. Nous vous conseillons, par exemple, de suivre les recommandations suivantes :
{
"relevanceFilterSpec": {
"keywordSearchThreshold": {
"relevanceThreshold": "LOW"
},
"semanticSearchThreshold": {
"semanticRelevanceThreshold": 0.871
}
}
}
Dans cette requête de recherche, les résultats sont renvoyés en deux étapes : la récupération et le filtrage.
- La recherche récupère les documents en fonction de la correspondance des mots clés, puis filtre les documents avec un seuil de pertinence faible. Cela renvoie un grand nombre de documents récupérés.
- Simultanément, la recherche récupère les documents en fonction de la similarité sémantique, puis les filtre avec un seuil de pertinence sémantique élevé de
0.871. Cela renvoie moins de documents récupérés.
La recherche est davantage axée sur la correspondance de mots clés que sur la similarité sémantique. Les filtres permettent de récupérer davantage de documents grâce à la correspondance des mots clés.
De même, vous pouvez définir le filtre de pertinence de la manière suivante pour renvoyer moins de documents avec des mots clés correspondants et plus de documents avec une similarité sémantique.
"relevanceFilterSpec": {
"keywordSearchThreshold": {
"semanticRelevanceThreshold": 0.871
},
"semanticSearchThreshold": {
"relevanceThreshold": "LOW"
}
}
Types de données et applications compatibles avec le filtre de pertinence au niveau du document
Le filtre de pertinence au niveau du document peut être appliqué aux data stores contenant les types de données suivants :
- Données de site Web avec indexation avancée de site Web
- Données non structurées personnalisées
- Données structurées personnalisées
Le filtre de pertinence au niveau du document ne fonctionne pas pour les data stores avec indexation de base de sites Web, données multimédias ou données de santé.
De plus, le filtre de pertinence au niveau du document ne peut pas être utilisé avec les applications de recherche combinée. Les applications de recherche combinée sont des applications associées à plusieurs datastores.
Autres types de filtres
Le filtre de pertinence au niveau du document n'est pas la seule façon de filtrer les données renvoyées par les requêtes. Vous pouvez également utiliser des expressions de filtre pour filtrer les résultats en fonction des métadonnées (dans les datastores de données non structurées avec métadonnées et d'indexation avancée de sites Web) et des valeurs de champ (dans les datastores de données structurées).
Pour en savoir plus, consultez les sections suivantes :
Si vous utilisez à la fois une expression de filtre et le filtre de pertinence au niveau du document, l'expression de filtre est appliquée en premier aux résultats, puis le filtre de pertinence au niveau du document.
Avant de commencer
Assurez-vous d'avoir créé une application et data store, et d'avoir ingéré des données dans votre data store. Pour en savoir plus, consultez Créer une application de recherche. Consultez également Types de données et applications compatibles avec le filtre de pertinence au niveau du document.
Rechercher et filtrer les résultats par pertinence au niveau du document
Pour filtrer par pertinence, procédez comme suit :
Trouvez l'ID de votre application. Si vous avez déjà votre ID d'application, passez à l'étape suivante.
Dans la console Google Cloud , accédez à la page Applications d'IA.
Sur la page Applications, recherchez le nom de votre application et récupérez son ID dans la colonne ID.
Pour filtrer la recherche par pertinence au niveau du document, spécifiez le champ
relevanceFilterSpecqui ne définit qu'un seul type de seuil pour chaque type de recherche à l'aide de la méthodeengines.servingConfigs.search. Autrement dit, vous pouvez spécifierrelevanceThresholdousemanticRelevanceThresholdpour un type de recherche donné.curl -X POST -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ "https://discoveryengine.googleapis.com/v1alpha/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search:search" \ -d '{ "servingConfig": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search", "query": "QUERY", "relevanceFilterSpec": { "keywordSearchThreshold": { "relevanceThreshold": "RELEVANCE_THRESHOLD" }, "semanticSearchThreshold": { "semanticRelevanceThreshold": SEMANTIC_RELEVANCE_THRESHOLD } } }'Remplacez les éléments suivants :
PROJECT_ID: ID de votre projet Google Cloud .APP_ID: ID de l'application Vertex AI Search que vous souhaitez interroger.QUERY: texte de la requête à rechercher.RELEVANCE_THRESHOLD: l'une des valeurs suivantes :HIGH,MEDIUM,LOW,LOWEST.SEMANTIC_RELEVANCE_THRESHOLD: valeur à virgule flottante comprise dans la plage [0,1].
Testez plusieurs requêtes avec différents seuils pour déterminer les meilleurs paramètres de seuil pour vos données et votre application.