Filtrando spam a partir de dados recuperados

8

Certa vez, ouvi dizer que filtrar spam usando listas negras não é uma boa abordagem, pois algum usuário que está procurando entradas no seu conjunto de dados pode estar procurando informações específicas das fontes bloqueadas. Também seria um fardo validar continuamente o estado atual de cada remetente de spam bloqueado, verificando se o site / domínio ainda divulga os dados de spam.

Considerando que qualquer abordagem deve ser eficiente e escalonável, para oferecer suporte à filtragem de conjuntos de dados muito grandes, quais são as estratégias disponíveis para eliminar spam de maneira não tendenciosa?

Edit : se possível, qualquer exemplo de estratégia, mesmo que apenas a intuição por trás dela, seja muito bem-vindo junto com a resposta.

Rubens
fonte

Respostas:

5

A filtragem de spam, especialmente no email, foi revolucionada pelas redes neurais. Aqui estão alguns documentos que fornecem uma boa leitura sobre o assunto:

Sobre redes neurais e o futuro do spam AC Cosoi, MS Vlad, V. Sgarciu http://ceai.srait.ro/index.php/ceai/article/viewFile/18/8

Detecção Inteligente de Filtro de Spam com Base em Palavras Usando Redes Multi-Neurais Ann Nosseir, Khaled Nagati e Islam Taj-Eddin http://www.ijcsi.org/papers/IJCSI-10-2-1-17-21.pdf

Detecção de spam usando redes neurais adaptativas: teoria da ressonância adaptativa David Ndumiyana, Richard Gotora e Tarisai Mupamombe http://onlineresearchjournals.org/JPESR/pdf/2013/apr/Ndumiyana%20et%20al.pdf

EDIT: A intuição básica por trás do uso de uma rede neural para ajudar na filtragem de spam é fornecer um peso aos termos com base na frequência com que eles estão associados ao spam.

As redes neurais podem ser treinadas mais rapidamente em um ambiente supervisionado - você fornece explicitamente a classificação da sentença no ambiente de conjunto de treinamento. Sem entrar no âmago da questão, a idéia básica pode ser ilustrada com estas frases:

Text = "Como a perda da patente do Viagra afetará a Pfizer", Spam = false Text = "Viagra barato compre agora", Spam = true Text = "Farmácia on-line Viagra Cialis Lipitor", Spam = true

Para uma rede neural de dois estágios, o primeiro estágio calculará a probabilidade de spam com base na existência da palavra na frase. Então, do nosso exemplo:

viagra => 66% buy => 100% Pfizer => 0% etc.

Então, para o segundo estágio, os resultados no primeiro estágio são usados ​​como variáveis ​​no segundo estágio:

viagra & buy => 100% Pfizer & viagra => 0%

Essa idéia básica é executada para muitas das permutações de todas as palavras em seus dados de treinamento. Os resultados finais, uma vez treinados, são basicamente apenas uma equação que, com base no contexto das palavras na frase, pode atribuir uma probabilidade de spam. Defina o limite de spam e filtre os dados acima do limite.

neone4373
fonte
11
+1 Obrigado pelas referências. Você tem algum pequeno exemplo ou poderia mostrar apenas uma intuição por trás de uma das abordagens? Não conheço redes neurais, mas posso verificar se o exemplo exige essa base de conhecimento.
Rubens
Você poderia ser mais específico sobre seu caso de uso? A estratégia pode variar bastante, dependendo de como você tende a implementar a solução.
neone4373
Quero dizer, eu gostaria de ver qual é a ideia por trás de uma abordagem diferente. Por exemplo, se eu lhe dissesse o que é feito usando listas negras (o que sabemos que não é bom), eu poderia descrever o algoritmo como: varre o conjunto de dados procurando entradas contendo "viagra"; adicione essas entradas à lista negra. Eu só gostaria de ver uma descrição de alto nível de uma metodologia / algoritmo . Eles coletam informações de uso de rede de spam e colocam um classificador de rede neural ou o que fazem?
Rubens
1

As listas negras não têm valor por vários motivos:

  1. Eles são fáceis de configurar e dimensionar - é apenas um armazenamento de chave / valor, e você provavelmente pode apenas reutilizar parte de sua lógica de cache para a implementação mais básica.
  2. Dependendo do tamanho e do tipo do ataque de spam, provavelmente haverá termos ou URLs muito específicos sendo usados. É muito mais rápido inserir esse termo em uma lista negra do que aguardar a adaptação do seu modelo.
  3. Você pode remover itens tão rapidamente quanto os adicionou.
  4. Todo mundo entende como eles funcionam e qualquer administrador pode usá-los.

A chave para combater o spam é o monitoramento . Verifique se você tem algum tipo de interface mostrando quais itens estão na sua lista negra, com que frequência eles foram atingidos nos últimos 10 minutos / hora / dia / mês e a capacidade de adicionar e remover itens com facilidade.

Você deseja combinar vários modelos e táticas diferentes de detecção de spam. As redes neurais parecem ser uma boa sugestão, e eu recomendo analisar os padrões de comportamento do usuário, além do conteúdo. Os seres humanos normais não fazem coisas como enviar lotes de 1.000 emails a cada 30 segundos por 12 horas consecutivas.

alaiacano
fonte