Métricas para avaliar a moderação de conteúdo no Amazon Rekognition e outros serviços de moderação de conteúdo PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Métricas para avaliar a moderação de conteúdo no Amazon Rekognition e outros serviços de moderação de conteúdo

A moderação de conteúdo é o processo de triagem e monitoramento de conteúdo gerado pelo usuário online. Para fornecer um ambiente seguro para usuários e marcas, as plataformas devem moderar o conteúdo para garantir que ele se enquadre nas diretrizes pré-estabelecidas de comportamento aceitável que sejam específicas para a plataforma e seu público.

Quando uma plataforma modera o conteúdo, o conteúdo gerado pelo usuário (UGC) aceitável pode ser criado e compartilhado com outros usuários. Comportamentos inapropriados, tóxicos ou banidos podem ser prevenidos, bloqueados em tempo real ou removidos após o fato, dependendo das ferramentas e procedimentos de moderação de conteúdo que a plataforma possui.

Você pode usar Moderação de conteúdo do Amazon Rekognition para detectar conteúdo inapropriado, indesejado ou ofensivo, para criar uma experiência de usuário mais segura, fornecer garantias de segurança de marca aos anunciantes e cumprir as regulamentações locais e globais.

Nesta postagem, discutimos os principais elementos necessários para avaliar o aspecto de desempenho de um serviço de moderação de conteúdo em termos de várias métricas de precisão e fornecemos um exemplo usando o Amazon Rekognition APIs de moderação de conteúdo.

O que avaliar

Ao avaliar um serviço de moderação de conteúdo, recomendamos as etapas a seguir.

Antes de avaliar o desempenho da API em seus casos de uso, você precisa preparar um conjunto de dados de teste representativo. A seguir estão algumas diretrizes de alto nível:

  • Coleção – Pegue uma amostra aleatória grande o suficiente (imagens ou vídeos) dos dados que você deseja executar por meio do Amazon Rekognition. Por exemplo, se você planeja moderar imagens enviadas por usuários, pode levar uma semana de imagens de usuários para o teste. Recomendamos escolher um conjunto que tenha imagens suficientes sem ficar muito grande para processar (como 1,000–10,000 imagens), embora conjuntos maiores sejam melhores.
  • Definição – Use as diretrizes de conteúdo do seu aplicativo para decidir quais tipos de conteúdo não seguro você está interessado em detectar no Amazon Rekognition taxonomia de conceitos de moderação. Por exemplo, você pode estar interessado em detectar todos os tipos de nudez explícita e violência gráfica ou gore.
  • Anotação – Agora você precisa de uma verdade geral gerada por humanos para seu conjunto de teste usando os rótulos escolhidos, para que você possa comparar as previsões da máquina com eles. Isso significa que cada imagem é anotada para a presença ou ausência de seus conceitos escolhidos. Para anotar seus dados de imagem, você pode usar Verdade no solo do Amazon SageMaker (GT) para gerenciar a anotação da imagem. Você pode consultar GT para rotulagem de imagens, consolidando anotações e saída de anotação de processamento.

Obtenha previsões sobre seu conjunto de dados de teste com o Amazon Rekognition

Em seguida, você deseja obter previsões em seu conjunto de dados de teste.

A primeira etapa é decidir sobre uma pontuação de confiança mínima (um valor limite, como 50%) na qual você deseja medir os resultados. Nosso limite padrão é definido como 50, o que oferece um bom equilíbrio entre recuperar grandes quantidades de conteúdo não seguro sem incorrer em muitas previsões falsas sobre conteúdo seguro. No entanto, sua plataforma pode ter necessidades de negócios diferentes, portanto, você deve personalizar esse limite de confiança conforme necessário. Você pode usar o MinConfidence parâmetro em suas solicitações de API para equilibrar a detecção de conteúdo (recall) e a precisão da detecção (precisão). Se você reduzir MinConfidence, é provável que você detecte a maior parte do conteúdo impróprio, mas também é provável que pegue conteúdo que não seja realmente impróprio. Se você aumentar MinConfidence é provável que você garanta que todo o conteúdo detectado seja realmente inapropriado, mas alguns conteúdos podem não ser marcados. Sugerimos experimentar alguns MinConfidence valores em seu conjunto de dados e selecione quantitativamente o melhor valor para seu domínio de dados.

Em seguida, execute cada amostra (imagem ou vídeo) do seu conjunto de testes por meio da API de moderação do Amazon Rekognition (DetectarModeraçãoLabels).

Meça a precisão do modelo em imagens

Você pode avaliar a precisão de um modelo comparando as anotações de verdade do terreno geradas por humanos com as previsões do modelo. Você repete essa comparação para cada imagem de forma independente e, em seguida, agrega em todo o conjunto de teste:

  • Resultados por imagem – Uma previsão de modelo é definida como o par {label_name, confidence_score} (onde a pontuação de confiança >= o limite que você selecionou anteriormente). Para cada imagem, uma previsão é considerada correta quando corresponde à verdade do terreno (GT). Uma previsão é uma das seguintes opções:
    • Verdadeiro Positivo (TP): tanto a previsão quanto o GT são “inseguros”
    • Verdadeiro Negativo (TN): tanto a previsão quanto o GT são “seguros”
    • falso positivo (PF): a previsão diz “inseguro”, mas o GT é “seguro”
    • Falso Negativo (FN): a previsão é “segura”, mas o GT é “inseguro”
  • Resultados agregados em todas as imagens – Em seguida, você pode agregar essas previsões em resultados no nível do conjunto de dados:
    • Taxa de falsos positivos (FPR) – Esta é a porcentagem de imagens no conjunto de teste que são sinalizadas erroneamente pelo modelo como contendo conteúdo não seguro: (FP): FP / (TN+FP).
    • Taxa de falso negativo (FNR) – Esta é a porcentagem de imagens inseguras no conjunto de teste que são perdidas pelo modelo: (FN): FN / (FN+TP).
    • Taxa de verdadeiro positivo (TPR) – Também chamado de recall, calcula a porcentagem de conteúdo inseguro (verdade básica) que é corretamente descoberto ou previsto pelo modelo: TP / (TP + FN) = 1 – FNR.
    • Precisão – Calcula a porcentagem de previsões corretas (conteúdo inseguro) em relação ao número total de previsões feitas: TP / (TP+FP).

Vamos explorar um exemplo. Vamos supor que seu conjunto de teste contenha 10,000 imagens: 9,950 seguras e 50 inseguras. O modelo prevê corretamente 9,800 de 9,950 imagens como seguras e 45 de 50 como inseguras:

  • 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/Recall = 45 / (45 + 5) = 0.9 = 90%
  • Precisão = 45 / (45 + 150) = 0.23 = 23%

Meça a precisão do modelo em vídeos

Se você deseja avaliar o desempenho em vídeos, algumas etapas adicionais são necessárias:

  1. Experimente um subconjunto de quadros de cada vídeo. Sugerimos amostragem uniforme com uma taxa de 0.3–1 quadros por segundo (fps). Por exemplo, se um vídeo for codificado a 24 fps e você quiser amostrar um quadro a cada 3 segundos (0.3 fps), será necessário selecionar um a cada 72 quadros.
  2. Execute esses quadros de amostra por meio da moderação de conteúdo do Amazon Rekognition. Você pode usar nossa API de vídeo, que já amostra quadros para você (a uma taxa de 3 fps), ou usar a API de imagem, nesse caso você deseja amostrar mais esparsamente. Recomendamos a última opção, dada a redundância de informações nos vídeos (frames consecutivos são muito semelhantes).
  3. Calcule os resultados por quadro conforme explicado na seção anterior (resultados por imagem).
  4. Resultados agregados em todo o conjunto de teste. Aqui você tem duas opções, dependendo do tipo de resultado que importa para o seu negócio:
    1. Resultados no nível do quadro – Isso considera todos os quadros amostrados como imagens independentes e agrega os resultados exatamente como explicado anteriormente para imagens (FPR, FNR, recall, precisão). Se alguns vídeos forem consideravelmente mais longos que outros, eles contribuirão com mais quadros para a contagem total, tornando a comparação desequilibrada. Nesse caso, sugerimos alterar a estratégia de amostragem inicial para um número fixo de quadros por vídeo. Por exemplo, você pode amostrar uniformemente de 50 a 100 quadros por vídeo (supondo que os vídeos tenham pelo menos 2 a 3 minutos de duração).
    2. Resultados no nível do vídeo – Para alguns casos de uso, não importa se o modelo é capaz de prever corretamente 50% ou 99% dos quadros em um vídeo. Mesmo uma única previsão insegura errada em um único frame pode acionar uma avaliação humana downstream e apenas vídeos com previsões 100% corretas são realmente considerados corretamente. Se este for o seu caso de uso, sugerimos que você calcule FPR/FNR/TPR nos quadros de cada vídeo e considere o vídeo da seguinte forma:
ID de vídeo Precisão Categorização por vídeo
Resultados agregados em todos os quadros do ID do vídeo

FP total = 0

FN total = 0

Previsões perfeitas
. FP total > 0 Falso Positivo (FP)
. Total FN > 0 Falso Negativo (FN)

Depois de calcular isso para cada vídeo de forma independente, você pode calcular todas as métricas que apresentamos anteriormente:

  • A porcentagem de vídeos sinalizados incorretamente (FP) ou perdidos (FN)
  • Precisão e recuperação

Meça o desempenho em relação às metas

Finalmente, você precisa interpretar esses resultados no contexto de seus objetivos e capacidades.

Primeiro, considere suas necessidades de negócios em relação ao seguinte:

  • Data – Saiba mais sobre seus dados (volume diário, tipo de dados e assim por diante) e a distribuição de seu conteúdo inseguro versus seguro. Por exemplo, é balanceado (50/50), distorcido (10/90) ou muito distorcido (1/99, o que significa que apenas 1% é inseguro)? Compreender essa distribuição pode ajudá-lo a definir suas metas reais de métricas. Por exemplo, o número de conteúdo seguro geralmente é uma ordem de magnitude maior do que o conteúdo não seguro (muito distorcido), tornando isso quase um problema de detecção de anomalias. Nesse cenário, o número de falsos positivos pode superar o número de verdadeiros positivos e você pode usar suas informações de dados (distorção de distribuição, volume de dados e assim por diante) para decidir o FPR com o qual pode trabalhar.
  • Metas de métrica – Quais são os aspectos mais críticos do seu negócio? Reduzir o FPR geralmente tem o custo de um FNR mais alto (e vice-versa) e é importante encontrar o equilíbrio certo que funcione para você. Se você não pode perder nenhum conteúdo inseguro, provavelmente deseja perto de 0% de FNR (100% de recall). No entanto, isso incorrerá no maior número de falsos positivos e você precisará decidir o FPR de destino (máximo) com o qual pode trabalhar, com base em seu pipeline de pós-previsão. Você pode permitir algum nível de falsos negativos para encontrar um equilíbrio melhor e diminuir seu FPR: por exemplo, aceitar um FNR de 5% em vez de 0% pode reduzir o FPR de 2% para 0.5%, reduzindo consideravelmente o número de conteúdos sinalizados.

Em seguida, pergunte a si mesmo quais mecanismos você usará para analisar as imagens sinalizadas. Mesmo que as APIs não forneçam 0% de FPR e FNR, elas ainda podem trazer grandes economias e escala (por exemplo, ao sinalizar apenas 3% de suas imagens, você já filtrou 97% do seu conteúdo). Ao emparelhar a API com alguns mecanismos downstream, como uma força de trabalho humana que revisa o conteúdo sinalizado, você pode alcançar facilmente suas metas (por exemplo, 0.5% de conteúdo sinalizado). Observe como esse emparelhamento é consideravelmente mais barato do que ter que fazer uma revisão humana em 100% do seu conteúdo.

Quando você decidir sobre seus mecanismos de downstream, sugerimos que você avalie a taxa de transferência que pode suportar. Por exemplo, se você tem uma força de trabalho que pode verificar apenas 2% do seu conteúdo diário, sua meta de destino da nossa API de moderação de conteúdo é uma taxa de sinalização (FPR+TPR) de 2%.

Por fim, se a obtenção de anotações de verdade for muito difícil ou muito cara (por exemplo, seu volume de dados é muito grande), sugerimos anotar o pequeno número de imagens sinalizadas pela API. Embora isso não permita avaliações de FNR (porque seus dados não contêm falsos negativos), você ainda pode medir TPR e FPR.

Na seção a seguir, fornecemos uma solução para avaliação de moderação de imagem. Você pode adotar uma abordagem semelhante para avaliação de moderação de vídeo.

Visão geral da solução

O diagrama a seguir ilustra os vários serviços da AWS que você pode usar para avaliar o desempenho da moderação de conteúdo do Amazon Rekognition em seu conjunto de dados de teste.

A avaliação de moderação de conteúdo tem as seguintes etapas:

  1. Carregue seu conjunto de dados de avaliação em Serviço de armazenamento simples da Amazon (Amazônia S3).
  2. Use o Ground Truth para atribuir rótulos de moderação do Ground Truth.
  3. Gere os rótulos de moderação previstos usando a API de moderação pré-treinada do Amazon Rekognition usando alguns valores de limite. (Por exemplo, 70%, 75% e 80%).
  4. Avalie o desempenho de cada limite calculando os verdadeiros positivos, verdadeiros negativos, falsos positivos e falsos negativos. Determine o valor limite ideal para seu caso de uso.
  5. Opcionalmente, você pode personalizar o tamanho da força de trabalho com base em verdadeiros e falsos positivos e usar IA aumentada da Amazon (Amazon A2I) para enviar automaticamente todo o conteúdo sinalizado para sua força de trabalho designada para uma revisão manual.

As seções a seguir fornecem os snippets de código para as etapas 1, 2 e 3. Para obter o código-fonte completo de ponta a ponta, consulte o Caderno Jupyter.

Pré-requisitos

Antes de começar, execute as seguintes etapas para configurar o notebook Jupyter:

  1. Crie uma instância do notebook in Amazon Sage Maker.
  2. Quando o notebook estiver ativo, escolha Abra o Jupyter.
  3. No painel do Jupyter, escolha Novoe escolha terminal.
  4. No terminal, digite o seguinte código:
    cd SageMaker
    git clone https://github.com/aws-samples/amazon-rekognition-code-samples.git

  5. Abra o notebook para este post: content-moderation-evaluation/Evaluating-Amazon-Rekognition-Content-Moderation-Service.ipynb.
  6. Carregue seu conjunto de dados de avaliação para Serviço de armazenamento simples da Amazon (Amazônia S3).

Agora, passaremos pelas etapas 2 a 4 no notebook Jupyter.

Use o Ground Truth para atribuir rótulos de moderação

Para atribuir rótulos no Ground Truth, conclua as etapas a seguir:

  1. Criar um arquivo de entrada de manifesto para seu trabalho do Ground Truth e carregue-o no Amazon S3.
  2. Crie a configuração de rotulagem, que contém todos os rótulos de moderação necessários para o trabalho de rotulagem do Ground Truth. Para verificar o limite do número de categorias de rótulos que você pode usar, consulte Cotas de categoria de rótulo. No trecho de código a seguir, usamos cinco rótulos (consulte o taxonomia hierárquica usada no Amazon Rekognition para mais detalhes) mais uma etiqueta (Safe_Content) que marca o conteúdo como seguro:
    # 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. Crie um modelo de tarefa de trabalhador personalizado para fornecer à força de trabalho do Ground Truth instruções de rotulagem e carregue-o no Amazon S3.
    O trabalho de rótulo do Ground Truth é definido como uma tarefa de classificação de imagem (multi-rótulo). Consulte o código-fonte para obter instruções para personalizar o modelo de instrução.
  4. Decida qual força de trabalho você deseja usar para concluir o trabalho do Ground Truth. Você tem duas opções (consulte o código-fonte para obter detalhes):
    1. Usar um força de trabalho privada em sua própria organização para rotular o conjunto de dados de avaliação.
    2. Usar um força de trabalho pública para rotular o conjunto de dados de avaliação.
  5. Crie e envie um trabalho de rotulagem do Ground Truth. Você também pode ajustar o código a seguir para configurar o parâmetros de trabalho de rotulagem para atender às suas necessidades comerciais específicas. Consulte o código-fonte para obter instruções completas sobre como criar e configurar o trabalho do Ground Truth.
    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),
        },
    }

Depois que o trabalho for enviado, você deverá ver uma saída semelhante à seguinte:

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

Aguarde até que o trabalho de rotulagem no conjunto de dados de avaliação seja concluído com êxito e prossiga para a próxima etapa.

Use a API de moderação do Amazon Rekognition para gerar rótulos de moderação previstos.

O trecho de código a seguir mostra como usar o Amazon Rekognition API de moderação para gerar rótulos de moderação:

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

Avalie o desempenho

Primeiro, você recuperou os rótulos de moderação da verdade dos resultados do trabalho de rotulagem do Ground Truth para o conjunto de dados de avaliação e, em seguida, executou a API de moderação do Amazon Rekognition para obter rótulos de moderação previstos para o mesmo conjunto de dados. Como esse é um problema de classificação binária (conteúdo seguro versus não seguro), calculamos as seguintes métricas (assumindo que o conteúdo não seguro é positivo):

Também calculamos as métricas de avaliação correspondentes:

O snippet de código a seguir mostra como calcular essas métricas:

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

Conclusão

Esta postagem discute os principais elementos necessários para avaliar o aspecto de desempenho do seu serviço de moderação de conteúdo em termos de várias métricas de precisão. No entanto, a precisão é apenas uma das muitas dimensões que você precisa avaliar ao escolher um serviço de moderação de conteúdo específico. É fundamental incluir outros parâmetros, como o conjunto total de recursos do serviço, facilidade de uso, integrações existentes, privacidade e segurança, opções de personalização, implicações de escalabilidade, atendimento ao cliente e preços. Para saber mais sobre a moderação de conteúdo no Amazon Rekognition, visite Moderação de conteúdo do Amazon Rekognition.


Sobre os autores

Métricas para avaliar a moderação de conteúdo no Amazon Rekognition e outros serviços de moderação de conteúdo PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Amit Gupta é arquiteto sênior de soluções de serviços de IA na AWS. Ele é apaixonado por capacitar os clientes com soluções de aprendizado de máquina bem arquitetadas em escala.

Métricas para avaliar a moderação de conteúdo no Amazon Rekognition e outros serviços de moderação de conteúdo PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Davide Modolo é gerente de ciência aplicada no AWS AI Labs. Ele é PhD em visão computacional pela Universidade de Edimburgo (Reino Unido) e é apaixonado por desenvolver novas soluções científicas para problemas de clientes do mundo real. Fora do trabalho, gosta de viajar e praticar qualquer esporte, principalmente futebol.

Métricas para avaliar a moderação de conteúdo no Amazon Rekognition e outros serviços de moderação de conteúdo PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Jian Wu é arquiteto de soluções corporativas sênior na AWS. Ele está na AWS há 6 anos trabalhando com clientes de todos os tamanhos. Ele é apaixonado por ajudar os clientes a inovar mais rapidamente por meio da adoção da nuvem e da IA/ML. Antes de ingressar na AWS, Jian passou mais de 10 anos com foco no desenvolvimento de software, implementação de sistemas e gerenciamento de infraestrutura. Além do trabalho, ele gosta de se manter ativo e passar tempo com sua família.

Carimbo de hora:

Mais de Aprendizado de máquina da AWS