Como moderamos anúncios

Como moderamos anúncios

Cada serviço cujos usuários podem criar seu próprio conteúdo (UGC - User-generated content) é forçado não apenas a resolver problemas de negócios, mas também a colocar as coisas em ordem no UGC. A moderação de conteúdo de baixa qualidade ou de baixa qualidade pode, em última análise, reduzir a atratividade do serviço para os usuários, podendo inclusive encerrar sua operação.

Hoje falaremos sobre a sinergia entre Yula e Odnoklassniki, o que nos ajuda a moderar efetivamente os anúncios em Yula.

A sinergia em geral é algo muito útil e, no mundo moderno, quando as tecnologias e tendências mudam muito rapidamente, pode se transformar em um salva-vidas. Por que desperdiçar recursos escassos e tempo inventando algo que já foi inventado e lembrado antes de você?

Pensamos a mesma coisa quando nos deparamos com a tarefa completa de moderar o conteúdo do usuário – imagens, textos e links. Nossos usuários enviam milhões de conteúdos para Yula todos os dias e, sem processamento automático, é completamente impossível moderar todos esses dados manualmente.

Portanto, usamos uma plataforma de moderação pronta, que naquela época nossos colegas de Odnoklassniki haviam concluído até um estado de “quase perfeição”.

Por que Odnoklassniki?

Todos os dias, dezenas de milhões de usuários acessam a rede social e publicam bilhões de conteúdos: de fotos a vídeos e textos. A plataforma de moderação Odnoklassniki ajuda a verificar grandes volumes de dados e a neutralizar spammers e bots.

A equipe de moderação do OK acumulou muita experiência, pois vem aprimorando sua ferramenta há 12 anos. É importante que eles possam não apenas compartilhar suas soluções prontas, mas também personalizar a arquitetura de sua plataforma para atender às nossas tarefas específicas.

Como moderamos anúncios

De agora em diante, por questões de brevidade, simplesmente chamaremos a plataforma de moderação OK de “plataforma”.

Como tudo funciona

A troca de dados entre Yula e Odnoklassniki é estabelecida através Apache Kafka.

Por que escolhemos esta ferramenta:

  • Em Yula, todos os anúncios são pós-moderados, portanto, inicialmente não era necessária uma resposta síncrona.
  • Se acontecer um parágrafo incorreto e Yula ou Odnoklassniki não estiverem disponíveis, inclusive devido a alguns picos de carga, os dados do Kafka não desaparecerão em lugar nenhum e poderão ser lidos mais tarde.
  • A plataforma já estava integrada ao Kafka, então a maioria dos problemas de segurança foram resolvidos.

Como moderamos anúncios

Para cada anúncio criado ou modificado pelo usuário no Yula, é gerado um JSON com dados, que é colocado no Kafka para posterior moderação. A partir do Kafka, os anúncios são carregados na plataforma, onde são julgados automática ou manualmente. Anúncios ruins são bloqueados por um motivo, e aqueles em que a plataforma não encontra violações são marcados como “bons”. Em seguida, todas as decisões são enviadas de volta para Yula e aplicadas no serviço.

No final das contas, para Yula tudo se resume a ações simples: enviar um anúncio para a plataforma Odnoklassniki e receber de volta uma resolução “ok”, ou porque não “ok”.

Processamento automático

O que acontece com o anúncio depois que ele chega à plataforma? Cada anúncio é dividido em diversas entidades:

  • Nome,
  • descrição,
  • fotos,
  • categoria e subcategoria do anúncio selecionadas pelo usuário,
  • цена.

Como moderamos anúncios

A plataforma então realiza clustering para cada entidade para encontrar duplicatas. Além disso, o texto e as fotografias são agrupados de acordo com diferentes esquemas.

Antes do agrupamento, os textos são normalizados para remover caracteres especiais, letras alteradas e outros tipos de lixo. Os dados recebidos são divididos em N-gramas, cada um dos quais com hash. O resultado são muitos hashes exclusivos. A semelhança entre os textos é determinada por Medida de Jaccard entre os dois conjuntos resultantes. Se a similaridade for maior que o limite, os textos serão mesclados em um cluster. Para acelerar a busca por clusters semelhantes, são usados ​​​​minhash e hashing sensível à localidade.

Várias opções para colar imagens foram inventadas para fotografias, desde a comparação de imagens pHash até a busca por duplicatas usando uma rede neural.

O último método é o mais “severo”. Para treinar o modelo, foram selecionados trios de imagens (N, A, P) em que N não é semelhante a A e P é semelhante a A (é uma semi-duplicata). Então a rede neural aprendeu a tornar A e P o mais próximo possível, e A e N o mais longe possível. Isso resulta em menos falsos positivos em comparação com simplesmente obter incorporações de uma rede pré-treinada.

Quando a rede neural recebe imagens como entrada, ela gera um vetor N(128)-dimensional para cada uma delas e é feita uma solicitação para avaliar a proximidade da imagem. Em seguida, é calculado um limite no qual imagens próximas são consideradas duplicadas.

O modelo é capaz de encontrar spammers com habilidade que fotografam especificamente o mesmo produto de ângulos diferentes para contornar a comparação de pHash.

Como moderamos anúnciosComo moderamos anúncios
Um exemplo de fotos de spam coladas por uma rede neural como duplicatas.

Na fase final, os anúncios duplicados são pesquisados ​​simultaneamente por texto e imagem.

Se dois ou mais anúncios estiverem agrupados em um cluster, o sistema inicia o bloqueio automático, que, por meio de determinados algoritmos, seleciona quais duplicatas excluir e quais deixar. Por exemplo, se dois usuários tiverem as mesmas fotos em um anúncio, o sistema bloqueará o anúncio mais recente.

Depois de criados, todos os clusters passam por uma série de filtros automáticos. Cada filtro atribui uma pontuação ao cluster: qual a probabilidade de ele conter a ameaça que esse filtro identifica.

Por exemplo, o sistema analisa a descrição de um anúncio e seleciona categorias potenciais para ele. Em seguida, pega aquele com probabilidade máxima e compara-o com a categoria especificada pelo autor do anúncio. Se não corresponderem, o anúncio será bloqueado para a categoria errada. E como somos gentis e honestos, informamos diretamente ao usuário qual categoria ele precisa selecionar para que o anúncio passe na moderação.

Como moderamos anúncios
Notificação de bloqueio por categoria incorreta.

O aprendizado de máquina se sente em casa em nossa plataforma. Por exemplo, com sua ajuda, pesquisamos nomes e descrições de produtos proibidos na Federação Russa. E os modelos de redes neurais “examinam” meticulosamente as imagens para ver se elas contêm URLs, textos de spam, números de telefone e as mesmas informações “proibidas”.

Para os casos em que tentam vender um produto proibido disfarçado de algo legal e não há texto no título ou na descrição, utilizamos marcação de imagens. Para cada imagem podem ser adicionadas até 11 mil tags diferentes que descrevem o que está na imagem.

Como moderamos anúncios
Eles estão tentando vender o narguilé disfarçando-o de samovar.

Paralelamente aos filtros complexos, também funcionam os simples, resolvendo problemas óbvios relacionados ao texto:

  • antimat;
  • Detector de URL e número de telefone;
  • menção a mensageiros instantâneos e outros contatos;
  • preço reduzido;
  • anúncios em que nada está à venda, etc.

Hoje, todo anúncio passa por uma peneira fina de mais de 50 filtros automáticos que tentam encontrar algo ruim no anúncio.

Se nenhum dos detectores funcionou, uma resposta será enviada a Yula informando que o anúncio “provavelmente” está em perfeita ordem. Nós mesmos usamos essa resposta e os usuários que assinaram o vendedor recebem uma notificação sobre a disponibilidade de um novo produto.

Como moderamos anúncios
Notificação de que o vendedor tem um novo produto.

Como resultado, cada anúncio é “coberto” de metadados, alguns dos quais são gerados quando o anúncio é criado (endereço IP do autor, agente do usuário, plataforma, geolocalização, etc.), e o restante é a pontuação emitida por cada filtro .

Filas de anúncios

Quando um anúncio chega à plataforma, o sistema o coloca em uma das filas. Cada fila é criada usando uma fórmula matemática que combina metadados de anúncios de forma a detectar quaisquer padrões incorretos.

Por exemplo, você pode criar uma fila de anúncios na categoria “Telefones celulares” de usuários Yula supostamente de São Petersburgo, mas seus endereços IP são de Moscou ou de outras cidades.

Como moderamos anúncios
Um exemplo de anúncios postados por um usuário em diferentes cidades.

Ou você pode formar filas com base nas pontuações que a rede neural atribui aos anúncios, organizando-as em ordem decrescente.

Cada fila, conforme fórmula própria, atribui uma pontuação final ao anúncio. Então você pode proceder de diferentes maneiras:

  • especifique o limite no qual um anúncio receberá um determinado tipo de bloqueio;
  • enviar todos os anúncios da fila aos moderadores para revisão manual;
  • ou combine as opções anteriores: especifique o limite de bloqueio automático e envie aos moderadores os anúncios que não atingiram esse limite.

Como moderamos anúncios

Por que essas filas são necessárias? Digamos que um usuário carregue a foto de uma arma de fogo. A rede neural atribui uma pontuação de 95 a 100 e determina com 99% de precisão que há uma arma na imagem. Mas se o valor da pontuação estiver abaixo de 95%, a precisão do modelo começa a diminuir (esta é uma característica dos modelos de redes neurais).

Com isso, é formada uma fila com base no modelo de pontuação, e aqueles anúncios que receberam entre 95 e 100 são automaticamente bloqueados como “Produtos Proibidos”. Anúncios com pontuação abaixo de 95 são enviados aos moderadores para processamento manual.

Como moderamos anúncios
Beretta de chocolate com cartuchos. Somente para moderação manual! 🙂

Moderação manual

No início de 2019, cerca de 94% de todos os anúncios no Yula eram moderados automaticamente.

Como moderamos anúncios

Caso a plataforma não consiga decidir sobre alguns anúncios, ela os envia para moderação manual. Odnoklassniki desenvolveu sua própria ferramenta: as tarefas para moderadores exibem imediatamente todas as informações necessárias para tomar uma decisão rápida se o anúncio é adequado ou deve ser bloqueado, indicando o motivo.

E para que a qualidade do serviço não seja prejudicada durante a moderação manual, o trabalho das pessoas é monitorado constantemente. Por exemplo, no fluxo de tarefas, o moderador vê “armadilhas” – anúncios para os quais já existem soluções prontas. Se a decisão do moderador não coincidir com a decisão final, o moderador comete um erro.

Em média, um moderador gasta 10 segundos verificando um anúncio. Além disso, o número de erros não passa de 0,5% de todos os anúncios verificados.

Moderação popular

Os colegas do Odnoklassniki foram ainda mais longe e aproveitaram a “ajuda do público”: escreveram um aplicativo de jogo para a rede social no qual é possível marcar rapidamente uma grande quantidade de dados, destacando algum mau sinal - Moderador Odnoklassniki (https://ok.ru/app/moderator). Uma boa forma de aproveitar a ajuda dos usuários OK que estão tentando tornar o conteúdo mais agradável.

Como moderamos anúncios
Um jogo em que os usuários marcam fotos que possuem um número de telefone.

Qualquer fila de anúncios na plataforma pode ser redirecionada para o jogo Odnoklassniki Moderator. Tudo o que os usuários do jogo marcam é enviado aos moderadores internos para revisão. Este esquema permite bloquear anúncios para os quais os filtros ainda não foram criados e, simultaneamente, criar amostras de treinamento.

Armazenando resultados de moderação

Salvamos todas as decisões tomadas durante a moderação para não processarmos novamente os anúncios sobre os quais já tomamos uma decisão.

Milhões de clusters são criados todos os dias com base em anúncios. Com o tempo, cada cluster é rotulado como “bom” ou “ruim”. Cada novo anúncio ou sua revisão, entrando em um cluster com uma marca, recebe automaticamente uma resolução do próprio cluster. Existem cerca de 20 mil resoluções automáticas desse tipo por dia.

Como moderamos anúncios

Se nenhum novo anúncio chegar ao cluster, ele será removido da memória e seu hash e solução serão gravados no Apache Cassandra.

Quando a plataforma recebe um novo anúncio, ela primeiro tenta encontrar um cluster semelhante entre os já criados e tirar dele uma solução. Se não existir tal cluster, a plataforma vai até Cassandra e olha lá. Você achou isso? Ótimo, aplica a solução no cluster e envia para Yula. Há uma média de 70 mil decisões “repetidas” todos os dias – 8% do total.

Resumindo

Usamos a plataforma de moderação Odnoklassniki há dois anos e meio. Gostamos dos resultados:

  • Moderamos automaticamente 94% de todos os anúncios por dia.
  • O custo de moderação de um anúncio foi reduzido de 2 rublos para 7 copeques.
  • Graças à ferramenta pronta, esquecemos os problemas de gerenciamento de moderadores.
  • Aumentamos o número de anúncios processados ​​manualmente em 2,5 vezes com o mesmo número de moderadores e orçamento. A qualidade da moderação manual também aumentou devido ao controle automatizado, e oscila em torno de 0,5% de erros.
  • Cobrimos rapidamente novos tipos de spam com filtros.
  • Conectamos rapidamente novos departamentos à moderação "Yula Verticais". Desde 2017, Yula adicionou as verticais Imobiliário, Vagas e Auto.

Fonte: habr.com

Adicionar um comentário