Amazon Comprehend annoncerer lavere annotationsgrænser for tilpasset enhedsgenkendelse PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Amazon Comprehend annoncerer lavere annotationsgrænser for tilpasset enhedsgenkendelse

Amazon Comprehend er en NLP-tjeneste (natural-language processing) du kan bruge til automatisk at udtrække entiteter, nøglesætninger, sprog, følelser og anden indsigt fra dokumenter. For eksempel kan du straks begynde at opdage enheder såsom personer, steder, kommercielle varer, datoer og mængder via Amazon Comprehend-konsol, AWS kommandolinjegrænseflade eller Amazon Comprehend API'er. Derudover, hvis du har brug for at udtrække enheder, der ikke er en del af Amazon Forstå indbyggede enhedstyper, kan du oprette en brugerdefineret enhedsgenkendelsesmodel (også kendt som tilpasset enhed genkender) for at udtrække termer, der er mere relevante for din specifikke brug, såsom navne på varer fra et produktkatalog, domænespecifikke identifikatorer og så videre. Det kan være en kompleks og tidskrævende proces at skabe en nøjagtig enhedsgenkender på egen hånd ved hjælp af maskinlæringsbiblioteker og -rammer. Amazon Comprehend forenkler dit modeltræningsarbejde betydeligt. Alt du skal gøre er at indlæse dit datasæt med dokumenter og annoteringer og bruge Amazon Comprehend-konsollen, AWS CLI eller API'er til at oprette modellen.

For at træne en tilpasset enhedsgenkender kan du levere træningsdata til Amazon Comprehend as annoteringer eller enhedslister. I det første tilfælde leverer du en samling af dokumenter og en fil med anmærkninger, der angiver det sted, hvor enheder forekommer i dokumentsættet. Alternativt giver du med entitetslister en liste over enheder med deres tilsvarende enhedstype-etiket og et sæt uannoterede dokumenter, hvor du forventer, at dine enheder er til stede. Begge tilgange kan bruges til at træne en succesfuld brugerdefineret enhedsgenkendelsesmodel; der er dog situationer, hvor en metode kan være et bedre valg. For eksempel, når betydningen af ​​specifikke entiteter kan være tvetydig og kontekstafhængig, anbefales det at give annoteringer, fordi dette kan hjælpe dig med at skabe en Amazon Comprehend-model, der er i stand til bedre at bruge kontekst, når du udtrækker entiteter.

Annotering af dokumenter kan kræve en hel del indsats og tid, især hvis du tænker på, at både kvaliteten og kvantiteten af ​​annoteringer har indflydelse på den resulterende enhedsgenkendelsesmodel. Upræcise eller for få annoteringer kan føre til dårlige resultater. For at hjælpe dig med at opsætte en proces til indhentning af annoteringer, leverer vi værktøjer som f.eks Amazon SageMaker Ground Truth, som du kan bruge til at annotere dine dokumenter hurtigere og generere en fil med udvidede manifestanmærkninger. Men selvom du bruger Ground Truth, skal du stadig sikre dig, at dit træningsdatasæt er stort nok til at kunne opbygge din enhedsgenkendelse.

Indtil i dag, for at begynde at træne en Amazon Comprehend brugerdefineret enhedsgenkendelse, skulle du levere en samling på mindst 250 dokumenter og minimum 100 annoteringer pr. enhedstype. I dag annoncerer vi, at vi takket være de seneste forbedringer i de modeller, der ligger til grund for Amazon Comprehend, har reduceret minimumskravene for at træne en genkender med almindelige CSV-annotationsfiler. Du kan nu bygge en brugerdefineret enhedsgenkendelsesmodel med så få som tre dokumenter og 25 annoteringer pr. enhedstype. Du kan finde yderligere oplysninger om nye servicegrænser i Retningslinjer og kvoter.

For at vise, hvordan denne reduktion kan hjælpe dig med at komme i gang med oprettelsen af ​​en tilpasset enhedsgenkendelse, kørte vi nogle test på nogle få open source-datasæt og indsamlede ydeevnemålinger. I dette indlæg fører vi dig gennem benchmarking-processen og de resultater, vi opnåede, mens vi arbejdede på delsamplede datasæt.

Udarbejdelse af datasæt

I dette indlæg forklarer vi, hvordan vi trænede en Amazon Comprehend brugerdefineret enhedsgenkendelse ved hjælp af kommenterede dokumenter. Generelt kan anmærkninger leveres som en CSV-fil, en udvidet manifestfil genereret af Ground Truth, Eller en PDF-fil. Vores fokus er på CSV-annoteringer i almindelig tekst, fordi det er den type annotering, der påvirkes af de nye minimumskrav. CSV-filer skal have følgende struktur:

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 felter er som følger:

  • File (Felt) – Navnet på den fil, der indeholder dokumenterne
  • Line (linje) – Nummeret på den linje, der indeholder enheden, startende med linje 0
  • Begynd Offset – Tegnforskydningen i inputteksten (i forhold til begyndelsen af ​​linjen), der viser, hvor entiteten begynder, i betragtning af at det første tegn er på position 0
  • Slutforskydning – Tegnforskydningen i inputteksten, der viser, hvor entiteten ender
  • Type – Navnet på den enhedstype, du vil definere

Når du bruger denne tilgang, skal du desuden levere en samling af træningsdokumenter som .txt-filer med et dokument pr. linje eller et dokument pr. fil.

Til vores test brugte vi SNIPS benchmark for naturlig sprogforståelse, et datasæt af crowdsourcede ytringer fordelt på syv brugerhensigter (AddToPlaylist, BookRestaurant, GetWeather, PlayMusic, RateBook, SearchCreativeWork, SearchScreeningEvent). Datasættet blev offentliggjort i 2018 i forbindelse med papiret Snips Voice Platform: et indlejret talesprogsforståelsessystem til private-by-design stemmegrænseflader af Coucke, et al.

SNIPS-datasættet er lavet af en samling af JSON-filer, der kondenserer både annoteringer og råtekstfiler. Følgende er et uddrag fra datasættet:

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

Før vi oprettede vores enhedsgenkender, transformerede vi SNIPS-annoteringerne og råtekstfilerne til en CSV-annotationsfil og en .txt-dokumentfil.

Det følgende er et uddrag fra vores annotations.csv fil:

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

Det følgende er et uddrag fra vores documents.txt fil:

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

Sampling konfiguration og benchmarking proces

Til vores eksperimenter fokuserede vi på en undergruppe af enhedstyper fra SNIPS-datasættet:

  • BogRestaurant – Enhedstyper: spatial_relation, poi, party_size_number, restaurant_name, city, timeRange, restaurant_type, served_dish, party_size_description, country, facility, state, sort, cuisine
  • GetWeather – Enhedstyper: condition_temperature, current_location, geographic_poi, timeRange, state, spatial_relation, condition_description, city, country
  • Afspille musik – Enhedstyper: track, artist, music_item, service, genre, sort, playlist, album, year

Desuden subsamplede vi hvert datasæt for at opnå forskellige konfigurationer med hensyn til antallet af dokumenter, der blev samplet til træning og antallet af annoteringer pr. enhed (også kendt som skud). Dette blev gjort ved at bruge et brugerdefineret script designet til at skabe subsampled datasæt, hvor hver enhedstype optræder som minimum k gange, inden for et minimum af n Dokumenter.

Hver model blev trænet ved hjælp af en specifik delprøve af træningsdatasættene; de ni modelkonfigurationer er illustreret i følgende tabel.

Subsamplet datasætnavn Antal dokumenter udtaget til uddannelse Antal dokumenter udtaget til test Gennemsnitligt antal annoteringer pr. enhedstype (billeder)
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

For at måle nøjagtigheden af ​​vores modeller indsamlede vi evalueringsmetrics, som Amazon Comprehend automatisk beregner, når de træner en enhedsgenkender:

  • Precision – Dette angiver den brøkdel af enheder, der er registreret af genkenderen, og som er korrekt identificeret og mærket. Fra et andet perspektiv kan præcision defineres som tp / (tp + fp)Hvor tp er antallet af sande positive (korrekte identifikationer) og fp er antallet af falske positive (forkerte identifikationer).
  • Recall – Dette angiver den del af enheder, der er til stede i dokumenterne, som er korrekt identificeret og mærket. Det er beregnet som tp / (tp + fn)Hvor tp er antallet af sande positive og fn er antallet af falske negativer (besvarede identifikationer).
  • f1 score – Dette er en kombination af præcisions- og genkaldsmetrikken, som måler modellens overordnede nøjagtighed. F1-scoren er det harmoniske gennemsnit af præcisions- og genkaldsmetrikken og beregnes som 2 * Præcision * Genkald / (Præcision + Genkald).

For at sammenligne ydeevnen for vores enhedsgenkendere fokuserer vi på F1-resultater.

I betragtning af, at givet et datasæt og en delprøvestørrelse (i form af antal dokumenter og skud), kan du generere forskellige underprøver, genererede vi 10 underprøver for hver af de ni konfigurationer, trænede enhedsgenkendelsesmodellerne, indsamlede præstationsmålinger og gennemsnittet dem ved hjælp af mikro-gennemsnit. Dette gjorde det muligt for os at få mere stabile resultater, især for få-skuds delprøver.

Resultater

Følgende tabel viser de mikrogennemsnitlige F1-score beregnet på præstationsmålinger, der returneres af Amazon Comprehend efter træning af hver enhedsgenkender.

Subsamplet datasætnavn Enhedsgenkender mikrogennemsnit af 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

Følgende søjlediagram viser fordelingen af ​​F1-score for de ni konfigurationer, vi trænede som beskrevet i det foregående afsnit.

Vi kan observere, at vi var i stand til at træne tilpassede enhedsgenkendelsesmodeller selv med så få som 25 annoteringer pr. enhedstype. Hvis vi fokuserer på de tre mindste subsampled datasæt (snips-BookRestaurant-subsample-A, snips-GetWeather-subsample-Aog snips-PlayMusic-subsample-A), ser vi, at vi i gennemsnit var i stand til at opnå en F1-score på 84 %, hvilket er et ret godt resultat i betragtning af det begrænsede antal dokumenter og anmærkninger, vi brugte. Hvis vi ønsker at forbedre ydeevnen af ​​vores model, kan vi indsamle yderligere dokumenter og anmærkninger og træne en ny model med flere data. For eksempel med mellemstore delprøver (snips-BookRestaurant-subsample-B, snips-GetWeather-subsample-Bog snips-PlayMusic-subsample-B), som indeholder dobbelt så mange dokumenter og anmærkninger, opnåede vi i gennemsnit en F1-score på 88 % (5 % forbedring ift. subsample-A datasæt). Endelig, større subsampled datasæt (snips-BookRestaurant-subsample-C, snips-GetWeather-subsample-Cog snips-PlayMusic-subsample-C), som indeholder endnu flere kommenterede data (ca. fire gange antallet af dokumenter og annoteringer, der bruges til subsample-A datasæt), gav en yderligere forbedring på 2 %, hvilket hævede den gennemsnitlige F1-score til 90 %.

Konklusion

I dette indlæg annoncerede vi en reduktion af minimumskravene for at træne en brugerdefineret enhedsgenkender med Amazon Comprehend og kørte nogle benchmarks på open source-datasæt for at vise, hvordan denne reduktion kan hjælpe dig i gang. Fra i dag kan du oprette en enhedsgenkendelsesmodel med så få som 25 annoteringer pr. enhedstype (i stedet for 100) og mindst tre dokumenter (i stedet for 250). Med denne meddelelse sænker vi adgangsbarrieren for brugere, der er interesserede i at bruge Amazon Comprehends tilpassede enhedsgenkendelsesteknologi. Du kan nu begynde at køre dine eksperimenter med en meget lille samling af kommenterede dokumenter, analysere foreløbige resultater og gentage ved at inkludere yderligere annoteringer og dokumenter, hvis du har brug for en mere nøjagtig enhedsgenkendelsesmodel til din brugssag.

For at lære mere og komme i gang med en tilpasset enhedsgenkendelse, se Brugerdefineret enhedsgenkendelse.

Særlig tak til mine kolleger Jyoti Bansal og Jie Ma for deres værdifulde hjælp med dataforberedelse og benchmarking.


Om forfatteren

Amazon Comprehend annoncerer lavere annotationsgrænser for tilpasset enhedsgenkendelse PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Luca Guida er Solutions Architect hos AWS; han er baseret i Milano og støtter italienske ISV'er i deres cloud-rejse. Med en akademisk baggrund inden for datalogi og teknik begyndte han at udvikle sin AI/ML-passion på universitetet. Som medlem af NLP-fællesskabet (natural language processing) i AWS hjælper Luca kunder med at få succes, mens de bruger AI/ML-tjenester.

Tidsstempel:

Mere fra AWS maskinindlæring