Como abrir comentarios e non quedar afogado no spam

Como abrir comentarios e non quedar afogado no spam

Cando o teu traballo é crear algo fermoso, non tes que falar demasiado sobre iso, porque o resultado está ante os ollos de todos. Pero se borras inscricións dos valos, ninguén notará o teu traballo mentres os valos se vexan decentes ou ata que borres algo mal.

Calquera servizo onde poidas deixar un comentario, revisar, enviar unha mensaxe ou cargar imaxes tarde ou cedo enfróntase ao problema do spam, a fraude e a obscenidade. Isto non se pode evitar, pero hai que tratalo.

Chámome Mikhail, traballo no equipo Antispam, que protexe aos usuarios dos servizos Yandex de tales problemas. O noso traballo é poucas veces notado (e iso é bo!), así que hoxe vouvos contar máis cousas sobre el. Aprenderás cando a moderación é inútil e por que a precisión non é o único indicador da súa eficacia. Tamén falaremos de xurar co exemplo dos gatos e dos cans e de por que ás veces é útil "pensar como un xurador".

Cada vez aparecen máis servizos en Yandex onde os usuarios publican o seu contido. Podes facer unha pregunta ou escribir unha resposta en Yandex.Q, discutir noticias do xardín en Yandex.District, compartir as condicións do tráfico en conversas en Yandex.Maps. Pero cando a audiencia do servizo crece, faise atractivo para os estafadores e os spammers. Veñen e enchen comentarios: ofrecen cartos fáciles, anuncian curas milagrosas e prometen beneficios sociais. Por mor dos spammers, algúns usuarios perden cartos, mentres que outros perden o desexo de pasar o tempo nun servizo descoidado e cheo de spam.

E este non é o único problema. Esforzámonos non só por protexer aos usuarios dos estafadores, senón tamén por crear un ambiente cómodo para a comunicación. Se a xente se enfronta a insultos e insultos nos comentarios, é probable que se marchen e nunca volvan. Isto significa que tamén debes ser capaz de xestionar isto.

Web limpa

Como adoita suceder con nós, as primeiras novidades naceron na Busca, na parte que loita contra o spam nos resultados de busca. Hai uns dez anos apareceu alí a tarefa de filtrar contido para adultos para buscas familiares e para consultas que non requirían respostas da categoría de maiores de 18 anos. Así apareceron os primeiros dicionarios de pornografía e xuramento escritos manualmente, que foron reabastecidos por analistas. A tarefa principal foi clasificar as solicitudes en aquelas onde é aceptable mostrar contido para adultos e onde non. Para esta tarefa, recompiláronse marcas, construíronse heurísticas e adestrouse modelos. Así apareceron os primeiros desenvolvementos para filtrar contido non desexado.

Co paso do tempo, o UGC (contido xerado polo usuario) comezou a aparecer en Yandex: mensaxes escritas polos propios usuarios e Yandex só publica. Polos motivos descritos anteriormente, moitas mensaxes non se puideron publicar sen miralas; era necesaria a moderación. Entón decidiron crear un servizo que proporcionase protección contra o spam e os atacantes para todos os produtos Yandex UGC e utilizar os desenvolvementos para filtrar contido non desexado na Busca. O servizo chamábase "Web limpa".

Novas tarefas e axuda dos impulsores

Ao principio, só funcionou para nós unha simple automatización: os servizos enviáronnos textos e nós realizamos dicionarios de obscenidades, dicionarios pornográficos e expresións regulares: os analistas compilaban todo manualmente. Pero co paso do tempo, o servizo utilizouse nun número crecente de produtos Yandex e tivemos que aprender a traballar con novos problemas.

Moitas veces, en lugar dunha revisión, os usuarios publican un conxunto de cartas sen sentido, intentando aumentar os seus logros, ás veces anuncian a súa empresa en opinións da empresa dun competidor e, ás veces, simplemente confunden ás organizacións e escriben nunha crítica sobre unha tenda de animais: " Peixe perfectamente cocido!" Quizais algún día a intelixencia artificial aprenda a comprender perfectamente o significado de calquera texto, pero agora a automatización ás veces afronta peor que os humanos.

Quedou claro que non podíamos facelo sen marcado manualmente e engadimos unha segunda etapa ao noso circuíto: envialo para a inspección manual por unha persoa. Alí incluíronse aqueles textos publicados para os que o clasificador non viu ningún problema. Podes imaxinar facilmente a escala desta tarefa, polo que non só confiamos nos avaliadores, senón que tamén aproveitamos a "sabedoría da multitude", é dicir, recorremos aos asistentes para pedir axuda. Eles son os que nos axudan a identificar o que perdeu a máquina e, así, ensinano.

Caché intelixente e hashing LSH

Outro problema que atopamos ao traballar cos comentarios foi o spam, ou máis precisamente, o seu volume e velocidade de difusión. Cando a audiencia de Yandex.Region comezou a crecer rapidamente, os spammers chegaron alí. Aprenderon a evitar expresións regulares cambiando lixeiramente o texto. O spam, por suposto, aínda se atopou e eliminouse, pero na escala de Yandex, centos de persoas podían ver unha mensaxe inaceptable publicada incluso durante 5 minutos.

Como abrir comentarios e non quedar afogado no spam

Por suposto, isto non nos conveña e fixemos caché de texto intelixente baseado en LSH (hash sensible á localidade). Funciona así: normalizamos o texto, eliminamos ligazóns del e cortamos en n gramos (secuencias de n letras). A continuación, calculáronse os hash de n-gramas e construíuse a partir deles o vector LSH do documento. A cuestión é que textos semellantes, aínda que fosen lixeiramente modificados, convertéronse en vectores semellantes.

Esta solución permitiu reutilizar os veredictos de clasificadores e tolokers para textos similares. Durante un ataque de spam, tan pronto como a primeira mensaxe pasaba a exploración e entraba na caché cun veredicto de "spam", todas as novas mensaxes similares, incluso as modificadas, recibiron o mesmo veredicto e elimináronse automaticamente. Máis tarde, aprendemos a adestrar e volver adestrar automaticamente os clasificadores de spam, pero este "caché intelixente" quedou connosco e aínda así a miúdo nos axuda.

Bo clasificador de textos

Sen ter tempo para facer un descanso na loita contra o spam, decatámonos de que o 95% do noso contido está moderado manualmente: os clasificadores só reaccionan ás infraccións e a maioría dos textos son bos. Cargamos produtos de limpeza que en 95 casos de 100 dan a cualificación "Todo está ben". Tiven que facer un traballo inusual: facer clasificadores de bo contido, afortunadamente o marcado acumulado durante este tempo.

O primeiro clasificador tiña o seguinte aspecto: lematizamos o texto (reducimos as palabras á súa forma inicial), botamos todas as partes auxiliares do discurso e utilizamos un "dicionario de bos lemas" preparado previamente. Se todas as palabras do texto son "boas", entón o texto completo non contén ningunha violación. En diferentes servizos, este enfoque deu inmediatamente de 25 a 35% de automatización do marcado manual. Por suposto, este enfoque non é o ideal: é fácil combinar varias palabras inocentes e obter unha declaración moi ofensiva, pero permitiunos chegar rapidamente a un bo nivel de automatización e deunos tempo para adestrar modelos máis complexos.

As seguintes versións de bos clasificadores de texto xa incluían modelos lineais, árbores de decisión e as súas combinacións. Para marcar groserías e insultos, por exemplo, probamos a rede neuronal BERT. É importante comprender o significado dunha palabra no contexto e a conexión entre palabras de diferentes frases, e BERT fai un bo traballo con isto. (Por certo, recentemente compañeiros de News contou, como se usa a tecnoloxía para unha tarefa non estándar - atopar erros nas cabeceiras.) Como resultado, foi posible automatizar ata o 90% do fluxo, dependendo do servizo.

Precisión, integridade e rapidez

Para desenvolver, cómpre comprender cales son os beneficios que traen certos clasificadores automáticos, os cambios neles e se a calidade das comprobacións manuais está degradando. Para iso, utilizamos métricas de precisión e recordatorio.

A precisión é a proporción de veredictos correctos entre todos os veredictos sobre contido incorrecto. Canto maior sexa a precisión, menos falsos positivos. Se non prestas atención á precisión, en teoría podes eliminar todo o correo lixo e as obscenidades e, xunto con eles, a metade das boas mensaxes. Por outra banda, se confías só na precisión, entón a mellor tecnoloxía será a que non atrape a ninguén. Polo tanto, tamén hai un indicador de integridade: a proporción de contido mal identificado entre o volume total de contido malo. Estas dúas métricas equilibran entre si.

Para medir, mostramos todo o fluxo de entrada de cada servizo e entregamos mostras de contido aos avaliadores para a súa avaliación experta e comparación con solucións de máquinas.

Pero hai outro indicador importante.

Escribín arriba que centos de persoas poden ver unha mensaxe inaceptable mesmo en 5 minutos. Así que contamos cantas veces mostramos á xente contido malo antes de ocultalo. Isto é importante porque non é suficiente para traballar de forma eficiente, tamén hai que traballar rapidamente. E cando construímos unha defensa contra os xuros, sentímolo ao máximo.

Antimatismo usando o exemplo de gatos e cans

Unha pequena digresión lírica. Algúns poden dicir que a obscenidade e os insultos non son tan perigosos como as ligazóns maliciosas e non son tan molestos como o spam. Pero esforzámonos por manter unhas condicións cómodas de comunicación para millóns de usuarios e á xente non lle gusta volver aos lugares onde se lles insulta. Non é por nada que a prohibición de insultos e insultos estea expresada nas normas de moitas comunidades, incluso en Habré. Pero divagamos.

Os dicionarios de xuramento non poden facer fronte a toda a riqueza da lingua rusa. A pesar do feito de que só hai catro raíces xuradas principais, a partir delas podes facer unha infinidade de palabras que non poden ser capturadas por ningún motor normal. Ademais, pódese escribir parte dunha palabra en transliteración, substituír letras por combinacións similares, reorganizar letras, engadir asteriscos, etc. Ás veces, sen contexto, é basicamente imposible determinar que o usuario quixo dicir unha palabra de insulto. Respectamos as regras de Habr, polo que non o demostraremos con exemplos vivos, senón con gatos e cans.

Como abrir comentarios e non quedar afogado no spam

"Lei", dixo o gato. Pero entendemos que o gato dixo unha palabra diferente...

Comezamos a pensar en algoritmos de "coincidencia difusa" para o noso dicionario e nun preprocesamento máis intelixente: proporcionamos transliteración, pegamos espazos e signos de puntuación, buscamos patróns e escribimos expresións regulares separadas neles. Este enfoque deu resultados, pero moitas veces reduciu a precisión e non proporcionou a integridade desexada.

Entón decidimos "pensar como xuradores". Comezamos nós mesmos a introducir ruído nos datos: reordenamos letras, xeramos erros tipográficos, substituímos letras por grafías similares, etc. O marcado inicial para isto levouse a cabo aplicando dicionarios mat a grandes corpus de textos. Se tomas unha frase e a retorces de varias maneiras, acabas con moitas frases. Deste xeito, pode aumentar a mostra de adestramento decenas de veces. Só restaba adestrar sobre a piscina resultante algún modelo máis ou menos intelixente que tivese en conta o contexto.

Como abrir comentarios e non quedar afogado no spam

É demasiado cedo para falar da decisión final. Aínda estamos experimentando con enfoques para este problema, pero xa podemos ver que unha rede convolucional simbólica simple de varias capas supera significativamente os dicionarios e os motores habituais: é posible aumentar tanto a precisión como a lembranza.

Por suposto, entendemos que sempre haberá formas de evitar ata a automatización máis avanzada, especialmente cando o asunto é tan perigoso: escribe de forma que unha máquina estúpida non o entenda. Aquí, como na loita contra o spam, o noso obxectivo non é erradicar a posibilidade mesma de escribir algo obsceno, a nosa tarefa é asegurarnos de que o xogo non vale a pena.

Abrir a oportunidade de compartir a súa opinión, comunicarse e comentar non é difícil. É moito máis difícil conseguir condicións seguras, cómodas e un trato respectuoso coas persoas. E sen isto non haberá desenvolvemento de ningunha comunidade.

Fonte: www.habr.com

Engadir un comentario