Amazon Comprehend kondigt lagere annotatielimieten aan voor de herkenning van aangepaste entiteiten PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Amazon Comprehend kondigt lagere annotatielimieten aan voor herkenning van aangepaste entiteiten

Amazon begrijpt het is een natuurlijke taalverwerkingsservice (NLP) die u kunt gebruiken om automatisch entiteiten, sleutelzinnen, taal, sentimenten en andere inzichten uit documenten te extraheren. U kunt bijvoorbeeld direct beginnen met het detecteren van entiteiten zoals personen, plaatsen, handelsartikelen, data en hoeveelheden via de Amazon begrijpt console, AWS-opdrachtregelinterfaceof Amazon begrijpt API's. Bovendien, als u entiteiten moet extraheren die geen deel uitmaken van de Amazon Ingebouwde entiteitstypen begrijpen, kunt u een aangepast entiteitsherkenningsmodel maken (ook bekend als aangepaste entiteit herkenner) om termen te extraheren die relevanter zijn voor uw specifieke gebruik, zoals namen van items uit een productcatalogus, domeinspecifieke id's, enzovoort. Het zelf maken van een nauwkeurige entiteitsherkenner met behulp van bibliotheken en frameworks voor machine learning kan een complex en tijdrovend proces zijn. Amazon Comprehend vereenvoudigt uw modeltraining aanzienlijk. Het enige dat u hoeft te doen, is uw dataset met documenten en annotaties laden en de Amazon Comprehend-console, AWS CLI of API's gebruiken om het model te maken.

Als u een aangepaste entiteitherkenner wilt trainen, kunt u trainingsgegevens aan Amazon Comprehend verstrekken als: annotaties of entiteitenlijsten. In het eerste geval levert u een verzameling documenten en een bestand met annotaties die de locatie specificeren waar entiteiten voorkomen binnen de set documenten. Als alternatief kunt u met entiteitslijsten een lijst met entiteiten opgeven met het bijbehorende entiteitstypelabel en een set niet-geannoteerde documenten waarin u verwacht dat uw entiteiten aanwezig zijn. Beide benaderingen kunnen worden gebruikt om een โ€‹โ€‹succesvol herkenningsmodel voor aangepaste entiteiten te trainen; er zijn echter situaties waarin รฉรฉn methode een betere keuze kan zijn. Als de betekenis van specifieke entiteiten bijvoorbeeld dubbelzinnig en contextafhankelijk kan zijn, wordt het aanbevolen om annotaties te geven, omdat dit je kan helpen een Amazon Comprehend-model te maken dat in staat is om context beter te gebruiken bij het extraheren van entiteiten.

Het annoteren van documenten kan behoorlijk wat inspanning en tijd vergen, vooral als je bedenkt dat zowel de kwaliteit als de kwantiteit van annotaties een impact hebben op het resulterende entiteitsherkenningsmodel. Onnauwkeurige of te weinig annotaties kunnen leiden tot slechte resultaten. Om u te helpen bij het opzetten van een proces voor het verkrijgen van annotaties, bieden we tools zoals: Amazon SageMaker Grondwaarheid, waarmee u uw documenten sneller kunt annoteren en een augmented manifest annotaties bestand. Maar zelfs als u Ground Truth gebruikt, moet u er nog steeds voor zorgen dat uw trainingsdataset groot genoeg is om uw entiteitsherkenner met succes te bouwen.

Om te beginnen met het trainen van een aangepaste entiteitsherkenner van Amazon Comprehend, moest u tot op heden een verzameling van ten minste 250 documenten en minimaal 100 annotaties per entiteitstype aanleveren. Vandaag kondigen we aan dat we, dankzij recente verbeteringen in de modellen die ten grondslag liggen aan Amazon Comprehend, de minimumvereisten voor het trainen van een herkenner met platte tekst CSV-annotatiebestanden hebben verlaagd. U kunt nu een aangepast entiteitsherkenningsmodel bouwen met slechts drie documenten en 25 annotaties per entiteitstype. Meer details over nieuwe servicelimieten vindt u in Richtlijnen en quota.

Om te laten zien hoe deze vermindering u kan helpen om aan de slag te gaan met het maken van een aangepaste entiteitsherkenner, hebben we enkele tests uitgevoerd op enkele open-source datasets en verzamelde prestatiestatistieken. In dit bericht leiden we u door het benchmarkingproces en de resultaten die we hebben verkregen tijdens het werken aan subsampled datasets.

Dataset voorbereiding

In dit bericht leggen we uit hoe we een aangepaste entiteitsherkenner van Amazon Comprehend hebben getraind met behulp van geannoteerde documenten. Over het algemeen kunnen annotaties worden geleverd als a CSV-bestandeen uitgebreid manifestbestand gegenereerd door Ground TruthOf een PDF-bestand. Onze focus ligt op CSV-annotaties in platte tekst, omdat dit het type annotatie is dat wordt beรฏnvloed door de nieuwe minimumvereisten. CSV-bestanden moeten de volgende structuur hebben:

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

De relevante velden zijn als volgt:

  • Dien in โ€“ De naam van het bestand met de documenten
  • Lijn โ€“ Het nummer van de regel die de entiteit bevat, te beginnen met regel 0
  • Beginnen Offset โ€“ De tekenverschuiving in de invoertekst (ten opzichte van het begin van de regel) die aangeeft waar de entiteit begint, aangezien het eerste teken zich op positie 0 bevindt
  • Einde offset โ€“ De tekenverschuiving in de invoertekst die aangeeft waar de entiteit eindigt
  • Type โ€“ De naam van het entiteitstype dat u wilt definiรซren

Als u deze aanpak gebruikt, moet u bovendien een verzameling trainingsdocumenten als .txt-bestanden aanleveren met รฉรฉn document per regel of รฉรฉn document per bestand.

Voor onze tests gebruikten we de SNIPS Natural Language Understanding-benchmark, een dataset van crowdsourced-uitingen verdeeld over zeven gebruikersintenties (AddToPlaylist, BookRestaurant, GetWeather, PlayMusic, RateBook, SearchCreativeWork, SearchScreeningEvent). De dataset is in 2018 gepubliceerd in het kader van de paper Snips Voice Platform: een ingebouwd systeem voor het begrijpen van gesproken taal voor persoonlijke spraakinterfaces door Coucke, et al.

De SNIPS-dataset bestaat uit een verzameling JSON-bestanden waarin zowel annotaties als onbewerkte tekstbestanden worden gecondenseerd. Het volgende is een fragment uit de dataset:

{
   "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"
}

Voordat we onze entiteitsherkenner maakten, hebben we de SNIPS-annotaties en onbewerkte tekstbestanden omgezet in een CSV-annotatiebestand en een .txt-documentenbestand.

Het volgende is een fragment uit onze annotations.csv file:

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

Het volgende is een fragment uit onze documents.txt file:

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

Bemonsteringsconfiguratie en benchmarkingproces

Voor onze experimenten hebben we ons gericht op een subset van entiteitstypen uit de SNIPS-dataset:

  • BoekRestaurant โ€“ Entiteitstypen: spatial_relation, poi, party_size_number, restaurant_name, city, timeRange, restaurant_type, served_dish, party_size_description, country, facility, state, sort, cuisine
  • GetWeer โ€“ Entiteitstypen: condition_temperature, current_location, geographic_poi, timeRange, state, spatial_relation, condition_description, city, country
  • Speel muziek โ€“ Entiteitstypen: track, artist, music_item, service, genre, sort, playlist, album, year

Bovendien hebben we elke dataset gesubsampled om verschillende configuraties te verkrijgen in termen van het aantal documenten dat is bemonsterd voor training en het aantal annotaties per entiteit (ook bekend als foto's). Dit is gedaan met behulp van een aangepast script dat is ontworpen om subsample-gegevenssets te maken waarin elk entiteitstype ten minste voorkomt k keer, binnen een minimum van n documenten.

Elk model is getraind met behulp van een specifieke substeekproef van de trainingsdatasets; de negen modelconfiguraties worden geรฏllustreerd in de volgende tabel.

Naam van subsample dataset Aantal documenten dat is bemonsterd voor training Aantal documenten waarvan monsters zijn genomen om te testen Gemiddeld aantal annotaties per entiteitstype (shots)
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

Om de nauwkeurigheid van onze modellen te meten, hebben we evaluatiestatistieken verzameld die Amazon Comprehend automatisch berekent bij het trainen van een entiteitherkenner:

  • precisie โ€“ Dit geeft de fractie van entiteiten aan die door de herkenner zijn gedetecteerd en correct zijn geรฏdentificeerd en gelabeld. Vanuit een ander perspectief kan precisie worden gedefinieerd als: tp / (tp + fp), Waar tp is het aantal echte positieven (juiste identificaties) en fp is het aantal valse positieven (onjuiste identificaties).
  • Terugroepen โ€“ Dit geeft de fractie aan van de entiteiten die aanwezig zijn in de documenten die correct zijn geรฏdentificeerd en geรซtiketteerd. Het is berekend als tp / (tp + fn), Waar tp is het aantal echte positieven en fn is het aantal valse negatieven (gemiste identificaties).
  • F1-score โ€“ Dit is een combinatie van de precisie- en terugroepstatistieken, die de algehele nauwkeurigheid van het model meet. De F1-score is het harmonische gemiddelde van de precisie- en terugroepstatistieken en wordt berekend als: 2 * Precisie * Recall / (Precisie + Recall).

Om de prestaties van onze entiteitsherkenners te vergelijken, richten we ons op F1-scores.

Aangezien u, gegeven een dataset en een subsamplegrootte (in termen van aantal documenten en shots), verschillende subsamples kunt genereren, hebben we 10 subsamples gegenereerd voor elk van de negen configuraties, de entiteitsherkenningsmodellen getraind, prestatiestatistieken verzameld en ze gemiddeld met behulp van micro-gemiddelden. Hierdoor konden we stabielere resultaten krijgen, vooral voor subsamples met een klein aantal opnamen.

Resultaten

De volgende tabel toont de microgemiddelde F1-scores berekend op prestatiestatistieken die door Amazon Comprehend zijn geretourneerd na het trainen van elke entiteitsherkenner.

Naam van subsample dataset Entiteitsherkenner micro-gemiddelde F1-score (%)
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

Het volgende kolomdiagram toont de verdeling van F1-scores voor de negen configuraties die we hebben getraind zoals beschreven in de vorige sectie.

We kunnen vaststellen dat we met succes aangepaste entiteitsherkenningsmodellen hebben kunnen trainen, zelfs met slechts 25 annotaties per entiteitstype. Als we ons concentreren op de drie kleinste subsampled datasets (snips-BookRestaurant-subsample-A, snips-GetWeather-subsample-A en snips-PlayMusic-subsample-A), zien we dat we gemiddeld een F1-score van 84% hebben behaald, wat een redelijk goed resultaat is gezien het beperkte aantal documenten en annotaties dat we hebben gebruikt. Als we de prestaties van ons model willen verbeteren, kunnen we aanvullende documenten en annotaties verzamelen en een nieuw model met meer gegevens trainen. Bijvoorbeeld met middelgrote subsamples (snips-BookRestaurant-subsample-B, snips-GetWeather-subsample-B en snips-PlayMusic-subsample-B), die twee keer zoveel documenten en annotaties bevatten, behaalden we gemiddeld een F1-score van 88% (5% verbetering ten opzichte van subsample-A gegevensbestanden). Ten slotte, grotere subsampled datasets (snips-BookRestaurant-subsample-C, snips-GetWeather-subsample-C en snips-PlayMusic-subsample-C), die nog meer geannoteerde gegevens bevatten (ongeveer vier keer het aantal documenten en annotaties dat is gebruikt voor) subsample-A datasets), zorgde voor een verdere verbetering van 2%, waardoor de gemiddelde F1-score steeg tot 90%.

Conclusie

In dit bericht hebben we een verlaging aangekondigd van de minimumvereisten voor het trainen van een aangepaste entiteitherkenner met Amazon Comprehend, en hebben we enkele benchmarks uitgevoerd op open-source datasets om te laten zien hoe deze verlaging u kan helpen om aan de slag te gaan. Vanaf vandaag kunt u een entiteitsherkenningsmodel maken met slechts 25 annotaties per entiteitstype (in plaats van 100) en ten minste drie documenten (in plaats van 250). Met deze aankondiging verlagen we de toegangsdrempel voor gebruikers die geรฏnteresseerd zijn in het gebruik van Amazon Comprehend-technologie voor aangepaste entiteitherkenning. U kunt nu beginnen met het uitvoeren van uw experimenten met een zeer kleine verzameling geannoteerde documenten, voorlopige resultaten analyseren en herhalen door aanvullende annotaties en documenten op te nemen als u een nauwkeuriger entiteitsherkenningsmodel voor uw gebruik nodig hebt.

Raadpleeg voor meer informatie en om aan de slag te gaan met een aangepaste entiteitherkenner: Aangepaste entiteitsherkenning.

Speciale dank aan mijn collega's Jyoti Bansal en Jie Ma voor hun waardevolle hulp bij het voorbereiden en benchmarken van gegevens.


Over de auteur

Amazon Comprehend kondigt lagere annotatielimieten aan voor de herkenning van aangepaste entiteiten PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Luca Guida is Solutions Architect bij AWS; hij is gevestigd in Milaan en ondersteunt Italiaanse ISV's bij hun cloudreis. Met een academische achtergrond in computerwetenschappen en techniek, begon hij zijn AI/ML-passie te ontwikkelen op de universiteit. Als lid van de natuurlijke taalverwerkingsgemeenschap (NLP) binnen AWS, helpt Luca klanten succesvol te zijn bij het adopteren van AI/ML-services.

Tijdstempel:

Meer van AWS-machine learning