Amazon Comprehend annonce des limites d'annotation inférieures pour la reconnaissance d'entités personnalisées PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Amazon Comprehend annonce des limites d'annotation inférieures pour la reconnaissance d'entités personnalisées

Amazon comprendre est un service de traitement du langage naturel (NLP) que vous pouvez utiliser pour extraire automatiquement des entités, des phrases clés, un langage, des sentiments et d'autres informations à partir de documents. Par exemple, vous pouvez immédiatement commencer à détecter des entités telles que des personnes, des lieux, des articles commerciaux, des dates et des quantités via le Console Amazon Comprehend, Interface de ligne de commande AWSou API Amazon Comprehend. De plus, si vous devez extraire des entités qui ne font pas partie du Types d'entités intégrées Amazon Comprehend, vous pouvez créer un modèle de reconnaissance d'entité personnalisé (également appelé entité personnalisée reconnaissance) pour extraire des termes plus pertinents pour votre cas d'utilisation spécifique, comme des noms d'éléments d'un catalogue de produits, des identifiants spécifiques à un domaine, etc. Créer vous-même un outil de reconnaissance d'entités précis à l'aide de bibliothèques et de frameworks d'apprentissage automatique peut être un processus complexe et chronophage. Amazon Comprehend simplifie considérablement le travail de formation de votre modèle. Tout ce que vous avez à faire est de charger votre ensemble de données de documents et d'annotations, et d'utiliser la console Amazon Comprehend, l'AWS CLI ou les API pour créer le modèle.

Pour former un module de reconnaissance d'entité personnalisé, vous pouvez fournir des données de formation à Amazon Comprehend en tant que annotations ou listes d'entités. Dans le premier cas, vous fournissez une collection de documents et un fichier avec des annotations qui spécifient l'emplacement où les entités apparaissent dans l'ensemble de documents. Alternativement, avec les listes d'entités, vous fournissez une liste d'entités avec leur étiquette de type d'entité correspondante, et un ensemble de documents non annotés dans lesquels vous vous attendez à ce que vos entités soient présentes. Les deux approches peuvent être utilisées pour former un modèle de reconnaissance d'entité personnalisé réussi ; cependant, il existe des situations dans lesquelles une méthode peut être un meilleur choix. Par exemple, lorsque la signification d'entités spécifiques peut être ambiguë et dépendante du contexte, il est recommandé de fournir des annotations car cela peut vous aider à créer un modèle Amazon Comprehend capable de mieux utiliser le contexte lors de l'extraction d'entités.

L'annotation de documents peut nécessiter beaucoup d'efforts et de temps, surtout si l'on considère que la qualité et la quantité des annotations ont un impact sur le modèle de reconnaissance d'entité résultant. Des annotations imprécises ou trop peu nombreuses peuvent conduire à de mauvais résultats. Pour vous aider à mettre en place un processus d'acquisition d'annotations, nous fournissons des outils tels que Vérité au sol Amazon SageMaker, qui vous permet d'annoter vos documents plus rapidement et de générer un fichier d'annotations de manifeste augmenté. Cependant, même si vous utilisez Ground Truth, vous devez toujours vous assurer que votre jeu de données d'entraînement est suffisamment volumineux pour créer avec succès votre module de reconnaissance d'entités.

Jusqu'à aujourd'hui, pour commencer à former un module de reconnaissance d'entité personnalisé Amazon Comprehend, vous deviez fournir une collection d'au moins 250 documents et un minimum de 100 annotations par type d'entité. Aujourd'hui, nous annonçons que, grâce aux récentes améliorations des modèles sous-jacents à Amazon Comprehend, nous avons réduit les exigences minimales pour former un module de reconnaissance avec des fichiers d'annotation CSV en texte brut. Vous pouvez désormais créer un modèle de reconnaissance d'entité personnalisé avec seulement trois documents et 25 annotations par type d'entité. Vous pouvez trouver plus de détails sur les nouvelles limites de service dans Lignes directrices et quotas.

Pour montrer comment cette réduction peut vous aider à démarrer avec la création d'un outil de reconnaissance d'entité personnalisé, nous avons effectué des tests sur quelques ensembles de données open source et collecté des mesures de performances. Dans cet article, nous vous expliquons le processus d'analyse comparative et les résultats que nous avons obtenus en travaillant sur des ensembles de données sous-échantillonnés.

Préparation du jeu de données

Dans cet article, nous expliquons comment nous avons formé un module de reconnaissance d'entité personnalisé Amazon Comprehend à l'aide de documents annotés. En général, les annotations peuvent être fournies sous forme de fichier CSV, un fichier manifeste augmenté généré par Ground TruthOu un fichier PDF. Nous nous concentrons sur les annotations en texte brut CSV, car c'est le type d'annotation impacté par les nouvelles exigences minimales. Les fichiers CSV doivent avoir la structure suivante :

File, Line, Begin Offset, End Offset, Type
documents.txt, 0, 0, 13, ENTITY_TYPE_1
documents.txt, 1, 0, 7, ENTITY_TYPE_2

Les champs concernés sont les suivants :

  • Déposez votre dernière attestation – Le nom du dossier contenant les documents
  • Gamme – Le numéro de la ligne contenant l'entité, en commençant par la ligne 0
  • Commencer Compenser - Le décalage de caractère dans le texte d'entrée (par rapport au début de la ligne) qui indique où commence l'entité, en considérant que le premier caractère est à la position 0
  • Décalage de fin - Le décalage de caractère dans le texte d'entrée qui montre où l'entité se termine
  • Type – Le nom du type d'entité que vous souhaitez définir

De plus, lorsque vous utilisez cette approche, vous devez fournir une collection de documents de formation sous forme de fichiers .txt avec un document par ligne ou un document par fichier.

Pour nos tests, nous avons utilisé le Benchmark de compréhension du langage naturel SNIPS, un ensemble de données d'énoncés crowdsourcés répartis entre sept intentions d'utilisateurs (AddToPlaylist, BookRestaurant, GetWeather, PlayMusic, RateBook, SearchCreativeWork, SearchScreeningEvent). L'ensemble de données a été publié en 2018 dans le cadre de l'article Snips Voice Platform : un système intégré de compréhension du langage parlé pour les interfaces vocales privées par conception par Coucke, et al.

Le jeu de données SNIPS est constitué d'une collection de fichiers JSON condensant à la fois des annotations et des fichiers texte bruts. Voici un extrait de l'ensemble de données :

{
   "annotations":{
      "named_entity":[
         {
            "start":16,
            "end":36,
            "extent":"within the same area",
            "tag":"spatial_relation"
         },
         {
            "start":40,
            "end":51,
            "extent":"Lawrence St",
            "tag":"poi"
         },
         {
            "start":67,
            "end":70,
            "extent":"one",
            "tag":"party_size_number"
         }
      ],
      "intent":"BookRestaurant"
   },
   "raw_text":"I'd like to eat within the same area of Lawrence St for a party of one"
}

Avant de créer notre outil de reconnaissance d'entités, nous avons transformé les annotations SNIPS et les fichiers de texte brut en un fichier d'annotations CSV et un fichier de documents .txt.

Voici un extrait de notre annotations.csv fichier:

File, Line, Begin Offset, End Offset, Type
documents.txt, 0, 16, 36, spatial_relation
documents.txt, 0, 40, 51, poi
documents.txt, 0, 67, 70, party_size_number

Voici un extrait de notre documents.txt fichier:

I'd like to eat within the same area of Lawrence St for a party of one
Please book me a table for three at an american gastropub 
I would like to book a restaurant in Niagara Falls for 8 on June nineteenth
Can you book a table for a party of 6 close to DeKalb Av

Configuration de l'échantillonnage et processus d'analyse comparative

Pour nos expériences, nous nous sommes concentrés sur un sous-ensemble de types d'entités de l'ensemble de données SNIPS :

  • LivreRestaurant – Type d'entité : spatial_relation, poi, party_size_number, restaurant_name, city, timeRange, restaurant_type, served_dish, party_size_description, country, facility, state, sort, cuisine
  • Obtenir la météo – Type d'entité : condition_temperature, current_location, geographic_poi, timeRange, state, spatial_relation, condition_description, city, country
  • Jouer de la musique – Type d'entité : track, artist, music_item, service, genre, sort, playlist, album, year

De plus, nous avons sous-échantillonné chaque jeu de données pour obtenir différentes configurations en termes de nombre de documents échantillonnés pour la formation et de nombre d'annotations par entité (également appelées coups de feu). Cela a été fait en utilisant un script personnalisé conçu pour créer des jeux de données sous-échantillonnés dans lesquels chaque type d'entité apparaît au moins k fois, dans un délai minimum de n documents.

Chaque modèle a été formé à l'aide d'un sous-échantillon spécifique des ensembles de données de formation ; les neuf configurations de modèles sont illustrées dans le tableau suivant.

Nom de l'ensemble de données sous-échantillonné Nombre de documents échantillonnés pour la formation Nombre de documents échantillonnés pour les tests Nombre moyen d'annotations par type d'entité (plans)
snips-BookRestaurant-subsample-A 132 17 33
snips-BookRestaurant-subsample-B 257 33 64
snips-BookRestaurant-subsample-C 508 64 128
snips-GetWeather-subsample-A 91 12 25
snips-GetWeather-subsample-B 185 24 49
snips-GetWeather-subsample-C 361 46 95
snips-PlayMusic-subsample-A 130 17 30
snips-PlayMusic-subsample-B 254 32 60
snips-PlayMusic-subsample-C 505 64 119

Pour mesurer la précision de nos modèles, nous avons collecté des métriques d'évaluation qu'Amazon Comprehend calcule automatiquement lors de la formation d'un outil de reconnaissance d'entité :

  • La précision – Ceci indique la fraction d'entités détectées par le module de reconnaissance qui sont correctement identifiées et étiquetées. D'un point de vue différent, la précision peut être définie comme tp / (tp + fp), Où tp est le nombre de vrais positifs (identifications correctes) et fp est le nombre de faux positifs (identifications incorrectes).
  • Rappeler – Ceci indique la fraction d'entités présentes dans les documents qui sont correctement identifiées et étiquetées. Il est calculé comme tp / (tp + fn), Où tp est le nombre de vrais positifs et fn est le nombre de faux négatifs (identifications manquées).
  • Score F1 – Il s'agit d'une combinaison des mesures de précision et de rappel, qui mesure la précision globale du modèle. Le score F1 est la moyenne harmonique des mesures de précision et de rappel, et est calculé comme suit : 2 * Précision * Rappel / (Précision + Rappel).

Pour comparer les performances de nos modules de reconnaissance d'entités, nous nous concentrons sur les scores F1.

Considérant que, étant donné un ensemble de données et une taille de sous-échantillon (en termes de nombre de documents et de prises de vue), vous pouvez générer différents sous-échantillons, nous avons généré 10 sous-échantillons pour chacune des neuf configurations, entraîné les modèles de reconnaissance d'entités, collecté des mesures de performance et les a moyennées en utilisant la micro-moyenne. Cela nous a permis d'obtenir des résultats plus stables, en particulier pour les sous-échantillons à quelques coups.

Résultats

Le tableau suivant montre les scores F1 micro-moyens calculés sur les métriques de performance renvoyées par Amazon Comprehend après la formation de chaque module de reconnaissance d'entité.

Nom de l'ensemble de données sous-échantillonné Score F1 micro-moyenne du module de reconnaissance d'entités (%)
snips-BookRestaurant-subsample-A 86.89
snips-BookRestaurant-subsample-B 90.18
snips-BookRestaurant-subsample-C 92.84
snips-GetWeather-subsample-A 84.73
snips-GetWeather-subsample-B 93.27
snips-GetWeather-subsample-C 93.43
snips-PlayMusic-subsample-A 80.61
snips-PlayMusic-subsample-B 81.80
snips-PlayMusic-subsample-C 85.04

Le graphique à colonnes suivant montre la distribution des scores F1 pour les neuf configurations que nous avons formées comme décrit dans la section précédente.

Nous pouvons observer que nous avons pu former avec succès des modèles de reconnaissance d'entités personnalisés même avec aussi peu que 25 annotations par type d'entité. Si nous nous concentrons sur les trois plus petits ensembles de données sous-échantillonnés (snips-BookRestaurant-subsample-A, snips-GetWeather-subsample-Aet snips-PlayMusic-subsample-A), nous constatons qu'en moyenne, nous avons pu obtenir un score F1 de 84 %, ce qui est un assez bon résultat compte tenu du nombre limité de documents et d'annotations que nous avons utilisés. Si nous voulons améliorer les performances de notre modèle, nous pouvons collecter des documents et des annotations supplémentaires et former un nouveau modèle avec plus de données. Par exemple, avec des sous-échantillons de taille moyenne (snips-BookRestaurant-subsample-B, snips-GetWeather-subsample-Bet snips-PlayMusic-subsample-B), qui contiennent deux fois plus de documents et d'annotations, nous avons obtenu en moyenne un score F1 de 88% (amélioration de 5% par rapport à subsample-A jeux de données). Enfin, des ensembles de données sous-échantillonnés plus grands (snips-BookRestaurant-subsample-C, snips-GetWeather-subsample-Cet snips-PlayMusic-subsample-C), qui contiennent encore plus de données annotées (environ quatre fois le nombre de documents et d'annotations utilisés pour subsample-A ensembles de données), a fourni une amélioration supplémentaire de 2 %, portant le score F1 moyen à 90 %.

Conclusion

Dans cet article, nous avons annoncé une réduction des exigences minimales pour la formation d'un module de reconnaissance d'entité personnalisé avec Amazon Comprehend, et avons exécuté des tests de performance sur des ensembles de données open source pour montrer comment cette réduction peut vous aider à démarrer. À partir d'aujourd'hui, vous pouvez créer un modèle de reconnaissance d'entité avec seulement 25 annotations par type d'entité (au lieu de 100) et au moins trois documents (au lieu de 250). Avec cette annonce, nous abaissons la barrière à l'entrée pour les utilisateurs intéressés par l'utilisation de la technologie de reconnaissance d'entité personnalisée Amazon Comprehend. Vous pouvez maintenant commencer à exécuter vos expériences avec une très petite collection de documents annotés, analyser les résultats préliminaires et itérer en incluant des annotations et des documents supplémentaires si vous avez besoin d'un modèle de reconnaissance d'entité plus précis pour votre cas d'utilisation.

Pour en savoir plus et démarrer avec un outil de reconnaissance d'entité personnalisé, reportez-vous à Reconnaissance d'entités personnalisées.

Un merci spécial à mes collègues Jyoti Bansal et Jie Ma pour leur aide précieuse dans la préparation des données et l'analyse comparative.


A propos de l'auteure

Amazon Comprehend annonce des limites d'annotation inférieures pour la reconnaissance d'entités personnalisées PlatoBlockchain Data Intelligence. Recherche verticale. Aï.Luca Guida est architecte de solutions chez AWS ; il est basé à Milan et accompagne les ISV italiens dans leur transition vers le cloud. Avec une formation universitaire en informatique et en ingénierie, il a commencé à développer sa passion pour l'IA/ML à l'université. En tant que membre de la communauté de traitement du langage naturel (NLP) au sein d'AWS, Luca aide les clients à réussir tout en adoptant les services d'IA/ML.

Horodatage:

Plus de Apprentissage automatique AWS