miércoles, enero 10, 2007

Cómo trabajan los AntiSpam

Encontré en CopiaTECH un interesante artículo de tres partes respecto de cómo trabajan los antispam. Para nuestros intereses, es muy importante porque los más modernos de éstos utilizan precisamente la tecnología de Categorización de Textos.

Creo que no está de más decir que me limitaré a traducir lo que dice el documento, aunque en ocasiones (las menos) lo he tenido que adaptar porque la redacción no me ha parecido precisamente clara.

Como no es el tema de mi blog, lo primero es definir spam: diremos que spam es cualquier correo electrónico no deseado y/o solicitado que recibamos.

La evolución de la tecnología anti-spam

A mediados de los 1990s, el método usado para disminuir el flujo de spam
estaba basada en las capacidades tecnológicas únicamente, tales como restringir el "reenvío de correo" (mail relay) de los servidores de correo, que originalmente no fue diseñada específicamente para resolver el problema de correo no deseado.

A finales de los 1990s, emergió la primera tecnología real anti-spam, como fue el filtro para correo masivo no solicitado de Netscape Messaging Server. Así, la mayor parte de los productos que formaban la infraestructura de mensajería no tenía estas capacidades y, para el 2000, estaba claro que los negocios tendrían que jugar un rol controlador de spam para proteger sus propios servidores en red.

También estaba claro que en ese momento las capacidades del software existente en la infraestructura y los productos asociados, como gateways antivirus para email, eran inadecuados y que los organismos estandarizadores de la industria no estaban preocupandose del tema. Esta situación, combinada con el hecho que los casos en la corte norteamericana relacionadas con spam, no tenían efecto aparente en los spammers (N. del T. spammer es quien genera spam), presentandose como un potencial oportunidad de negocio para las tecnologías anti-spam.

Precursores de la tecnología anti-spam

Virtualmente cualquier Simple Mail Transfer Protocos (SMTP) Message Transfer Agent (MTA) (N. del T.: SMTP es el protocolo usado en la transmisión de correo electrónico, mientras que MTA son las unidades encargadas de hacer esta transferencia... en lenguaje coloquial, podemos pensar que un SMTP MTA es un servicio/servidor dedicado a la transmisión de correo) tiene alguna habilidad nativa para controlar las comunicaciones con otros MTAs en Internet. Por ejemplo, Sendmail, el SMTP MTA más ampliamente usado en el mundo, tiene la habilidad de desabilitar el reenvío y limitar las redes desde las que puede aceptar mensajes.

Estas características, mencionadas arriba como precursoras y tecnología de primera generación, no fueron creadas especificamente para solucionar el problema del spam, ni tampoco constituyen una tecnología anti-spam en sí. Hasta hace pocos años, los productos de mensajería vendidos apuntaban a solucionar el problema implementando características rudimentarias como estas y otras como las "listas blancas" y "listas negras" dentro del conjunto básico de características anti-spam. Esta última aproximación aún es evidente en muchos productos que incluyen SMTP MTAs tales como IBM Lotus Domino, que no representa en realidad una tecnología anti-spam.

Las verdaderas tecnologías anti-spam, conocidas como tecnologías de segunda y tercera generación, son desarrollos relativamente recientes. Son tecnologías absolutamente nuevas y difieren completamente de los controles básicos de los MTAs. En particular, los algoritmos Bayesianos y los más recientes avances en análisis de texto, por ejemplo, usando Inteligencia Arficial, son un cambio radical de los pre-existentes mecanismos caracterizados o re-propuestos como tecnología anti-spam.

Tecnología Anti-spam - la primera generación

Es difícil distinguir claramente entre las características pre-existentes disponibles en la mayoría de los MTAs y las características de primera generación anti-spam porque estas últimas se siguieron usando (N. del T.: y se usan) aún cuando las nuevas herramientas estaban ampliamente desarrolladas para combatir el spam. Por ejemplo, las "Pruebas de Sobre y Cabecera", así como las "Pruebas DNS Simple", fueron motivados inicialmente por el combate al spam, pero no pueden distinguir directamente entre los mensajes spam y otros mensajes.

(Integrantes de la primera generación son:)

Controles básicos MTA: los controles MTA, que restringen la comunicación basada en redes y nombres de dominios, por ejemplo, para prevenir el "reenvío"; no son una tecnología anti-spam. Algunas de estas características son anteriores al problema del spam e inicialmente existieron con propósitos de seguridad.

Listas blancas y negras: las listas blancas y negras en un MTA son extensiones lógicas de los controles MTA básicos usados como una herramienta en bruto para controlar el spam. Aunque las listas blancas y negras son una característica anti-spam importante, ellas no son una tecnología nueva porque ellas son simplemente extensiones y no se apartan de los controles clásicos. Los productos antivirus y de seguridad en los MTAs tenían estas características antes de ser ser caracterizados como una característica anti-spam.

Búsqueda de palabras simples: Uno de los primeros métodos usados para combatir el spam fue la búsqueda simple de palabras. Esta funcionalidad existió antes de que el spam fuera un problema mayor en Internet, como parte de del filtrado de contenido y soluciones de comodidad y productos antivirus para e-mail. Esta aproximación suele ser usada para identificar un subconjunto de los mensajes que son spam, pero no es efectivo porque falla al reconocer variaciones de las palabras o variaciones en el contexto, y pueden resultar en muchos falsos positivos (correos legítimos identificados como spam). Los antivirus para servidores de correo y productos de seguridad tenían esta característica antes de ser usados como herramientas anti-spam. Evadir la búsqueda simple de palabras es trivial para los spammer usando variaciones de las palabras o cambiando las palabras por alguna alternativa.

Prueba del sobre y cabecera del mensaje: La prueba del sobre implica que el MTA revisa la información pasada a través del protocolo SMTP, por ejemplo el emisor y receptor del mensaje, se usa cuando se transfiere el mensaje y se rechaza si esta no es correcta o válida. La prueba de la cabecera entrega al MTA la habilidad de comprobar la información guardada dentro del mensaje, tal como el Para, De y Fecha y rechazar los mensajes si la cabecera está malformada o contiene información inválida. Mientras que estas características son obviamente muy usadas para eliminar el spam, ellas ahora sólo garantizan que el mensaje está correctamente construído y transmitido, y no si ellos fueron enviados por spammer o si el mensaje contiene spam; así, no son una tecnología anti-spam en rigor. También pueden ocurrir problemas en las cabeceras de los mensajes y en los sobres por razones no necesariamente relacionadas con el spam.

Prueba DNS simple: Mirando la información del emisor intercambiada durante el uso del protocolo SMTP y usando el sistema de dominio de nombres (DNS) de Internet, se puede validar la información intercambiada, por ejemplo verificar la existencia del dominio Internet del emisor o el nombre de la máquina que envía el mensaje (mirando el nombre asociado con la dirección Internet del emisor). La prueba DNS simple ayuda a prevenir el spoofing (cuando una máquina se enmascara como otra usando el mismo nombre). Aunque la prueba DNS simple es una herramienta significativa para combatir el spam, ella no es una tecnología anti-spam como tal porque sólo verifica la dirección y nombre de máquina de quien envía, no si quien envía en un spammer o si el mensaje contiene spam. La prueba DNS simple en una tecnología débil porque puede indicar un problema para una compleja variedad de razones legítimas y no necesariamente spam.

Tecnología anti-spam - la segunda generación

Las listas negras en tiempo real y las redes de firmas son la segunda generación de tecnologías anti-spam porque no son la reutilización simple o extensión de las características pre-existentes de los MTA con propósitos anti-spam. La segunda generación de tecnologías anti-spam existe específicamente con el propósito de detener el spam y está ampliamente mejorada respecto de los métodos anteriores.

Listas negras en tiempo real (RBLs): aunque son tecnicamente una prueba DNS cuando están basadas en direcciones Internet en vez de nombres de dominio; las RBLs fueron la primera real tecnología anti-spam. El concepto detrás del RBLs es simplemente mantener una lista de direcciones Internet que envían spam y las bloquea para transmisiones futuras. La tecnología tiene algunos (d)efectos que permiten burlarla, como cambiar la dirección IP o reenviar mensajes a través de un tercero previamente no identificado como spammer. Del mismo modo, los nombres de dominio pueden ser fácilmente adquiridos, enmascarados o hechos; así que los dominios desde los que spammer envían no pueden depender de los detectores de spam. Hay algunas RBLs externas que bloquean dominios o direcciones IP a partir de reclamos.

Redes de firmas: Son una significativa y relativamente nueva tecnología para combatir el spam. El concepto de redes de firmas es coleccionar e identificar mensajes spam generando una única "firma" que puede ser usada para identificar un mensaje dado. Dado que los mensajes spam son enviado de manera masiva (muchas copias del mismo mensaje) esta aproximación, si es soportada por un número suficiente de ejemplos de mensajes spam, puede detener un porcentaje significativo de correo no deseado. No obstante, el concepto es dependiente del tiempo empleado en la operación de la generación de la firma para comenzar a funcionar.

Tecnología anti-spam - la nueva generación

Identificar spam (por firmas) y spammers (con RBLs) está destinado a fallar. Los spammers pueden fácilmente burlar las RBLs y frecuentemente una buena red de firma toma tiempo en identificar mensajes de spam; además que nunca detectan el 100% de estos.

Filtros Bayesianos: Los filtros bayesianos, que es una aproximación estadística a la detección de spam basado en la probabilidad de spam de las palabras individuales. Usando como premisa la idea que el contenido comercial de los mensajes spam es el talón de Aquiles, el desarrollo de los filtros bayesianos cambió el foco de los esfuerzos anti-spam de redes y protocolos al contenido de los mensajes. Los filtros bayesianos simples , aunque efectivos en la mayoría del spam, pueden ser burlados fácilmente. Esta aproximación confía en el "entrenamiento" de los filtros procesando el spam conocido para generar un sistema basado en una calificación (score) de "palabras spam" que son usadas para evaluar los nuevos mensajes. Los spammers aprenden rápidamente a variar continuamente el contenido de los mensajes agregando palabras neutrales o variaciones de las palabras (como sustituyendo numeros por letras como el número "0" por la letra "O"). Con estas variaciones de las palabras neutrales y otros contenidos de mensajes y creando nuevas variaciones a las palabras, los filtros bayesianos pueden ser burlados consistentemente, y están siempre un paso atrás de los spam más recientes.

Inteligencia Artificial y máquinas de aprendizaje: Mientras las técnicas ya implementadas basadas en filtros bayesianos (por ejemplo, tomando en cuenta la proximidad de las palabras, tirando los tags HTML usados por los spammers a palabras riesgosas, etc.) continúan siendo ampliamente usadas, una aproximación más inteligente se hace necesaria. Alrededor del 2003, la necesidad de nuevas y especializadas tecnologías anti-spam era clara; y se veía venir un número de tecnologías de punta necesarias de desarrollar; tales como Corvigo, Proofpoint, y otras. Las aproximaciones de estas compañías fueron basadas en algoritmos de software originados en el campo de la inteligencia artificial, que es una rama de las ciencias de la computación. Fundamentalmente estas tecnologías realizan clasificación de texto usando tecnicas no-bayesianas. Así, ellas pueden adaptarse automáticamente a los cambios de las características del spam. Para hacer esto se han usado técnicas de máquinas de aprendizaje.

El futuro de la tecnología anti-spam

El spam existe en parte porque, cuando el SMTP fue originalmente creado, sólo gobiernos y universidades legitimadas, entidades universitarias e industriales, fueron conectadas a Internet. Ningún concepto de ilegitimidad o abuso de internet o del email había porque era un sistema cerrado. Con la comercialización de Internet en los 1990s, la situación cambió pero no así las tecnologías. Organizaciones de estandarización hoy trabajan especificando nuevas tecnologías que ayudarán a eliminar el spam forzando un alto grado de legitimidad en los emisores de mensajes. Esfuerzos anteriores en esta línea, se promovieron como tecnologías anti-spam, pero ellas intentaron legitimizar el correo electrónico comercial masivo, considerado por muchos como spam.

En contraste, los actuales esfuerzos basados en estandars para establecer una de autentificación de los emisores usando certificados digitales a los dominios de llaves para generar firmas digitales para los mensajes, pueden ser empleados por todas las empresas, en ves de sólo los emisores de correo masivo comercial. Los nuevos estándars, sin embargo, demoraran varios años en ser incorporados en una mayoría de los MTAs de Internet.

lunes, enero 08, 2007

Signal Processing Approach

Estaba revisando una presentación en SlideShare de la Universidad de Vigo, en España, bajo el nombre de A Signal Processing Approach to Distributional clustering of terms in Automatic Text Categorization.

Revisado el documento casi diapositiva a diapositiva, presento un resumen/recordatorio.

Lo primero es que define Categorización Automática de Textos como la categorización automática de documentos de texto en categorías predefinidas dado un conjunto de documentos de textos pre-categorizados. Esto es importante, pues entiendo se basa en aprendizaje por ejemplos, por lo que para que el método pueda implementarse, debe tener disponible un conjunto de entrenamiento / aprendizaje.

El método de Procesamiento de Señales propuesto, se enfoca en solucionar la problemática de la dimensionadlidad para el espacio de términos usados en la indexación. Para ello utiliza un Clustering Distribuido, definiendo esto como una efectiva y poderosa aproximación en la extracción de términos que ayuda a la reducción del espacio original:
  • Los términos son caracterizados por sus funciones de probabilidad de distribución sobre las diferentes categorías de documentos.
  • El clustering o agrupación es hecha siguiendo una medida de similaridad de las funciones anteriores.

El método de Clustering Distribuido tiene:
  • Medidas no basadas en información teórica
  • Pero sí basadas en una nueva interpretación del "Procesamiento de Señales", primero eliminado los términos que causan ruido y agrupando los restantes términos que sí aportan información siguiendo medidas de correlación o interdependencia.
Los resultados que se declararon fueron:
  • Re-confirmar los resultados obtenidos por otros algoritmos de Clustering Distribuido, que consiguen drásticas mejoras en la efectividad de la categorización, en especial con bajo número de características.
  • Y que los 20 conjuntos de grupos de noticias referenciados pueden ser indexados con una mínima pérdida de efectividad en la categorización con sólo 20 clusters.
Esto lo encontré interesante: la metodología para hacer el clustering:
  • Los documentos de textos son representados por la clásica indexación Bag of Words
  • El peso de cada palabra corresponde al número de veces que la palabra aparece en cada documento
  • Cada término es caracterizado por la probabilidad de la función de distribución en la variable discreta de la categoría.

Esta probabilidad de la función de distribución viene dada por una fórmula demasiado lenta de escribir en el blog, pero que se puede revisar en el documento original, pero básicamente está dada por:

"Las probabilidades son calculadas dividiendo el número de ocurrencias del término en todos los documentos a través de cada categoría, por el número total de ocurrencias del término en todos los documentos del conjunto de datos".

El término se asume como la señal de probabilidad, por lo que lo primero es eliminar las señales de ruido, esto es, las señales con una distribución muy plana, las que no entregan información de la variable para la categoría. Estas señales presentan una variaza baja.

Luego se agrupan señales similares; esto es, se basa en el grado de similaridad entre señales medidas por el coeficiente de correlación, el que está definido en el documento, y que tiene por hipótesis la equiprobabilidad de las categorías.

El algoritmo que en definitiva se utilizó, fue uno de clustering duro, esto es:
  • Se ordenó el vocabulario por varianza decreciente
  • Se eliminaron aquellos términos con varianza menor que un umbral dado (señales de ruido)
  • Se inizializaron M clusters aislados con los M términos
  • Cíclicamente se colocaron todos los términos en uno de los clusters, juntando aquellos correlacionados y creando nuevos clusters a partir de ellos.

Para permirir el juntar terminos pobremente correlacionados en el mismo cluster, se implementó:
  • Ventanas Dinámicas Expansión/Compresión
    • Las ventanas estáticas de dimensión M se expanden y comprimen en forma dinámica.
  • Clustering suave
    • Cualquier término puede ser compartido en más de un cluster.

Para la simulación del comportamiento, se usó 20 grupos de noticias con más de 20 mil documentos particionados en 20 grupos de noticias similares.

El filtro inicial incluyó: remover las stop words, luego las palabras no alfabéticas, y finalmente aquellas que aparecían en menos de 4 documentos o estaban menos de 4 veces en el conjunto de datos.

Luego de realizar la categorización, se graficaron los resultados Porcentaje de acierto v/s número de términos por cluster. Para ello, se utilizó el algoritmo Ingenuo de Bayes con funciones de selección Ganancia de Información, Chi cuadrado, Clustering duro y suave con ventanas estáticas, clustering duro y suave con ventanas dinámicas.

Según los autores, los restultados son notablemente mejores en clustering distribuido que con las funciones de selección clásicas, como Chi cuadrado y Ganancia de la información.

También concluyen que las curvas presentan un incremento inicial abrupto sobre los 20 clusters.

Por último, consigen asintomáticamente una efectividad de de alrededor del 79%.

Se declara que el cluster producido es bueno para 20 o más agrupaciones (igual al número de categorías definidas en la colección de 20 grupos de noticias); y que para el caso de los 20 clusters producidos, cada categoría está principalmente identificada por sólo uno y diferente cluster en una probabilidad del 0.9474 al 0.7552.

Sé que cada cual sacará sus comentarios del texto, pero en mi opinión, a pesar que se muestra como principal ventaja del método la alta efectividad con baja cantidad de términos; en mi opinión los resultados graficados no me son del todo convincentes, sobre todo por la falta de mayor información respecto al corpus de datos y cómo se seleccionaron los ejemplos de entrenamiento.

Pero sí creo que este documento tiene aspectos muy interesantes, y por eso mi comentario.

En primer lugar, cualquier estudio que se realice sobre categorización de textos es ya importante. En mi opinión, los elementos destacados del trabajo están en la eliminación de los términos generadores de ruido; y concuerdo con los autores que es una idea absolutamente correcta, funcional y necesaria.

También es plausible el haber hecho el estudio con clustering distribuido. La mayor parte de las herramientas comerciales que he visto no salen del Ingenuo de Bayes con raíces de palabras, que si bien es un avance, me parece que los sistemas multivaluares (que prueban más de una medida para la selección) nos permiten obtener mejores resultados y, con los computadores de ahora, con tiempos de respuesta aceptables.

Por último, en mi opinión la cantidad de ejemplos y el ambiente del que fueron extraídos es bastante imparcial, por lo que da crédito a los resultados obtenidos. Sería interesante ver cómo se comporta el mismo procedimiento en otros ambientes, como pueden ser con ejemplos de medicina.