Beregninger for å evaluere innholdsmoderering i Amazon Rekognition og andre innholdsmodereringstjenester PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Beregninger for å evaluere innholdsmoderering i Amazon Rekognition og andre innholdsmodereringstjenester

Innholdsmoderering er prosessen med å screene og overvåke brukergenerert innhold på nettet. For å gi et trygt miljø for både brukere og merkevarer, må plattformer moderere innhold for å sikre at det faller innenfor forhåndsetablerte retningslinjer for akseptabel oppførsel som er spesifikk for plattformen og dens publikum.

Når en plattform modererer innhold, kan akseptabelt brukergenerert innhold (UGC) opprettes og deles med andre brukere. Upassende, giftig eller forbudt atferd kan forhindres, blokkeres i sanntid eller fjernes i ettertid, avhengig av innholdsmodereringsverktøyene og prosedyrene plattformen har på plass.

Du kan bruke Moderering av innhold for Amazon-gjenkjenning for å oppdage innhold som er upassende, uønsket eller støtende, for å skape en tryggere brukeropplevelse, gi merkevaresikkerhetsforsikringer til annonsører og overholde lokale og globale forskrifter.

I dette innlegget diskuterer vi nøkkelelementene som trengs for å evaluere ytelsesaspektet til en innholdsmodereringstjeneste i form av ulike nøyaktighetsmålinger, og gir et eksempel ved bruk av Amazon Rekognition API-er for innholdsmoderering.

Hva skal vurderes

Når du evaluerer en innholdsmodereringstjeneste, anbefaler vi følgende trinn.

Før du kan evaluere ytelsen til API-en på brukstilfellene dine, må du forberede et representativt testdatasett. Følgende er noen retningslinjer på høyt nivå:

  • Samling – Ta et stort nok tilfeldig utvalg (bilder eller videoer) av dataene du til slutt vil kjøre gjennom Amazon Rekognition. Hvis du for eksempel planlegger å moderere brukeropplastede bilder, kan du ta en ukes brukerbilder til testen. Vi anbefaler å velge et sett som har nok bilder uten å bli for store til å behandle (for eksempel 1,000 10,000–XNUMX XNUMX bilder), selv om større sett er bedre.
  • Definisjon – Bruk programmets retningslinjer for innhold for å bestemme hvilke typer usikkert innhold du er interessert i å oppdage fra Amazon Rekognition moderasjonsbegreper taksonomi. Du kan for eksempel være interessert i å oppdage alle typer eksplisitt nakenhet og grafisk vold eller gørr.
  • merknad – Nå trenger du en menneskeskapt grunnsannhet for testsettet ditt ved å bruke de valgte etikettene, slik at du kan sammenligne maskinspådommer mot dem. Dette betyr at hvert bilde er kommentert for tilstedeværelse eller fravær av dine valgte konsepter. For å kommentere bildedataene dine kan du bruke Amazon SageMaker Ground Truth (GT) for å administrere bildekommentarer. Du kan henvise til GT for bildemerking, konsolidere merknader og behandler annoteringsutgang.

Få spådommer på testdatasettet ditt med Amazon Rekognition

Deretter vil du få spådommer på testdatasettet ditt.

Det første trinnet er å bestemme en minimumskonfidenspoengsum (en terskelverdi, for eksempel 50%) som du vil måle resultater ved. Standardterskelen vår er satt til 50, som gir en god balanse mellom å hente store mengder usikkert innhold uten å pådra seg for mange falske spådommer om trygt innhold. Imidlertid kan plattformen din ha forskjellige forretningsbehov, så du bør tilpasse denne konfidensgrensen etter behov. Du kan bruke MinConfidence parameter i API-forespørslene dine for å balansere gjenkjenning av innhold (gjenkalling) og gjenkjenningsnøyaktighet (presisjon). Hvis du reduserer MinConfidence, vil du sannsynligvis oppdage det meste av det upassende innholdet, men du vil sannsynligvis også plukke opp innhold som faktisk ikke er upassende. Hvis du øker MinConfidence du vil sannsynligvis sikre at alt det oppdagede innholdet ditt er virkelig upassende, men noe innhold er kanskje ikke merket. Vi foreslår å eksperimentere med noen få MinConfidence verdier på datasettet ditt og kvantitativt velg den beste verdien for datadomenet ditt.

Deretter kjører du hver prøve (bilde eller video) av testsettet ditt gjennom Amazon Rekognition moderasjons-API (DetectModerationLabels).

Mål modellens nøyaktighet på bilder

Du kan vurdere nøyaktigheten til en modell ved å sammenligne menneskeskapte grunnsannhetskommentarer med modellspådommene. Du gjentar denne sammenligningen for hvert bilde uavhengig og samler deretter over hele testsettet:

  • Resultater per bilde – En modellprediksjon er definert som paret {label_name, confidence_score} (hvor konfidenspoengsummen >= terskelen du valgte tidligere). For hvert bilde anses en prediksjon som riktig når den samsvarer med grunnsannheten (GT). En prediksjon er ett av følgende alternativer:
    • Sann positiv (TP): både prediksjon og GT er "usikre"
    • True Negative (TN): både prediksjon og GT er "trygge"
    • falske positive (FP): spådommen sier "utrygg", men GT er "trygg"
    • Falsk negativ (FN): spådommen er "trygg", men GT er "utrygg"
  • Samlede resultater over alle bilder – Deretter kan du samle disse spådommene til resultater på datasettnivå:
    • Falsk positiv rate (FPR) – Dette er prosentandelen av bilder i testsettet som feilaktig er flagget av modellen som inneholder usikkert innhold: (FP): FP / (TN+FP).
    • Falsk negativ rate (FNR) – Dette er prosentandelen av usikre bilder i testsettet som savnes av modellen: (FN): FN / (FN+TP).
    • Sann positiv rate (TPR) – Også kalt tilbakekalling, dette beregner prosentandelen av usikkert innhold (grunnsannhet) som er riktig oppdaget eller forutsagt av modellen: TP / (TP + FN) = 1 – FNR.
    • Precision – Dette beregner prosentandelen av korrekte spådommer (usikkert innhold) med hensyn til det totale antallet spådommer som er gjort: TP / (TP+FP).

La oss utforske et eksempel. La oss anta at testsettet ditt inneholder 10,000 9,950 bilder: 50 9,800 trygge og 9,950 usikre. Modellen forutsier riktig 45 50 av XNUMX XNUMX bilder som trygge og XNUMX av XNUMX som usikre:

  • TP = 45
  • TN = 9800
  • FP = 9950 – 9800 = 150
  • FN = 50 – 45 = 5
  • RPF = 150 / (9950 + 150) = 0.015 = 1.5 %
  • FNR = 5 / (5 + 45) = 0.1 = 10 %
  • TPR/Tilbakekalling = 45 / (45 + 5) = 0.9 = 90 %
  • Precision = 45 / (45 + 150) = 0.23 = 23 %

Mål modellens nøyaktighet på videoer

Hvis du ønsker å evaluere ytelsen på videoer, er noen få ekstra trinn nødvendige:

  1. Prøv et undersett av rammer fra hver video. Vi foreslår å prøve jevnt med en hastighet på 0.3–1 bilder per sekund (fps). For eksempel, hvis en video er kodet med 24 fps og du ønsker å prøve ett bilde hvert 3. sekund (0.3 fps), må du velge en hver 72. bilder.
  2. Kjør disse samplede rammene gjennom innholdsmoderering av Amazon Rekognition. Du kan enten bruke video-APIet vårt, som allerede sampler frames for deg (med en hastighet på 3 fps), eller bruke bilde-API, i så fall vil du prøve mer sparsomt. Vi anbefaler det siste alternativet, gitt redundansen av informasjon i videoer (påfølgende bilder er veldig like).
  3. Beregn resultatene per bilde som forklart i forrige avsnitt (resultater per bilde).
  4. Samle resultater over hele testsettet. Her har du to alternativer, avhengig av hvilken type resultat som er viktig for virksomheten din:
    1. Resultater på rammenivå – Dette betrakter alle de samplede rammene som uavhengige bilder og samler resultatene nøyaktig som forklart tidligere for bilder (FPR, FNR, gjenkalling, presisjon). Hvis noen videoer er betydelig lengre enn andre, vil de bidra med flere bilder til det totale antallet, noe som gjør sammenligningen ubalansert. I så fall foreslår vi at du endrer den innledende samplingsstrategien til et fast antall bilder per video. Du kan for eksempel prøve 50–100 bilder per video jevnt (forutsatt at videoene er minst 2–3 minutter lange).
    2. Resultater på videonivå – For noen brukstilfeller spiller det ingen rolle om modellen er i stand til å forutsi 50 % eller 99 % av rammene i en video korrekt. Selv en enkelt feil usikker prediksjon på et enkelt bilde kan utløse en nedstrøms menneskelig evaluering, og bare videoer med 100 % korrekte spådommer blir virkelig vurdert som riktig. Hvis dette er ditt bruk, foreslår vi at du beregner FPR/FNR/TPR over rammene til hver video og vurderer videoen som følger:
Video -ID Nøyaktighet Kategorisering per video
Resultater samlet over alle rammene til video-ID

Total FP = 0

Total FN = 0

Perfekte spådommer
. Total FP > 0 Falsk positiv (FP)
. Total FN > 0 Falsk negativ (FN)

Etter at du har beregnet disse for hver video uavhengig, kan du beregne alle beregningene vi introduserte tidligere:

  • Prosentandelen av videoer som er feil flagget (FP) eller savnet (FN)
  • Presisjon og tilbakekalling

Mål ytelse mot mål

Til slutt må du tolke disse resultatene i sammenheng med dine mål og evner.

Tenk først på bedriftens behov i forhold til følgende:

  • Data – Lær om dataene dine (daglig volum, type data og så videre) og distribusjonen av det utrygge kontra trygt innhold. For eksempel, er det balansert (50/50), skjevt (10/90) eller veldig skjevt (1/99, noe som betyr at bare 1 % er utrygt)? Å forstå slik distribusjon kan hjelpe deg med å definere dine faktiske metriske mål. For eksempel er antallet trygt innhold ofte en størrelsesorden større enn usikkert innhold (veldig skjevt), noe som gjør dette nesten til et problem med å oppdage avvik. Innenfor dette scenariet kan antallet falske positiver overstige antallet sanne positive, og du kan bruke datainformasjonen din (distribusjonsskjevhet, datavolum og så videre) for å bestemme hvilken FPR du kan jobbe med.
  • Metriske mål – Hva er de mest kritiske aspektene ved virksomheten din? Å senke FPR kommer ofte på bekostning av en høyere FNR (og omvendt), og det er viktig å finne den rette balansen som fungerer for deg. Hvis du ikke kan gå glipp av noe usikkert innhold, vil du sannsynligvis ha nær 0 % FNR (100 % tilbakekalling). Dette vil imidlertid medføre det største antallet falske positiver, og du må bestemme målet (maksimalt) FPR du kan jobbe med, basert på post-prediksjonspipeline. Det kan være lurt å tillate et visst nivå av falske negativer for å kunne finne en bedre balanse og senke FPR: for eksempel å akseptere en 5 % FNR i stedet for 0 % kan redusere FPR fra 2 % til 0.5 %, noe som reduserer antallet betraktelig av flagget innhold.

Spør deg selv hvilke mekanismer du vil bruke for å analysere de flaggede bildene. Selv om API-ene kanskje ikke gir 0 % FPR og FNR, kan det fortsatt gi store besparelser og skala (for eksempel ved å bare flagge 3 % av bildene dine, har du allerede filtrert ut 97 % av innholdet ditt). Når du parer API-et med noen nedstrømsmekanismer, som en menneskelig arbeidsstyrke som vurderer det flaggede innholdet, kan du enkelt nå målene dine (for eksempel 0.5 % flagget innhold). Legg merke til hvordan denne sammenkoblingen er betydelig billigere enn å måtte gjøre en menneskelig vurdering på 100 % av innholdet ditt.

Når du har bestemt deg for nedstrømsmekanismene dine, foreslår vi at du vurderer gjennomstrømmingen du kan støtte. Hvis du for eksempel har en arbeidsstyrke som bare kan verifisere 2 % av det daglige innholdet ditt, er målmålet ditt fra innholdsmodererings-APIet en flaggrate (FPR+TPR) på 2 %.

Til slutt, hvis det er for vanskelig eller for dyrt å skaffe grunnsannhetskommentarer (for eksempel datavolumet ditt er for stort), foreslår vi å kommentere det lille antallet bilder som er flagget av API. Selv om dette ikke tillater FNR-evalueringer (fordi dataene dine ikke inneholder noen falske negativer), kan du fortsatt måle TPR og FPR.

I den følgende delen gir vi en løsning for evaluering av bildemoderering. Du kan bruke en lignende tilnærming for evaluering av videomoderering.

Løsningsoversikt

Følgende diagram illustrerer de ulike AWS-tjenestene du kan bruke til å evaluere ytelsen til moderering av Amazon Rekognition-innhold på testdatasettet ditt.

Evalueringen av innholdsmoderering har følgende trinn:

  1. Last opp evalueringsdatasettet til Amazon enkel lagringstjeneste (Amazon S3).
  2. Bruk Ground Truth til å tildele etiketter for moderering av bakken sannhet.
  3. Generer de forutsagte moderasjonsetikettene ved å bruke Amazon Rekognition forhåndstrente modererings-API ved å bruke noen få terskelverdier. (For eksempel 70 %, 75 % og 80 %).
  4. Vurder ytelsen for hver terskel ved å beregne sanne positive, sanne negative, falske positive og falske negative. Bestem den optimale terskelverdien for din brukstilfelle.
  5. Eventuelt kan du skreddersy størrelsen på arbeidsstyrken basert på sanne og falske positiver, og bruk Amazon Augmented AI (Amazon A2I) for automatisk å sende alt flagget innhold til din utpekte arbeidsstyrke for en manuell gjennomgang.

De følgende delene inneholder kodebitene for trinn 1, 2 og 3. For fullstendig kildekode fra ende til ende, se den medfølgende Jupyter notisbok.

Forutsetninger

Før du begynner, fullfør følgende trinn for å konfigurere Jupyter-notisboken:

  1. Opprett en notisbokforekomst in Amazon SageMaker.
  2. Når den bærbare datamaskinen er aktiv, velger du Åpne Jupyter.
  3. Velg Jupyter-oversikten Ny, og velg terminal.
  4. Skriv inn følgende kode i terminalen:
    cd SageMaker
    git clone https://github.com/aws-samples/amazon-rekognition-code-samples.git

  5. Åpne notatboken for dette innlegget: content-moderation-evaluation/Evaluating-Amazon-Rekognition-Content-Moderation-Service.ipynb.
  6. Last opp evalueringsdatasettet til Amazon enkel lagringstjeneste (Amazon S3).

Vi skal nå gå gjennom trinn 2 til 4 i Jupyter-notisboken.

Bruk Ground Truth til å tildele moderasjonsetiketter

For å tilordne etiketter i Ground Truth, fullfør følgende trinn:

  1. Opprett en manifestinndatafil for Ground Truth-jobben din og last den opp til Amazon S3.
  2. Opprett merkekonfigurasjonen, som inneholder alle modereringsetiketter som er nødvendige for Ground Truth-merkejobben. For å sjekke grensen for antall etikettkategorier du kan bruke, se Etikettkategorikvoter. I den følgende kodebiten bruker vi fem etiketter (se hierarkisk taksonomi brukt i Amazon Rekognition for flere detaljer) pluss én etikett (Safe_Content) som merker innhold som trygt:
    # customize CLASS_LIST to include all labels that can be used to classify sameple data, it's up to 10 labels
    # In order to easily match image label with content moderation service supported taxonomy, 
    
    CLASS_LIST = ["

  3. Lag en tilpasset arbeidsoppgavemal for å gi Ground Truth-arbeidsstyrken merkeinstruksjoner og last den opp til Amazon S3.
    Ground Truth-etikettjobben er definert som en bildeklassifiseringsoppgave (multi-label). Se kildekoden for instruksjoner for å tilpasse instruksjonsmalen.
  4. Bestem hvilken arbeidsstyrke du vil bruke for å fullføre Ground Truth-jobben. Du har to alternativer (se kildekoden for detaljer):
    1. Bruk privat arbeidskraft i din egen organisasjon for å merke evalueringsdatasettet.
    2. Bruk offentlig arbeidskraft for å merke evalueringsdatasettet.
  5. Opprett og send inn en Ground Truth-merkejobb. Du kan også justere følgende kode for å konfigurere merking av jobbparametere for å møte dine spesifikke forretningskrav. Se kildekoden for fullstendige instruksjoner om hvordan du oppretter og konfigurerer Ground Truth-jobben.
    human_task_config = {
        "AnnotationConsolidationConfig": {
            "AnnotationConsolidationLambdaArn": acs_arn,
        },
        "PreHumanTaskLambdaArn": prehuman_arn,
        "MaxConcurrentTaskCount": 200,  # 200 images will be sent at a time to the workteam.
        "NumberOfHumanWorkersPerDataObject": 3,  # 3 separate workers will be required to label each image.
        "TaskAvailabilityLifetimeInSeconds": 21600,  # Your workteam has 6 hours to complete all pending tasks.
        "TaskDescription": task_description,
        "TaskKeywords": task_keywords,
        "TaskTimeLimitInSeconds": 180,  # Each image must be labeled within 3 minutes.
        "TaskTitle": task_title,
        "UiConfig": {
            "UiTemplateS3Uri": "s3://{}/{}/instructions.template".format(BUCKET, EXP_NAME),
        },
    }

Etter at jobben er sendt inn, bør du se utdata som ligner på følgende:

Labeling job name is: ground-truth-cm-1662738403

Vent til merkejobben på evalueringsdatasettet er fullført, og fortsett deretter til neste trinn.

Bruk Amazon Rekognition moderasjons-API for å generere spådde modereringsetiketter.

Følgende kodebit viser hvordan du bruker Amazon Rekognition moderasjons-API for å generere modereringsetiketter:

client=boto3.client('rekognition')
def moderate_image(photo, bucket):
    response = client.detect_moderation_labels(Image={'S3Object':{'Bucket':bucket,'Name':photo}})
    return len(response['ModerationLabels'])

Vurder ytelsen

Du hentet først jordsannhetsmodereringsetiketter fra Ground Truth-merkingsjobbresultatene for evalueringsdatasettet, deretter kjørte du Amazon Rekognition moderasjons-API for å få anslåtte modereringsetiketter for det samme datasettet. Fordi dette er et binært klassifiseringsproblem (trygt vs. usikkert innhold), beregner vi følgende beregninger (forutsatt at usikkert innhold er positivt):

Vi beregner også de tilsvarende evalueringsberegningene:

Følgende kodebit viser hvordan du beregner disse beregningene:

FPR = FP / (FP + TN)
FNR = FN / (FN + TP)
Recall = TP / (TP + FN)
Precision = TP / (TP + FP)

konklusjonen

Dette innlegget diskuterer nøkkelelementene som trengs for å evaluere ytelsesaspektet til innholdsmodereringstjenesten din når det gjelder ulike nøyaktighetsberegninger. Nøyaktighet er imidlertid bare én av de mange dimensjonene du må vurdere når du velger en bestemt innholdsmodereringstjeneste. Det er avgjørende at du inkluderer andre parametere, for eksempel tjenestens totale funksjonssett, brukervennlighet, eksisterende integrasjoner, personvern og sikkerhet, tilpasningsalternativer, skalerbarhetsimplikasjoner, kundeservice og priser. For å lære mer om innholdsmoderering i Amazon Rekognition, besøk Moderering av innhold for Amazon-gjenkjenning.


Om forfatterne

Beregninger for å evaluere innholdsmoderering i Amazon Rekognition og andre innholdsmodereringstjenester PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Amit Gupta er senior AI Services Solutions Architect hos AWS. Han er lidenskapelig opptatt av å gjøre det mulig for kunder med velutviklede maskinlæringsløsninger i stor skala.

Beregninger for å evaluere innholdsmoderering i Amazon Rekognition og andre innholdsmodereringstjenester PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Davide Modolo er en Applied Science Manager ved AWS AI Labs. Han har en doktorgrad i datasyn fra University of Edinburgh (UK) og brenner for å utvikle nye vitenskapelige løsninger for virkelige kundeproblemer. Utenom jobben liker han å reise og spille alle slags sport, spesielt fotball.

Beregninger for å evaluere innholdsmoderering i Amazon Rekognition og andre innholdsmodereringstjenester PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Jian Wu er Senior Enterprise Solutions Architect hos AWS. Han har vært hos AWS i 6 år og jobbet med kunder i alle størrelser. Han er lidenskapelig opptatt av å hjelpe kunder med å innovere raskere ved å ta i bruk skyen og AI/ML. Før han begynte i AWS, brukte Jian 10+ år på å fokusere på programvareutvikling, systemimplementering og infrastrukturadministrasjon. Bortsett fra jobben liker han å være aktiv og tilbringe tid med familien.

Tidstempel:

Mer fra AWS maskinlæring