Amélioration de la pertinence des résultats par l'entraînement

La pertinence des résultats de requêtes en langage naturel peut être améliorée dans IBM Watson® Discovery avec un entraînement.

Un modèle de pertinence détermine les documents les plus pertinents à renvoyer dans les résultats de la recherche. Sans entraînement à la pertinence, un mécanisme standard est utilisé pour déterminer la pertinence en fonction de facteurs communs. Lorsque vous entraînez un modèle de pertinence, vous aidez Discovery à utiliser des fonctions qui sont uniques à vos documents car elles déterminent la pertinence.

Le modèle d'entraînement à la pertinence associé à un projet est utilisé lors de l'exécution uniquement lorsque des requêtes en langage naturel sont soumises. Le modèle n'est pas appliqué aux requêtes DQL (Discovery Query Language).

Vous ne pouvez pas appliquer de formation à la pertinence aux types de projet Content Mining.

Pour entraîner un modèle de pertinence, vous devez fournir des exemples de requêtes en langage naturel, les soumettre pour obtenir des résultats à partir de vos documents, puis les évaluer. Lorsque vous ajoutez d'autres exemples, les informations que vous fournissez sur la pertinence des résultats pour chaque requête sont utilisées pour en savoir plus sur votre projet. Le système utilise vos évaluations pour attribuer de l'importance à différents types d'informations structurelles dans les documents. Par exemple, il apprend l'importance du moment où un mot clé de la requête de recherche apparaît dans le titre par rapport à l'en-tête, au corps ou dans les métadonnées du document. Il apprend également de l'importance de la distance entre un mot clé correspondant et un autre. Après une session d'entraînement à la pertinence réussie, un modèle de classeur est créé. Le modèle est utilisé automatiquement par la fonction de reconnaissance avec la prochaine requête en langage naturel. La reconnaissance réorganise les résultats du document de sorte que les résultats les plus pertinents en fonction du modèle d'entraînement à la pertinence soient affichés en premier.

La formation s'applique à l'ensemble d'un projet. Il ne peut pas être ignoré pour une collection et appliqué à d'autres collections dans le même projet. Vous n'activez pas l'utilisation du modèle d'entraînement en spécifiant un paramètre de requête. S'il est présent, le modèle est utilisé pour chaque requête en langage naturel soumise pour le projet. Le modèle est utilisé que vous limitiez la recherche à une collection ou à toutes les collections. Pour cette raison, il est important que vos données d'apprentissage représentent des requêtes auxquelles toutes les collections de votre projet sont susceptibles de répondre. Pour empêcher un projet d'utiliser le modèle d'entraînement à la pertinence, vous pouvez supprimer le modèle à l'aide de l'API.

L'entraînement à la pertinence ne s'exécute pas en continu. L'entraînement n'a lieu que lorsque vous l'initiez. Au maximum, un modèle de pertinence entraîné est utilisé à la fois par projet. Si vous réentraînez un modèle, le modèle existant est utilisé jusqu'à ce que le nouveau modèle soit correctement entraîné, auquel cas le nouveau modèle remplace l'ancien modèle.

L'ensemble des documents qui constituent les données d'entraînement sont utilisés uniquement lors du processus d'entraînement. Si une modification ultérieure est apportée à un document qui a été utilisé pour entraîner le modèle, elle ne modifie pas le modèle entraîné et ne déclenche pas de nouvelle session d'entraînement. Gardez à l'esprit que si de nombreux documents de votre projet changent, il peut être temps de réentraîner le modèle pour utiliser les fonctions des documents mis à jour.

Les mots vides et les extensions de requête que vous ajoutez à une collection n'affectent pas directement le modèle d'entraînement à la pertinence. Toutefois, ils peuvent modifier les documents renvoyés par une recherche, ce qui affecte les documents classés par le modèle de pertinence. Le modèle classe les 100 premiers documents renvoyés pour une requête. Les modifications que vous apportez aux mots vides ou aux extensions de requête ne déclenchent pas de mise à jour de l'entraînement à la pertinence. Si vous ajoutez des artefacts qui modifient considérablement les documents renvoyés par la recherche, envisagez de réentraîner le modèle.

Si des documents utilisés précédemment pour entraîner le modèle sont supprimés d'une collection, vous devez supprimer toute référence à ces documents des données d'entraînement avant de commencer à entraîner à nouveau le modèle. Le modèle s'attend à ce que les documents et les requêtes des paires de données d'entraînement continuent d'exister. Pour supprimer ces références, supprimez les requêtes d'entraînement qui ont renvoyé les documents supprimés. Si les requêtes restent pertinentes, vous pouvez les ajouter à nouveau aux données d'entraînement et les associer à d'autres documents.

Pour plus d'informations sur l'API d'entraînement à la pertinence, voir la documentation de référence de l'API.

Quand utiliser l'entraînement à la pertinence

L'entraînement à la pertinence est facultatif. Testez la qualité de vos résultats de recherche. Si les résultats de vos recherches répondent à vos besoins, aucune formation supplémentaire n'est nécessaire.

L'entraînement améliore la pertinence des documents renvoyés dans les réponses aux requêtes. Elle n'améliore pas les passages ou les réponses renvoyés par document. Si vous utilisez l'extraction de passages et que vos résultats de test renvoient de bons documents, mais que les mauvais passages des documents sont utilisés, la formation à la pertinence n'est pas utile.

Pour plus d'informations sur l'utilisation de l'entraînement à la pertinence, consultez l'article de blogue Relevancy training for time-sensitive users sur Medium.

Mode de traitement des zones

Lorsque vous entraînez un projet à partir de l'interface utilisateur du produit, les résultats sont toujours extraits de la zone text des documents. Si vos documents ne comportent pas de zone text, utilisez l'API pour entraîner votre projet à la place. Vos documents peuvent ne pas comporter de zone text si vous avez téléchargé un fichier CSV qui n'a pas de colonne nommée text, ou téléchargé un fichier JSON qui n'a pas d'objet nommé text, ou si vous avez utilisé l'outil Smart Document Understanding pour définir des zones avec d'autres noms dans lesquelles la majeure partie du contenu de vos documents est désormais stockée.

Lorsque vous entraînez un projet à partir de l'API, les résultats sont extraits de toutes les zones de niveau racine et ils sont tous considérés comme ayant la même signification. Contrairement aux requêtes Discovery Query Language, avec les requêtes en langage naturel, vous ne pouvez pas spécifier les zones du document qui vous intéressent ni la signification à donner à chacune d'elles. Lorsque vous enseignez à Discovery avec des exemples, le service vous indique le poids à donner à chaque zone.

La fonction de reconnaissance crée un modèle qui affecte des pondérations différentes aux correspondances de termes, de bigrammes et de sauts de gramme pour chacune des zones de niveau racine et les équilibre par rapport aux correspondances de toutes les autres zones de document. Avec suffisamment d'exemples, Discovery peut renvoyer de meilleures réponses car il sait où les meilleures réponses sont généralement stockées.

L'entraînement à la pertinence ne peut pas être utilisé pour donner plus de poids aux champs imbriqués. Les champs imbriqués sont regroupés et un score global leur est affecté. Quelle que soit la quantité que vous entraînez, Discovery n'accorde jamais à un champ imbriqué plus de poids qu'à un champ de niveau racine. Pour plus d'informations sur les zones imbriquées, voir la foire aux questions.

Formation d'un projet

Les données d'apprentissage utilisées pour entraîner le modèle de pertinence incluent les parties suivantes:

  • Une requête en langage naturel qui est représentative d'une requête que vos utilisateurs peuvent soumettre
  • Résultats de la requête renvoyés par le service
  • Evaluation que vous appliquez au résultat qui indique si le résultat est relevant ou not relevant

Pour appliquer une formation à la pertinence à un projet, procédez comme suit:

  1. Accédez à la page Improve and customize. Dans le panneau Improvement tools, sélectionnez Improve relevance, puis Relevancy training.

  2. Saisissez une requête en langage naturel dans le champ Saisir une question à former.

    N'incluez pas de point d'interrogation dans votre requête. Utilisez la même formulation que vos utilisateurs. Par exemple, IBM Watson in healthcare. Ecrivez des requêtes qui incluent certains des termes mentionnés dans la réponse cible. Le chevauchement des termes améliore les résultats initiaux lors de l'évaluation de la requête en langage naturel.

  3. Cliquez sur Ajouter.

  4. Cliquez sur Rate results.

  5. Une fois les résultats affichés, évaluez chaque résultat, puis sélectionnez Pertinent ou Non pertinent, selon l'option qui s'applique en fonction de la qualité du résultat.

    Dans l'interface utilisateur Discovery, lorsque vous marquez un document comme pertinent, le service applique un score de pertinence de 10 au résultat et un score de 0 lorsque vous le marquez comme non pertinent. Les deux seules valeurs de score que vous pouvez affecter lorsque vous appliquez l'entraînement à la pertinence via l'interface utilisateur Discovery sont 0 et 10.

    Dans l'API Discovery, vous pouvez affecter des valeurs de score de pertinence entre 0 et chaque entier compris entre 100. Dans le même projet, vous ne pouvez pas mélanger des exemples d'apprentissage créés dans l'interface utilisateur Discovery (scores de 0 et 10) avec des exemples créés qui utilisent des niveaux de score de confiance autres que 0 et 10. Si vous utilisez une échelle de score personnalisée via l'API, vous devez continuer à appliquer toutes vos formations via l'API. Vous ne pouvez pas éditer les exemples d'entraînement appliqués via l'API dans l'interface utilisateur Discovery sauf s'ils utilisent uniquement les deux scores de 0 et 10.

    Si le résultat affiche le message "Aucun aperçu de contenu disponible pour ce document", cela signifie que le document renvoyé ne contient pas de zone text ou que sa zone text est vide. Si aucun des documents de votre collection ne comporte de zone text, utilisez l'API pour entraîner le projet au lieu de l'entraîner à partir de l'interface utilisateur du produit.

  6. Lorsque vous avez terminé, cliquez sur Retour aux requêtes.

  7. Continuez à ajouter des requêtes et à les évaluer.

    Au fur et à mesure que vous notez les résultats, votre progression est affichée. Vérifiez votre progression pour voir quand suffisamment d'informations d'évaluation sont disponibles pour répondre aux besoins de seuil d'entraînement. Votre progression est divisée en les tâches suivantes:

    • Ajouter d'autres requêtes
    • Evaluer plus de résultats
    • Ajouter plus de variété à vos évaluations

    Vous devez évaluer au moins 50 requêtes uniques, voire plus, en fonction de la complexité de vos données. Vous ne pouvez pas ajouter plus de 10 000 requêtes d'entraînement.

  8. Vous pouvez continuer à ajouter des requêtes et à classer les résultats après avoir atteint le seuil. Entrez toutes les requêtes que vous pensez que vos utilisateurs demanderont.

    Pour supprimer une requête de formation, cliquez sur l'icône Supprimer. Pour supprimer simultanément toutes les requêtes d'entraînement de votre collection, utilisez l'API. Pour plus d'informations, voir Supprimer les requêtes de formation.

Si deux ou plusieurs utilisateurs tentent d'entraîner simultanément des requêtes identiques, les évaluations soumises par l'un des utilisateurs écrasent les autres.

Test et itération sur la pertinence des résultats

Une fois que vous avez terminé d'évaluer les résultats et que l'entraînement est terminé, testez si les résultats de la requête sont meilleurs. Pour ce faire, lancez des requêtes de test en langage naturel qui sont liées (mais pas identiques) à vos requêtes de formation. Examinez les résultats.

Si vous souhaitez continuer à améliorer les résultats après le test, vous pouvez:

  • Ajouter d'autres documents à votre collection.
  • Ajouter d'autres requêtes d'entraînement.
  • Evaluer d'autres résultats, en prenant soin d'utiliser les évaluations pertinentes (Relevant) et non pertinentes (Not relevant).

Scores de confiance

Discovery renvoie un score de confiance (confidence) pour les requêtes en langage naturel des collections entraînées. Ce score confidence n'est pas interchangeable avec les scores confidence renvoyés par des collections non formées.

Le score de confidence peut être compris entre 0.0 et 1.0. Plus de nombre est élevé, plus le résultat est pertinent.

Le score de confidence figure dans les résultats de requête, sous la section result_metadata de chaque document. Ce nombre est calculé en fonction de la pertinence du résultat par rapport au modèle entraîné.

{
  "matching_results": 4,
  "retrieval_details": {
    "document_retrieval_strategy": "trained"
  },
  "results": [
    {
	  "id": "eea16dfd5fe6139a25324e7481a32f89_13",
	  "result_metadata": {
	    "confidence": 0.08793
	  }
    }
  ]
}

document_retrieval_strategy se trouve sous retrieval_details. Si vous interrogez une collection formée en utilisant le langage de requête Discovery ou si le modèle formé est temporairement désactivé, l'adresse document_retrieval_strategy est untrained.

Pour plus d'informations sur l'interrogation d'un projet, voir Présentation de la requête.

Limites de l'entraînement à la pertinence

Les limites suivantes s'appliquent aux modèles de formation à la pertinence :

  • Un modèle par projet
  • 10 000 requêtes par modèle
  • 40 modèles par instance de service pour les plans Enterprise et Premium ; 20 modèles pour les instances de plan Plus

Exécution de sessions d'entraînement optimales

L'exemple suivant décrit comment exécuter de manière optimale des sessions pour la formation à la pertinence dans des projets.

Prenez en compte que vous avez ajouté 100 requêtes d'entraînement à un nouveau projet et que Discovery exécute 100 requêtes dans une session d'entraînement pour créer un modèle de classeur. Par la suite, si vous ajoutez 20 autres requêtes, le modèle commence à s'entraîner à nouveau et Discovery exécute un total de 120 requêtes. Toutefois, pour ajouter les 20 dernières requêtes, si vous ajoutez d'abord 10 requêtes, attendez environ une heure, puis ajoutez les 10 requêtes suivantes, Discovery entraîne le modèle deux fois. Dans ce cas, la première session d'entraînement exécute 110 requêtes, et la deuxième session d'entraînement exécute 120 requêtes. Cette façon d'ajouter des requêtes, intercalées entre des intervalles de temps, entraîne une augmentation du nombre de sessions d'entraînement et du nombre total de requêtes exécutées par Discovery.

A la place, pour réduire le nombre de sessions d'entraînement, vous pouvez utiliser l'API de mise à jour d'une requête d'entraînement. La méthode d'API met à jour les données d'entraînement pour plusieurs collections sous un même projet à la fois. Pour plus d'informations, voir Update a training query dans la référence d'API.

Pour réduire la charge de traitement sur Discovery, vous devez créer ou mettre à jour un modèle de classeur via un entraînement à la pertinence une fois que toutes les collections d'un projet ont terminé le traitement des documents. De plus, au cours du processus d'entraînement du modèle de classeur, vous devez avoir des activités de requête faibles de sorte que la limite des demandes simultanées ne dépasse pas.

Autres moyens d'améliorer la pertinence

Si vous préférez utiliser l'API Discovery pour entraîner Discovery, voir Référence d'API.

Vous pouvez également utiliser l'API pour ajouter des curations. Curations est une fonction bêta que vous pouvez utiliser pour apprendre à Discovery à renvoyer un document spécifique chaque fois qu'une requête spécifique est soumise. Pour plus d'informations, voir Curations.

L'ajout d'une liste de mots vides personnalisée peut également améliorer la pertinence des résultats pour les requêtes en langage naturel. Pour plus d'informations, voir Identification des mots à ignorer.

Comprendre la formation à la pertinence

Réponses aux questions les plus courantes sur la formation à un projet.

Comment puis-je savoir si mon système est formé ?

Exécutez une requête en langage naturel et vérifiez document_retrieval_strategy. Voir Scores de confiance.

Si vous utilisez l'API, voir Affichage de la liste des requêtes d'entraînement.

Combien de temps faut-il pour former un modèle ?

L'entraînement peut prendre entre 45 minutes et une heure. La durée de l'entraînement varie en fonction de la quantité et de la variété des données utilisées pour entraîner le modèle de pertinence. En outre, l'entraînement se produit de manière asynchrone. Elle peut être retardée si d'autres données dont elle a besoin ne sont pas disponibles car elles font l'objet d'une recherche ou sont traitées d'une autre manière.

Comment puis-je empêcher que la formation à la pertinence ne soit appliquée à mon projet?

Utilisez l'API pour supprimer le modèle de pertinence associé à votre projet. Pour supprimer le modèle, supprimez les données d'entraînement associées au modèle de classeur. Pour plus d'informations, voir Suppression de requêtes d'entraînement.

La formation à la pertinence a-t-elle un impact sur la recherche de passage

Non. La formation à la pertinence est utilisée uniquement pour la recherche de documents. Il n'a aucun impact sur la recherche de passage.

La formation à la pertinence a-t-elle un impact sur la réponse?

Pas directement. La formation à la pertinence a un impact indirect sur la recherche de réponses car elle modifie l'ordre des documents à partir desquels les réponses sont extraites. Il réachemine les documents renvoyés de la plus pertinente à la moins pertinente.

Comment vérifier les erreurs et les avertissements ?

Ouvrez la page Gérer les collections. Choisissez votre collection, puis ouvrez l'ongletActivity.

Comment interpréter l'indice de confiance qui apparaît dans les résultats des requêtes en langage naturel après la formation ?

Voir Scores de confiance.

Interprétation des erreurs et des avertissements liés à la formation à la pertinence

La liste suivante contient des explications pour certains messages d'erreur et d'avertissement courants.

Le message Watson commencera bientôt à apprendre s'affiche pendant une longue période lors de la création d'un modèle de classificateur

Ce problème peut survenir si le nombre total de modèles de classeurs existants a atteint la limite de 40 modèles. Dans ce cas, un nouveau modèle n'est pas créé et le message " le Watson commencera bientôt à apprendre reste affiché dans l'interface utilisateur pendant une longue période.

Pour résoudre ce problème, vous pouvez soit supprimer les anciens modèles de ranker des projets inutilisés, soit contacter le support IBM pour passer à une instance premium.

Avertissement : Invalid training data found: The document was not returned in the top 100 search results for the given query, and will not be used for training

Cet avertissement se produit lorsque document_ids dans vos données d'entraînement ne correspond pas à document_ids dans une recherche effectuée sur la collection. Vérifiez vos requêtes pour vous assurer que le site document_id du document que vous évaluez est renvoyé dans les 100 premiers résultats pour cette requête. Si ce n'est pas le cas, il est recommandé de vérifier les deux points suivants :

  • Si le document n'est pas renvoyé dans les 100 premiers, il ne s'agit peut-être pas d'un exemple de résultat de haute qualité. Réévaluez si le document doit être utilisé.
  • Si le document n'est pas renvoyé du tout, il convient d'en examiner les raisons et de vérifier si le texte du document correspond à certaines parties de la requête.

Cet avertissement indique que vous pouvez avoir une ou plusieurs requêtes en échec. Cela ne signifie pas que la formation ne peut pas être terminée.

Erreur : Invalid training data found: Syntax error when parsing query

Une erreur de syntaxe signifie que la requête n'est pas valide. Des erreurs de syntaxe peuvent se produire lorsque vous augmentez la complexité de la requête en ajoutant un filtre à la requête en langage naturel, par exemple. Exécutez la requête sur la collection en dehors de l'entraînement à la pertinence à l'aide de l'API. Une fois que vous avez confirmé que la requête est valide et qu'elle renvoie des résultats, vous pouvez l'ajouter en tant que requête d'entraînement à la pertinence.

Erreur : Training data quality standards not met: You will need additional training queries with labeled examples. (To be considered for training, each example must appear in the top 100 search results for its query.)

Vous devez ajouter d'autres données d'entraînement pour que l'entraînement aboutisse. Vous avez besoin d'au moins 49 requêtes d'entraînement uniques et au moins un document évalué doit être associé à chacune d'elles. Minimum ne signifie pas optimal ; la taille de la collection et d'autres facteurs peuvent augmenter le nombre d'exemples de formation nécessaires pour atteindre le minimum.

Erreur : Training data quality standards not met: Insufficient number of unique training queries. Expected at least n, but found m.

Pour satisfaire aux exigences minimales en matière de formation, vous devez disposer d'au moins 50 requêtes de formation uniques, et chaque requête doit comporter au moins un document évalué. Si vous avez plus de requêtes que le minimum requis et que vous recevez toujours ce message d'erreur, vérifiez que vos notifications ne contiennent pas d'autres erreurs.

Erreur : Training data quality standards not met: No documents found with non-zero relevance labels.

Les données d'entraînement ont besoin d'avoir suffisamment de données étiquetées désignant les documents de grande valeur. Par conséquent, vous devez évaluer certains documents avec des valeurs non nulles. Vous devez évaluer certains documents comment étant Relevant et certains comme Not relevant. Au moins un document doit être évalué comme Relevant.

Erreur : Training data quality standards not met: Training examples have no relevance label variety for X queries.

L'une des exigences relatives à l'entraînement est d'avoir suffisamment de diversité au niveau des libellés. Au moins 25% des requêtes d'entraînement doivent inclure à la fois des libellés Relevant et Not relevant. Si vous utilisez l'API, au moins 25% des requêtes doivent inclure deux libellés numériques différents.