Mesures d’évaluation des modèles de Language Understanding utilisé dans la conversation
Votre jeu de données est divisé en deux parties : un jeu pour la formation et un jeu pour le test. Le jeu d’entraînement est utilisé pour entraîner le modèle, tandis que le jeu de tests est utilisé comme test pour le modèle après l’entraînement pour calculer les performances et l’évaluation du modèle. Le jeu de tests n’est pas introduit dans le modèle par le biais du processus de formation pour s’assurer que le modèle est testé sur de nouvelles données.
L’évaluation du modèle est déclenchée automatiquement une fois l’entraînement effectué. Le processus d’évaluation commence par l’utilisation du modèle formé pour prédire les intentions et entités définies par l’utilisateur pour les énoncés du jeu de test. Le processus les compare ensuite aux étiquettes fournies afin d'établir une base de vérité. Les résultats sont renvoyés pour vous permettre d’examiner les performances du modèle. Pour l’évaluation, la compréhension du langage utilisé dans la conversation se sert des mesures suivantes :
Précision : mesure la précision ou la justesse de votre modèle. Il s’agit du rapport entre les positifs correctement identifiés (vrais positifs) et tous les positifs identifiés. La métrique de précision révèle le nombre de classes prédites qui sont correctement étiquetées.
Precision = #True_Positive / (#True_Positive + #False_Positive)
Rappel : mesure la capacité du modèle à prédire les classes positives réelles. Il s’agit du rapport entre les vrais positifs prédits et ce qui a été étiqueté. La métrique de rappel révèle le nombre de classes prédites correctes.
Recall = #True_Positive / (#True_Positive + #False_Negatives)
Score F1 : le score F1 est une fonction de précision et de rappel. Il est nécessaire quand vous recherchez un équilibre entre précision et rappel.
F1 Score = 2 * Precision * Recall / (Precision + Recall)
La précision, le rappel et le score F1 sont calculés pour :
- Chaque entité séparément (évaluation au niveau de l’entité).
- Chaque intention séparément (évaluation au niveau de l’intention).
- Pour le modèle collectivement (évaluation au niveau du modèle).
Les définitions de la précision, du rappel et de l’évaluation sont les mêmes pour les évaluations au niveau de l’entité, de l’intention et du modèle. Toutefois, le nombre de vrais positifs, faux positifs et faux négatifs peut différer. Par exemple, prenons le texte suivant.
Exemple
- Faire une réponse avec « merci beaucoup ».
- Répondre avec « oui ».
- Vérifier mes e-mails.
- Écrire un e-mail à Cynthia pour dire que le dîner de la semaine dernière était exceptionnel.
- Envoyez un e-mail à Mike.
Les intentions utilisées sont Reply
, sendEmail
et readEmail
. Les entités sont contactName
et message
.
Le modèle peut effectuer les prédictions suivantes :
Énoncé | Intention prédite | Intention réelle | Entité prédite | Entité réelle |
---|---|---|---|---|
Faire une réponse avec « merci beaucoup » | Répondre | Répondre | thank you very much en tant que message |
thank you very much en tant que message |
Répondre avec « oui » | SendEmail | Répondre | -- | yes en tant que message |
Vérifier mes e-mails | readEmail | readEmail | -- | -- |
Écrire un e-mail à Cynthia pour dire que le dîner de la semaine dernière était exceptionnel | Répondre | SendEmail | dinner last week was splendid en tant que message |
cynthia en tant que contactName , dinner last week was splendid en tant que message |
Envoyez un e-mail à Mike | SendEmail | SendEmail | mike en tant que message |
mike en tant que contactName |
Évaluation au niveau de l’intention pour l’intention Reply
Clé | Count | Explication |
---|---|---|
Vrai positif | 1 | L’énoncé 1 a été correctement prédit comme Reply . |
Faux positif | 1 | L’énoncé 4 a été prédit par erreur comme Reply . |
Faux négatif | 1 | L’énoncé 2 a été prédit par erreur comme sendEmail . |
Précision = #True_Positive / (#True_Positive + #False_Positive) = 1 / (1 + 1) = 0.5
Rappel = #True_Positive / (#True_Positive + #False_Negatives) = 1 / (1 + 1) = 0.5
Score F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.5 * 0.5) / (0.5 + 0.5) = 0.5
Évaluation au niveau de l’intention pour sendEmail
Clé | Count | Explication |
---|---|---|
Vrai positif | 1 | L’énoncé 5 a été correctement prédit comme sendEmail . |
Faux positif | 1 | L’énoncé 2 a été prédit par erreur comme sendEmail . |
Faux négatif | 1 | L’énoncé 4 a été prédit par erreur comme Reply . |
Précision = #True_Positive / (#True_Positive + #False_Positive) = 1 / (1 + 1) = 0.5
Rappel = #True_Positive / (#True_Positive + #False_Negatives) = 1 / (1 + 1) = 0.5
Score F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.5 * 0.5) / (0.5 + 0.5) = 0.5
Évaluation au niveau de l’intention pour l’intention readEmail
Clé | Count | Explication |
---|---|---|
Vrai positif | 1 | L’énoncé 3 a été correctement prédit comme readEmail . |
Faux positif | 0 | -- |
Faux négatif | 0 | -- |
Précision = #True_Positive / (#True_Positive + #False_Positive) = 1 / (1 + 0) = 1
Rappel = #True_Positive / (#True_Positive + #False_Negatives) = 1 / (1 + 0) = 1
Score F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 1 * 1) / (1 + 1) = 1
Évaluation au niveau de l’entité pour l’entité contactName
Clé | Count | Explication |
---|---|---|
Vrai positif | 1 | cynthia a été correctement prédit comme contactName dans l’énoncé 4. |
Faux positif | 0 | -- |
Faux négatif | 1 | mike a été prédit par erreur comme message dans l’énoncé 5. |
Précision = #True_Positive / (#True_Positive + #False_Positive) = 1 / (1 + 0) = 1
Rappel = #True_Positive / (#True_Positive + #False_Negatives) = 1 / (1 + 1) = 0.5
Score F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 1 * 0.5) / (1 + 0.5) = 0.67
Évaluation au niveau de l’entité de l’entité message
Clé | Count | Explication |
---|---|---|
Vrai positif | 2 | thank you very much a été correctement prédit comme message dans l’énoncé 1 et dinner last week was splendid a été correctement prédit comme message dans l’énoncé 4. |
Faux positif | 1 | mike a été prédit par erreur comme message dans l’énoncé 5. |
Faux négatif | 1 | yes n’a pas été prédit comme message dans l’énoncé 2. |
Précision = #True_Positive / (#True_Positive + #False_Positive) = 2 / (2 + 1) = 0.67
Rappel = #True_Positive / (#True_Positive + #False_Negatives) = 2 / (2 + 1) = 0.67
Score F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.67 * 0.67) / (0.67 + 0.67) = 0.67
Évaluation au niveau du modèle pour le modèle collectif
Clé | Count | Explication |
---|---|---|
Vrai positif | 6 | Somme des vrais positifs pour toutes les intentions et entités. |
Faux positif | 3 | Somme des faux positifs pour toutes les intentions et entités. |
Faux négatif | 4 | Somme des faux négatifs pour toutes les intentions et entités. |
Précision = #True_Positive / (#True_Positive + #False_Positive) = 6 / (6 + 3) = 0.67
Rappel = #True_Positive / (#True_Positive + #False_Negatives) = 6 / (6 + 4) = 0.60
Score F1 = 2 * Precision * Recall / (Precision + Recall) = (2 * 0.67 * 0.60) / (0.67 + 0.60) = 0.63
Matrice de confusion
Une matrice de confusion est une matrice N x N utilisée pour l’évaluation des performances du modèle, N étant le nombre d’entités ou d’intentions. La matrice compare les étiquettes attendues aux étiquettes prédites par le modèle. Cette matrice donne une vue holistique du niveau de performance du modèle et des genres d’erreur qu’il commet.
Vous pouvez utiliser la matrice de confusion pour identifier les intentions ou entités trop proches les unes des autres et qui sont souvent mal interprétées (ambiguïté). Dans ce cas, songez à fusionner ces intentions ou entités. Si la fusion n’est pas possible, ajoutez d’autres exemples étiquetés des deux intentions ou entités pour permettre au modèle de les différencier.
La diagonale en surbrillance dans l’image suivante montre les entités correctement prédites, où l’étiquette prédite est la même que l’étiquette réelle.
Vous pouvez calculer les métriques d’évaluation au niveau de l’entité ou de l’intention et au niveau du modèle à partir de la matrice de confusion :
- Les valeurs de la diagonale sont les valeurs correspondant aux vrais positifs de chaque entité ou intention.
- La somme des valeurs des lignes d’intention ou d’entité (à l’exception de la diagonale) correspond au faux positif du modèle.
- La somme des valeurs des colonnes d’intention ou d’entité (à l’exception de la diagonale) correspond au faux négatif du modèle.
De même :
- Le vrai positif du modèle correspond à la somme des vrais positifs de toutes les intentions ou entités.
- Le faux positif du modèle correspond à la somme des faux positifs de toutes les intentions ou entités.
- Le faux négatif du modèle correspond à la somme des faux négatifs de toutes les intentions ou entités.
Assistance
Après la formation votre modèle, vous voyez des conseils et des suggestions sur la façon d’améliorer le modèle. Nous vous recommandons d’avoir un modèle couvrant tous les points de la section des conseils.
- Le jeu de formation contient suffisamment de données : lorsqu’une entité ou une intention a moins de 15 instances étiquetées dans les données de formation, il peut entraîner une précision inférieure à cause du fait que le modèle n’est pas correctement formé sur cette intention. Dans ce cas, envisagez d’ajouter d’autres données étiquetées dans le jeu d’entraînement. Vous ne devez envisager l’ajout d’autres données étiquetées à votre entité que si cette dernière a un composant appris. Si votre entité est définie uniquement par des composants liste, prédéfinis et expression régulière, cette suggestion ne s’applique pas.
- Toutes les entités et intentions sont présentes dans le jeu de tests : lorsque les données de test ne disposent pas des instances étiquetées pour une entité ou une intention, l’évaluation du modèle est moins complète à cause de scénarios non testés. Envisagez d’avoir des données de test pour chaque intention et entité dans votre modèle afin de vérifier que tout est testé.
- Distinction peu claire entre les intentions ou les entités : lorsque les données sont semblables pour différentes intentions ou entités, cela peut entraîner une précision inférieure, car elles peuvent souvent être mal classées les unes comme les autres. Passez en revue les entités et les intentions suivantes et envisagez de les fusionner si elles sont similaires. Sinon, ajoutez d’autres exemples pour mieux les distinguer les uns des autres. Vous pouvez consulter l’onglet Matrice de confusion pour obtenir des conseils supplémentaires. Si vous voyez deux entités constamment prédites pour les mêmes étendues, car elles partagent les mêmes composants de liste, de prédéfinis ou d’expression régulière, veillez à ajouter un composant appris pour chaque entité et à le rendre obligatoire. En savoir plus sur les composants d’entité.