Statistieken voor het evalueren van inhoudsmoderatie in Amazon Rekognition en andere inhoudsmoderatiediensten PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Metrieken voor het evalueren van contentmoderatie in Amazon Rekognition en andere contentmoderatieservices

Contentmoderatie is het proces van het screenen en monitoren van door gebruikers gegenereerde content online. Om een ​​veilige omgeving voor zowel gebruikers als merken te bieden, moeten platforms content modereren om ervoor te zorgen dat deze binnen vooraf vastgestelde richtlijnen voor acceptabel gedrag valt die specifiek zijn voor het platform en zijn publiek.

Wanneer een platform inhoud modereert, kan acceptabele door gebruikers gegenereerde inhoud (UGC) worden gemaakt en gedeeld met andere gebruikers. Ongepast, giftig of verboden gedrag kan worden voorkomen, in realtime worden geblokkeerd of achteraf worden verwijderd, afhankelijk van de tools en procedures voor contentmoderatie die het platform heeft.

Je kunt gebruiken Contentmoderatie van Amazon Recognition om inhoud te detecteren die ongepast, ongewenst of aanstootgevend is, om een ​​veiligere gebruikerservaring te creëren, om adverteerders merkveiligheid te bieden en om te voldoen aan lokale en wereldwijde regelgeving.

In dit bericht bespreken we de belangrijkste elementen die nodig zijn om het prestatieaspect van een contentmoderatieservice te evalueren in termen van verschillende nauwkeurigheidsstatistieken, en geven we een voorbeeld met behulp van Amazon Rekognition API's voor contentmoderatie.

Wat te evalueren?

Bij het evalueren van een contentmoderatieservice raden we de volgende stappen aan.

Voordat u de prestaties van de API voor uw gebruiksscenario's kunt evalueren, moet u een representatieve testgegevensset voorbereiden. Hier volgen enkele richtlijnen op hoog niveau:

  • Collectie - Neem een ​​voldoende grote steekproef (afbeeldingen of video's) van de gegevens die u uiteindelijk door Amazon Rekognition wilt laten lopen. Als u bijvoorbeeld van plan bent om door gebruikers geüploade afbeeldingen te modereren, kunt u voor de test een week aan gebruikersafbeeldingen gebruiken. We raden aan een set te kiezen die voldoende afbeeldingen heeft zonder te groot te worden om te verwerken (zoals 1,000-10,000 afbeeldingen), hoewel grotere sets beter zijn.
  • Definitie – Gebruik de inhoudsrichtlijnen van uw toepassing om te beslissen welke soorten onveilige inhoud u wilt detecteren via Amazon Rekognition moderatie concepten taxonomie. U bent bijvoorbeeld misschien geïnteresseerd in het detecteren van alle soorten expliciete naaktheid en grafisch geweld of bloed.
  • aantekening – Nu heb je een door mensen gegenereerde grondwaarheid nodig voor je testset met behulp van de gekozen labels, zodat je machinevoorspellingen ermee kunt vergelijken. Dit betekent dat elke afbeelding wordt geannoteerd voor de aan- of afwezigheid van de door u gekozen concepten. Om uw afbeeldingsgegevens te annoteren, kunt u Amazon SageMaker Grondwaarheid (GT)om beeldannotaties te beheren. U kunt verwijzen naar GT voor het labelen van afbeeldingen, annotaties consolideren en annotatie-uitvoer verwerken.

Krijg voorspellingen over uw testdataset met Amazon Rekognition

Vervolgens wilt u voorspellingen voor uw testdataset krijgen.

De eerste stap is het bepalen van een minimale betrouwbaarheidsscore (een drempelwaarde, zoals 50%) waarop u resultaten wilt meten. Onze standaarddrempel is ingesteld op 50, wat een goede balans biedt tussen het ophalen van grote hoeveelheden onveilige inhoud zonder al te veel valse voorspellingen over veilige inhoud. Uw platform kan echter andere zakelijke behoeften hebben, dus u moet deze vertrouwensdrempel zo nodig aanpassen. U kunt de MinConfidence parameter in uw API-verzoeken om detectie van inhoud (recall) af te wegen tegen de nauwkeurigheid van detectie (precisie). Als je vermindert MinConfidence, zult u waarschijnlijk de meeste ongepaste inhoud detecteren, maar waarschijnlijk ook inhoud oppikken die eigenlijk niet ongepast is. Als je verhoogt MinConfidence u zorgt er waarschijnlijk voor dat al uw gedetecteerde inhoud echt ongepast is, maar sommige inhoud is mogelijk niet getagd. We raden aan om met een paar te experimenteren MinConfidence waarden op uw dataset en selecteer kwantitatief de beste waarde voor uw datadomein.

Voer vervolgens elk voorbeeld (afbeelding of video) van uw testset uit via de Amazon Rekognition-moderatie-API (DetecterenModeratieLabels).

Meet de nauwkeurigheid van het model op afbeeldingen

U kunt de nauwkeurigheid van een model beoordelen door door mensen gegenereerde annotaties van de grondwaarheid te vergelijken met de modelvoorspellingen. U herhaalt deze vergelijking voor elke afbeelding afzonderlijk en aggregeert vervolgens over de hele testset:

  • Resultaten per afbeelding – Een modelvoorspelling wordt gedefinieerd als het paar {label_name, confidence_score} (waarbij de betrouwbaarheidsscore >= de drempel die u eerder hebt geselecteerd). Voor elk beeld wordt een voorspelling als correct beschouwd als deze overeenkomt met de grondwaarheid (GT). Een voorspelling is een van de volgende opties:
    • Echt positief (TP): zowel voorspelling als GT zijn "onveilig"
    • Echt negatief (TN): zowel voorspelling als GT zijn "veilig"
    • vals positief (FP): de voorspelling zegt "onveilig", maar de GT is "veilig"
    • Vals negatief (FN): de voorspelling is “veilig”, maar de GT is “onveilig”
  • Geaggregeerde resultaten over alle afbeeldingen – Vervolgens kunt u deze voorspellingen samenvoegen tot resultaten op datasetniveau:
    • Vals-positief percentage (FPR) – Dit is het percentage afbeeldingen in de testset dat door het model ten onrechte wordt gemarkeerd als onveilige inhoud: (FP): FP / (TN+FP).
    • Vals negatief percentage (FNR) – Dit is het percentage onveilige beelden in de testset dat door het model wordt gemist: (FN): FN / (FN+TP).
    • Echt positief percentage (TPR) – Ook wel recall genoemd, dit berekent het percentage onveilige inhoud (ground truth) dat correct wordt ontdekt of voorspeld door het model: TP / (TP + FN) = 1 – FNR.
    • precisie – Dit berekent het percentage juiste voorspellingen (onveilige inhoud) met betrekking tot het totale aantal voorspellingen: TP / (TP+FP).

Laten we een voorbeeld onderzoeken. Laten we aannemen dat je testset 10,000 afbeeldingen bevat: 9,950 veilig en 50 onveilig. Het model voorspelt correct 9,800 van de 9,950 afbeeldingen als veilig en 45 van de 50 als onveilig:

  • 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/Terugroep = 45 / (45 + 5) = 0.9 = 90%
  • precisie = 45 / (45 + 150) = 0.23 = 23%

Modelnauwkeurigheid meten op video's

Als u de prestaties van video's wilt evalueren, zijn een paar extra stappen nodig:

  1. Proef een subset van frames van elke video. We raden aan om uniform te samplen met een snelheid van 0.3-1 frames per seconde (fps). Als een video bijvoorbeeld is gecodeerd met 24 fps en u wilt elke 3 seconden een monster nemen (0.3 fps), moet u er elke 72 frames een selecteren.
  2. Voer deze voorbeeldframes uit via contentmoderatie van Amazon Rekognition. U kunt ofwel onze video-API gebruiken, die al frames voor u samplet (met een snelheid van 3 fps), of de beeld-API gebruiken, in welk geval u schaarser wilt samplen. We raden de laatste optie aan, gezien de redundantie van informatie in video's (opeenvolgende frames lijken erg op elkaar).
  3. Bereken de resultaten per frame zoals uitgelegd in de vorige sectie (resultaten per afbeelding).
  4. Verzamel de resultaten over de hele testset. Hier heeft u twee opties, afhankelijk van het type resultaat dat van belang is voor uw bedrijf:
    1. Resultaten op frameniveau – Dit beschouwt alle gesamplede frames als onafhankelijke afbeeldingen en aggregeert de resultaten precies zoals eerder uitgelegd voor afbeeldingen (FPR, FNR, terugroepen, precisie). Als sommige video's aanzienlijk langer zijn dan andere, dragen ze meer frames bij aan het totale aantal, waardoor de vergelijking onevenwichtig wordt. In dat geval raden we aan om de initiële bemonsteringsstrategie te wijzigen in een vast aantal frames per video. U kunt bijvoorbeeld uniform 50-100 frames per video samplen (ervan uitgaande dat video's minimaal 2-3 minuten duren).
    2. Resultaten op videoniveau – Voor sommige gebruikssituaties maakt het niet uit of het model 50% of 99% van de frames in een video correct kan voorspellen. Zelfs een enkele verkeerde onveilige voorspelling op een enkel frame kan leiden tot een downstream menselijke evaluatie en alleen video's met 100% correcte voorspellingen worden echt correct beschouwd. Als dit uw gebruikssituatie is, raden we u aan FPR/FNR/TPR te berekenen over de frames van elke video en de video als volgt te beschouwen:
Video-ID Nauwkeurigheid Categorisatie per video
Resultaten geaggregeerd over alle frames van video-ID

Totale FP = 0

Totaal FN = 0

Perfecte voorspellingen
. Totale FP > 0 Vals-positief (FP)
. Totaal FN > 0 Vals negatief (FN)

Nadat je deze voor elke video afzonderlijk hebt berekend, kun je alle statistieken berekenen die we eerder hebben geïntroduceerd:

  • Het percentage video's dat ten onrechte is gemarkeerd (FP) of is gemist (FN)
  • Precisie en terugroepen

Prestaties meten aan de hand van doelen

Ten slotte moet u deze resultaten interpreteren in de context van uw doelen en capaciteiten.

Overweeg eerst uw zakelijke behoeften met betrekking tot het volgende:

  • Data – Meer informatie over uw gegevens (dagelijks volume, type gegevens, enzovoort) en de distributie van uw onveilige versus veilige inhoud. Is het bijvoorbeeld gebalanceerd (50/50), scheef (10/90) of erg scheef (1/99, wat betekent dat slechts 1% onveilig is)? Als u een dergelijke distributie begrijpt, kunt u uw werkelijke metrische doelen definiëren. Het aantal veilige inhoud is bijvoorbeeld vaak een orde van grootte groter dan onveilige inhoud (zeer scheef), waardoor dit bijna een afwijkingsdetectieprobleem is. Binnen dit scenario kan het aantal valse positieven groter zijn dan het aantal echte positieven, en u kunt uw gegevensinformatie (distributiescheefheid, gegevensvolume, enzovoort) gebruiken om te beslissen met welke FPR u kunt werken.
  • Metrische doelen – Wat zijn de meest kritische aspecten van uw bedrijf? Het verlagen van de FPR gaat vaak ten koste van een hogere FNR (en vice versa) en het is belangrijk om de juiste balans te vinden die voor jou werkt. Als u geen onveilige inhoud kunt missen, wilt u waarschijnlijk bijna 0% FNR (100% terugroepactie). Dit leidt echter tot het grootste aantal valse positieven en u moet de doel- (maximale) FPR bepalen waarmee u kunt werken, op basis van uw post-voorspellingspijplijn. Misschien wilt u een bepaald niveau van valse negatieven toestaan ​​om een ​​betere balans te vinden en uw FPR te verlagen: als u bijvoorbeeld een FNR van 5% accepteert in plaats van 0%, kan de FPR worden verlaagd van 2% naar 0.5%, waardoor het aantal aanzienlijk wordt verminderd van gemarkeerde inhoud.

Vraag uzelf vervolgens af welke mechanismen u zult gebruiken om de gemarkeerde afbeeldingen te ontleden. Ook al bieden de API's misschien geen 0% FPR en FNR, het kan nog steeds enorme besparingen en schaal opleveren (door bijvoorbeeld slechts 3% van uw afbeeldingen te markeren, heeft u al 97% van uw inhoud eruit gefilterd). Wanneer u de API koppelt aan een aantal downstream-mechanismen, zoals een menselijk personeelsbestand dat de gemarkeerde inhoud beoordeelt, kunt u gemakkelijk uw doelen bereiken (bijvoorbeeld 0.5% gemarkeerde inhoud). Merk op hoe deze koppeling aanzienlijk goedkoper is dan het moeten doen van een menselijke beoordeling van 100% van uw inhoud.

Wanneer u uw downstream-mechanismen hebt bepaald, raden we u aan de doorvoer te evalueren die u kunt ondersteunen. Als u bijvoorbeeld een personeelsbestand heeft dat slechts 2% van uw dagelijkse inhoud kan verifiëren, dan is uw doel van onze inhoudsmoderatie-API een vlagpercentage (FPR+TPR) van 2%.

Als het verkrijgen van grondwaarheidsannotaties te moeilijk of te duur is (bijvoorbeeld als uw gegevensvolume te groot is), raden we u aan om het kleine aantal afbeeldingen te annoteren dat door de API is gemarkeerd. Hoewel dit geen FNR-evaluaties toestaat (omdat uw gegevens geen valse negatieven bevatten), kunt u toch TPR en FPR meten.

In de volgende sectie bieden we een oplossing voor de evaluatie van beeldmoderatie. U kunt een vergelijkbare aanpak volgen voor de evaluatie van videomoderatie.

Overzicht oplossingen

Het volgende diagram illustreert de verschillende AWS-services die u kunt gebruiken om de prestaties van Amazon Rekognition-inhoudsmoderatie op uw testdataset te evalueren.

De evaluatie van de inhoudsmoderatie kent de volgende stappen:

  1. Upload uw evaluatiedataset naar Amazon eenvoudige opslagservice (Amazone S3).
  2. Gebruik Ground Truth om Ground Truth moderatielabels toe te wijzen.
  3. Genereer de voorspelde moderatielabels met behulp van de vooraf getrainde moderatie-API van Amazon Rekognition met behulp van een paar drempelwaarden. (Bijvoorbeeld 70%, 75% en 80%).
  4. Beoordeel de prestaties voor elke drempel door echte positieven, echte negatieven, valse positieven en valse negatieven te berekenen. Bepaal de optimale drempelwaarde voor uw use case.
  5. Optioneel kunt u de omvang van het personeelsbestand aanpassen op basis van echte en valse positieven, en gebruik Amazon Augmented AI (Amazon A2I) om automatisch alle gemarkeerde inhoud naar uw aangewezen personeel te sturen voor een handmatige beoordeling.

De volgende secties bevatten de codefragmenten voor stap 1, 2 en 3. Raadpleeg voor de volledige end-to-end broncode de meegeleverde Jupyter notitieboek.

Voorwaarden

Voordat u begint, moet u de volgende stappen uitvoeren om het Jupyter-notebook in te stellen:

  1. Maak een notebookinstantie in Amazon Sage Maker.
  2. Kies wanneer de notebook actief is Jupyter openen.
  3. Kies op het Jupyter-dashboard Newen kies terminal.
  4. Voer in de terminal de volgende code in:
    cd SageMaker
    git clone https://github.com/aws-samples/amazon-rekognition-code-samples.git

  5. Open het notitieblok voor dit bericht: content-moderation-evaluation/Evaluating-Amazon-Rekognition-Content-Moderation-Service.ipynb.
  6. Upload uw evaluatiedataset naar: Amazon eenvoudige opslagservice (Amazone S3).

We zullen nu stap 2 tot en met 4 in het Jupyter-notebook doorlopen.

Gebruik Ground Truth om moderatielabels toe te wijzen

Voer de volgende stappen uit om labels toe te wijzen in Ground Truth:

  1. Maak een invoerbestand voor een manifest voor je Ground Truth-taak en upload deze naar Amazon S3.
  2. Maak de labelconfiguratie, die alle moderatielabels bevat die nodig zijn voor de Ground Truth labelingtaak. Raadpleeg de limiet voor het aantal labelcategorieën dat u kunt gebruiken Label Categorie Quota. In het volgende codefragment gebruiken we vijf labels (zie de hiërarchische taxonomie gebruikt in Amazon Rekognition voor meer details) plus één label (Safe_Content) die inhoud als veilig markeert:
    # 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. Maak een taaksjabloon voor aangepaste werknemers om het personeel van Ground Truth te voorzien van labelinstructies en upload deze naar Amazon S3.
    De Ground Truth-labeltaak wordt gedefinieerd als een taak voor beeldclassificatie (multi-label). Raadpleeg de broncode voor instructies om de instructiesjabloon aan te passen.
  4. Bepaal welk personeelsbestand u wilt gebruiken om de Ground Truth-taak te voltooien. Je hebt twee opties (raadpleeg de broncode voor details):
    1. Gebruik een privé personeel in uw eigen organisatie om de evaluatiedataset te labelen.
    2. Gebruik een openbare arbeidskrachten om de evaluatiedataset te labelen.
  5. Maak een Ground Truth-labeltaak aan en dien deze in. U kunt ook de volgende code aanpassen om de taakparameters labelen om aan uw specifieke zakelijke vereisten te voldoen. Raadpleeg de broncode voor volledige instructies over het maken en configureren van de Ground Truth-taak.
    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),
        },
    }

Nadat de taak is verzonden, zou u een uitvoer moeten zien die lijkt op het volgende:

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

Wacht tot de labeltaak op de evaluatiegegevensset met succes is voltooid en ga dan verder met de volgende stap.

Gebruik de Amazon Rekognition-moderatie-API om voorspelde moderatielabels te genereren.

Het volgende codefragment laat zien hoe u de Amazon-herkenning kunt gebruiken moderatie-API moderatielabels genereren:

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

Beoordeel de prestaties

Je hebt eerst ground truth moderatielabels opgehaald uit de Ground Truth labeling-taakresultaten voor de evaluatiedataset, daarna heb je de Amazon Rekognition moderatie-API uitgevoerd om voorspelde moderatielabels voor dezelfde dataset te krijgen. Omdat dit een binair classificatieprobleem is (veilige versus onveilige inhoud), berekenen we de volgende statistieken (ervan uitgaande dat onveilige inhoud positief is):

We berekenen ook de bijbehorende evaluatiestatistieken:

Het volgende codefragment laat zien hoe u deze statistieken kunt berekenen:

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

Conclusie

Dit bericht bespreekt de belangrijkste elementen die nodig zijn om het prestatieaspect van uw contentmoderatieservice te evalueren in termen van verschillende nauwkeurigheidsstatistieken. Nauwkeurigheid is echter slechts een van de vele dimensies die u moet evalueren bij het kiezen van een bepaalde contentmoderatieservice. Het is van cruciaal belang dat u andere parameters opneemt, zoals de totale functieset van de service, gebruiksgemak, bestaande integraties, privacy en beveiliging, aanpassingsopties, implicaties voor schaalbaarheid, klantenservice en prijzen. Ga voor meer informatie over contentmoderatie in Amazon Rekognition naar Contentmoderatie van Amazon Recognition.


Over de auteurs

Statistieken voor het evalueren van inhoudsmoderatie in Amazon Rekognition en andere inhoudsmoderatiediensten PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Amit Gupta is Senior AI Services Solutions Architect bij AWS. Hij is gepassioneerd om klanten op grote schaal goed ontworpen machine learning-oplossingen te bieden.

Statistieken voor het evalueren van inhoudsmoderatie in Amazon Rekognition en andere inhoudsmoderatiediensten PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Davide Modolo is een Applied Science Manager bij AWS AI Labs. Hij is gepromoveerd in computervisie aan de Universiteit van Edinburgh (VK) en heeft een passie voor het ontwikkelen van nieuwe wetenschappelijke oplossingen voor echte klantproblemen. Naast zijn werk houdt hij van reizen en sporten, vooral voetbal.

Statistieken voor het evalueren van inhoudsmoderatie in Amazon Rekognition en andere inhoudsmoderatiediensten PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Jian Wu is Senior Enterprise Solutions Architect bij AWS. Hij werkt al 6 jaar bij AWS en werkt met klanten van elke omvang. Hij is gepassioneerd om klanten te helpen sneller te innoveren via de adoptie van de cloud en AI/ML. Voordat hij bij AWS kwam, heeft Jian zich meer dan 10 jaar gefocust op softwareontwikkeling, systeemimplementatie en infrastructuurbeheer. Naast zijn werk houdt hij ervan om actief te zijn en tijd door te brengen met zijn gezin.

Tijdstempel:

Meer van AWS-machine learning