De más de 300 mil millones de correos electrónicos enviado todos los días, al menos la mitad son spam. Los proveedores de correo electrónico tienen la enorme tarea de filtrar el spam y asegurarse de que sus usuarios reciban los mensajes importantes.
La detección de spam es complicada. La línea entre los mensajes no deseados y los que no lo son es difusa y los criterios cambian con el tiempo. De varios esfuerzos para automatizar la detección de spam, aprendizaje automático hasta ahora ha demostrado ser el enfoque más eficaz y favorecido por los proveedores de correo electrónico. Aunque todavía vemos correos electrónicos no deseados, un vistazo rápido a la carpeta de correo no deseado mostrará cuánto spam se elimina de nuestras bandejas de entrada todos los días gracias a los algoritmos de aprendizaje automático.
¿Cómo determina el aprendizaje automático qué correos electrónicos son spam y cuáles no? A continuación, se ofrece una descripción general de cómo funciona la detección de spam basada en el aprendizaje automático.
El reto
El correo basura viene en diferentes sabores. Muchos son solo mensajes molestos que tienen como objetivo llamar la atención sobre una causa o difundir información falsa. Algunos de ellos son correos electrónicos de phishing con la intención de atraer al destinatario para que haga clic en un enlace malicioso o descargue un malware.
Lo único que tienen en común es que son irrelevantes para las necesidades del destinatario. Un algoritmo detector de spam debe encontrar una manera de filtrar el spam y, al mismo tiempo, evitar marcar los mensajes auténticos que los usuarios quieren ver en su bandeja de entrada. Y debe hacerlo de una manera que pueda coincidir con las tendencias en evolución, como el pánico causado por pandemias, noticias electorales, interés repentino en las criptomonedas y otros.
Las reglas estáticas pueden ayudar. Por ejemplo, demasiados destinatarios con CCO, un cuerpo de texto muy corto y temas en mayúsculas son algunas de las características de los correos electrónicos no deseados. Asimismo, algunos dominios de remitentes y direcciones de correo electrónico pueden asociarse con spam. Pero, en su mayor parte, la detección de spam se basa principalmente en analizar el contenido del mensaje.
Aprendizaje automático Naïve Bayes
Los algoritmos de aprendizaje automático utilizan modelos estadísticos para clasificar los datos. En el caso de la detección de spam, un modelo de aprendizaje automático capacitado debe poder determinar si la secuencia de palabras encontradas en un correo electrónico está más cerca de las que se encuentran en los correos electrónicos no deseados o las seguras.
Diferentes algoritmos de aprendizaje automático pueden detectar spam, pero uno que ha ganado atractivo es el algoritmo “ingenuo de Bayes”. Como su nombre lo indica, el ingenuo Bayes se basa en «Teorema de Bayes, ”Que describe la probabilidad de un evento basado en conocimientos previos.
La razón por la que se le llama «ingenuo» es que asume que las características de las observaciones son independientes. Supongamos que desea utilizar el aprendizaje automático ingenuo de Bayes para predecir si lloverá o no. En este caso, sus características podrían ser la temperatura y la humedad, y el evento que pronostica es la lluvia.
En el caso de la detección de spam, las cosas se complican un poco. Nuestra variable objetivo es si un correo electrónico dado es «spam» o «no spam» (también llamado «ham»). Las características son las palabras o combinaciones de palabras que se encuentran en el cuerpo del correo electrónico. En pocas palabras, queremos averiguar calcular la probabilidad de que un mensaje de correo electrónico sea spam en función de su texto.
El problema aquí es que nuestras funciones no son necesariamente independientes. Por ejemplo, considere los términos «a la parrilla», «queso» y «sándwich». Pueden tener significados separados dependiendo de si aparecen sucesivamente o en diferentes partes del mensaje. Otro ejemplo son las palabras «no» e «interesante». En este caso, el significado puede ser completamente diferente dependiendo de dónde aparezcan en el mensaje. Pero a pesar de que la independencia de características es complicada en datos de texto, el clasificador ingenuo de Bayes ha demostrado ser eficiente en procesamiento natural del lenguaje tareas si lo configura correctamente.

Los datos
La detección de spam es una aprendizaje automático supervisado problema. Esto significa que debe proporcionar a su modelo de aprendizaje automático un conjunto de ejemplos de mensajes de spam y de jamón y dejar que encuentre los patrones relevantes que separan las dos categorías diferentes.
La mayoría de los proveedores de correo electrónico tienen sus propios conjuntos de datos de correos electrónicos etiquetados. Por ejemplo, cada vez que marca un correo electrónico como spam en su cuenta de Gmail, le proporciona a Google datos de entrenamiento para sus algoritmos de aprendizaje automático. (Nota: el algoritmo de detección de spam de Google es mucho más complicado de lo que estamos examinando aquí, y la empresa tiene mecanismos para evitar el abuso de su función «Informar como spam»).

Hay algunos conjuntos de datos de código abierto, como el conjunto de datos de spam de la Universidad de California, Irvine, y el conjunto de datos de spam de Enron. Pero estos conjuntos de datos tienen fines educativos y de prueba y no son de mucha utilidad para crear modelos de aprendizaje automático a nivel de producción.
Las empresas que alojan sus propios servidores de correo electrónico pueden crear fácilmente conjuntos de datos especializados que ajustan sus modelos de aprendizaje automático al idioma específico de su línea de trabajo. Por ejemplo, el conjunto de datos de una empresa que proporciona servicios financieros se verá muy diferente al de una empresa de construcción.
Entrenamiento del modelo de aprendizaje automático

Por lo tanto, uno de los pasos clave en el desarrollo de un modelo de aprendizaje automático detector de spam es preparar los datos para el procesamiento estadístico. Antes de entrenar a su ingenuo clasificador de Bayes, el corpus de correos electrónicos no deseados y de radioaficionado debe seguir ciertos pasos.
Considere un conjunto de datos que contiene las siguientes oraciones:
Steve quiere comprar sándwiches de queso a la parrilla para la fiesta
Sally está asando pollo para cenar
Compré un poco de queso crema para el pastel
Los datos de texto deben ser «tokenizados» antes de ser alimentados a algoritmos de aprendizaje automático, tanto al entrenar sus modelos como luego al hacer predicciones sobre nuevos datos. En esencia, la tokenización significa dividir sus datos de texto en partes más pequeñas. Si divide el conjunto de datos anterior en palabras simples (también llamado unigrama), tendrá el siguiente vocabulario. Tenga en cuenta que solo he incluido cada palabra una vez.
Steve, quiere, comprar, parrilla, queso, sándwiches, para, la, fiesta, Sally, es, parrilla, algo, pollo, cena, yo, compré, crema, pastel
Podemos eliminar las palabras que aparecen tanto en correos electrónicos no deseados como en spam y no ayudan a diferenciar las dos clases. Estos se llaman «Para las palabras«E incluir términos como la, para, Es para, y algunos. En el conjunto de datos anterior, eliminar las palabras vacías reducirá el tamaño de nuestro vocabulario en cinco palabras.
También podemos utilizar otras técnicas como «Derivación» y «lematización», que transforman las palabras a sus formas básicas. Por ejemplo, en nuestro conjunto de datos de ejemplo, comprar y compró tienen una raíz común, al igual que A la parrilla y parrilla. La derivación y la lematización pueden ayudar a simplificar aún más nuestro modelo de aprendizaje automático.
En algunos casos, debería considerar el uso de bigrams (tokens de dos palabras), trigrams (token de tres palabras) o n-gramas más grandes. Por ejemplo, la tokenización del conjunto de datos anterior en forma de bigrama nos dará términos como «tarta de queso» y el uso de trigramas producirá «sándwich de queso a la parrilla».
Una vez que haya procesado sus datos, tendrá una lista de términos que definen las características de su modelo de aprendizaje automático. Ahora debe determinar qué palabras o, si está usando n-gramas, secuencias de palabras son relevantes para cada una de sus clases de spam y radioaficionado.
Cuando entrena su modelo de aprendizaje automático en el conjunto de datos de entrenamiento, a cada término se le asigna una ponderación en función de la cantidad de veces que aparece en los correos electrónicos no deseados y de spam. Por ejemplo, si «ganar un gran premio» es una de sus características y solo aparece en los correos electrónicos no deseados, entonces se le dará una mayor probabilidad de ser spam. Si la “reunión importante” solo se menciona en los correos electrónicos de radioaficionados, entonces su inclusión en un correo electrónico aumentará la probabilidad de que ese correo electrónico se clasifique como no spam.
Una vez que haya procesado los datos y asignado los pesos a las funciones, su modelo de aprendizaje automático estará listo para filtrar el spam. Cuando llega un nuevo correo electrónico, el texto se convierte en token y se ejecuta con la fórmula de Bayes. Cada término en el cuerpo del mensaje se multiplica por su peso y la suma del peso determina la probabilidad de que el correo electrónico sea spam. (En realidad, el cálculo es un poco más complicado, pero para simplificar las cosas, nos ceñiremos a la suma de pesos).
Detección avanzada de spam con aprendizaje automático

Naïve Bayes no es el único algoritmo de aprendizaje automático que puede detectar spam. Otros algoritmos populares incluyen redes neuronales recurrentes (RNN) y transformadores, que son eficientes en el procesamiento de datos secuenciales como correo electrónico y mensajes de texto.
Una última cosa a tener en cuenta es que la detección de spam siempre es un trabajo en progreso. A medida que los desarrolladores utilizan IA y otras tecnologías para detectar y filtrar mensajes molestos de los correos electrónicos, los spammers encuentran nuevas formas de jugar con el sistema y hacer que su basura pase los filtros. Es por eso que los proveedores de correo electrónico siempre confían en la ayuda de los usuarios para mejorar y actualizar sus detectores de spam.
Este artículo fue publicado originalmente por Ben Dickson en TechTalks, una publicación que examina las tendencias en tecnología, cómo afectan la forma en que vivimos y hacemos negocios, y los problemas que resuelven. Pero también discutimos el lado malo de la tecnología, las implicaciones más oscuras de la nueva tecnología y lo que debemos tener en cuenta. Puede leer el artículo original aquí. [LINK]
Publicado el 3 de enero de 2021-22: 00 UTC