Mätvärden för att utvärdera innehållsmoderering i Amazon Rekognition och andra innehållsmodereringstjänster PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Mätvärden för att utvärdera innehållsmoderering i Amazon Rekognition och andra innehållsmodereringstjänster

Innehållsmoderering är processen för att screena och övervaka användargenererat innehåll online. För att tillhandahålla en säker miljö för både användare och varumärken måste plattformar moderera innehåll för att säkerställa att det faller inom förutbestämda riktlinjer för acceptabelt beteende som är specifika för plattformen och dess målgrupp.

När en plattform modererar innehåll kan acceptabelt användargenererat innehåll (UGC) skapas och delas med andra användare. Olämpliga, giftiga eller förbjudna beteenden kan förhindras, blockeras i realtid eller tas bort i efterhand, beroende på vilka verktyg och procedurer för innehållsmoderering som plattformen har på plats.

Du kan använda Amazon Rekognition Content Moderering för att upptäcka innehåll som är olämpligt, oönskat eller stötande, för att skapa en säkrare användarupplevelse, tillhandahålla varumärkessäkerhetsgarantier till annonsörer och följa lokala och globala regler.

I det här inlägget diskuterar vi nyckelelementen som behövs för att utvärdera prestandaaspekten av en innehållsmodereringstjänst i termer av olika noggrannhetsmått, och ger ett exempel med hjälp av Amazon Rekognition Content Moderation API:er.

Vad ska man utvärdera

När vi utvärderar en innehållsmodereringstjänst rekommenderar vi följande steg.

Innan du kan utvärdera prestandan för API:t i dina användningsfall måste du förbereda en representativ testdatauppsättning. Följande är några riktlinjer på hög nivå:

  • Samling – Ta ett tillräckligt stort slumpmässigt urval (bilder eller videor) av den data som du så småningom vill köra genom Amazon Rekognition. Om du till exempel planerar att moderera användaruppladdade bilder kan du ta en veckas användarbilder för testet. Vi rekommenderar att du väljer en uppsättning som har tillräckligt med bilder utan att bli för stora för att bearbeta (som 1,000 10,000–XNUMX XNUMX bilder), även om större uppsättningar är bättre.
  • Definition – Använd din applikations innehållsriktlinjer för att bestämma vilka typer av osäkert innehåll du är intresserad av att upptäcka från Amazon Rekognition moderering begrepp taxonomi. Du kan till exempel vara intresserad av att upptäcka alla typer av explicit nakenhet och grafiskt våld eller smuts.
  • anteckning – Nu behöver du en mänskligt genererad grundsanning för ditt testset med de valda etiketterna, så att du kan jämföra maskinförutsägelser mot dem. Detta innebär att varje bild är kommenterad för närvaron eller frånvaron av dina valda koncept. För att kommentera dina bilddata kan du använda Amazon SageMaker Ground Sannhet (GT) för att hantera bildkommentarer. Du kan hänvisa till GT för bildmärkning, konsolidera kommentarer och bearbetar anteckningsutdata.

Få förutsägelser om din testdatauppsättning med Amazon Rekognition

Därefter vill du få förutsägelser på din testdatauppsättning.

Det första steget är att bestämma ett lägsta konfidenspoäng (ett tröskelvärde, till exempel 50%) som du vill mäta resultat vid. Vår standardtröskel är inställd på 50, vilket ger en bra balans mellan att hämta stora mängder osäkert innehåll utan att få för många falska förutsägelser om säkert innehåll. Din plattform kan dock ha olika affärsbehov, så du bör anpassa denna förtroendetröskel efter behov. Du kan använda MinConfidence parametern i dina API-begäranden för att balansera detektering av innehåll (återkallelse) mot noggrannheten av upptäckt (precision). Om du minskar MinConfidence, kommer du sannolikt att upptäcka det mesta av det olämpliga innehållet, men du kommer sannolikt också att ta upp innehåll som faktiskt inte är olämpligt. Om du ökar MinConfidence du kommer sannolikt att se till att allt ditt upptäckta innehåll verkligen är olämpligt men visst innehåll kanske inte är taggat. Vi föreslår att du experimenterar med några MinConfidence värden på din datauppsättning och välj kvantitativt det bästa värdet för din datadomän.

Kör sedan varje prov (bild eller video) av ditt testset genom Amazon Rekognition modererings-API (DetectModerationLabels).

Mät modellens noggrannhet på bilder

Du kan bedöma en modells noggrannhet genom att jämföra mänskligt genererade marksanningsannoteringar med modellförutsägelserna. Du upprepar den här jämförelsen för varje bild oberoende och sammanställer sedan över hela testsetet:

  • Resultat per bild – En modellförutsägelse definieras som paret {label_name, confidence_score} (där konfidenspoängen >= tröskeln du valde tidigare). För varje bild anses en förutsägelse vara korrekt när den stämmer överens med grundsanningen (GT). En förutsägelse är ett av följande alternativ:
    • Sant positiv (TP): både förutsägelse och GT är "osäkra"
    • Sant negativt (TN): både förutsägelse och GT är "säkra"
    • falskt positiva (FP): förutsägelsen säger "osäker", men GT är "säker"
    • Falskt negativt (FN): förutsägelsen är "säker", men GT är "osäker"
  • Samlade resultat över alla bilder – Därefter kan du aggregera dessa förutsägelser till resultat på datauppsättningsnivå:
    • Falsk positiv ränta (FPR) – Detta är procentandelen bilder i testsetet som felaktigt flaggats av modellen som innehållande osäkert innehåll: (FP): FP / (TN+FP).
    • Falsk negativ kurs (FNR) – Detta är procentandelen av osäkra bilder i testsetet som saknas av modellen: (FN): FN / (FN+TP).
    • True positive rate (TPR) – Kallas även återkallande, detta beräknar procentandelen av osäkert innehåll (grundsanning) som är korrekt upptäckt eller förutspått av modellen: TP / (TP + FN) = 1 – FNR.
    • Precision – Detta beräknar procentandelen korrekta förutsägelser (osäkert innehåll) med hänsyn till det totala antalet gjorda förutsägelser: TP / (TP+FP).

Låt oss utforska ett exempel. Låt oss anta att ditt testset innehåller 10,000 9,950 bilder: 50 9,800 säkra och 9,950 osäkra. Modellen förutsäger korrekt 45 50 av XNUMX XNUMX bilder som säkra och XNUMX av XNUMX som osäkra:

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

Mät modellens noggrannhet på videor

Om du vill utvärdera prestandan på videor krävs ytterligare några steg:

  1. Prova en delmängd av bildrutor från varje video. Vi föreslår sampling enhetligt med en hastighet på 0.3–1 bilder per sekund (fps). Till exempel, om en video är kodad med 24 fps och du vill sampla en bildruta var 3:e sekund (0.3 fps), måste du välja en var 72:e bild.
  2. Kör dessa samplade ramar genom Amazon Rekognition-innehållsmoderering. Du kan antingen använda vårt video-API, som redan samplar bildrutor åt dig (med en hastighet av 3 fps), eller använda bild-API:et, i vilket fall du vill sampla mer sparsamt. Vi rekommenderar det senare alternativet, med tanke på redundansen av information i videor (på varandra följande bildrutor är mycket lika).
  3. Beräkna resultaten per bildruta enligt beskrivningen i föregående avsnitt (resultat per bild).
  4. Samla resultat över hela testsetet. Här har du två alternativ, beroende på vilken typ av resultat som är viktigt för ditt företag:
    1. Resultat på ramnivå – Detta betraktar alla samplade ramar som oberoende bilder och aggregerar resultaten exakt som förklarats tidigare för bilder (FPR, FNR, återkallelse, precision). Om vissa videor är betydligt längre än andra kommer de att bidra med fler bildrutor till det totala antalet, vilket gör jämförelsen obalanserad. I så fall föreslår vi att du ändrar den initiala samplingsstrategin till ett fast antal bilder per video. Du kan till exempel sampla 50–100 bildrutor per video på ett enhetligt sätt (förutsatt att videorna är minst 2–3 minuter långa).
    2. Resultat på videonivå – För vissa användningsfall spelar det ingen roll om modellen är kapabel att korrekt förutsäga 50 % eller 99 % av bildrutorna i en video. Även en enda felaktig osäkra förutsägelse på en enda bildruta kan utlösa en nedströms mänsklig utvärdering och endast videor med 100 % korrekta förutsägelser anses verkligen vara korrekt. Om detta är ditt användningsfall föreslår vi att du beräknar FPR/FNR/TPR över ramarna för varje video och överväger videon enligt följande:
Video-ID Noggrannhet Kategorisering per video
Resultat samlade över alla bildrutor för video-ID

Totalt FP = 0

Total FN = 0

Perfekta förutsägelser
. Totalt FP > 0 Falskt positivt (FP)
. Totalt FN > 0 Falskt negativt (FN)

När du har beräknat dessa för varje video oberoende kan du beräkna alla mätvärden som vi introducerade tidigare:

  • Andelen videor som är felaktigt flaggade (FP) eller missade (FN)
  • Precision och återkallelse

Mät prestation mot mål

Slutligen måste du tolka dessa resultat i samband med dina mål och förmågor.

Tänk först på ditt företags behov när det gäller följande:

  • Data – Lär dig mer om dina data (daglig volym, typ av data och så vidare) och distributionen av ditt osäkra kontra säkert innehåll. Till exempel, är den balanserad (50/50), skev (10/90) eller mycket skev (1/99, vilket betyder att endast 1% är osäkert)? Att förstå sådan distribution kan hjälpa dig att definiera dina faktiska metriska mål. Till exempel är antalet säkert innehåll ofta en storleksordning större än osäkert innehåll (mycket skevt), vilket gör detta nästan till ett problem att upptäcka avvikelser. Inom det här scenariot kan antalet falska positiva vara fler än antalet sanna positiva, och du kan använda din datainformation (fördelningsskevhet, datavolym och så vidare) för att bestämma vilken FPR du kan arbeta med.
  • Metriska mål – Vilka är de mest kritiska aspekterna av din verksamhet? Att sänka FPR kostar ofta en högre FNR (och vice versa) och det är viktigt att hitta rätt balans som fungerar för dig. Om du inte kan missa något osäkert innehåll vill du troligen ha nära 0 % FNR (100 % återkallelse). Detta kommer dock att medföra det största antalet falska positiva resultat, och du måste bestämma vilket mål (högsta) FPR du kan arbeta med, baserat på din efterförutsägelsepipeline. Du kanske vill tillåta en viss nivå av falska negativa resultat för att kunna hitta en bättre balans och sänka din FPR: om du till exempel accepterar 5 % FNR istället för 0 % kan FPR minska från 2 % till 0.5 %, vilket avsevärt minskar antalet av flaggat innehåll.

Fråga sedan dig själv vilka mekanismer du kommer att använda för att analysera de flaggade bilderna. Även om API:erna kanske inte ger 0% FPR och FNR, kan det fortfarande ge stora besparingar och skala (till exempel genom att bara flagga 3% av dina bilder har du redan filtrerat bort 97% av ditt innehåll). När du parar API:et med vissa nedströmsmekanismer, som en mänsklig arbetsstyrka som granskar det flaggade innehållet, kan du enkelt nå dina mål (till exempel 0.5 % flaggat innehåll). Notera hur denna sammankoppling är betydligt billigare än att behöva göra en mänsklig granskning på 100 % av ditt innehåll.

När du har bestämt dig för dina nedströmsmekanismer föreslår vi att du utvärderar genomströmningen som du kan stödja. Om du till exempel har en arbetsstyrka som bara kan verifiera 2 % av ditt dagliga innehåll, är ditt mål från vårt API för innehållsmoderering en flaggningsgrad (FPR+TPR) på 2 %.

Slutligen, om det är för svårt eller för dyrt att få markanteckningar (till exempel din datavolym är för stor), föreslår vi att du kommenterar det lilla antalet bilder som flaggats av API:et. Även om detta inte tillåter FNR-utvärderingar (eftersom dina data inte innehåller några falska negativa resultat), kan du fortfarande mäta TPR och FPR.

I följande avsnitt tillhandahåller vi en lösning för utvärdering av bildmoderering. Du kan använda ett liknande tillvägagångssätt för utvärdering av videomoderering.

Lösningsöversikt

Följande diagram illustrerar de olika AWS-tjänsterna du kan använda för att utvärdera prestandan för moderering av Amazon Rekognition-innehåll på din testdatauppsättning.

Utvärderingen av innehållsmoderering har följande steg:

  1. Ladda upp din utvärderingsdatauppsättning till Amazon enkel lagringstjänst (Amazon S3).
  2. Använd Ground Truth för att tilldela etiketter för ground truth-moderering.
  3. Generera de förutsedda modereringsetiketterna med Amazon Rekognition förutbildade modererings-API med några tröskelvärden. (Till exempel 70 %, 75 % och 80 %).
  4. Bedöm prestandan för varje tröskel genom att beräkna sanna positiva, sanna negativa, falska positiva och falska negativa. Bestäm det optimala tröskelvärdet för ditt användningsfall.
  5. Alternativt kan du skräddarsy storleken på personalstyrkan baserat på sanna och falska positiva resultat och användning Amazon Augmented AI (Amazon A2I) för att automatiskt skicka allt flaggat innehåll till din utsedda arbetsstyrka för manuell granskning.

Följande avsnitt tillhandahåller kodavsnitten för steg 1, 2 och 3. För fullständig källkod från slut till ände, se den medföljande Jupyter anteckningsbok.

Förutsättningar

Innan du börjar ska du utföra följande steg för att ställa in Jupyter-anteckningsboken:

  1. Skapa en notebook-instans in Amazon SageMaker.
  2. När anteckningsboken är aktiv väljer du Öppna Jupyter.
  3. Välj på Jupyter-instrumentpanelen Nya, och välj terminal.
  4. Ange följande kod i terminalen:
    cd SageMaker
    git clone https://github.com/aws-samples/amazon-rekognition-code-samples.git

  5. Öppna anteckningsboken för det här inlägget: content-moderation-evaluation/Evaluating-Amazon-Rekognition-Content-Moderation-Service.ipynb.
  6. Ladda upp din utvärderingsdatauppsättning till Amazon enkel lagringstjänst (Amazon S3).

Vi kommer nu att gå igenom steg 2 till 4 i Jupyter-anteckningsboken.

Använd Ground Truth för att tilldela modereringsetiketter

För att tilldela etiketter i Ground Truth, utför följande steg:

  1. Skapa en manifestinmatningsfil för ditt Ground Truth-jobb och ladda upp det till Amazon S3.
  2. Skapa märkningskonfigurationen, som innehåller alla modereringsetiketter som behövs för märkningsjobbet Ground Truth. För att kontrollera gränsen för antalet etikettkategorier du kan använda, se Etikettkategorikvoter. I följande kodavsnitt använder vi fem etiketter (se hierarkisk taxonomi som används i Amazon Rekognition för mer information) plus en etikett (Safe_Content) som markerar innehåll som säkert:
    # 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. Skapa en anpassad arbetsuppgiftsmall för att förse Ground Truth-arbetsstyrkan med märkningsinstruktioner och ladda upp den till Amazon S3.
    Etikettjobbet Ground Truth definieras som en uppgift för bildklassificering (multi-label). Se källkoden för instruktioner för att anpassa instruktionsmallen.
  4. Bestäm vilken arbetsstyrka du vill använda för att slutföra Ground Truth-jobbet. Du har två alternativ (se källkoden för detaljer):
    1. Använd privat arbetskraft i din egen organisation för att märka utvärderingsdataset.
    2. Använd offentlig arbetskraft för att märka utvärderingsdatauppsättningen.
  5. Skapa och skicka in ett Ground Truth-märkningsjobb. Du kan också justera följande kod för att konfigurera märkning av jobbparametrar för att möta dina specifika affärskrav. Se källkoden för fullständiga instruktioner om hur du skapar och konfigurerar 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),
        },
    }

När jobbet har skickats in bör du se utdata som liknar följande:

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

Vänta tills märkningsjobbet på utvärderingsdataset har slutförts och fortsätt sedan till nästa steg.

Använd Amazon Rekognition modererings-API för att generera förutsedda modereringsetiketter.

Följande kodavsnitt visar hur du använder Amazon Rekognition moderering API för att skapa 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'])

Bedöm prestandan

Du hämtade först jordsannningsmodereringsetiketter från Ground Truth-etiketteringsjobbresultaten för utvärderingsdatauppsättningen, sedan körde du Amazon Rekognition modererings-API för att få förutspådda modereringsetiketter för samma datauppsättning. Eftersom detta är ett binärt klassificeringsproblem (säkert kontra osäkert innehåll), beräknar vi följande mätvärden (förutsatt att osäkert innehåll är positivt):

Vi beräknar också motsvarande utvärderingsmått:

Följande kodavsnitt visar hur man beräknar dessa mätvärden:

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

Slutsats

Det här inlägget diskuterar nyckelelementen som behövs för att utvärdera prestandaaspekten av din innehållsmodereringstjänst i termer av olika noggrannhetsmått. Men noggrannhet är bara en av de många dimensioner som du behöver utvärdera när du väljer en viss innehållsmodereringstjänst. Det är viktigt att du inkluderar andra parametrar, såsom tjänstens totala funktionsuppsättning, användarvänlighet, befintliga integrationer, integritet och säkerhet, anpassningsalternativ, skalbarhetsimplikationer, kundservice och prissättning. För att lära dig mer om innehållsmoderering i Amazon Rekognition, besök Amazon Rekognition Content Moderering.


Om författarna

Mätvärden för att utvärdera innehållsmoderering i Amazon Rekognition och andra innehållsmodereringstjänster PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Amit Gupta är senior AI Services Solutions Architect på AWS. Han brinner för att möjliggöra för kunder med väl utformade maskininlärningslösningar i stor skala.

Mätvärden för att utvärdera innehållsmoderering i Amazon Rekognition och andra innehållsmodereringstjänster PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Davide Modolo är en tillämpad vetenskapschef på AWS AI Labs. Han har en doktorsexamen i datorseende från University of Edinburgh (UK) och brinner för att utveckla nya vetenskapliga lösningar för verkliga kundproblem. Utanför jobbet tycker han om att resa och utöva alla slags sporter, särskilt fotboll.

Mätvärden för att utvärdera innehållsmoderering i Amazon Rekognition och andra innehållsmodereringstjänster PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Jian Wu är Senior Enterprise Solutions Architect på AWS. Han har arbetat med AWS i 6 år och arbetat med kunder av alla storlekar. Han brinner för att hjälpa kunder att förnya sig snabbare genom att använda molnet och AI/ML. Innan han började på AWS, tillbringade Jian 10+ år med att fokusera på mjukvaruutveckling, systemimplementering och infrastrukturhantering. Förutom jobbet tycker han om att vara aktiv och umgås med sin familj.

Tidsstämpel:

Mer från AWS maskininlärning