Identifique perfis significativos no VK

É realmente difícil distinguir bots de pessoas. Eu realmente não posso fazer isso sozinho. Mas, por outro lado, criei uma boa bicicleta ... um método para distinguir na VK “pessoas interessantes” de “não muito interessantes”. Em termos de comunicação em rede, é claro, e não na vida.



Se alguém está batendo nos seus amigos, mas à primeira vista você não consegue entender que é uma pessoa normal ou que diabos sabe, esse método pode fornecer algumas informações úteis sobre o usuário. É improvável usá-lo para identificar grupos-alvo relevantes, porque a VK limitou a capacidade de baixar o conteúdo das paredes dos usuários e é lento para prejudicar. I.e. é possível, mas é necessário refinar, otimizar e desviar bastante para contornar as restrições.

Ideia principal


A idéia principal é que bots, personalidades chatas (em termos de rede), todos os tipos de colecionadores de amigos-assinantes realmente não se importam com quem eles são amigos, embora possam "escrever" bastante postagens significativas em suas paredes. Mas personalidades chatas não leem especialmente a fita e os robôs não precisam disso. Além disso, isso não é necessário para colecionadores de assinantes e estrelas.

Mas para as pessoas que têm pelo menos alguns interesses comunicativos em relação à VK, é muito importante com quem elas são amigas. E, é claro, eles não serão capazes de coletar 6.000 caras em seus amigos que compartilharão apenas republicações, fotos de mulheres nuas e propaganda de barris de drenagem com desconto em um armazém em Novy Urengoy.

E, com base nisso, você pode tentar definir um critério para destacar as pessoas interessadas no conteúdo de seus feeds. Essas pessoas mostram as características de uma pessoa real. Uma pessoa que, no mínimo, realiza um ato comunicativo unilateral significativo. Hoje em dia, isso não é tão pequeno.

Dois critérios vieram imediatamente à minha mente:

  • O dicionário médio dos amigos de uma pessoa para as últimas N postagens.
  • A porcentagem de postagens sem textos de amigos da pessoa que está sendo verificada.
E com base em algo assim, você já pode tentar criar algum tipo de modelo que distingue pessoas interessantes de não muito interessantes.

E como eu acabei verificando isso?


Escolhi 50 amigos aleatórios e 50 seguidores aleatórios que atendiam a alguns critérios que eliminariam falsas, crianças ou pessoas muito óbvias que não usavam tudo. Digite que o usuário não deve ser desativado e, ao mesmo tempo, deve ter mais de 50 amigos existentes.

Examinei todas essas pessoas e identifiquei qual delas é um "bot" e qual não é. Naturalmente, a maioria dos amigos era real e a maioria dos assinantes se ofereceu para comprar algo (mas algumas pessoas reais estavam lá).

Além disso, peguei as primeiras 100 postagens de cada um dos amigos da pessoa que estava sendo verificada, se havia tantas na parede. Para cada pessoa, considerei dois desses fatores:

  1. O tamanho médio do dicionário de amigos de uma pessoa para as primeiras 100 postagens. I.e. 50 amigos, cada um com aproximadamente 100 postagens. Para cada amigo, todas as palavras de 100 postagens são agrupadas em uma pilha, carimbadas e o número de palavras exclusivas de um amigo é considerado. Além disso, a média para todos os 50 amigos é considerada. A partir desse valor, a raiz foi obtida - SQRT (Dic).
  2. Se um amigo tiver mais de 60 das 100 postagens sem palavras, ele será marcado como "perdido". A porcentagem de pessoas "perdidas" em amigos é o segundo fator - porcentagem.

Outro fator apareceu por acaso. Este é o logaritmo de Idy no VK log10 (ID)

Sobre isso, treinei todos em regressão logística e obtive o seguinte:

log (OR) = 9,92-1,537 * log10 (ID) + 0,067 * SQRT (Dic) -0,023 * Porcentagem

Para a parte de teste da amostra, obtivemos um classificador muito bom com AUC = 0,93. Aqui está uma curva ROC :


Curva ROC do classificador que determina o conteúdo da página de uma pessoa

Algumas questões são levantadas pela importância do VC ID para classificar o conteúdo de uma pessoa, mas parece que, infelizmente, funciona dessa maneira. Quanto mais o ID for de 1, maior a probabilidade de ser apenas um bot que é feito para anunciar microempréstimos. Sem ID, o classificador também funciona, mas pior. AUC = 0,78. Isso não é bom direto, mas também não é inútil direto.

De qualquer forma, a decisão final sobre a utilidade do personagem depende do tomador de decisão.

Verificação adicional


Peguei todos os seus 5.000 assinantes de um de meus colegas, onde, naturalmente, 95% da escória de publicidade foi enviada e a regressão foi executada sem treinamento adicional. Com um ponto de corte de 20%, os resultados foram de TP = 78%, FP = 11% . Ou seja, em geral, para uma pessoa arbitrária, isso também funciona mais ou menos menos.

Eles podem fazer bots que passam neste teste?


Sim, é fácil gerar um bot com algumas postagens pseudo-significativas cercadas por amigos, mas até agora ninguém precisa. Bem, é difícil se preocupar com conteúdo diferente, porque se todos os bots geram a mesma coisa, isso também é fácil de reconhecer.

É possível criar um aplicativo que verifique as pessoas por ID?


Provavelmente possível, mas estou detalhando o que é o VK. Se alguém quiser, deixe-o fazer. Parece que o método está descrito, sua ideia é simples.

É muito comum?


Chega. Mas de repente alguém será útil como base para seus desenvolvimentos. Esse método pode ser facilmente complicado, por exemplo, considerando não apenas o comprimento dos dicionários, mas também o conteúdo. Aqui você já pode usar toda a força da PNL e treinar conteúdo. Você ainda pode usar classificadores mais complexos: árvores, redes neurais, etc. Tudo isso pode ser complicado, mas é importante que mesmo os simples dêem algo interessante.

Source: https://habr.com/ru/post/pt422871/


All Articles