Metrics til evaluering af indholdsmoderering i Amazon Rekognition og andre indholdsmodereringstjenester PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Metrics til evaluering af indholdsmoderering i Amazon Rekognition og andre indholdsmodereringstjenester

Indholdsmoderering er processen med at screene og overvåge brugergenereret indhold online. For at give et sikkert miljø for både brugere og brands skal platforme moderere indhold for at sikre, at det falder inden for forudfastsatte retningslinjer for acceptabel adfærd, der er specifik for platformen og dens publikum.

Når en platform modererer indhold, kan acceptabelt brugergenereret indhold (UGC) oprettes og deles med andre brugere. Upassende, giftig eller forbudt adfærd kan forhindres, blokeres i realtid eller fjernes efter kendsgerningen, afhængigt af de indholdsmodereringsværktøjer og -procedurer platformen har på plads.

Du kan bruge Amazon-genkendelsesindholdsmoderering at opdage indhold, der er upassende, uønsket eller stødende, for at skabe en sikrere brugeroplevelse, give annoncører garanti for brandsikkerhed og overholde lokale og globale regler.

I dette indlæg diskuterer vi de nøgleelementer, der er nødvendige for at evaluere ydeevneaspektet af en indholdsmodereringstjeneste i form af forskellige nøjagtighedsmålinger, og vi giver et eksempel ved hjælp af Amazon Rekognition Content Moderation API'er.

Hvad skal vurderes

Når vi evaluerer en indholdsmodereringstjeneste, anbefaler vi følgende trin.

Før du kan evaluere effektiviteten af ​​API'en på dine use cases, skal du forberede et repræsentativt testdatasæt. Følgende er nogle retningslinjer på højt niveau:

  • Samling – Tag en stor nok tilfældig stikprøve (billeder eller videoer) af de data, du til sidst ønsker at køre gennem Amazon Rekognition. For eksempel, hvis du planlægger at moderere brugeruploadede billeder, kan du tage en uges brugerbilleder til testen. Vi anbefaler at vælge et sæt, der har nok billeder uden at blive for store til at behandle (såsom 1,000-10,000 billeder), selvom større sæt er bedre.
  • Definition – Brug din applikations retningslinjer for indhold til at bestemme, hvilke typer usikkert indhold du er interesseret i at opdage fra Amazon-genkendelsen moderation begreber taksonomi. For eksempel kan du være interesseret i at opdage alle former for eksplicit nøgenhed og grafisk vold eller lemlæstelse.
  • Annotation – Nu har du brug for en menneskeskabt grundsandhed til dit testsæt ved hjælp af de valgte etiketter, så du kan sammenligne maskinforudsigelser med dem. Det betyder, at hvert billede er kommenteret for tilstedeværelsen eller fraværet af dine valgte koncepter. For at kommentere dine billeddata kan du bruge Amazon SageMaker Ground Truth (GT) for at administrere billedannotering. Du kan henvise til GT til billedmærkning, konsolidering af annoteringer , behandler annotationsoutput.

Få forudsigelser på dit testdatasæt med Amazon Rekognition

Dernæst vil du have forudsigelser på dit testdatasæt.

Det første trin er at beslutte dig for en minimumskonfidensscore (en tærskelværdi, såsom 50%), som du vil måle resultater ved. Vores standardgrænse er sat til 50, hvilket giver en god balance mellem at hente store mængder usikkert indhold uden at pådrage sig for mange falske forudsigelser om sikkert indhold. Din platform kan dog have forskellige forretningsbehov, så du bør tilpasse denne tillidsgrænse efter behov. Du kan bruge MinConfidence parameter i dine API-anmodninger for at balancere detektering af indhold (genkaldelse) i forhold til nøjagtigheden af ​​detektion (præcision). Hvis du reducerer MinConfidence, vil du sandsynligvis opdage det meste af det upassende indhold, men du vil sandsynligvis også opfange indhold, der faktisk ikke er upassende. Hvis du øger MinConfidence du vil sandsynligvis sikre, at alt dit detekterede indhold virkelig er upassende, men noget indhold er muligvis ikke tagget. Vi foreslår at eksperimentere med nogle få MinConfidence værdier på dit datasæt og kvantitativt vælge den bedste værdi for dit datadomæne.

Kør derefter hver prøve (billede eller video) af dit testsæt gennem Amazon Rekognition moderation API (DetectModerationLabels).

Mål modellens nøjagtighed på billeder

Du kan vurdere nøjagtigheden af ​​en model ved at sammenligne menneskeskabte grundsandhedsannoteringer med modelforudsigelserne. Du gentager denne sammenligning for hvert billede uafhængigt og samler derefter over hele testsættet:

  • Resultater pr. billede – En modelforudsigelse er defineret som parret {label_name, confidence_score} (hvor konfidensscoren >= den tærskel, du valgte tidligere). For hvert billede anses en forudsigelse for at være korrekt, når den matcher grundsandheden (GT). En forudsigelse er en af ​​følgende muligheder:
    • Sand positiv (TP): både forudsigelse og GT er "usikre"
    • Sand negativ (TN): både forudsigelse og GT er "sikre"
    • falsk positiv (FP): forudsigelsen siger "usikker", men GT er "sikker"
    • Falsk negativ (FN): forudsigelsen er "sikker", men GT er "usikker"
  • Samlede resultater over alle billeder – Dernæst kan du samle disse forudsigelser til resultater på datasætniveau:
    • Falsk positiv rate (FPR) – Dette er procentdelen af ​​billeder i testsættet, der fejlagtigt er markeret af modellen som indeholdende usikkert indhold: (FP): FP / (TN+FP).
    • Falsk negativ sats (FNR) – Dette er procentdelen af ​​usikre billeder i testsættet, der savnes af modellen: (FN): FN / (FN+TP).
    • True positive rate (TPR) – Også kaldet tilbagekaldelse, dette beregner procentdelen af ​​usikkert indhold (grundsandhed), der er korrekt opdaget eller forudsagt af modellen: TP / (TP + FN) = 1 – FNR.
    • Precision – Dette beregner procentdelen af ​​korrekte forudsigelser (usikkert indhold) i forhold til det samlede antal forudsigelser: TP / (TP+FP).

Lad os undersøge et eksempel. Lad os antage, at dit testsæt indeholder 10,000 billeder: 9,950 sikre og 50 usikre. Modellen forudsiger korrekt 9,800 ud af 9,950 billeder som sikre og 45 ud af 50 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/tilbagekaldelse = 45 / (45 + 5) = 0.9 = 90 %
  • Precision = 45 / (45 + 150) = 0.23 = 23 %

Mål modelnøjagtighed på videoer

Hvis du vil evaluere ydeevnen på videoer, er et par ekstra trin nødvendige:

  1. Prøv et undersæt af frames fra hver video. Vi foreslår sampling ensartet med en hastighed på 0.3-1 billeder pr. sekund (fps). For eksempel, hvis en video er kodet ved 24 fps, og du vil prøve et billede hvert 3. sekund (0.3 fps), skal du vælge et for hver 72. frames.
  2. Kør disse samplede frames gennem Amazon Rekognition-indholdsmoderering. Du kan enten bruge vores video-API, som allerede sampler frames for dig (med en hastighed på 3 fps), eller bruge billed-API'en, i hvilket tilfælde du ønsker at sample mere sparsomt. Vi anbefaler sidstnævnte mulighed i betragtning af redundansen af ​​information i videoer (konsekutive frames ligner meget).
  3. Beregn resultaterne pr. billede som forklaret i det foregående afsnit (resultater pr. billede).
  4. Saml resultater over hele testsættet. Her har du to muligheder, afhængigt af den type resultat, der har betydning for din virksomhed:
    1. Resultater på rammeniveau – Dette betragter alle de samplede rammer som uafhængige billeder og samler resultaterne nøjagtigt som forklaret tidligere for billeder (FPR, FNR, genkaldelse, præcision). Hvis nogle videoer er betydeligt længere end andre, vil de bidrage med flere billeder til det samlede antal, hvilket gør sammenligningen ubalanceret. I så fald foreslår vi, at du ændrer den indledende samplingstrategi til et fast antal billeder pr. video. For eksempel kan du ensartet sample 50-100 billeder pr. video (forudsat, at videoer er mindst 2-3 minutter lange).
    2. Resultater på videoniveau – I nogle tilfælde er det lige meget, om modellen er i stand til korrekt at forudsige 50 % eller 99 % af billederne i en video. Selv en enkelt forkert usikker forudsigelse på et enkelt billede kunne udløse en downstream menneskelig evaluering, og kun videoer med 100 % korrekte forudsigelser betragtes virkelig som korrekt. Hvis dette er dit tilfælde, foreslår vi, at du beregner FPR/FNR/TPR over rammerne for hver video og overvejer videoen som følger:
Video-id Nøjagtighed Per-video kategorisering
Resultater aggregeret over alle frames af video-id

Samlet FP = 0

Total FN = 0

Perfekte forudsigelser
. Samlet FP > 0 Falsk positiv (FP)
. Total FN > 0 Falsk negativ (FN)

Når du har beregnet disse for hver video uafhængigt, kan du beregne alle de metrics, vi introducerede tidligere:

  • Procentdelen af ​​videoer, der er forkert markeret (FP) eller savnet (FN)
  • Præcision og genkaldelse

Mål præstation i forhold til mål

Endelig skal du fortolke disse resultater i sammenhæng med dine mål og evner.

Overvej først din virksomheds behov med hensyn til følgende:

  • data – Lær om dine data (daglig mængde, type data osv.) og fordelingen af ​​dit usikre vs. sikkert indhold. For eksempel, er det afbalanceret (50/50), skævt (10/90) eller meget skævt (1/99, hvilket betyder, at kun 1 % er usikkert)? At forstå en sådan fordeling kan hjælpe dig med at definere dine faktiske metriske mål. For eksempel er antallet af sikkert indhold ofte en størrelsesorden større end usikkert indhold (meget skævt), hvilket gør dette næsten til et problem med afsløring af anomalier. Inden for dette scenarie kan antallet af falske positiver være større end antallet af sande positive, og du kan bruge dine dataoplysninger (fordelingsskævhed, datamængde osv.) til at bestemme den FPR, du kan arbejde med.
  • Metriske mål – Hvad er de mest kritiske aspekter af din virksomhed? Sænkning af FPR kommer ofte på bekostning af en højere FNR (og omvendt), og det er vigtigt at finde den rigtige balance, der fungerer for dig. Hvis du ikke kan gå glip af noget usikkert indhold, vil du sandsynligvis have tæt på 0 % FNR (100 % tilbagekaldelse). Dette vil dog medføre det største antal falske positiver, og du skal beslutte, hvilket mål (maksimalt) FPR du kan arbejde med, baseret på din post-forudsigelsespipeline. Du vil måske tillade et vist niveau af falske negativer for at være i stand til at finde en bedre balance og sænke din FPR: For eksempel kan en accept af en 5 % FNR i stedet for 0 % reducere FPR fra 2 % til 0.5 %, hvilket reducerer antallet betydeligt af markeret indhold.

Spørg derefter dig selv, hvilke mekanismer du vil bruge til at analysere de markerede billeder. Selvom API'erne måske ikke giver 0% FPR og FNR, kan det stadig give enorme besparelser og skala (for eksempel ved kun at markere 3% af dine billeder, har du allerede filtreret 97% af dit indhold fra). Når du parrer API'et med nogle downstream-mekanismer, såsom en menneskelig arbejdsstyrke, der gennemgår det markerede indhold, kan du nemt nå dine mål (f.eks. 0.5 % markeret indhold). Bemærk, hvordan denne parring er betydeligt billigere end at skulle lave en menneskelig gennemgang på 100 % af dit indhold.

Når du har besluttet dig for dine downstream-mekanismer, foreslår vi, at du evaluerer den gennemstrømning, du kan støtte. Hvis du for eksempel har en arbejdsstyrke, der kun kan verificere 2 % af dit daglige indhold, så er dit mål fra vores indholdsmoderering API en flagrate (FPR+TPR) på 2 %.

Endelig, hvis det er for svært eller for dyrt at få anmærkninger til sandheden (f.eks. er din datamængde for stor), foreslår vi, at du annoterer det lille antal billeder, der er markeret af API'en. Selvom dette ikke tillader FNR-evalueringer (fordi dine data ikke indeholder falske negativer), kan du stadig måle TPR og FPR.

I det følgende afsnit giver vi en løsning til evaluering af billedmoderering. Du kan bruge en lignende tilgang til evaluering af videomoderering.

Løsningsoversigt

Følgende diagram illustrerer de forskellige AWS-tjenester, du kan bruge til at evaluere ydelsen af ​​Amazon Rekognition-indholdsmoderering på dit testdatasæt.

Evalueringen af ​​indholdsmoderering har følgende trin:

  1. Upload dit evalueringsdatasæt til Amazon Simple Storage Service (Amazon S3).
  2. Brug Ground Truth til at tildele ground truth-moderationsmærker.
  3. Generer de forudsagte modereringsetiketter ved hjælp af Amazon Rekognition forudtrænede modererings-API ved hjælp af nogle få tærskelværdier. (For eksempel 70 %, 75 % og 80 %).
  4. Vurder ydeevnen for hver tærskel ved at beregne sande positive, sande negative, falske positive og falske negative. Bestem den optimale tærskelværdi for din use case.
  5. Eventuelt kan du skræddersy størrelsen af ​​arbejdsstyrken baseret på sande og falske positiver og brug Amazon Augmented AI (Amazon A2I) for automatisk at sende alt markeret indhold til din udpegede arbejdsstyrke til manuel gennemgang.

De følgende sektioner indeholder kodestykkerne til trin 1, 2 og 3. For fuldstændig ende-til-ende kildekode, se den medfølgende Jupyter notesbog.

Forudsætninger

Før du går i gang, skal du udføre følgende trin for at konfigurere Jupyter-notebooken:

  1. Opret en notesbogsforekomst in Amazon SageMaker.
  2. Når notesbogen er aktiv, skal du vælge Åbn Jupyter.
  3. Vælg på Jupyter-dashboardet Ny, og vælg terminal.
  4. Indtast følgende kode i terminalen:
    cd SageMaker
    git clone https://github.com/aws-samples/amazon-rekognition-code-samples.git

  5. Åbn notesbogen til dette indlæg: content-moderation-evaluation/Evaluating-Amazon-Rekognition-Content-Moderation-Service.ipynb.
  6. Upload dit evalueringsdatasæt til Amazon Simple Storage Service (Amazon S3).

Vi vil nu gennemgå trin 2 til 4 i Jupyter-notesbogen.

Brug Ground Truth til at tildele moderationsetiketter

For at tildele etiketter i Ground Truth skal du udføre følgende trin:

  1. Opret en manifestinputfil til dit Ground Truth-job og upload det til Amazon S3.
  2. Opret etiketkonfigurationen, som indeholder alle moderationsetiketter, der er nødvendige for Ground Truth-mærkningsjobbet. For at kontrollere grænsen for antallet af etiketkategorier, du kan bruge, se Kvoter for etiketkategori. I det følgende kodestykke bruger vi fem etiketter (se hierarkisk taksonomi brugt i Amazon Rekognition for flere detaljer) plus en etiket (Safe_Content), der markerer indhold som sikkert:
    # 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. Opret en brugerdefineret arbejdsopgaveskabelon for at give Ground Truth-arbejdsstyrken mærkningsinstruktioner og upload den til Amazon S3.
    Ground Truth label-jobbet er defineret som en billedklassificeringsopgave (multi-label). Se kildekoden for instruktioner til at tilpasse instruktionsskabelonen.
  4. Bestem, hvilken arbejdsstyrke du vil bruge til at fuldføre Ground Truth-jobbet. Du har to muligheder (se kildekoden for detaljer):
    1. Brug privat arbejdsstyrke i din egen organisation for at mærke evalueringsdatasættet.
    2. Brug offentlig arbejdsstyrke for at mærke evalueringsdatasættet.
  5. Opret og indsend et Ground Truth-mærkningsjob. Du kan også justere følgende kode for at konfigurere mærkning af jobparametre for at opfylde dine specifikke forretningskrav. Se kildekoden for fuldstændige instruktioner om oprettelse og konfiguration af Ground Truth-jobbet.
    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),
        },
    }

Efter jobbet er indsendt, bør du se output svarende til følgende:

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

Vent på, at mærkningsjobbet på evalueringsdatasættet er fuldført, og fortsæt derefter til næste trin.

Brug Amazon Rekognition moderation API til at generere forudsagte modereringsetiketter.

Følgende kodestykke viser, hvordan du bruger Amazon Rekognition moderation API for at generere moderationsetiketter:

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 ydeevnen

Du hentede først ground truth modereringsetiketter fra Ground Truth labeling jobresultaterne for evalueringsdatasættet, og derefter kørte du Amazon Rekognition moderation API for at få forudsagte modereringsetiketter for det samme datasæt. Da dette er et binært klassifikationsproblem (sikkert vs. usikkert indhold), beregner vi følgende metrics (forudsat at usikkert indhold er positivt):

Vi beregner også de tilsvarende evalueringsmetrics:

Følgende kodestykke viser, hvordan man beregner disse metrics:

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

Konklusion

Dette indlæg diskuterer de nøgleelementer, der er nødvendige for at evaluere ydeevneaspektet af din indholdsmodereringstjeneste i form af forskellige nøjagtighedsmålinger. Nøjagtighed er dog kun én af de mange dimensioner, som du skal vurdere, når du vælger en bestemt indholdsmodereringstjeneste. Det er afgørende, at du inkluderer andre parametre, såsom tjenestens samlede funktionssæt, brugervenlighed, eksisterende integrationer, privatliv og sikkerhed, tilpasningsmuligheder, skalerbarhedsimplikationer, kundeservice og priser. For at lære mere om indholdsmoderering i Amazon Rekognition, besøg Amazon-genkendelsesindholdsmoderering.


Om forfatterne

Metrics til evaluering af indholdsmoderering i Amazon Rekognition og andre indholdsmodereringstjenester PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Amit Gupta er senior AI Services Solutions Architect hos AWS. Han brænder for at give kunderne veldesignede maskinlæringsløsninger i stor skala.

Metrics til evaluering af indholdsmoderering i Amazon Rekognition og andre indholdsmodereringstjenester PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Davide Modolo er en Applied Science Manager hos AWS AI Labs. Han har en PhD i computervision fra University of Edinburgh (UK) og brænder for at udvikle nye videnskabelige løsninger til virkelige kundeproblemer. Uden for arbejdet nyder han at rejse og dyrke enhver form for sport, især fodbold.

Metrics til evaluering af indholdsmoderering i Amazon Rekognition og andre indholdsmodereringstjenester PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Jian Wu er Senior Enterprise Solutions Architect hos AWS. Han har været hos AWS i 6 år og arbejdet med kunder i alle størrelser. Han brænder for at hjælpe kunderne med at innovere hurtigere via implementeringen af ​​Cloud og AI/ML. Før han kom til AWS, brugte Jian 10+ år på at fokusere på softwareudvikling, systemimplementering og infrastrukturstyring. Udover arbejdet nyder han at være aktiv og tilbringe tid med sin familie.

Tidsstempel:

Mere fra AWS maskinindlæring