scieee AI-readable full text Open interactive document viewer

Análisis del uso de las redes neuronales artificiales en el diseño de filtros antispam : una propuesta basada en arquitecturas neuronales no supervisadas

Cabrera León, Ylermi

Abstract

El spam, o correo no deseado enviado masivamente, es una amenaza que afecta al correo electrónico y otros medios de comunicación telemática. Su alto volumen de circulación genera pérdidas temporales y económicas considerables. Se presenta una solución a este problema: un sistema inteligente híbrido de filtrado antispam, basado en redes neuronales artificiales (RNA) no supervisadas. Consta de una etapa de preprocesado y de otra de procesado, basadas en distintos modelos de computación: programada (con 2 fases: manual y computacional) y neuronal (mediante mapas autoorganizados de Kohonen, SOM), respectivamente. Este sistema ha sido optimizado usando, como cuerpo de datos, ham de “Enron Email” y spam de dos fuentes diferentes. Se analiza la calidad y el rendimiento del mismo mediante diferentes métricas.

Full text

PROYECTO DE FIN DE CARRERA INGENIERÍA EN INFORMÁTICA Análisis del uso de las Redes Neuronales Artificiales en el diseño de filtros antispam Una propuesta basada en Arquitecturas Neuronales No Supervisadas Ylermi Cabrera León Tutores: Carmen Paz Suárez Araujo Patricio García Báez 09 de Diciembre de 2015 Carmen Paz Suárez Araujo Catedrática de Universidad Escuela de Ingeniería Informática Universidad de Las Palmas de Gran Canaria y Patricio García Báez Profesor Contratado-Doctor Departamento de Ingeniería Informática y de Sistemas Universidad de La Laguna CERTIFICAN: que la memoria titulada "Análisis del uso de las Redes Neuronales Artificiales en el diseño de filtros antispam. Una propuesta basada en Arquitecturas Neuronales No Supervisadas" ha sido realizada por Ylermi Cabrera León bajo nuestra dirección y constituye su Proyecto de Fin de Carrera de Ingeniería en Informática. En Las Palmas de Gran Canaria, a 09 de Diciembre de 2015 Carmen Paz Suárez Araujo Patricio García Báez 3 4 Agradecimientos Gracias a mi tutora, Carmen Paz, por aceptar mi propuesta no supervisada de filtro antispam. Más aún, porque siguió confiando en mí pese a su, parcial, ignorancia de los acontecimientos extraacadémicos en los que me ví envuelto y por los que me ví gravemente afectado. Por el mismo motivo debo agradecer a mi otro tutor, Patricio, que me ayudó a perfilar y encauzar el trabajo, algunas veces desde la "lejana" Tenerife. Agradezco a mis padres por servirme de apoyo en todos los ámbitos durante la realización de este PFC. Termino agradeciendo a mi novia por sus ánimos, los cuales me dieron la fuerza necesaria tanto para salir del hoyo como para terminar este proyecto. 5 6 ÍNDICE Agradecimientos.................................................................................................................................5 Resumen............................................................................................................................................11 Capítulo 1. Introducción..................................................................................................................13 1.1 Motivaciones.......................................................................................................................14 1.2 Objetivos.............................................................................................................................15 1.2.1 Metodología y plan de trabajo................................................................................15 1.3 Correo electrónico: spam y ham.........................................................................................16 1.3.1 Formato de los mensajes.........................................................................................18 1.3.2 Proceso de envío.....................................................................................................19 1.4 Computación neuronal........................................................................................................21 1.4.1 Clasificación de Redes Neuronales Artificiales......................................................25 1.4.2 Mapas autoorganizados de Kohonen......................................................................28 1.4.3 Medición de la calidad............................................................................................33 1.4.3.1 Calidad del mapa.................................................................................................33 1.4.3.2 Rendimiento del clasificador................................................................................34 1.5 Estado de la cuestión..........................................................................................................36 1.5.1 Clasificación según la fuente de información.........................................................37 1.5.1.1 Contenido del correo electrónico.........................................................................37 1.5.1.2 Feedback o retroalimentación del usuario...........................................................38 1.5.1.3 Información relativa al sistema............................................................................38 1.5.2 Clasificación según el método de diseño................................................................39 1.5.2.1 Manuales..............................................................................................................39 1.5.2.2 Basados en técnicas de aprendizaje automático...................................................40 1.5.2.2.1 Supervisados...........................................................................................41 1.5.2.2.2 No supervisados......................................................................................42 1.5.2.2.3 Semisupervisados....................................................................................43 Capítulo 2. Diseño de filtros antispam. Cuerpo de datos y etapa de preprocesado...................45 2.1 Cuerpo de datos..................................................................................................................46 2.2 Sistema inteligente para la detección de spam...................................................................49 2.2.1 Etapa de preprocesado............................................................................................51 2.2.1.1 Otros autores........................................................................................................51 2.2.1.2 Preprocesado híbrido...........................................................................................54 2.2.1.2.1 Objetivos.................................................................................................54 2.2.1.2.2 Categorías de palabras.............................................................................54 2.2.1.2.3 Eficiencia en la implementación..............................................................58 2.2.1.2.4 Fases del preprocesado............................................................................59 2.2.1.2.5 Categorización de palabras manual vs preprocesado de la fase 3: tamaños y diferencias 65 2.2.2 Etapa de procesado.................................................................................................67 2.3 Entorno de trabajo..............................................................................................................67 2.3.1 MATLAB................................................................................................................67 2.3.2 SOM Toolbox..........................................................................................................68 2.3.3 Parallel Computing Toolbox..................................................................................69 2.3.4 Hardware...............................................................................................................70 Capítulo 3. Desarrollo de filtro antispam basado en mapas autoorganizados de Kohonen. Implementación y resultados...........................................................................................................71 3.1 Características de la red utilizada......................................................................................72 3.1.1 Características de la arquitectura neuronal utilizada..............................................72 7 3.1.2 Conjuntos de datos de entrada................................................................................73 3.2 Descripción de funciones de los toolboxes utilizadas.........................................................74 3.2.1 Del SOM Toolbox...................................................................................................74 3.2.2 Del Parallel Computing Toolbox............................................................................74 3.3 Implementación del filtro antispam. Resultados y discusión..............................................75 3.3.1 Parámetros del SOM y del preprocesado................................................................75 3.3.2 Resultados y discusión............................................................................................76 3.3.2.1 Coste temporal.....................................................................................................90 Capítulo 4. Conclusiones y trabajos futuros..................................................................................93 4.1 Conclusiones.......................................................................................................................94 4.2 Trabajos futuros..................................................................................................................96 Bibliografía........................................................................................................................................99 8 Índice de figuras Figura 1: Metodología evolutiva incremental.................................................................................................16 Figura 2: Estructura principal y ejemplo no real del formato de un mensaje de correo electrónico................18 Figura 3: Esquema explicativo del envío de un correo electrónico. Fuente: Wikipedia..................................20 Figura 4: Partes de una neurona biológica......................................................................................................21 Figura 5: Sinapsis eléctrica y química en las neuronas biológicas. Fuente: www.physicsforums.com...........23 Figura 6: Partes de una neurona artificial y sus correspondientes en la neurona biológica.............................23 Figura 7: Diferentes áreas del cerebro humano forman mapas topográficos y se especializan en funciones concretas. Fuente: Wikipedia..........................................................................................................................28 Figura 8: Vecindad topológica con forma de función gaussiana, indicando el grado de excitación de las neuronas según la distancia lateral con la ganadora. Fuente: (Leow 2014).....................................................29 Figura 9: Reducción de la vecindad topológica con el paso del tiempo. Fuente: (Leow 2014).......................30 Figura 10: Diferentes tipos de vecindad: Von Neumann (4 vecinos), hexagonal (6) y Moore (8). Fuente: Gama Platform Grid Species (code.google.com)............................................................................................30 Figura 11: Los conceptos de BMU y vecindad (de Moore) sobre la estructura de un SOM (2-D). Fuente: Richard M. Clark (NTL World)......................................................................................................................31 Figura 12: Estabilidad de los estados: metaestable (1), estable o de mínima energía (3) e inestable (2 y 4).. .32 Figura 13: Espacio ROC, línea de decisión aleatoria y 4 clasificadores discretos: A, B, C y C'. Fuente: Wikipedia.......................................................................................................................................................36 Figura 14: División del conjunto original en tres subconjuntos: entrenamiento, ajuste y testeo.....................40 Figura 15: Esquema del sistema inteligente para la detección de spam..........................................................50 Figura 16: Diagrama de flujo sobre las relaciones entre las distintas fases de nuestro preprocesado..............59 Figura 17: Diagrama de flujo de la fase 1 de nuestro preprocesado................................................................61 Figura 18: Diagrama de flujo de la fase 2 de nuestro preprocesado................................................................62 Figura 19: Diagrama de flujo de la fase 3 de nuestro preprocesado................................................................64 Figura 20: Diferencia entre los conjuntos A y B (en color amarillo). Fuente: matematicaabelortega.blogspot.com.es...........................................................................................................65 Figura 21: Curvas ROC de 8 mejores SOM Top 25 – Escenario 1 – Fase de Entrenamiento-Ajuste..............86 Figura 22: Curvas ROC de 5 mejores SOM Top 10 – Escenario 1 – Fase de Entrenamiento-Ajuste..............86 Figura 23: Curvas ROC de 5 mejores SOM Top 10 – Escenario 2 – Fase de Entrenamiento-Ajuste..............87 Figura 24: Curvas ROC de 2 mejores SOM Top 25 – Escenario 2 – Fase de Entrenamiento-Ajuste..............87 Figura 25: Curva ROC del mejor SOM Top 50 – Escenario 2 – Fase de Entrenamiento-Ajuste.....................88 Figura 26: Curva ROC del mejor SOM Top 75 – Escenario 2 – Fase de Entrenamiento-Ajuste.....................88 Figura 27: Curvas ROC de 2 mejores SOM Top 95 – Escenario 2 – Fase de Entrenamiento-Ajuste..............89 Figura 28: Curvas ROC de 2 mejores SOM Top 100 – Escenario 2 – Fase de Entrenamiento-Ajuste............89 Figura 29: Curvas ROC de los 2 mejores SOM – Ambos escenarios – Fase de Testeo...................................90 9 principio. El plan de trabajo seguido se compone del siguiente orden de tareas: 1. Estudiar el tema de los correos electrónicos: terminología, tecnología, filtros, etc. 2. Estudiar las Redes Neuronales Artificiales, poniendo mayor énfasis en las Arquitecturas Neuronales No Supervisadas. 3. Analizar las investigaciones precedentes relativas al filtrado antispam, tanto si se basan como si no en RNA. 4. Realizar un análisis de los diversos corpora de correos electrónicos existentes. 5. Adquirir soltura en el uso de las herramientas informáticas (Ej.: entorno de desarrollo, toolboxes9, lenguaje de programación, Sistema Operativo...) que se pretendan utilizar. 6. Desarrollar un método de preprocesado de los datos. 7. Construir y analizar un filtro antispam basado en RNA con aprendizaje no supervisado. 1.3 Correo electrónico: spam y ham El correo electrónico es un servicio de red por el cual se intercambian mensajes digitales entre un emisor y uno o varios receptores a través de Internet u otras redes de ordenadores. Como es habitual en las telecomunicaciones, cada estándar es definido mediante la divulgación de su correspondiente Request For Comments (RFC) o Petición de Comentarios, un conjunto, en la actualidad bastante numeroso, de publicaciones con la descripción de, principalmente, protocolos, procedimientos, comentarios e ideas sobre diversos aspectos del funcionamiento de Internet y otras redes. Las RFC son publicadas por la Internet Engineering Task Force (IETF, consorcio de colaboración técnica más importante en Internet) como unos documentos en formato ASCII, en lengua inglesa y manteniendo entre ellas una cierta estructura. Son identificadas unívocamente mediante un número: 706 (sobre el problema del correo no deseado), 768 (protocolo de transporte UDP), 3629 (conjunto de caracteres UTF-8), 4250 (administración remota SSH), 4880 (criptografía de clave pública PGP), etc. Antes de que un documento sea 9 Conjunto de comandos u operaciones que se puede agregar opcionalmente a un programa informático (principalmente, a un Sistema Operativo o a un entorno de desarrollo) con el fin de aumentar su funcionalidad. 16 Figura 1: Metodología evolutiva incremental. considerado como RFC debe seguir un proceso muy estricto para asegurar su calidad y coherencia tras haber superado críticas, objeciones y sugerencias, por lo que el nombre se ha quedado obsoleto. La datación del correo electrónico es bastante difusa ya que, dependiendo del motivo aducido, podemos elegir las siguientes fechas (Wikipedia 2014b): •1962: año en el que se instaura un sistema de mensajería electrónica sobre la antigua red digital militar Automatic Digital Network (AUTODIN). •1971: el primer correo electrónico es mandado sobre la Advanced Research Projects Agency Network (ARPANET), red militar considerada como la precursora de Internet, ambas basadas en la familia de protocolos de Internet TCP/IP, formada por la unión de los protocolos TCP (Transmission Control Protocol o Protocolo de Control de la Transmisión; protocolo de la capa de transporte, estructurado en segmentos TCP, con control de flujo, control de congestión, y detección de errores; especificado por primera vez en la RFC 675) e IP (Internet Protocol o Protocolo de Internet; protocolo de la capa de red encargado de enrutar los paquetes o datagramas IP entre dos máquinas; explicado desde la RFC 791). •1973: se propone un protocolo de correo basado en el protocolo FTP10 (RFC 524) y, varios meses después, el primer intento de estandarización u homogeneización de las cabeceras de los mensajes de red (RFC 561). •1977: los mensajes sobre ARPANET son estandarizados por la RFC 733. •1982: la RFC 822 estandariza los mensajes sobre la red Internet. Posteriormente actualizada en 2001 por la RFC 2822, en 2008 por la RFC 5322, y en 2013 por la RFC 6854. Como ya hemos visto, este servicio es considerado como un veterano dentro de los sistemas de comunicación electrónica aunque aún no se ha quedado desfasado porque se ha ido modernizando y extendiendo, manteniendo todavía compatibilidad hacia atrás, con la introducción de ciertas características. Éstas vienen estipuladas en las MIME (Multipurpose Internet Mail Extensions o Extensiones Multipropósito de Correo de Internet, descritas extensamente en las RFC 2045, 2046, 2047, 4288, 4289 y 2049), las cuales permiten que SMTP soporte: •Texto en diversos formatos de codificación de caracteres internacionales: originalmente sólo se admitían caracteres ASCII11. •Información de encabezados con conjuntos de caracteres diferentes de ASCII. •Posibilidad de incorporar ficheros adjuntos multimedia (texto, imagen, audio, vídeo, ejecutable12, etc): en sus comienzos únicamente se admitía texto pero no como adjunto sino dentro del propio cuerpo del mensaje. •Cuerpos de mensajes con múltiples partes (multi-part). Relativo a su clasificación, cualquier mensaje de correo electrónico puede ser identificado, a priori fácilmente, como spam o ham. Lamentablemente y como veremos en el apartado 1.5, esto es un proceso parcialmente subjetivo puesto que lo que para una persona es un ham, para otra podría 10 File Transfer Protocol o Protocolo de Transferencia de Ficheros. Se trata de un protocolo de red estándar para, como su propio nombre indica, la transferencia de archivos entre dos dispositivos sobre una red basada en el protocolo TCP, como es el caso de ARPANET o Internet. Viene explicado en la RFC 959 y hace uso del puerto 21. 11 American Standard Code for Information Interchange o Código Estándar Estadounidense para el Intercambio de Información. Se trata de un sistema de codificación de caracteres estándar por el cual se utilizan, por caracter, sólo 7 bits (8 si tenemos en cuenta el bit de paridad para control de errores), de ahí que sea bastante limitado en comparación con otros formatos como el estándar Unicode (más de 113.000 caracteres diferentes en la versión 7.0) ya que únicamente es capaz de distinguir entre 128 caracteres, tanto imprimibles (letras mayúsculas y minúsculas del inglés moderno, números, y símbolos de puntuación) como de control (escape, retorno de carro, eliminar, etc). 12 Muchos gestores de correo electrónico impiden la transmisión de mensajes con ficheros adjuntos ejecutables, estén o no encapsulados en ficheros comprimidos, debido a que traen aparejado riesgo de infección por malware como virus, troyanos, gusanos, espías, keyloggers (principalmente, para robar contraseñas y números de tarjetas de crédito), etc. 17 ser un spam, o viceversa (Graham-Cumming 2006), de ahí que hayan aparecido términos para señalar esta dificultad (easy ham y hard ham (Spam-Assassin 2013)) o ambigüedad ("bacn"13 y "casos grises"14). Por ello, es muy difícil conseguir un filtro que sea idóneo para todos los usuarios. En los siguientes subapartados explicaremos tanto el formato de los mensajes de correo electrónico como el proceso de envío de los mismos, definiéndose los métodos antispam en base a ambos, principalmente. 1.3.1 Formato de los mensajes El formato de los mensajes (más conocido por las siglas IMF 15) viene definido en la RFC 5322 (P. Resnick 2008), y tal y como se puede apreciar en la Figura 2, cada mensaje se puede estructurar en tres partes de las que únicamente nos interesarán las dos primeras ya que son las únicas que se pueden utilizar, debido al carácter temporal de la tercera, para la clasificación de correos electrónicos en destino, es decir, en el receptor del mensaje: •Cabecera (header): estructurada en distintos campos tales como, entre otros muchos, "From:", "To:", "CC:", "BCC:", "Subject:", y "Date:" cuyo significado es, respectivamente, supuesta16 dirección del emisor, supuestas direcciones de los receptores, direcciones para la Copia de Carbón, direcciones para la Copia de Carbón Oculta (similar al anterior pero los destinatarios reciben el mensaje sin aparecer en ninguna lista), línea de asunto, fecha y hora de envío (normalmente definida automáticamente por el cliente de correo). •Cuerpo (body): contenido básico, como texto sin formato, con bloque de firmas final opcional. Sin límite de tamaño. Está separado de la cabecera por una línea en blanco. •Sobre (envelope): agregado automáticamente al enviar el mensaje y eliminado nada más recibirlo, de ahí su caracter caduco. Es utilizado por el protocolo SMTP, que explicaremos en el apartado 1.3.2, para la transferencia del propio mensaje. Contiene toda la información 13 Mensajes solicitados de carácter comercial pero que casi nunca o nunca son leídos por el receptor por recibirse en grandes cantidades o en momentos inoportunos (Wikipedia 2013a). 14 Grey cases. Son mensajes que no quieres, tal vez no todos los recibidos, pero que quizá fueron solicitados en su momento (James Bruce 2012). Ejemplos: notificicaciones diarias de Groupon, actualizaciones de Facebook, boletines informativos, listas de correos, etc. 15 Internet Message Format o Formato de Mensaje de Internet. 16 Las direcciones de los receptores a los que realmente se hace el envío vienen indicadas por el protocolo SMTP en el sobre del mensaje y pueden ser completamente diferentes a las del campo "To:". Lo mismo ocurre con la del emisor en el campo "From:". 18 Figura 2: Estructura principal y ejemplo no real del formato de un mensaje de correo electrónico. Estructura del email Cabecera o header Cuerpo o body De: o From: Para: o To: Asunto: o Subject: Fecha: o Date: Date : Fri, 30 Feb 2025 12:34:56 +0100 From : [email protected] To : [email protected] Cc : [email protected] Bcc : [email protected] Subject : Re: PFC Análisis del uso de las Redes Neuronales Artificiales en el diseño de filtros antispam. Una propuesta basada en Arquitecturas Neuronales No Supervisadas necesaria para cumplir con la transmisión y entrega del mensaje (Klensin 2008): dirección de correo del creador del mensaje (a quién se debe dirigir en caso de error), dirección de al menos un receptor, y parámetros de envío opcionales (Chhabra 2005). 1.3.2 Proceso de envío El envío de mensajes de correo electrónico (Figura 3) tiene un funcionamiento similar al de su homólogo, el correo postal, entendiéndose las oficinas o estafetas de Correos como símil de servidores de correo (Mail Transfer Agent, MTA), y los carteros o mensajeros como símil de Mail Delivery Agent (MDA). En la actualidad, este intercambio de mensajes de correo electrónico entre dos dispositivos se fundamenta en el protocolo de red Simple Mail Transfer Protocol (SMTP) o Protocolo para la Transferencia Simple de Correo Electrónico, proceso que se realiza a través del puerto 25. Es considerado estándar oficial de Internet al venir definido desde 1982 en la RFC 821, y renovado en la RFC 5321 (Klensin 2008). Adicionalmente y debido a la simpleza de SMTP, para la recepción de los mensajes frecuentemente se hace uso de alguno de los siguientes protocolos de aplicación: •POP3: Post Office Protocol o Protocolo de Oficina Postal, en su versión 3 (RFC 1939). Permite obtener los mensajes de correo electrónico almacenados en un servidor de Internet remoto a través de conexiones TCP/IP. Aventaja al IMAP en que el número de transacciones con el servidor de correo es mucho más reducido (normalmente una inicial para descargar todos los correos, lamentablemente se vayan o no a leer, más las sucesivas cada cierto número de minutos en vez de la conexión permanente de IMAP), o sea, permite modo de trabajo offline. •IMAP4rev1: Internet Message Access Protocol o Protocolo de Acceso a Mensajes de Internet, en su versión 4 revisión 1 (RFC 3501). Tiene la misma funcionalidad que POP3 aunque es más complejo debido a que es capaz de: etiquetar mensajes, hacer uso de carpetas, mantener copias de los mensajes en el servidor (en vez de descargarlos y borrarlos de éste, opción por defecto en POP3), permitir conexiones simultáneas a la misma cuenta de correo, permitir aviso de llegada de correo nuevo inmediatamente, sólo descargar ciertas partes de los mensajes (por ejemplo, ignorar los ficheros adjuntos), buscar mensajes con ciertas características o palabras clave, etc. Seguidamente explicaremos el esquema de envío típico en el cual tanto el emisor, o remitente, como el receptor hacen uso de un cliente de correo local (Mail User Agent, MUA): 1. Ana (emisor) quiere enviar un mensaje a Bea (receptor). Tras redactarlo, lo envía desde su MUA al servidor de correo remoto (normalmente un MTA) que tiene asociado, a través del puerto 25, mediante el protocolo SMTP. 2. Este servidor de correo sabe, debido a que viene indicada en el sobre SMTP del mensaje, que la dirección del receptor pertenece al dominio “b.com” de forma que le pregunta al servidor DNS (Domain Name System o Sistema de Nombres de Dominio) de dicho dominio (“ns.b.com”) por su registro MX (Mail eXchange record o registro de intercambio de correo), que especifica cómo debe ser encaminado un correo electrónico en Internet al indicar un servidor de correo responsable de aceptar mensajes pertenecientes al dominio del receptor (“b.com”). Estos registros MX apuntan, por un lado, a los servidores a los cuales envían un correo electrónico, y, por otro lado, a cuál de ellos debería ser enviado en primer lugar, ya sea por prioridad o por balanceo de carga. 3. Dicho servidor DNS le responde con los registros MX, si los supiera, que listan los servidores de intercambio de correo asociados al dominio deseado (“mx.b.com”, 19 denominado MDA en caso de que sea el servidor de correo final; MTA en caso contrario). 4. El servidor de correo SMTP de Ana ya puede mandarle al MDA de Bea el mensaje, que es guardado. 5. Más adelante, Bea hace una petición de nuevo correo desde su MUA a su MDA, mediante el protocolo POP3 (“pop3.b.com”; siendo el mismo ordenador que “mx.b.com”) o IMAP. El proceso de envío explicado anteriormente es algo diferente en caso de utilizar algún webmail – e.g. Gmail, Outlook.com (antiguo Hotmail), Yahoo! Mail, etc – ya que en los pasos 1 y 5 la comunicación con el servidor de correo remoto se hace desde el navegador web, a través del puerto 80, mediante el protocolo HTTP17. 17 Hypertext Transfer Protocol o Protocolo de Transferencia de Hipertexto. Estandarizado por última vez en la RFC 7235 de Junio de 2014, es el utilizado para las transacciones de la red informática mundial World Wide Web (WWW), usando la red Internet como medio de transmisión. 20 Figura 3: Esquema explicativo del envío de un correo electrónico. Fuente: Wikipedia 1.4 Computación neuronal La computación neuronal, también denominada Redes Neuronales Artificiales (RNA o ANN18), es una disciplina inspirada en las Redes Neuronales Biológicas (RNB) del Sistema Nervioso Central (SNC)19 de los animales y, más en particular, en el cerebro humano (Kohonen 1988; Basogain Olabe 1998; Gabrielsson y Gabrielsson 2006). Principalmente, los investigadores de diversos campos (ingeniería, filosofía, fisiología y psicología, entre otros) se han centrado en el análisis tanto de la composición como del funcionamiento de las RNB, de la unidad fundamental que las conforman (la neurona biológica20; Figura 4) y de la interconexión de dichas neuronas (sinapsis; Figura 5). Cabe destacar la labor investigadora del científico español Santiago Ramón y Cajal a finales del siglo XIX que, por su "Doctrina de la neurona", fue premiado con el Premio Nobel de Fisiología y Medicina de 1906, siendo considerado como el padre de la neurociencia moderna (Santiago Ramón y Cajal 1917). (Kohonen 1988) define las RNA como "redes, interconectadas masivamente en paralelo, de elementos simples (normalmente adaptativos) organizados jerárquicamente, las cuales intentan interactuar con los objetos del mundo real del mismo modo que lo hace el sistema nervioso biológico". Presentan las siguientes características propias del cerebro (Jain, Mao y Mohiuddin 1996; Basogain Olabe 1998): •Aprender: adquirir conocimiento en base a la experiencia y a la práctica. Las RNA pueden moldear su comportamiento en función del entorno, aprendiendo mediante la variación adaptativa de los pesos sinápticos21 (Rumelhart, Hinton y McClelland 1986). •Generalizar: abstraer lo que es común y esencial a muchas cosas, para formar un concepto general que las comprenda todas. Las RNA son parcialmente tolerantes a fallos (debido a la existencia de redundancia), y a ruidos, distorsiones e incompletitudes en las entradas. •Abstraer: separar por medio de una operación intelectual las cualidades de un objeto para considerarlas aisladamente. Ciertas RNA son capaces de extraer información implícita en los datos. 18 Siglas de la palabra en inglés Artificial Neural Network. 19 También existe el Sistema Nervioso Periférico (SNP), el cual está formado por nervios y neuronas que residen o se extienden fuera del SNC, conectando éste con los miembros y órganos. 20 Aparte de las neuronas biológicas, en el SNC y SNP también existen las células gliales, mucho más numerosas (a razón de 50:1) y que a su vez se clasifican en varios subgrupos. Las células gliales son las encargadas de dar soporte (nutrición, defensa, sostén y aislamiento) a las neuronas además de intervenir activamente en el procesamiento cerebral al controlar tanto la composición iónica como los niveles de neurotransmisores. 21 Funcionamiento homólogo al presente en las RNB, en las que el conocimiento reside en las sinapsis. 21 Figura 4: Partes de una neurona biológica. Generalmente, las neuronas artificiales que conforman las RNA se representan esquemáticamente como en la Figura 6, en la cual también se relaciona cada una de sus partes con la correspondiente, en cuanto a la función desempeñada, en las RNB. Una neurona biológica, de las que existen muy diversos tipos y métodos de clasificación, está dividida en tres diferentes partes, principalmente (Figura 4): •Axón: prolongación por la que transitan los impulsos nerviosos o potenciales de acción desde el cuerpo celular hacia la siguiente célula. En las neuronas de las RNA se corresponde funcionalmente con la salida. •Cuerpo celular: también denominado pericarion o soma. Contiene al núcleo celular el cual está rodeado por el citoplasma de la neurona. Sintetiza neurotransmisores y otro tipo de moléculas. Actúa como el umbral y el sumatorio de las neuronas artificiales. •Dendritas: prolongaciones que transmiten los impulsos recibidos desde las neuronas adyacentes hacia el soma. En cantidad variable y estructuradas heterogéneamente según el tipo de neurona. Podríamos considerarlas como las entradas en las neuronas artificiales. La corteza o córtex cerebral es la parte más externa del cerebro humano y, además, es considerada la parte más interesante de este órgano dado que es donde se sitúan las "habilidades superiores" como la memoria, la atención, el lenguaje, el pensamiento y la conciencia. En los humanos es una capa larga y plana, de aproximadamente entre 2 y 3 milímetros de espesor, de materia gris22. Está fuertemente circonvolucionada por lo que, si se extendiese, ocuparía unos 2200 cm2, cerca del doble del área que ocupa un teclado de ordenador (Jain, Mao y Mohiuddin 1996). Resulta interesante, por un lado, analizar las características de ambas redes neuronales (Jain, Mao y Mohiuddin 1996; Gabrielsson y Gabrielsson 2006; Cabrera y Acosta 2011; Eluyode y Akomolafe 2013) (Tabla 1), y, por otro lado, comparar las propiedades de las RNB con las del computador de Von Neumann original, en el que los ordenadores contemporáneos están basados (Jain, Mao y Mohiuddin 1996) (Tabla 2). 22 La materia gris está formada por neuronas biológicas cuyos axones no están recubiertos de mielina, al contrario que en la materia blanca. La mielina tiene la función de aislar los impulsos que recorren el axón (parecido a lo que acaece en los cables blindados o apantallados), aumentando su velocidad de transmisión. 22 23 Figura 6: Partes de una neurona artificial y sus correspondientes en la neurona biológica. Figura 5: Sinapsis eléctrica y química en las neuronas biológicas. Fuente: www.physicsforums.com Tabla 1: Características de las RNB y de las RNA. Características Redes Neuronales Biológicas Redes Neuronales Artificiales Conexiones Excitación e inhibición Eléctricas y químicas (sinapsis; Figura 5) Aleatorias y en gran cantidad (cada neurona a otras 103 – 104) Sólo excitación Solamente eléctricas23 Especificadas con precisión (varios órdenes inferior) Procesamiento Altamente paralelizado 1014 sinapsis Altamente paralelizado 108 transistores Tamaño de la red 1011 neuronas 102 – 104 neuronas Velocidad de procesamiento Varios milisegundos + retardos para estabilización química (fase refractaria) Varios nanosegundos Almacenamiento de la información En la sinapsis En la matriz de pesos Partes (Figura 6) Dendritas, cuerpo (soma, pericarion) y axón Entrada, nodo (unidad, neurona) y salida Señales Moduladas en frecuencia (pulsos) Moduladas en amplitud (numéricas) Aprendizaje Basado en hechos pasados, ajustando conexiones sinápticas Basado en hechos pasados, ajustando pesos Estilo de computación Paralelo y distribuido Paralelo y distribuido Nótese que, desde hace décadas, la totalidad de las supercomputadoras utilizan algunas características propias de las RNB tales como la computación distribuida y en paralelo, la memoria distribuida e integrada (memorias caché) y la gran cantidad de procesadores (aún así, muchos órdenes de magnitud inferior al número de neuronas biológicas presentes en el cerebro24). 23 Nos referimos a las implementaciones en hardware (e.g. con VLSI, Dynamic Ring Architecture, servidores CNAPS de Adaptive Solutions, etc) de las RNA, no simuladas mediante software (McCartor 1991; Cabestany et al. 1996). 24 Según Top500.org, hasta Septiembre 2014 el máximo número de núcleos en un supercomputador en paralelo es de 3.120.000 en el clúster de ordenadores “MilkyWay-2” del National Super Computer Center en Guangzhou (China). Cuenta con una memoria de 1.375 TiB y requiere una potencia de 17,6 MW; 24 MW contando con la refrigeración. 24 Tabla 2: Características del computador de Von Neumann original y de las RNB. Características Computador de Von Neumann original Redes Neuronales Biológicas Procesador Complejo Alta velocidad Uno o unos pocos Simple Baja velocidad Gran cantidad (1011) Memoria Separada del procesador Localizada No direccionable por contenido Integrada Distribuida Direccionable por contenido Computación Centralizada Secuencial Programas almacenados Distribuida Paralela Autoaprendizaje Fiabilidad Muy vulnerable Robusto Habilidades destacadas Manipulaciones numéricas y simbólicas Problemas perceptivos Basados en comportamiento Entorno de funcionamiento Bien definido Bien delimitado Pobremente definido Sin restricciones 1.4.1 Clasificación de Redes Neuronales Artificiales (Rumelhart, Hinton y McClelland 1986; Álvarez Romero, Domínguez Brito y Suárez Araujo 2013) definen un marco general (framework) con el que caracterizar o modelar una RNA y que se compone de los siguientes aspectos: •Un conjunto de unidades de proceso y sus respectivas memorias locales. Pueden ser unidades de entrada, salida u ocultas. •El estado de activación de cada una de las unidades de proceso en un momento dado. Puede ser continuo o discreto y limitados o no a un cierto rango. •Una función de salida para cada unidad de proceso. Usualmente se trata de una función umbral. •Un patrón de conectividad entre las unidades de proceso, en el que cada conexión viene acompañada de un peso sináptico que indica la fuerza de la conexión. •Una regla de propagación o función de red, con la que difundir los patrones de actividades a través de la red de conexiones. •Una regla o función de activación, para combinar las entradas que llegan a una unidad con el estado actual de dicha unidad para luego producir un nuevo nivel de activación en ésta. •Una regla de aprendizaje, mediante la cual poder alterar los patrones de conectividad en base a la experiencia. Dicha alteración puede deberse a la creación, modificación (a través de cambios en los pesos sinápticos) o pérdida de conexiones sinápticas. •Una representación del entorno dentro del cual el sistema debe operar, existiendo un entorno de información local y otro global. Siguiendo este marco caracterizamos las RNA en los siguientes tres niveles: •Topología de conexiones: también conocido como el modelo de interconexión entre los diferentes nodos que componen la arquitectura neuronal, también abarcando la estructura neuronal (Miikkulainen 2010; Álvarez Romero, Domínguez Brito y Suárez Araujo 2013). Ésta se suele describir formalmente a través de un grafo orientado, correspondiéndose sus 25 especial precaución con la elección del número de iteraciones y de la función de vecindad (Rojas 1999; Bullinaria 2012b), entre otros. Es relevante mencionar que el algoritmo anteriormente explicado es el conocido por los nombres de "secuencial", "incremental", "patrón a patrón" u "online", entre otros muchos (Fort, Letremy y Cottrell 2002; Wilson y Martinez 2003; Gabrielsson y Gabrielsson 2006). Es el mayormente utilizado a nivel académico por su simplicidad. La principal diferencia con la otra variante que expondremos a continuación es que, como hemos visto, los pesos sinápticos se actualizan tras la presentación de cada vector de entrada, o dicho de otra forma, tras cada iteración, paso o instancia. La otra versión de algoritmo de aprendizaje es la denominada "batch", en la cual los pesos se actualizan tras la presentación de todos los vectores de entrada, es decir, tras cada ciclo o epoch31, de ahí que dicho algoritmo sea también conocido como entrenamiento “basado en epochs” (Gabrielsson y Gabrielsson 2006). Para ello, se acumulan, en una lista para cada neurona del SOM, los vectores de entrada cuya BMU fuera dicha neurona. Dicha acumulación es temporal hasta que sean finalmente utilizadas para actualizar los pesos al final de cada epoch. Sobre cada lista se aplica la media, o genéricamente la mediana generalizada (Kohonen 2001, 2013), teniendo en cuenta la vecindad tratada en esa epoch. Los nuevos pesos se hallan de la manera señalada en la Eq. 6 (Mikkelsen 2006). Es bastante común el uso del algoritmo batch en casi todos los ámbitos debido a su rapidez de convergencia, buen hacer y capacidad de utilizar datos no vectoriales, a costa de un alto consumo de memoria (Kohonen 2001, 2013). wj(n+1)= ∑ini⋅hji ⋅xj ∑ini⋅hji (6) siendo xj la media de los vectores de entrada en las listas recogidas durante esa epoch; ni el número de elementos en la lista, y ambos sumatorios se aplican sobre la totalidad de las neuronas de la red. y que se podría mejorar y conseguir mayor estabilidad (en muchos campos, el estado más estable se denomina "estado de mínima energía"; ver Figura 12). 31 Conjunto finito de entradas-con-significado presentadas secuencialmente a la red. En concreto, relativo al algoritmo en su versión batch, suele considerarse como sinónimo de “ciclo”, es decir, presentación de la totalidad del conjunto de entrenamiento a la RNA para su aprendizaje, tras la cual se aplican las actualizaciones en los pesos acumulados (Wilson y Martinez 2003). No confundir con “instancia” o presentación de un único patrón de entrada. 32 Figura 12: Estabilidad de los estados: metaestable (1), estable o de mínima energía (3) e inestable (2 y 4). 1 2 3 4 1.4.3 Medición de la calidad Hemos implementado dos maneras de concebir la medición de la calidad de los clasificadores, de las muchas posibles (Villmann, Der y Martinetz 1994a, 1994b ; Villmann et al. 1994; Kaski y Lagus 1996; Kiviluoto 1996; Pölzlbauer 2004; Sokolova, Japkowicz y Szpakowicz 2006; Álvarez Romero, Domínguez Brito y Suárez Araujo 2013), las cuales se diferencian, principalmente, en las características que miden: •Calidad del mapa: son independientes de que originalmente existan etiquetas en los datos utilizados. •Rendimiento del clasificador: no serían aplicables si no poseyéramos datos etiquetados con los valores esperables y correctos que los SOM deberían retornar. 1.4.3.1 Calidad del mapa Por un lado, para obtener los resultados expuestos a lo largo del Capítulo 3, tanto sobre el conjunto de entrenamiento-ajuste como sobre el de testeo, se han utilizado las siguientes dos formas de medición de la calidad (Westerlund 2005; Uriarte y Martín 2005; Sassi 2011) que ya vienen implementadas en la SOM Toolbox mencionada: •Error de cuantización medio (MQE)32: señala la distancia media entre cada vector de datos y su BMU. Mide la resolución del mapa. Una configuración de SOM con menor MQE puede ser considerada mejor que otra con un valor mayor. y luego calculando su media siendo d(xi, wxi) la distancia entre el vector de datos xi y su BMU wxi , N el número de vectores de entrada, y c la cantidad de neuronas ganadoras. •Error topográfico (TE)33: indica la proporción de todos los vectores de datos para los cuales la primera y segunda BMU no son unidades adyacentes. Mide la preservación de la topología. Los valores devueltos están en el rango [0, 1], considerándose el valor de 0 como la preservación topológica perfecta, es decir, la mejor posible. donde siendo N el número de vectores de entrada. Según la documentación de la SOM Toolbox, ambas medidas dan los mejores resultados cuando el mapa ha sobreajustado los datos34, lo que suele pasar cuando el número de neuronas es igual o mayor que el número de ejemplos de entrenamiento, cuando también la resolución y la preservación de la topología se convierten en objetivos contradictorios. Si nos atenemos a (Pölzlbauer 2004), MQE puede fácilmente reducirse simplemente aumentando el número de nodos de la red ya que los datos se distribuyen más espaciados por el mapa, pero ello, normalmente, viene acompañado del efecto secundario indeseado de distorsionar – ergo, empeorar – la topología del mapa, o sea, aumentar el TE. Sobre esta última medida aduce que no es aconsejable para mapas pequeños y, por otra parte, que se ve penalizada cuando el mapa tiene unas dimensiones demasiado e innecesariamente grandes para el conjunto de datos. De este autor 32 Del inglés Mean Quantization Error. 33 Del inglés Topographic Error. 34 También es frecuente emplear su versión inglesa: data overfitting. 33 TE =1 N∑ k=1 N u(xk) u(xk) = { 1, si la1ª y la 2ª BMU no son adyacentes 0, en caso contrario QE =1 N∑ i=1 N d(xi, wxi) MQE =1 c∑ j=1 c QE j inferimos que, en conjunto, los mejores resultados se obtendrán cuando la TE obtiene un mínimo (gráficamente sería posiblemente en una función cóncava) acompañado por un bajo MQE. 1.4.3.2 Rendimiento del clasificador Por otro lado, hemos de mencionar el otro conjunto de métodos de evaluación (Bradley 1997) de, usualmente, clasificadores binarios35, más exhaustivo y realista que los anteriores MQE y TE al tener en cuenta las etiquetas asociadas con los datos, como ya habíamos mencionado: •Falsos Positivos (False Positive, FP, falsa alarma o error tipo I): cuando correos legítimos fueron identificados incorrectamente como no deseados. Este tipo de errores es el que se debe evitar a toda costa ya que la mayoría de usuarios no revisan la carpeta de correo no deseado en busca de posibles errores de clasificación con correos electrónicos que sí desearían recibir (Wiehes 2005). No confundir con los Verdaderos Positivos (True Positive, TP): spam correctamente categorizado como tal. •Falsos Negativos (False Negative, FN, o error tipo II): cuando correos no deseados fueron clasificados incorrectamente como legítimos. En la mayoría de los escenarios, se puede ser algo más flexible con esta clase de errores que con los FP, siempre y cuando se mantengan en bajo número (Wiehes 2005). No confundir con los Verdaderos Negativos (True Negative, TN): ham clasificado como tal. •Precisión (Wikipedia 2013e, 2014a): o Positive Predictive Value (PPV). Es una medida de la calidad o la proporción de spam correctamente identificado sobre todos los correos electrónicos que el filtro ha señalado como no deseados. •Sensibilidad (Wikipedia 2013h, 2013e): también recall o True Positive Rate (TPR). Mide la completitud, la cantidad o la habilidad de identificar spam del filtro, es decir, la proporción de spam correctamente clasificados como tal sobre todos los correos electrónicos que sí son no deseados. Alta sensibilidad lleva aparejada una ratio baja de Falsos Negativos. •Especificidad (Wikipedia 2013e, 2013c): o True Negative Rate (TNR). Indica cuán hábil es el filtro en la clasificación de correos legítimos. Alta especificidad va acompañada de una baja ratio de Falsos Positivos. •Exactitud (Bradley 1997; Wikipedia 2013e, 2013c): o accuracy. Indica lo cerca que el valor medido se encuentra del valor real, es decir, la fracción de correos electrónicos correctamente categorizados. (Metz 1978; Provost, Fawcett y Kohavi 1997) no la recomiendan, especialmente si se desconocen la distribución de las clases y los costes de los errores, prefiriéndose curvas ROC en tal caso. •Matriz de confusión (Swets 1988; Powers 2011): o tabla de contingencia (Tabla 3). 35 Sistemas que realizan una clasificación binaria o binomial, es decir, separan unos elementos de otros en dos grupos según cumplan o no cierta propiedad (Wikipedia 2013c). 34 Exactitud =TP+TN TP+FP+TN +FN Precisión=TP TP +FP Sensibilidad=TP TP+FN Especificidad =TN TN +FP Representa visualmente el rendimiento de un clasificador, siendo las filas las clases predichas o diagnosticadas, y las columnas las clases verdaderas o actuales36. Podemos afirmar que la mejor clasificación viene indicada por el cumplimiento simultáneo de las dos siguientes propiedades: diagonal principal máxima y diagonal secundaria mínima, es decir, la totalidad de las predicciones fueron correctas, y nulas las incorrectas. En forma de ecuaciones, en el clasificador perfecto se cumpliría, siendo N el número de patrones o vectores de entrada: Tabla 3: Matriz de confusión o tabla de contingencia: TP, FP, TN y FN. Matriz de Confusión CONDICIÓN PREDICCIÓN spam ham spam TP FP ham FN TN •F–score (Wikipedia 2013e): F1 score o F-measure. Indica la exactitud de las clasificaciones realizadas, siendo mejor cuanto más cerca esté esta puntuación de la unidad. (Powers 2011) recomienda utilizarla conjuntamente con otras métricas ya que ésta ignora los TN. •Curva ROC37 (Metz 1978; Bradley 1997; Duda, Hart y Stork 2001; Forcada 2003; Worster, Fan y Upadhye 2006; Brown y Davis 2006; Slaby 2007a, 2007b ; Lobo, Jiménez-Valverde y Real 2008; Airola et al. 2009; López et al. 2012; Indrayan 2012; García Abad 2012; Álvarez Romero, Domínguez Brito y Suárez Araujo 2013; Navan 2014; Tape, University of Nebraska Medical Center 2014; Systat Software 2015): indica gráficamente el rendimiento de un clasificador, siendo el eje Y la sensibilidad y el eje X el FPR38. Es por ello que es capaz de encapsular toda la información contenida en la matriz de confusión ya que FN es el complemento de TP, y TN es el complemento de FP (Swets 1988). El clasificador será mejor39 cuanto más cerca pase su curva ROC al punto de clasificación perfecta en (0, 1). Dicho punto – donde su AUC40 es máxima, es decir, vale la unidad – se corresponde con el que obtendría el test gold standard, caracterizado por carecer tanto de FN (100% sensibilidad) como de FP (100% especificidad) (Zweig y Campbell 1993). La curva ROC se caracteriza por ser independiente tanto de la distribución de las clases como de los costes de los errores (Provost, Fawcett y Kohavi 1997). En la Figura 13 podemos observar que el clasificador discreto C' es el mejor de los cuatro presentes y fue construido simplemente 36 Algunos autores utilizan la versión traspuesta de dicha matriz. Ambas se pueden usar indistintamente por ser igual de válidas. 37 En el campo de la detección de señales es el acrónimo de la palabra inglesa Receiver Operating Characteristic o Característica Operativa del Receptor, mientras que en aplicaciones generalizadas lo es de Relative Operating Characteristic o Característica Operativa Relativa (Swets 1988). 38 De False Positive Rate, Ratio de Falsos Positivos o ratio de falsa alarma. 39 Esta relación también es conocida como dominancia i.e. "el clasificador dominará a otros [...]" (Slaby 2007a). 40 Siglas de la voz inglesa Area Under the ROC Curve, Área Bajo la Curva ROC o, simplemente, Área Bajo la Curva. Está íntimamente relacionada con el concepto matemático de integral, siendo la forma más sencilla de calcularla a través de integración trapezoidal (Bradley 1997). Puede tener un valor comprendido en el rango 0≤AUC≤1 35 FPR =FP FP+TN =1−Especificidad F−score =2·Precisión · Sensibilidad Precisión +Sensibilidad =2·TP 2·TP +FP+FN TP+TN =N FP+FN =0 invirtiendo las salidas devueltas por el clasificador, consistentemente pobre, C (Fawcett 2004, 2006 ; Wikipedia 2013f). El B se sitúa sobre la línea de decisión aleatoria o no discriminante. Cabe mencionar que, adicionalmente, se ha implementado un método propio, sustitutivo del AUC, que está fundamentado en la menor distancia euclidiana al punto de clasificación perfecta en (0, 1) aunque se ha preferido y dado más importancia a los resultados provenientes del AUC por ser ésta una métrica muy común en la bibliografía consultada. 1.5 Estado de la cuestión El filtrado antispam se puede realizar en cualquiera de los distintos niveles de la jerarquía implicada en la transmisión de correos electrónicos (Wiehes 2005; Wikipedia 2012a): •Usuarios finales: tanto emisores como receptores de los mensajes. •Administradores de sistemas de correos electrónicos. •Remitentes de correos electrónicos (email senders): grandes empresas, normalmente, que se encargan de mandar los mensajes de los usuarios y clientes dentro de su dominio de correo. •Investigadores policiales y agentes del orden público. Este análisis del estado de la cuestión, apartado usualmente llamado “estado del arte”41, está orientado a comprender los diferentes filtros antispam que se han creado, las diferentes técnicas aplicadas, la información sobre la que realizan dicho filtrado, y el grado de necesidad de 41 Tal y como indica (RAE 2005), se trata de un calco censurable del inglés y deben utilizarse otros términos como "estado/situación actual", "últimos avances" o "estado de la cuestión", según los casos. 36 Figura 13: Espacio ROC, línea de decisión aleatoria y 4 clasificadores discretos: A, B, C y C'. Fuente: Wikipedia. supervisión humana antes y durante el entrenamiento del sistema. Nos centraremos en métodos que pueden ser útiles para los dos primeros grupos ya que los dos restantes hacen un mejor uso de otras técnicas (Cabrera y Acosta 2011; Wikipedia 2012a) tales como: •Para los remitentes de correos electrónicos: el bloqueo del puerto 25 del protocolo SMTP, la superación de umbrales de envío de mensajes, condiciones de uso y licencias bastante restrictivas y poco permisivas con el spam, y el uso del CAPTCHA42 para limitar o ralentizar la creación de nuevas cuentas de correo. •Para los investigadores policiales y agentes del orden público: la legislación, las multas y la investigación de las webs publicitadas en los spam. Como veremos a continuación, los sistemas de filtrado antispam que pueden ser utilizados directamente por los usuarios finales y por los administradores de sistemas de correos electrónicos se pueden diseñar y desarrollar atendiendo a diversos aspectos relacionados bien con la fuente de información (de la que obtienen las características necesarias para discernir entre un spam y un ham), bien con el método de diseño (si existe o no algún método de aprendizaje automático). Además de las anteriores técnicas antispam para sendos grupos, existen otras muchas (Wikipedia 2012a) pero de las que difícilmente se pueden construir filtros antispam, de ahí que no se expliquen en profundidad, debido a que se basan en: •Recomendaciones en las acciones de los usuarios: e.g. no hacer públicas direcciones de correo, reportar spam, utilizar cuentas de correo temporales, etc. •Requerir el uso de hardware adicional como servidores trampa o extremadamente lentos. •Comprobación de sumas de validación. •Chequeo de cierre correcto de la conexión SMTP mediante el comando QUIT (Klensin 2008). En resumidas cuentas, sólo expondremos los dos siguientes conjuntos distintos, no disjuntos, de formas en las que los sistemas de filtrado antispam se han desarrollado o implementado: según la fuente de información, y según el método de diseño. 1.5.1 Clasificación según la fuente de información Como pudimos ver en el apartado 1.3.1, todo mensaje de correo electrónico se compone de tres partes – sobre, cabecera y cuerpo – las cuales podemos utilizar como fuente de información para la detección de spam. Este grupo podemos dividirlo en tres: los que se basan en el contenido del correo electrónico (comúnmente hacen uso tanto de la cabecera como del cuerpo), la retroalimentación del usuario (principalmente sobre el cuerpo aunque también partes de la cabecera como la línea del asunto), y la información relativa al sistema (primordialmente, hacen uso de los campos de la cabecera aunque también chequean el sobre, y el cuerpo del mensaje para detectar si está vacío o si contiene archivos adjuntos). 1.5.1.1 Contenido del correo electrónico Es el más utilizado y podemos encontrarnos con filtros que hacen uso de todo el contenido del mensaje (Cormack y Mojdeh 2009) o, una opción mucho más popular, los que eligen solamente algunas características, en cuyo caso realizan un proceso de selección de éstas: 42 Completely Automated Public Turing test to tell Computers and Humans Apart o prueba de Turing Completamente Automática y Pública para diferenciar Ordenadores de Humanos; es una prueba desafío-respuesta utilizada para determinar si el usuario es o no humano, usualmente mediante la utilización de una imagen distorsionada, conformada por un conjunto de caracteres de longitud variable, mostrada por pantalla. 37 •Basados en firmas de los mensajes y funciones de hash robustas (Kolcz, Chowdhury y Alspector 2004). •Creación de plantillas: ◦Existencia de partes “ancladas”/invariables (Pitsillidis et al. 2010). ◦Existencia de campañas o conjuntos de spam con similares características y, normalmente, mandados en períodos de tiempo cercanos (Qian et al. 2010). •Basados en reglas o tests (Malathi 2011). •Utilización de métodos probabilísticos: esencialmente usando clasificadores Bayesianos (Sahami et al. 1998; SpamBayes 2013). •Uso de información no textual tales como imágenes (Fumera, Pillai y Roli 2006; Gao, Yan y Choudhary 2009; Wikipedia 2012b). •Combinaciones de varios métodos (Khorsi 2007; The Apache SpamAssassin Project 2013). Especial mención al filtro CRM114 por tener, en alguna de sus variantes, un 99,9% de exactitud con un ratio de falsos positivos inferior al 6% (Yerazunis et al. 2010). 1.5.1.2 Feedback o retroalimentación del usuario En este subgrupo son los propios usuarios del filtro quienes realizan la clasificación manualmente, no habiendo aprendizaje ni autónomo ni automático alguno (Graham-Cumming 2006). Suele ser considerada la técnica más fiable y robusta (fundamentalmente ante ocultaciones y errores premeditados dentro del propio mensaje) pero algunos estudios, como el anterior, demuestran que presenta errores de clasificación cercanos al 3%. Ello es debido a la similitud, en ciertos casos, entre ham y spam (los denominados hard ham (Anderson 2006)) o a la existencia de “casos grises” (James Bruce 2012), donde la categorización tiene una gran componente subjetiva. 1.5.1.3 Información relativa al sistema Estos clasificadores se aprovechan, por un lado, de las mayores dificultades que tienen los spammers ante la modificación de las cabeceras de los correos electrónicos, las cuales son poco propensas a cambios válidos o difícilmente detectables en comparación con el contenido de los cuerpos (Ramachandran y Feamster 2006). Y, por otro lado, de la detección de ficheros adjuntos, especialmente de tipo imagen o ejecutable, estén o no acompañados de cuerpos de mensaje vacíos. Esta opción es bastante recomendable para los filtros a nivel de remitentes de correos electrónicos aunque, y por eso lo hemos incluido aquí, también puede serlo para los administradores de sistemas de correo electrónico. La razón de esto es que es una metodología con gran capacidad y eficacia, aún trabajando con grandes volúmenes de correos electrónicos, especialmente para las dos siguientes tareas: •Detección de botnets43, siendo un indicativo bastante fiable de su presencia el aumento repentino e inexplicable del envío de correos electrónicos, siendo también detectado por el propio usuario de la máquina con la ralentización de la misma. •Filtrado por países o continentes porque, si no se espera recibir mensajes desde ciertas regiones, sería interesante y posible bloquear cualquier mensaje entrante proveniente de 43 Redes de ordenadores zombis, usualmente de ámbito internacional, las cuales son explotadas no sólo para mandar spam sino también para el lanzamiento de ataques coordinados contra otras máquinas o sistemas, y para la distribución de software nocivo o dudoso. Suelen estar controladas de manera centralizada por un usuario malintencionado y con grandes conocimientos técnicos. 38 éstas. Lamentablemente, estos bloqueos, muy utilizados por los primeros filtros antispam (Lutus 2006), ya han sido “driblados” por los spammers mediante el uso de las ya mencionadas botnets. Desde hace años, EEUU y Asia, respectivamente, son los mayores generadores de correos no deseados aunque se detecta un repunte acusado en algunos países emergentes como la India, Vietnam, Argentina y Brasil (Trustwave 2013a). Frecuentemente, en este grupo se utiliza la siguiente información para la detección de spam: •Campos de los propios paquetes donde se mandan los mensajes de correo electrónico (Ramachandran y Feamster 2006), campos provenientes de los protocolos TCP/IP, UDP, SMTP, entre otros. Usualmente se chequean los que incluyen el puerto y la dirección IP, ambos del emisor, puesto que eso ayuda a tomar medidas, sobre todo legales, contra el spammer. •Horas de envío porque es muy poco frecuente enviar mensajes a altas horas de la noche, máxime si son en grandes cantidades. Como ya mencionamos, esto es considerado como una prueba de la pertenencia a una botnet. •Incluir ficheros adjuntos, especialmente si son ejecutables, estén o no comprimidos. La razón es que estos suelen ser el vector de propagación de otras amenazas tales como virus y troyanos, los cuales también podrían ser utilizados para crear una botnet y mandar spam. •Cuerpos carentes de texto y formados solamente por imágenes, es decir, el conocido como spam basado en imágenes (Wikipedia 2012b). Este método fue introducido por los spammers para sortear los filtros, mucho más comunes, basados en contenido textual. Suelen hacer uso de algún sistema OCR44 lo que ha obligado que los spammers hayan decidido ofuscar dichas imágenes para contrarrestarlos (Fumera, Pillai y Roli 2006; Gao, Yan y Choudhary 2009). 1.5.2 Clasificación según el método de diseño Esta categoría se basa en la necesidad o no de requerir ayuda del usuario para la clasificación de ham y spam o, dicho de otra forma, en necesitar o no la existencia de algún método de aprendizaje automático. 1.5.2.1 Manuales Fáciles de implementar ya que, a grandes rasgos, se trata de utilizar grandes listas de reglas para filtrar los correos. En dichas listas se distinguen dos tipos, whitelists y blacklists, las cuales se diferencian en que en las primeras se acepta un correo electrónico si el nombre, la dirección de correo electrónico y la IP del remitente está guardada en éstas (Golbeck y Hendler 2004), mientras que en las blacklists, se rechaza dicho correo electrónico si así acaeciera (Ramachandran y Feamster 2006). En esta investigación se aduce que las blacklists verán mermada su eficacia en el futuro puesto que han detectado que los spammers comienzan a utilizar las IP durante períodos de tiempo muy cortos. Ambos métodos son habitualmente utilizados por los administradores de correos electrónicos y, a mayor escala, también por los remitentes de correos electrónicos. Según (Erickson, Casado y McKeown 2008), tienen un bajo número de falsos positivos y falsos negativos, menores al 1% en ambos casos, pese a que, a priori, podríamos pensar que debieran tener menor eficacia por su baja velocidad de adaptación ante cambios, al carecer de sistemas de aprendizaje basados en contenido. 44 Optical Character Recognition o Reconocimiento Óptico de Caracteres, proceso llevado a cabo a través de la identificación automática de símbolos o caracteres, que pertenecen a un determinado alfabeto, dentro de una imagen. Su uso más frecuente es en la digitalización de textos, desde revistas hasta matrículas de vehículos. 39 Un método similar pero con mejores perspectivas debido a que hace uso de más información discriminatoria es el de greylists (Wikipedia 2013d). En éste se combina una whitelist con un rechazo temporal de los mensajes cuya tripleta [IP del emisor – dirección de correo del remitente – direcciones de correo de los receptores] no se encuentre dentro de dicha lista. Ello obliga a un reenvío del mensaje por parte del remitente. Presupone que los servidores de correo legítimos lo volverán a intentar enviar mientras que los spammers no, debido al coste en tiempo y recursos. Lamentablemente, este método puede ser fácilmente sobrepasado por los spammers mediante modificaciones de los paquetes TCP/IP o por ofuscación de la dirección del remitente. 1.5.2.2 Basados en técnicas de aprendizaje automático Son técnicas que permiten a una máquina aprender por sí misma mediante la generalización de comportamientos a partir del suministro de información no estructurada (ejemplos de entrada). Es decir, la máquina induce conocimientos con mínima o nula ayuda humana. Dicha generalización se realiza a través de la contrucción de modelos con los que luego realizar predicciones o tomar decisiones. Sin lugar a dudas, el más común en la actualiadad (Duda, Hart y Stork 2001; Guzella y Caminhas 2009). En este grupo los filtros aprenden en base a unos conjuntos de entrenamiento, para luego comprobar la calidad del diseño y poner en práctica sus conocimientos tanto frente a conjuntos de validación o ajuste como frente a conjuntos de testeo45, respectivamente (Keller 2003; Borovicka et al. 2012; Karahoca 2012). De estos subconjuntos (Figura 14), el de ajuste-validación puede tener varios usos puesto que, en el caso de técnicas supervisadas, se emplea para evitar su sobreentrenamiento46, mientras que con no supervisadas, esto no se da. En tal caso, este subconjunto sirve principalmente para ajustar y mejorar la optimización de los parámetros de la red. Figura 14: División del conjunto original en tres subconjuntos: entrenamiento, ajuste y testeo. Posteriormente y en caso de que se utilicen datos simulados, que no es el caso de este proyecto puesto que los datos son reales, se les suelen presentar conjuntos desconocidos más extensos o, directamente, situarlos en entornos “reales” con el fin de que puedan llevar a cabo un proceso de generalización (Álvarez Romero, Domínguez Brito y Suárez Araujo 2013). A continuación indicamos algunas de las diversas categorías en las que se puede subdividir este gran grupo (Haykin 1999; Duda, Hart y Stork 2001). En nuestro caso, nos hemos basado en la 45 Para dichos tres subconjuntos de datos también es común utilizar la nomenclatura en inglés: training set, validation set y testing set, respectivamente. 46 También es frecuente emplear su versión inglesa: overtraining. 40 necesidad o no de interacción humana durante el etiquetado de los datos, es decir, en la cantidad de datos etiquetados de guía requeridos durante el apredizaje. Con ello, en dicha subdivisión obtenemos las siguientes tres agrupaciones: supervisados, no supervisados, y semisupervisados o híbridos. Por último, podemos distinguir dentro de cada una de éstas versiones tanto neuronales (basadas en algún tipo de RNA, como el SOM) como no neuronales (usualmente, métodos estadísticos e.g. bayesiano). 1.5.2.2.1 Supervisados Esta clase de filtros se basan en el uso de un conjunto de entrenamiento conformado por pares dato-etiqueta, siendo la etiqueta el valor esperado y deseable que debe devolver el filtro. En el filtrado antispam frecuentemente es correo electrónico-etiqueta, donde la etiqueta puede tener un valor indicador de spam, ham o, en ciertos casos indecisos, "caso gris" (James Bruce 2012). Dicha etiqueta habrá sido definida automática o manualmente, siendo esto último un proceso bastante engorroso y costoso temporalmente. Luego, el filtro deberá clasificar ejemplos nuevos, que carecen de etiqueta. Dentro de esta clase se pueden distinguir investigaciones que hacen uso de los siguientes clasificadores, siendo el bayesiano el único no basado en una Red Neuronal Artificial: •Bayesiano, esto es, está basado en el teorema probabilístico de Bayes. Es el más popular, tanto en cantidad de aplicaciones (SpamBayes 2013; The Apache SpamAssassin Project 2013) como en número de investigaciones llevadas a cabo (Sahami et al. 1998; Garcia, Hoepman y Van Nieuwenhuizen 2004; Luo y Zincir-Heywood 2005; Malathi 2011). Por ello, es el más atacado por los spammers mediante técnicas como el Bayesian poisoning47 (Postini 2004; Wittel y Wu 2004; Lowd y Meek 2005; Sprengers y Heskes 2009). •SVM (Drucker, Wu y Vapnik 1999; Vapnik 1999; Gammerman, Vovk y Vapnik 2013). La SVM intenta construir un hiperplano48 con el fin de separar los ejemplares en cierto número de clases dada una función kernel, considerándose que esta categorización es mejor cuanto mayor sea el margen49. Ha sido objeto de muchas investigaciones, sobre todo desde los años 90, de las que se pueden concluir que la SVM es un buen método, bastante dependiente de la función kernel que se use (Chhabra, Wadhvani y Shukla 2010) y cosechando mejores resultados cuando se combinan varios de ellos con una estrategia de votación, reduciéndose los falsos positivos y los errores de clasificación (Blanco, Ricket y Martín-Merino 2007). •El perceptrón50 no suele ser tan común en los filtros antispam actuales (Freund y Schapire 1999; Clark, Koprinska y Poon 2003; Sculley, Wachman y Brodley 2006; Kufandirimbwa y Gotora 2012) como lo es en otros ámbitos como el académico, el reconocimiento de escritura a mano o la detección de bordes. La principal razón de esta menor difusión podría ser, aparte de su simpleza, la preponderancia de los clasificadores bayesianos y SVM. •LVQ: (Chuan et al. 2005) ha estudiado la versión híbrida de esta RNA, en este caso preprocesando los datos mediante información mutua, explicada en el capítulo 2 (nota al pie 20, página 21). Estos autores afirman que el LVQ cuenta con buenas capacidades de detección de spam (96,20% de F-measure, con 98,97% de precisión y 93,58% de sensibilidad) en comparación con otros métodos supervisados, siempre que se realice un 47 Adición de palabras aleatorias o típicas de ham a los mensajes de spam con el fin de degradar la efectividad de los filtros bayesianos al aumentar tanto los falsos negativos como los falsos positivos (Wikipedia 2013b). 48 Extensión del concepto de plano a espacios con más de tres dimensiones. Es un subespacio con una dimensión menos que el espacio donde se encuentra, es decir, separa un espacio en dos semiespacios (Weisstein 2014). 49 Distancia entre el hiperplano y el ejemplar más cercano de cualquiera de las clases. 50 RNA simple que solamente es capaz de resolver problemas linealmente separables. Su versión mejorada, perceptrón multicapa con aprendizaje Backpropagation, sí tiene esa capacidad ya que éste sí cuenta con función de activación no lineal. 41 de ham y spam. La composición de cada uno de estos conjuntos puede verse en la Tabla 5. En este cuerpo los mensajes de ham provienen de la ya mencionada versión preprocesada de (Bekkerman 2013), seleccionando solamente los provenientes de los 6 usuarios de Enron siguientes: “farmer-d”, “kaminski-v”, “kitchen-l”, “williams-w3”, “beck-s” y “lokay-m”61. Por otro lado, los mensajes de spam los obtuvieron de 4 fuentes distintas (las siglas se utilizan en la Tabla 5 junto a los nombres de usuario anteriores): mensajes no deseados recibidos por Georgios Paliouras (GP), uno de los autores; la colección histórica de spam de Bruce Guenter (BG) (Guenter 1998); el cuerpo de SpamAssassin, ya comentado, y, finalmente, el proyecto Honey Pot (Unspam Technologies, Inc 2004). Las siglas SH son utilizadas en aquellos conjuntos de mensajes cuyo spam proviene de estas dos últimas fuentes: SpamAssassin y Honey Pot. De este cuerpo de correos electrónicos están disponibles dos versiones: ◦Versión sin preprocesar: denominada raw (cruda, en bruto, pura o sin editar) en la que sólo se han eliminado los mensajes con virus, los ham enviados a sí mismo por el dueño del correo (es decir, la dirección aparece en los campos “To:”, “CC:” o “BCC:” de la cabecera del correo electrónico), y los spam que usan caracteres no latinos (por ser demasiado fáciles de distinguir como spam). ◦Versión preprocesada: basada en esta anterior en la que, además, han sido eliminadas todas las etiquetas HTML y las cabeceras de los mensajes, manteniéndose únicamente el cuerpo y la línea de asunto. Para nuestro estudio hemos elegido este último cuerpo, combinación de varios, en su versión preprocesada, tanto porque cuenta con mensajes de spam recientes y genéricos como porque es gratuito y de libre acceso. El hecho de que se haya elegido la versión preprocesada del mismo en vez de la versión raw revertirá en simplificar la etapa de preprocesado, de suma importancia en el diseño del sistema propuesto. Concretamente, hemos formado un subconjunto de la citada versión combinando únicamente las carpetas “Enron1” y “Enron5” (Tabla 5) con el fin de: •Balancear el cuerpo de manera que tengamos aproximadamente la misma cantidad (ergo ratio 1:1) de ham que de spam: 5172 y 5175, respectivamente. •Utilizar tanto spam obtenido mediante honeypots62 y spamtraps63 (colecciones SH y BG, sólo utilizada la primera de éstas por estar presente en “Enron 5”) como spam recibido por vías normales (conjunto GP, disponible en “Enron 1”). •Reducir el número de correos electrónicos con los que trabajar ergo simplificar el modelo, acelerar su aprendizaje y reducir el tamaño de los ficheros creados. Aún así, esta reducción mantiene, al mismo tiempo, un conjunto tanto variado y representativo de correos como lo suficientemente amplio para trabajar adecuadamente con el paradigma de la computación neuronal. cociente a/b Ej.: un ratio 1:3 de ham y spam indica que por cada ham hay 3 spam, es decir, existen 3 veces más cantidad de spam que de ham. 61 Es decir, se ha dejado fuera de este cuerpo, por motivos desconocidos, el conjunto de mensajes del usuario “sanders-r”, que sí está entre los 7 empleados de Enron del cuerpo de (Bekkerman 2013) en el que se basa. 62 Trampa diseñada para atraer, detectar, desviar y contraatacar usuarios malintencionados simulando ser sistemas vulnerables o débiles ante ataques. Pueden ser datos, programas, dispositivos físicos o incluso redes. 63 Tipo especial de honeypot dedicado a la captura de correo no deseado. Se basa en la publicación en la Red de direcciones de correo electrónico que están o bien ocultas a los usuarios humanos (Ej.: marcada como no visible o con igual color que el fondo dentro del código HTML) o bien cuya dirección indica claramente que no se debe enviar nada o que no se contesta nunca desde ella (e.g. no-reply@dom inio . es, [email protected]...). Sin embargo, dichas direcciones sí son accesibles para los motores de búsqueda o para los harvesters (recolectores de direcciones de correo electrónico) de los spammers (Stringhini et al. 2014). 48 Tabla 4: Repositorios de correos electrónicos públicos, disponibles libre y gratuitamente. Repositorio Número de mensajes Número de spam Número de ham Sarah's Inbox ≈ 14.000 N/A64 N/A Ling-spam (Androutsopoulos, Koutsias, Chandrinos, Paliouras, et al. 2000; Clark, Koprinska y Poon 2003; Schneider 2003; Luo y Zincir-Heywood 2005) 2.893 481 2.412 PU1 (Androutsopoulos, Koutsias, Chandrinos y Spyropoulos 2000; Clark, Koprinska y Poon 2003; Schneider 2003) 1.099 481 618 PU123A (Androutsopoulos, Paliouras y Michelakis 2004) 7.101 4.081 3.020 Spambase (Hopkins et al. 1999) 4.601 1.813 2.788 TREC 2005 (Mojdeh 2012; Chhabra, Wadhvani y Shukla 2010; Mojdeh y Cormack 2008) 92.189 52.790 39.399 TREC 2006 (Cormack y Mojdeh 2009) 37.822 24.912 12.910 TREC 2007 (Mojdeh 2012; Mojdeh y Cormack 2008) 75.419 50.199 25.220 SpamAssassin (Pitsillidis et al. 2010; Chuan et al. 2005; Khorsi 2007; Garcia, Hoepman y Van Nieuwenhuizen 2004; Anderson 2006; Mojdeh y Cormack 2008) 6.047 1.897 4.150 Enron Email (Klimt y Yang 2004; Padhye y Pedersen 2006a, 2006b ; Pitsillidis et al. 2010; Chhabra, Wadhvani y Shukla 2010; Mojdeh 2012; Cohen 2013) 619.446 N/A N/A Combinación de varios (Metsis, Androutsopoulos y Paliouras 2006a, 2006b) 33.716 16.545 17.171 Tabla 5: Conjunto de datos seleccionado. Se han destacado en negrita los dos subconjuntos de correos electrónicos que conformarán el de nuestra investigación, nuestro cuerpo de datos. Nombre de la carpeta / conjunto de mensajes Origen (ham + spam) Cantidad (ham:spam) Períodos ham Períodos spam Enron1 farmer-d + GP 3672:1500 12/1999 - 01/2002 12/2003 - 09/2005 Enron2 kaminski-v + SH 4361:1496 12/1999 - 05/2001 05/2001 - 07/2005 Enron3 kitchen-l + BG 4012:1500 02/2001 - 02/2002 08/2004 - 07/2005 Enron4 williams-w3 + GP 1500:4500 04/2001 - 02/2002 12/2003 - 09/2005 Enron5 beck-s + SH 1500:3675 01/2000 - 05/2001 05/2001 - 07/2005 Enron6 lokay-m + BG 1500:4500 06/2000 – 03/2002 08/2004 – 07/2005 2.2 Sistema inteligente para la detección de spam 64 N/A: en la Tabla 4 tendrá el significado de Not Available, es decir, No Disponible. 49 El sistema de filtrado antispam que hemos propuesto en este trabajo consta de dos etapas bien diferenciadas y que son aplicadas en el orden expuesto en la Figura 15: 1. Etapa de preprocesado: la hemos construido en base, por un lado, a las métricas TF, IDF e ICF y, por otro lado, a la existencia de categorías temáticas en los spam. Tanto esta etapa en sí como las anteriores métricas serán explicadas más profundamente en el apartado 2.2.1. La importancia de esta etapa radica en que acelera y facilita la consecución de la siguiente. 50 Figura 15: Esquema del sistema inteligente para la detección de spam. Correos electrónicos (original) Etapa de Preprocesado Etapa de Procesado 13 Palabras ponderadas Correos electrónicos (final) TF, IDF & ICF Categorías de Palabras (13) Capa de entrada Vector de datos Mapa de características Pesos Neuronas 2. Etapa de procesado: basada en los mencionados mapas autoorganizados, redes de Kohonen o SOM. Expondremos el diseño de esta etapa en el apartado 2.2.2 (escuetamente ya que será explicado y justificado en profundidad al comienzo del Capítulo 3), cuyos resultados serán presentados en el siguiente capítulo. 2.2.1 Etapa de preprocesado El preprocesado es una etapa muy importante (Hovold 2005; Kotsiantis, Kanellopoulos y Pintelas 2006; Guzella y Caminhas 2009; Zhang 2012) – e, incluso, crítica (Álvarez Romero, Domínguez Brito y Suárez Araujo 2013) – para el aprendizaje de cualquier tipo de RNA, especialmente las relacionadas con el aprendizaje no supervisado. Ello es debido a la necesidad de obtener información tanto de mayor calidad como, usualmente, en menor cantidad que la original, que suele ser caracterizada como incompleta, ruidosa e inconsistente. Algunas de las técnicas utilizadas para disponer de información con las dos características indicadas son: •Para que sea de mayor calidad: limpieza de la información, selección o extracción de las características más relevantes, normalización de los datos, transformación de los datos, etc. •Para que sea en menor cantidad: reducción de dimensiones, discretización de los datos... Comenzaremos explicando el preprocesado aplicado en otras investigaciones para, posteriormente, hacer lo propio con el desarrollado en este proyecto. 2.2.1.1 Otros autores Actualmente, las investigaciones sobre filtros antispam han utilizado diferentes métodos de preprocesamiento de sus respectivos cuerpos de correos electrónicos. Debemos destacar, debido a su relación con nuestro preprocesado, dos trabajos (Vrusias y Golledge 2009a, 2009b), ambos basados en el producto de las siguientes dos métricas, en sus formas normalizadas: •Weirdness: indica la rareza del token65. Compara la frecuencia de cierto token en el dominio de spam frente a la que tiene en el BNC66, teniendo un mayor valor cuanto menos frecuente es ese término en el lenguaje común. •TF*IDF67: es mayor cuanto más frecuente es un término en un documento particular pero infrecuente considerando todo el conjunto de documentos. El producto de ambas métricas indica el grado de spaminess68, R en la Fórmula 7, de cierto token t. Rt=weirdness t×tf∗idf t (7) Por una parte, el valor de weirdness del token t de spam, véase la Fórmula 8, se calcula como el cociente de, por un lado, la división de la frecuencia fS de dicho token con el número total de frecuencias de tokens NS (en el conjunto de spam) y, por otro lado, de la división de la frecuencia 65 En el presente documento, el término "token" será sinónimo de "palabra", a no ser que se indique otra cosa. 66 British National Corpus (Brigham Young University 1994). Es una colección de algo más de 1 millón de palabras inglesas de diferentes fuentes, orales y escritas, que sirve de muestra de dicho idioma. 67 Term Frequency * Inverse Document Frequency o Frecuencia del Término * Inversa de la Frecuencia del Documento. 68 Indica la probabilidad relativa de que algo (token, correo electrónico, comentario...) sea spam. Antónimo de haminess o cuán probable es que esté relacionado o sea considerado como ham. 51 fBNC del token con el número total de frecuencias de tokens NBNC (en el conjunto genérico del BNC). weirdness tS= ftS NtS ftBNC NtBNC (8) Por otra parte, el valor de la TF*IDF del token t de spam, tal y como viene indicado en la Fórmula 9, es obtenido mediante el cociente de la frecuencia de dicho término fS (TF) y de la suma de frecuencias de cada token en el conjunto de spam y ham fS,H (IDF). tf ∗idf tS= ftS×log2(N nt ) √ ∑ 1 tS , H (ftS, H×log2(N nt )) 2 (9) La principal diferencia entre ambos trabajos de los mismos autores es que (Vrusias y Golledge 2009a) utiliza el top 500 de tokens de spam con lo que el vector, binario, de entrada tiene 501 atributos: 500 para spam más uno adicional para indicar la presencia de tokens de ham. En cambio, (Vrusias y Golledge 2009b) usa muchos menos (26 atributos: 25 para spam además de uno con la misma finalidad que en el trabajo anterior) para reducir el tiempo de aprendizaje y el consumo de recursos. Cada uno de esos 25 atributos está conformado por una agrupación de tokens de spam, en cantidad variable dentro de cada agrupación, ordenados según un ranking de spaminess (R en la Fórmula 7). Es común la presencia de tokens con bajo ranking tanto en spam como en ham. Cada uno de esos atributos indica la proporción – por tanto, ahora el vector ya no es binario sino con valores comprendidos entre 0 y 1 – de tokens dentro de esa agrupación presentes en el correo electrónico. Dicho ranking de spaminess viene dado por el producto del weirdness con la TF-IDF, es decir, por R según la Fórmula 7. Por otra parte y relativos al uso de categorías o clases, son de gran interés tres trabajos relacionados con la TF*ICF69 para la clasificación de textos (Lertnattee y Theeramunkong 2004; Rong Jin, Joyce Y. Chai y Luo Si 2005; Wang y Zhang 2013). Esta relevancia para nuestro proyecto se debe a la existencia de categorías de palabras por lo que tiene mayor sentido utilizar la ICF y no la IDF para la atenuación70 de las TF de las palabras en el cálculo de sus pesos. La razón de ello es que la ICF es relativa al número de categorías en las que aparece una palabra y no al de documentos, como en el caso del IDF. La utilización de la ICF se basa en la siguiente suposición (Wang y Zhang 2013): "a menor cantidad de categorías en las que aparece cierto token, mayor poder de discriminación tendrá éste en la categorización de textos", es decir, la ICF favorece los términos raros atenuando los más comunes a nivel de categoría o clase, en vez de a nivel de documentos como ocurre con IDF. Uno de estos trabajos, (Lertnattee y Theeramunkong 2004), propone la combinación de IDF e ICF en la forma TF*IDF*ICF. Además, define tres funciones diferentes para calcular la ICF (véanse las Fórmulas 10 a 12). 69 Term Frequency * Inverse Category Frequency o Frecuencia del Término * Inversa de la Frecuencia de la Categoría. También, la C en la ICF puede ser relativa a una clase en vez de a una categoría. 70 Entiéndase "atenuación de la frecuencia de un término" como "reducción de su poder de discriminación". 52 ICFLoga =log( | C | ft ) (10) ICFLinear = | C | ft (11) ICFSqr = √ | C | ft (12) donde C es el número total de categorías o clases, y f t , la frecuencia o cantidad de veces que aparece el token t en cierta categoría o clase. Por otro lado, en la Tabla 6 y Tabla 7 podemos observar, respectivamente, los métodos de selección de características, y las dimensiones de los vectores de entrada a las redes, utilizados en otras investigaciones. Más aún, de los trabajos indicados en la Tabla 7 podemos extraer como conclusión que una mayor cantidad de atributos implica mejor clasificación en RNA Supervisadas – mejora despreciable dado el mayor coste computacional según (Metsis, Androutsopoulos y Paliouras 2006a) – no cumpliéndose necesariamente con RNA No Supervisadas, más dependientes de la calidad de los propios atributos que de su cantidad. Tabla 6: Métodos de selección de características utilizados por otros investigadores. Método de selección de características Investigadores IG71 o MI72 (Drucker, Wu y Vapnik 1999; Androutsopoulos, Paliouras, Karkaletsis, Sakkis, et al. 2000; Clark, Koprinska y Poon 2003; Schneider 2003; Kolcz, Chowdhury y Alspector 2004; Luo y ZincirHeywood 2005; Hovold 2005; Chuan et al. 2005) TF*IDF (Clark, Koprinska y Poon 2003; Vrusias y Golledge 2009b, 2009a ; Qian et al. 2010) n-gramas de palabras73 (Hovold 2005) Rareza o alienness74 (Narisawa et al. 2007) Varianza75 (Clark, Koprinska y Poon 2003) DCE76 (Uemura, Ikeda y Arimura 2008) 71 Information Gain o Ganancia de Información; propiedad estadística que mide cómo clasifica ese atributo a los ejemplos. Se calcula determinando la diferencia entre la entropía del conjunto de datos de partida y la suma ponderada de las entropías una vez dividido el conjunto de ejemplos: 72 Mutual Information, Información Mutua o transinformación; mide la reducción de la incertidumbre de una variable debido al conocimiento de otra, ambas aleatorias. Se puede calcular como la diferencia entre la entropía de la clase A y la entropía condicional de A (respecto del atributo B): 73 Subsecuencia de n elementos (fonemas, letras, palabras, etc) de una secuencia escrita u oral dada. 74 Indica cuán diferente es un mensaje con respecto a otro en términos de longitud, tamaño y maximin (diferencia 53 Tabla 7: Dimensiones de los vectores de entrada a la red utilizadas en otros trabajos. Dimensión de los vectores de entrada Trabajos 26 (Vrusias y Golledge 2009b) 50-700, con pasos de 50 (Androutsopoulos, Paliouras, Karkaletsis, Sakkis, et al. 2000) 50-750, con pasos de 100 (Luo y Zincir-Heywood 2005) 100 (Chuan et al. 2005) 256 (Clark, Koprinska y Poon 2003) 501 (Vrusias y Golledge 2009a) 50-5.000, con pasos de 50 (Schneider 2003) 500, 1.000 ó 3.000 (Metsis, Androutsopoulos y Paliouras 2006a) 500-4.000 (Hovold 2005) 1000, +6.570 ó +7.450 (Drucker, Wu y Vapnik 1999) 2.2.1.2 Preprocesado híbrido El preprocesado que hemos desarrollado es híbrido puesto que combina una etapa manual con otra automática. Seguidamente expondremos los objetivos de nuestro preprocesado y explicaremos las características del mismo, incluyendo las tres fases que conforman ambas etapas. 2.2.1.2.1 Objetivos Los objetivos de nuestro preprocesado son idénticos al de otros preprocesados (Kotsiantis, Kanellopoulos y Pintelas 2006; Zhang 2012): •Reducir la dimensionalidad del vocabulario, es decir, disponer de menor número de palabras con el fin de facilitar y acelerar el aprendizaje de la RNA. •Ponderar las palabras de manera que sólo utilicemos las que tengan mayor importancia77, desechando tanto las palabras más comunes (stop words) como las que aparezcan muy pocas veces. 2.2.1.2.2 Categorías de palabras Nuestro preprocesado está basado en la premisa de que en los spam existen diversas categorías temáticas (Wang, Irani y Pu 2013; Trustwave 2013a, 2013b ; Malathi 2011; Vrusias y entre la longitud de un representante y la del elemento mínimo más largo de la clase equivalente, indicando cuánto se puede acortar el representante y que siga perteneciendo a la misma clase equivalente). 75 Mide la dispersión de un conjunto de datos y se calcula como la esperanza o valor esperado del cuadrado de la diferencia entre dicha variable y su media aritmética o promedio: 76 Document Complexity Estimation o Estimación de la Complejidad del Documento; algoritmo probabilístico que calcula la similitud – tras producirse posibles mutaciones (cambios aleatorios de letras en un documento), crossover (intercambios aleatorios de partes entre varios documentos) y ensalada de palabras (reemplazar un conjunto aleatorio de palabras de una oración con los de otra obteniendo una nueva gramaticalmente correcta pero carente de sentido) – entre un documento y cierta spam seed (semilla de spam) de manera que parezcan copias imperfectas. 77 Entiéndase como "las palabras con mayor poder discriminador". 54 Golledge 2009b, 2009a ; Chuan et al. 2005; Chhabra 2005; Sahami et al. 1998), ergo, en base a ello sería factible su detección y diferenciación con respecto al ham. Tal y como podemos observar en la Tabla 8, hemos seleccionado 13 categorías de spam o ham presentes en el cuerpo elegido. Estas categorías también pueden ser, por un lado, clasificadas visualmente, tipo semáforo, según su grado de spaminess, y, por otro lado, extrapolables a cualquier otro cuerpo tal y como se deduce de la Tabla 9. El número de palabras dentro de cada categoría, como es de esperar, no es idéntico, cantidades que varían entre 20 y 4.500. Con este preprocesado conseguimos reducir la dimensionalidad en varios órdenes de magnitud, consiguiéndose que la selección del cuerpo analizado – conjuntos de correos “Enron1” y “Enron5” completos tal y como se indicó en la Tabla 5 – solamente contenga 66.650 palabras diferentes, de tamaño mayor a 2 caracteres. Tabla 8: Clasificación visual tipo semáforo de las 13 categorías de palabras según su grado de spaminess. Color semáforo Significado Categorías de palabras ROJO Mayor spaminess & Menor haminess Sexo/Relaciones Medicina/Drogas/Cuerpo Apuestas/Azar/Adivinación Banca/Inversiones/Seguros/Compra-Venta Enlace/Correo electrónico Otros idiomas Ofuscación (mal escritos a propósito) ÁMBAR Casos grises (James Bruce 2012) Negocios/Empresa/Gobierno Internet/Tecnología VERDE Menor spaminess & Mayor haminess Documentos/Trámites Nombres/Familia Turismo/Regiones Fichero adjunto Cabe mencionar con mayor detalle algunas de las categorías de palabras anteriores: •“Ofuscación”78: también bastante, sino la más, indicadora de spam ya que los spammers intentan ocultar las palabras con el fin de dificultar la labor a los filtros antispam, especialmente a los basados en Bayes (Wikipedia 2013a), con el riesgo, y obvia desventaja, de que el mensaje sea poco o nada comprensible para el usuario final. •“Adjuntos”: indica la presencia de ficheros adjuntos en el correo electrónico, solamente común a los ham en este cuerpo. •“Otros idiomas”: debido a que el cuerpo de correos electrónicos es en inglés, la presencia de palabras en otros idiomas – español, francés, alemán y holandés, principalmente – puede ser 78 Palabras escritas incorrectamente a propósito mediante, entre otros métodos, desorden, troceado, mezcla, código HTML, y uso de otros caracteres de apariencia similar (Ej.: como algunos pertenecientes al alfabeto cirílico que visualmente son idénticos a otros del alfabeto latino pero usan una codificación distinta) (Freschi, Seraghiti y Bogliolo 2006; Liu y Stamm 2007; Sprengers y Heskes 2009) 55 un buen indicador de spam. Es importante indicar que las palabras, que pueden pertenecer a varias categorías al mismo tiempo79 (Ej.: “Ofuscación” y “Medicina”, “Sexo” y “Enlace”, etc), se clasificaron manualmente, proceso que no tendría que volverse a hacer nuevamente, ni por los usuarios ni por los desarrolladores. La principal ventaja de que se haya hecho a mano es, pese al coste temporal de hacerlo, la robustez frente a los intentos de ofuscación de las palabras, de ahí la existencia, como se había mencionado, de una categoría que representa dicha contingencia. Esta ofuscación es comúnmente utilizada por los spammers, como se demostrará en las Tabla 11 y Tabla 13. Otra ventaja es que no se requiere aplicar ningún proceso de lematización80, bastante común en el resto de trabajos consultados aplicándose más concretamente la variante implementada por (Porter 1980). 79 Es decir, las categorías de palabras no son exclusivas: existe solapamiento entre ellas. La bondad de esta manera de proceder es que, cuando existe solapamiento, ayuda a reafirmar el caracter spam o ham de cierta palabra. 80 Obtención del lema o raíz de la palabra. Ej.: fucking → fuck; bitches → bitch; 56 Tabla 9: Categorías de spam existentes según diversos autores (destacado en negrita el nuestro). Autores → Categorías ↓ Trustwave (Spam) Malathi Vrusias Chuan Chhabra Sahami Ylermi Porn / Sexo X X X X X XX Dating / Relaciones X n/a n/a n/a Pharmaceuticals / Medicina X X n/a n/a X n/a X Phishing X X n/a n/a X n/a n/a Scam / Azar X X n/a n/a n/a n/a X Gambling / Casinos X X n/a n/a n/a n/a Adivinación n/a n/a n/a n/a n/a n/a Financial / Banca X n/a n/a X X n/a X Stock / Inversiones X X n/a n/a Replicas / Compra-venta X X n/a X X n/a Seguros n/a n/a n/a n/a n/a Diplomas X X n/a n/a X n/a n/a Vacaciones n/a n/a n/a X X n/a n/a Software / IT X X X X X n/a X Malware X n/a n/a n/a n/a n/a n/a Malware links X n/a n/a n/a n/a n/a n/a Mule jobs / Trabajos falsos n/a X n/a n/a n/a n/a n/a Política n/a n/a n/a X n/a n/a n/a Correos electrónicos / Enlaces n/a n/a n/a n/a n/a n/a X Ofuscación n/a n/a n/a n/a n/a n/a X Otros idiomas n/a n/a n/a n/a n/a n/a X Otros spam X n/a n/a X X X n/a En cuanto a los porcentajes de ham y spam dentro de cada categoría, los cálculos sobre la totalidad de nuestro cuerpo arrojan los resultados de la Tabla 10 y Tabla 11. Llevando a cabo idénticas operaciones pero en esta ocasión sobre parte del cuerpo – más concretamente sobre el 80%, relativo al conjunto de entrenamiento y validación o ajuste, y dejando fuera al 20% restante, correspondiente al conjunto de testeo – se obtuvieron los resultados de la Tabla 12 y Tabla 13. 57 Figura 19: Diagrama de flujo de la fase 3 de nuestro preprocesado. La salida principal de esta fase, véase la Figura 19, es un fichero de texto por cada tipo de ICF donde cada línea, también representando un correo electrónico, se corresponde con el anterior vector de 13 atributos y las mismas dos etiquetas ya mencionadas en las fases 1 y 2 anteriores. En uno de los dos escenarios que comprobaremos, explicados en mayor detalle a lo largo del Capítulo 3, el vector sufrirá una normalización previo a la entrada en la RNA para evitar que los atributos con menor amplitud de datos sean absorbidos por los que más tengan. 64 F A S E 3 Emails (fase 1) Emails (fase 2) Emails (fase 3): 13 acumuladores + 2 etiquetas (spam/ham y nombre fichero) ICF palabras Porcentaje ham/spam Diferencias mapas “a mano” vs fase 3 ICF log ICF linear ICF sqrt TFICF_categorías palabras Top k % TFICF_categorías palabras / k = {10 25 50 75 90 95 100} TFICF_documento Durante la ejecución de esta fase también se ha calculado, y almacenado en otros ficheros, tanto los porcentajes de ham y spam para cada categoría como la comparación de pares de categorías entre el método manual y la fase 3 del preprocesado. 2.2.1.2.5 Categorización de palabras manual vs preprocesado de la fase 3: tamaños y diferencias La categorización de palabras, o, dicho de otro modo, identificar a qué categorías se corresponde una determinada palabra, inicialmente se realizó manualmente y, posteriormente, se obtuvo durante la fase 3 del preprocesado, proceso ahora sí automatizado. El procedimiento manual lo llevó a cabo el autor de este proyecto junto a su padre y consistió en, dada una lista con todas las palabras de longitud mayor a 2 presentes en todos los correos electrónicos, la identificación de las categorías a las que una palabra concreta pertenece más adecuadamente, de las 13 disponibles, teniendo en cuenta el uso y contexto. Es por ello que esta categorización conllevó, como ya se comentó, un alto coste temporal en el que, afortunadamente, no haría falta volver a incurrir por parte de los usuarios finales del sistema. Las ventajas de dicho procedimiento manual ya fueron expuestas en el apartado 2.2.1.2.2: •Robustez frente a intentos de ofuscación de las palabras por parte de los spammers. •No requerirse la aplicación de métodos de lematización sobre dichas palabras. Por un lado, los resultados, relativos a las palabras contenidas en cada una de las categorías, obtenidos en la fase 3 del preprocesado (p3) con respecto a los obtenidos manualmente (pm) no dejan lugar a dudas de que, para todo par de categorías, existe mucha mayor cantidad de palabras en los de la fase 3 (p3) pese a que estos últimos sólo han hecho uso del 80% del cuerpo. Dichos resultados podemos observarlos en las Tabla 14 y Tabla 15. Por otro lado, los resultados calculados como las diferencias entre ambos conjuntos de palabras según el procedimiento utilizado (pm – p3, y p3 – pm)88 también confirman la observación anteriormente expuesta, véanse las Tabla 16 y Tabla 17. 88 Dados los conjuntos A y B, la diferencia de A menos B (o entre A y B) es otro conjunto A − B (o también A \ B) cuyos elementos son todos aquellos elementos de A que no lo sean de B (en color amarillo en la Figura 20). 65 Figura 20: Diferencia entre los conjuntos A y B (en color amarillo). Fuente: matematicaabelortega.blogspot.com.es Tabla 14: Cantidades de palabras de las categorías 1-6 según procedimiento aplicado. Categorías Procedimiento Sexo Medicina Azar Compras Enlaces Extranjeras pm 263 1249 51 866 322 4300 p3 3142 13708 1079 27050 13773 20838 Tabla 15: Cantidades de palabras de las categorías 7-13 según procedimiento aplicado. Categorías Procedimiento Ofuscación Negocios Tecnología Documentos Nombres Lugares Adjuntos pm 1253 247 136 75 247 156 18 p3 2547 13876 3988 3061 1945 937 1223 Tabla 16: Cantidades de palabras de las categorías 1-6 en la diferencia de los procedimientos. Categorías Diferencia Sexo Medicina Azar Compras Enlaces Extranjeras pm – p3 143 527 23 258 194 1267 p3 – pm 3022 12986 1051 26442 13645 17805 Tabla 17: Cantidades de palabras de las categorías 7-13 en la diferencia de los procedimientos. Categorías Diferencia Ofuscación Negocios Tecnología Documentos Nombres Lugares Adjuntos pm – p3 1053 103 89 35 187 131 6 p3 – pm 2347 13732 3941 3021 1885 912 1211 Como ejemplo, en la Tabla 18 indicamos las palabras incluidas en las diferencias de conjuntos según el procedimiento utilizado de algunas de las categorías, las de menor tamaño, que hemos indicado en las Tabla 16 y Tabla 17. Tabla 18: Palabras incluidas en las diferencias de conjuntos de algunas de las categorías, las de menor tamaño. Categoría Palabras Adjuntos (pm – p3) 'attacehd' 'attachement' 'attahed' 'attatched' 'nsf' 'pps' Azar (pm – p3) 'bankgirolotto' 'casiino' 'casinos' 'cerdaz' 'cerdazlottery' 'cerdazlotterysa' 'freelottolottery' 'freepicklotto' 'galilottery' 'horoscope' 'loterij' 'lott' 'lotterysa' 'lottos' 'lotz' 'powerball' 'powerballinfo' 'tattlotto' 'thecasinothemepark' 'unionlotteriesuk' 'unionlotteryuk' 'winningnotification' 'winnner' Documentos (pm – p3) 'agreeement' 'agreemeent' 'agreementat' 'agreementcdgt' 'agreemtent' 'archive' 'archived' 'archiving' 'certificates' 'certification' 'certifications' 'cheat' 'contraction' 'databased' 'docu' 'documentations' 'dossier' 'manuscript' 'manuscripts' 'memoranda' 'payrolls' 'paystub' 'propaedeutical' 'subcontracting' 'subcontracts' 'summaries' 'summarily' 'summarise' 'summarising' 'summarized' 'treatment' 'treatments' 'workorder' 'workorders' 'worksheets' 66 2.2.2 Etapa de procesado Los sistemas detectores de correos no deseados propuestos en este trabajo se basan en arquitecturas neuronales no supervisadas y, más específicamente, en los mapas autoorganizados. En general, y nuestro sistema no es una excepción, la estructura de las RNA se ve influida, entre otros, por las características propias del entorno de información donde opere, por el número de ejemplares que deba clasificar, y por las limitaciones impuestas por el entorno de trabajo, tanto hardware como software (Álvarez Romero, Domínguez Brito y Suárez Araujo 2013). Todos ellos actúan, en mayor o menor medida, como factores limitantes a la hora del diseño e implementación de sistemas basados en RNA. Es por ello que los hemos tenido muy en cuenta durante la realización de este proyecto y, mayormente, durante la etapa de procesado de los datos. Como ya se detalló en la sección 2.2.1, tras el preprocesado de los datos, los correos electrónicos quedan definidos por 13 variables correspondientes a las 13 categorías existentes. Cuanta mayor es la cantidad de variables de entradas disponibles, mayor necesidad de cómputo requerirá el proceso de aprendizaje de las RNA. Ello implica que el preprocesado, aparte de proporcionar una mejor representación de la información (lo que ayuda a realzar el modelo de representación interna de las redes), también aporta mayor velocidad de cómputo en los extensos procesos de aprendizaje. Este coste computacional podemos encontrarlo en el apartado 3.3.2.1. Las características que presentan las diferentes configuraciones de SOM analizadas vienen detalladas y justificadas en profundidad al comienzo del Capítulo 3, seguidas de los resultados obtenidos con las diversas métricas implementadas. 2.3 Entorno de trabajo En esta sección describiremos las distintas herramientas software empleadas durante la elaboración de este proyecto, finalizando con una mención al soporte hardware sobre el que se ha desarollado. 2.3.1 MATLAB Es un entorno de cálculo técnico, multiplataforma, de altas prestaciones para cómputo numérico y visualización, que integra, entre otros, análisis numérico, cálculo matricial, procesamiento de señales y gráficos. Ha sido desarrollado por la corporación privada MathWorks desde 1984. En nuestro proyecto hemos hecho uso de la versión 7.12.0 (R2011a) sobre Windows 7 Home Premium (64 bits) Service Pack 1 y, posteriormente, sobre Windows 10 Home. MATLAB puede ser dividido en cinco partes: •Lenguaje MATLAB: de alto nivel, interpretado y especializado en vectores y matrices (de ahí que el nombre sea el portmanteau MATrix LABoratory o laboratorio matricial). Cuenta con características comunes a otros lenguajes parecidos tales como instrucciones de control de flujo, funciones, estructuras de datos, programación orientada a objetos, entrada/salida... 67 •Entorno de trabajo MATLAB: conforma un IDE89, el cual cuenta con editor de código fuente, esquema de colores, depurador, explorador de ficheros, etc. •Manejador de gráficos: una de las grandes ventajas de MATLAB es la sencillez y diversidad de operaciones que se pueden realizar con gráficos, tanto en su creación como en su personalización. También permite desarrollar interfaces gráficas de usuario. •Librería de funciones matemáticas: amplia colección de algoritmos computacionales de distinto nivel de complejidad. •API90 de MATLAB: librería de subprogramas o métodos que permiten el desarrollo de aplicaciones abstrayendo el modo de implementarlas al únicamente expresarlas como operaciones, entradas, salidas y tipos de datos. Entre otras funcionalidades, esta API permite utilizar programas escritos en algunos lenguajes de programación (i.e. C, C++, Java, Fortran, .NET, Perl y Python) que interactúan con MATLAB de distintas formas tales como la ejecución dentro de MATLAB, el manejo de ficheros de datos de MATLAB (con extensión MAT), etc. Por otro lado, aunque MATLAB dispone de miles de comandos y funciones, no incluye todas las deseables. Es por ello que tanto MathWorks – creadora de MATLAB – como otras empresas y usuarios han desarrollado algunas colecciones de funciones que extienden el entorno de MATLAB para resolver ciertas clases particulares de problemas (Ej.: RNA, procesamiento de señales, simulación, lógica difusa, robótica, etc). Estas colecciones, no necesariamente libres ni gratuitas, se denominan toolboxes y, en los siguientes dos subapartados, expondremos las que hemos utilizado en nuestro proyecto. Una desventaja que presenta este entorno de desarrollo es que se trata de software privativo y, según el tipo de licencia, no muy económico91. Pese a ello, es de los más usados en ámbitos tan variados como la ingeniería, la ciencia y la economía sobre todo por su estabilidad, capacidades, documentación, y cantidad y variedad de toolboxes. 2.3.2 SOM Toolbox Se trata de una toolbox, libre, para MATLAB (Vesanto 1999; Vesanto et al. 1999, 2000 ; Aalto University (CIS) 2005) basada en SOM_PAK92 de forma que SOM Toolbox combina las capacidades gráficas del entorno MATLAB con las bondades de SOM_PAK, superando su cantidad de funciones y llegando a ser incluso más rápida aunque no tan eficiente en el consumo de memoria. En ciertos casos (Vesanto et al. 1999) ha sido requerida de 2 a 10 veces más cantidad, según se use el algoritmo batch o el secuencial en la toolbox respecto al de la SOM_PAK – aún cuando el algoritmo de la propia toolbox sea sustituido por el de la SOM_PAK y lanzado internamente. En nuestro proyecto hemos hecho uso de la versión 2.0 de 17 de Marzo de 2005. Tanto SOM_PAK, desde 1992, como SOM Toolbox, desde 1997, fueron desarrolladas en el Laboratorio de Ciencias de la Información y de la Computación de la Helsinki University of Technology (Finlandia), participando el propio Teuvo Kohonen en el desarrollo de la primera de estas aplicaciones. Por otro lado, SOM Toolbox es también recomendada por (Kohonen 2001, 89 Integrated Development Environment o Entorno de Desarrollo Integrado. 90 Application Program Interface o Interfaz de Programación de Aplicaciones. 91 El rango de precios de MATLAB varía bastante: desde 35€ (versión más básica, sólo para estudiantes) hasta 2000€ (licencia comercial individual estándar). 92 SOM_PAK es una aplicación gratuita, implementada en C (Kohonen et al. 1996), para UNIX y DOS originalmente. Es bastante completa y rápida pero tosca en el apartado de visualización de los datos y resultados. 68 2013 ; Kohonen, Nieminen y Honkela 2009), entre otros investigadores (Westerlund 2005; Uriarte y Martín 2005; Sassi 2011). 2.3.3 Parallel Computing Toolbox Esta toolbox para MATLAB (MathWorks 2014) permite resolver problemas computacionalmente intensivos usando procesadores multinúcleos, multiprocesadores, GPUs93 y clústers de ordenadores. Mediante ciertas construcciones de alto nivel – Ej..: bucles for paralelos (denominados "parfor"), tipos de matrices especiales, y algoritmos numéricos paralelizados – es posible paralelizar aplicaciones de MATLAB sin necesidad de programación CUDA94 o MPI95. También permite la ejecución de múltiples simulaciones de Simulink en paralelo. Las aplicaciones se pueden ejecutar de forma interactiva o en modo batch. No debemos confundir la ejecución en paralelo que ofrece esta toolbox con la ejecución multihilos, inherente y automáticamente aplicada en muchas funciones de MATLAB y de otras toolboxes. Hemos utilizado la versión 5.1. Debido a ciertas limitaciones de esta toolbox96, no siempre fue posible utilizarla aunque, cuando sí lo fue, nos permitió aprovechar la máxima capacidad de procesamiento de nuestro multiprocesador multinúcleo. Ello se ha conseguido con la ejecución de las aplicaciones sobre workers97 que corren localmente, máximo uno en cada núcleo. Sin cambios en el código se podría haber ejecutado incluso sobre un clúster de ordenadores o sobre un servicio de computación grid98 – a través del servidor de computación distribuida de MATLAB (MATLAB Distributed Computing Server), el cual también es de pago. En nuestro caso, la ventaja de haberla empleado es que conllevó una importante reducción del coste computacional temporal99 durante la etapa de aprendizaje de las diferentes configuraciones de SOM ya que, a grandes rasgos, podríamos interpretarlo como si hubiéramos contado con mayor número de ordenadores con los que trabajar. (Oberg et al. 2008) aducen que la mejora del 93 Graphics Processing Unit o Unidad de Procesamiento Gráfico. Es un coprocesador dedicado al procesamiento de gráficos u operaciones de coma flotante, para aligerar la carga de trabajo del procesador central (CPU) en aplicaciones como los videojuegos o aplicaciones 3D interactivas. 94 Son las siglas de Compute Unified Device Architecture (Arquitectura Unificada de Dispositivos de Cómputo) que hace referencia tanto a un compilador como a un conjunto de herramientas de desarrollo creadas por nVidia que permiten a los programadores usar una variación del lenguaje de programación C – u otro mediante adaptadores – para codificar algoritmos en GPUs de nVidia. Básicamente, es una arquitectura para la computación en paralelo sobre GPUs de dicho fabricante. 95 Message Passing Interface o Interfaz de Paso de Mensajes. Es un estándar que define la sintaxis y la semántica de las funciones contenidas en una biblioteca de paso de mensajes diseñada para ser usada en programas que exploten la existencia de múltiples procesadores. Su principal característica es que no precisa de memoria compartida, por lo que es muy importante en la programación de sistemas distribuidos. 96 La limitación más importante y restrictiva con la que nos encontramos fue la de que, cuando se use la instrucción "parfor", las iteraciones deben ser completamente independientes entre sí. Es por ello que solamente pudimos utilizarla durante el aprendizaje de cada configuración de SOM puesto que no son operaciones interdependientes. 97 Motores computacionales de MATLAB los cuales podríamos considerarlos como entornos de ejecución de MATLAB corrientes pero carentes de interfaz gráfica de usuario. 98 Infraestructura que permite la integración y el uso colectivo de ordenadores de alto rendimiento, redes y bases de datos que son propiedad y están administrados por diferentes instituciones (control no centralizado). Los recursos pueden ser heterogéneos y estar distantes geográficamente (lo común es que sea en diferentes continentes) por lo que se comunican mediante redes de área extensa como Internet. 99 Debido a que se usaron únicamente 4 de los 8 núcles de la CPU, estimamos una mejora del tiempo de cómputo de un 75%, es decir, lo que antes se tardaría 4h, ahora sería de 1h aproximadamente. (Oberg et al. 2008) demuestran que dicha mejora suele ser inferior a la lineal puesto que el uso de "parfor" incurre en overhead o penalizaciones de tiempo debidas a la necesidad de transmitir las variables, las instrucciones y los datos entre los diferentes workers. 69 rendimiento proporcionada por "parfor" es mayor cuando se incrementa tanto el número de workers como la cantidad de iteraciones realizadas. 2.3.4 Hardware Este proyecto se ha ejecutado sobre un ordenador portátil DELL XPS L702X cuyas características más relevantes, más propias de un ordenador de sobremesa que de un portátil, son: •Procesador Intel Core i7-2760QM CPU @ 2,40 Ghz, con 4 núcleos físicos (cada uno de los cuales con 2 núcleos lógicos) y 6 MB de memoria caché L3 compartida. •Memoria RAM DDR3 con un tamaño total de 12 GB. •2 discos duros internos con una capacidad total de 1 TB, además de 1 TB en un disco duro externo, utilizado para backups (tarea compartida con Dropbox, un servicio de almacenamiento de archivos en la nube). En ambos discos duros el nivel de ocupación previo al desarrollo del proyecto rondaba el 75% aproximadamente. 70 Capítulo 3. Desarrollo de filtro antispam basado en mapas autoorganizados de Kohonen. Implementación y resultados Introducción: En este capítulo se explica el desarrollo e implementación del filtro antispam basado en los mapas autoorganizados de Kohonen, concretamente la implementación de la fase de procesado del sistema inteligente propuesto. Se presentarán las diferentes configuraciones de SOM utilizadas durante el desarrollo de dicho sistema, los resultados obtenidos y la discusión de los mismos, hasta alcanzar el filtro antispam definitivo. 71 3.1 Características de la red utilizada 3.1.1 Características de la arquitectura neuronal utilizada Como ya se ha mencionado en el apartado 1.4, la arquitectura neuronal utilizada en este proyecto ha sido el SOM, una Red Neuronal Artificial no supervisada100, con aprendizaje competitivo. Las diversas configuraciones de SOM analizadas durante este capítulo comparten algunas características, muchas de las cuales se basan en recomendaciones de distintos autores. Estas recomendaciones se exponen, parafraseadas en algunos casos, a continuación, agrupadas según la autoría: •(Kohonen 2001, 2013): ◦“Las rejillas hexagonales son mejores, más rápidas y más ilustrativas [que las rectangulares]”: todas las configuraciones de SOM probadas utilizan rejillas (opción “lattice” en la SOM Toolbox) hexagonales. ◦“Alrededor de 50 ítems [correos electrónicos en nuestro caso] por nodo son recomendables”: debido a ello se ha probado el mapa de Kohonen con tamaño 13x13101. ◦“El algoritmo [de entrenamiento] en modo batch es mejor, más rápido102 y puede ser generalizado para datos no vectoriales, aunque trae aparejado un consumo de memoria bastante alto”: fue el finalmente seleccionado (función "som_batchtrain" de la SOM Toolbox) en contraposición al algoritmo secuencial ("som_seqtrain"), ambos explicados en el Capítulo 1. ◦“La inicialización de los pesos en el SOM es importante”: en nuestro caso, hemos aplicado inicialización lineal en base a los mayores autovectores103 – mediante la función "som_lininit" de la SOM Toolbox – en vez de la aleatoria – "som_randinit" – por rapidez de ejecución y convergencia. ◦“El tamaño de la vecindad debe ser elegido bastante amplio al comienzo (incluso superior a la mitad del tamaño del SOM) – para que el mapa se ordene globalmente y no localmente en forma de mosaico104 – decrementándose paulatinamente hasta la unidad durante las primeras 1000 iteraciones. Durante la fase de convergencia puede mantenerse el tamaño 1”. ◦“El ratio de aprendizaje (α o α(t)) debe empezar con un valor cercano a la unidad y decrecer monótonamente – pero siempre sobre 0,1 – durante los 1000 primeros pasos, siendo la forma de esa variación no importante (Ej.: α(t)= 0,9 (1−t/1000) ). El ordenado topológico ocurre en las fases iniciales (fases de ordenación) mientras que en las siguientes iteraciones, numerosas, se produce el ajuste fino del mapa (fase de convergencia). En esta fase, y durante bastantes (miles) iteraciones, es recomnedable que el valor de α(t) sea bajo (menor o igual a 0,01)”. El algoritmo de entrenamiento batch, finalmente utilizado por las ventajas 100 La propia SOM Toolbox dispone de una versión del SOM basada en aprendizaje supervisado. También existe este tipo de SOM en los entornos de desarrollo R y WEKA. 101 La cantidad de 13 se obtiene como el redondeo al alza de la operación √ (7933÷50) siendo 7933 la cantidad de correos electrónicos preprocesados en el subconjunto entrenamiento-ajuste. 102 (Wilson y Martinez 2003) afirman todo lo contrario siempre que se den ciertas condiciones e.g. grandes conjuntos de entrenamiento. 103 También conocidos como vectores propios, vectores característicos o eigenvectores (v). Entre otros usos, pueden indicar las características más relevantes de cualquier conjunto de datos, o las direcciones a las que tienden una nube de puntos. Este concepto está bastante relacionado con los de autovalor, valor propio, valor característico o eigenvalor (λ; escalar), según la fórmula (siendo A una matriz cuadrada) A v =λ v →(A−λ I)v=0 104 Pequeñas formaciones ordenadas localmente pero que globalmente no lo están puesto que la dirección del orden cambia discontinuamente. 72 anteriormente expuestas, no contiene parámetro relativo al ratio de aprendizaje105, de ahí que esta recomendación no sea aplicable. Sin embargo, este parámetro sí aparece con el algoritmo de entrenamiento secuencial. ◦“Que una palabra tenga bajo IDF suele implicar que sea una stop word y, por tanto, pueda ser ignorada”: esta recomendación fue tenida en cuenta durante el preprocesado de los datos (Capítulo 2). •(Leow 2014): ◦Función de vecindad gaussiana: el valor máximo se encuentra en la neurona ganadora, y decrece a medida que se aleja de ésta (Figura 8). ◦Mapas 2-D cuadrados con forma de hoja (sheet). •(Gabrielsson y Gabrielsson 2006): ◦“El número de pasos [o iteraciones] durante el entrenamiento debe ser razonablemente grande, al menos 500 veces el número de nodos de la red, para una buena exactitud estadística”. Como se había mencionado en el apartado 1.4, debido al uso del algoritmo de entrenamiento batch no se han utilizado pasos sino epochs, por lo cual se presenta la totalidad del conjunto de entrenamiento a la RNA antes de realizar la modificación de los pesos de la red, para su aprendizaje. Aún así, se han hecho los experimentos con cantidades altas de estos (hasta 8000 epochs en nuestro proyecto) de forma que se supera en varios órdenes de magnitud la cantidad de pasos equivalente recomendada. 3.1.2 Conjuntos de datos de entrada El conjunto de datos de entrada para el SOM, obtenidos preprocesando el cuerpo de datos original de la forma ya indicada en el Capítulo 2, fueron particionados en tres subconjuntos disjuntos106 de datos de entrenamiento, ajuste paramétrico y testeo (Keller 2003; Borovicka et al. 2012; Karahoca 2012) (Figura 14), con el objetivo de obtener la configuración óptima de la arquitectura SOM de la fase de procesado del filtro antispam propuesto. El 80% del cuerpo de datos corresponderá con el conjunto de entrenamiento y de ajuste paramétrico, en la proporción 60% y 20%, respectivamente. El 20% restante se dedica al conjunto de testeo. Estos subconjuntos de datos tienen la siguiente función: •Subconjunto de entrenamiento. Se utilizará para entrenar cada una de las variantes o configuraciones de RNA que se decidan comprobar. •Subconjunto de ajuste paramétrico. Permitirá afinar la arquitectura neuronal. Se podrá analizar la calidad de las diversas configuraciones diseñadas seleccionando las que podríamos denominar como conjunto de posibles soluciones finales (Tabla 19). •Subconjunto de testeo. Confirmará la calidad del susodicho conjunto de posibles soluciones finales, probando la configuración óptima sobre los datos de este subconjunto, los cuales no han sido vistos anteriormente. El subconjunto “entrenamiento-ajuste”, “Train-Valid” o “TV” debido a que se corresponde con la fase de entrenamiento y ajuste-validación del SOM, es el que se usó para obtener las mejores configuraciones, cuyos resultados son expuestos a lo largo del apartado 3.3. En nuestro caso, dicho 80% del corpus suma la cantidad de 7933 correos electrónicos, repartiéndose en cada uno de esos dos subconjuntos de la siguiente forma: 5950 para entrenamiento y 1983 para ajuste. Algo similar ocurre para la fase de testeo (en adelante “Test” o “T”) cuyo subconjunto es del mismo tamaño y 105 Ya que, por un lado, se indica explícitamente en (Gabrielsson y Gabrielsson 2006) – concretamente al final del apartado 4.11 de dicho documento – y, por otro lado, no aparece como argumento de entrada, ni en la documentación ni en el código, de la función “som_batchtrain” de la SOM Toolbox utilizada. 106 En matemáticas, dos conjuntos son disjuntos si su intersección es vacía, es decir, no tienen elementos en común. 73 recomendaba (Kohonen 2001, 2013). •Todas las 13 configuraciones analizadas como conjunto de posibles soluciones finales, obtienen excelentes resultados en AUC, similares entre sí, tal y como se podía inferir del recuento en la Tabla 21. •Tanto la especificidad como la sensibilidad, muestran valores bastante buenos y próximos entre todas las configuraciones, teniendo valores menores los de la primera de estas métricas. •F-score, “accuracy” y “precision”, siendo menores los de esta última métrica, cuentan con valores igualmente positivos. •La medida de la distancia al punto (0, 1) desde la curva ROC, que indicamos como posible métrica, también presenta valores similares en dichas configuraciones de SOM aunque no podemos inferir una correspondencia clara ni directa entre menor distancia y mejor posición en el ranking. •Tanto los FP como los FN suelen rondar el 10% y 9,8% (2,65% en el clasificador 4, mejor caso) de los TP y TN, respectivamente, lo cual deberá ser mejorado en futuros trabajos relacionados. Este resultado era esperable dada la dificultad que entraña la existencia de correos grises, los cuales habría que tratar con especial cuidado, posiblemente durante el preprocesado. •Todos los mejores clasificadores utilizan Top 10% o Top 25% (Tabla 19), es decir, usan los menores porcentajes de palabras por lo que disponer de mayor cantidad de palabras no ha mejorado el poder de clasificación del SOM. •El ICF linear, pese a tener resultados de AUC similares aunque algo inferiores a los mejor posicionados, no aparece en el ranking hasta la posición 25 (el ranking recogido en la Tabla 19 sólo llega hasta la posición 13). Ello puede indicarnos que las opciones log y sqrt son las mejores con datos sin normalizar. Observando los clasificadores que obtuvieron peores posiciones (por ello no tabulados aquí), destaca que los que cuentan con tamaño 50x50, los de mayor tamaño de los probados, e ICF linear, poseen AUC peores, aún así manteniéndose dentro del rango de AUC que permite calificarlos como muy buenos. 80 Tabla 22: Métricas obtenidas para los 1-6 mejores clasificadores del escenario 1 (Fase de Entrenamiento-Ajuste). Posición del clasificador Métricas 1 2 3 4 5 6 AUC 0,963185 0,960386 0,959660 0,959594 0,959408 0,958994 MQE 51,343423 50,812503 47,264532 47,899662 35,431636 39,016577 TE 0,124054 0,116994 0,081190 0,083207 0,106404 0,075139 AUC mejor discreto relacionado & “Threshold” 0,915953 51 0,907759 58 0,920894 45 0,912937 14 0,914443 41 0,912531 43 Distancia al punto (0, 1) 0,119937 0,131263 0,116816 0,154360 0,125059 0,127648 Especificidad 0,904615 0,897436 0,897119 0,847107 0,892086 0,890256 Sensibilidad 0,927291 0,918082 0,944668 0,978766 0,936799 0,934805 F-score 0,918146 0,909901 0,923758 0,919715 0,916708 0,913200 “Accuracy”0,916119 0,907895 0,921160 0,913643 0,914534 0,912253 “Precision” 0,909180 0,901865 0,903754 0,867384 0,897461 0,892570 TP 931 919 939 968 919 889 FP 93 100 100 148 105 107 TN 882 875 872 820 868 868 FN 73 55 55 21 62 62 81 Tabla 23: Métricas obtenidas para los 7-13 mejores clasificadores del escenario 1 (Fase de Entrenamiento-Ajuste). Posición del clasificador Métricas 7 8 9 10 11 12 13 AUC 0,957621 0,957446 0,957337 0,957296 0,957219 0,956873 0,956711 MQE 37,980127 35,346816 46,562389 43,270800 39,069729 50,760081 50,738147 TE 0,187090 0,115482 0,136662 0,108422 0,079677 0,124054 0,116994 AUC mejor discreto relacionado & “Threshold” 0,909763 59 0,915421 34 0,915502 37 0,918264 37 0,913003 39 0,907675 58 0,904574 58 Distancia al punto (0, 1) 0,129769 0,122445 0,132595 0,123273 0,127543 0,130791 0,135622 Especificidad 0,893114 0,896907 0,874872 0,887975 0,889231 0,902263 0,895062 Sensibilidad 0,926411 0,933934 0,956132 0,948553 0,936776 0,913087 0,914086 F-score 0,912159 0,918307 0,920345 0,918526 0,913669 0,909453 0,906838 “Accuracy”0,909924 0,915693 0,916077 0,917629 0,912682 0,907755 0,904714 “Precision”0,898338 0,903195 0,887142 0,890342 0,891675 0,905847 0,899705 TP 919 933 959 885 889 914 915 FP 104 100 122 109 108 95 102 TN 869 870 853 864 867 877 870 FN 73 66 44 48 60 87 86 Respecto a los resultados obtenidos para el escenario 2 (con vectores de datos normalizados; Tabla 24 y Tabla 25) por los 13 mejores clasificadores (Tabla 19) podemos aducir lo siguiente: •Todos los 13 mejores clasificadores presentan un tamaño de 13x13 ó 20x20, lo cual entra dentro de una de las recomendaciones de (Kohonen 2001, 2013). Al igual que con datos sin normalizar, con mayores tamaños de mapa no se obtuvieron mejores puestos en el ranking (aunque los valores de las métricas son parecidos) por lo que probar con mayores aún puede incluso ser contraproducente. •Dichas 13 configuraciones obtienen buenos resultados en AUC, bastante similares en estos puestos de la tabla clasificatoria. Son ligeramente inferiores a los obtenidos cuando no se aplica ningún tipo de normalización (escenario 1). •En el resto de métricas ocurre se encuentra una situación parecida a la del escenario 1 (Tabla 22 y Tabla 23). Debemos volver a indicar que los valores de FP y FN rondan el 10% (FN 5,88% en el clasificador 11, mejor caso) de los TP y TN en la matriz de confusión, algo que será deseable disminuir en el futuro. •Los resultados de Top 100% y Top 95% obtienen los mismos resultados (clasificadores 1 con 2 y 12 con 13, Tabla 19) de ahí que, en dicho caso, disponer de la máxima cantidad de palabras no ha mejorado el poder de clasificación del SOM. En este caso, hay bastante variedad de Top, no pudiendo nosotros concretar cuál es el mejor en este escenario. •Al contrario que ocurrió anteriormente, el ICF linear no implica peores posiciones. Por ello, y al contrario que pudimos concluir en el escenario 1, no podemos afirmar fehacientemente 82 cuál de las opciones de ICF es la más idónea con datos normalizados. Tabla 24: Métricas obtenidas para los 1-6 mejores clasificadores del escenario 2 (Fase de Entrenamiento-Ajuste). Posición del clasificador Métricas 1 2 3 4 5 6 AUC 0,956554 0,956554 0,956266 0,955968 0,955516 0,955510 MQE 0,544872 0,544872 0,667073 0,670844 0,592957 0,544498 TE 0,073122 0,073122 0,052950 0,061019 0,061523 0,061019 AUC mejor discreto relacionado & “Threshold” 0,910044 37 0,910044 37 0,900426 61 0,898669 57 0,909830 43 0,911140 34 Distancia al punto (0, 1) 0,137963 0,137963 0,142739 0,143327 0,131522 0,133218 Especificidad 0,872297 0,872297 0,916923 0,900513 0,887064 0,879877 Sensibilidad 0,947791 0,947791 0,883929 0,896825 0,932596 0,942403 F-score 0,914729 0,914729 0,900000 0,899950 0,912851 0,915581 “Accuracy”0,910524 0,910524 0,900151 0,898638 0,910061 0,911661 “Precision”0,883895 0,883895 0,916667 0,903097 0,893925 0,890244 TP 944 944 891 904 927 949 FP 124 124 81 97 110 117 TN 847 847 894 878 864 857 FN 52 52 117 104 67 58 83 Tabla 25: Métricas obtenidas para los 7-13 mejores clasificadores del escenario 2 (Fase de Entrenamiento-Ajuste). Posición del clasificador Métricas 7 8 9 10 11 12 13 AUC 0,954691 0,954633 0,954489 0,954437 0,954427 0,954408 0,954408 MQE 0,667085 0,497919 0,497813 0,742512 0,477013 0,560611 0,560611 TE 0,054967 0,069592 0,070600 0,047403 0,065053 0,052950 0,052950 AUC mejor discreto relacionado & “Threshold” 0,900426 61 0,915388 61 0,915432 61 0,910818 63 0,911022 31 0,911691 39 0,911691 39 Distancia al punto (0, 1) 0,142739 0,119779 0,119601 0,131251 0,137520 0,129653 0,129653 Especificidad 0,916923 0,911614 0,914697 0,885128 0,871795 0,887064 0,887064 Sensibilidad 0,883929 0,919162 0,916168 0,936508 0,950249 0,936318 0,936318 F-score 0,900000 0,916874 0,916625 0,914729 0,916067 0,915370 0,915370 “Accuracy”0,900151 0,915543 0,915443 0,911246 0,911616 0,912077 0,912077 “Precision”0,916667 0,914598 0,917083 0,893939 0,884259 0,895338 0,895338 TP 891 921 918 944 955 941 941 FP 81 86 83 112 125 110 110 TN 894 887 890 863 850 864 864 FN 117 81 84 64 50 64 64 Para la fase de testeo, los resultados (Tabla 26) demuestran que los dos mejores clasificadores, uno por cada escenario, han sido capaces de clasificar datos completamente desconocidos con la diligencia que se esperaba. Se han obtenido mejores resultados con todas las métricas cuando se utilizaron datos normalizados durante la fase de aprendizaje, no habiendo grandes diferencias cuando no se aplicó normalización. En base a todo lo expuesto, el mejor clasificador, el cual sería el finalmente elegido para utilizarlo en ulteriores pruebas y/o en entornos reales, de los 1260 aquí probados es “BmusTrainTestNorm Top 95 porc - ICF sqrt - gaussian hexa sheet 20x20 8000 epochs mini mix – 1” (candidato número 1 en la Tabla 19), galardón que deberá compartir con “BmusTrainTestNorm Top 100 porc - ICF sqrt - gaussian hexa sheet 20x20 8000 epochs mini mix – 1” (candidato número 2 en la Tabla 19) puesto que obtienen los mismos resultados y sólo se diferencian en la cantidad de palabras ponderadas que se toman de cada categoría: el 95% o el 100%, respectivamente. Ergo y teniendo en cuenta que sólo uno puede ser el finalista, podemos finalmente concluir que el mejor clasificador es el del Top 95% debido a que es más rápido ya que consigue idénticos resultados haciendo uso de un menor número de palabras. 84 Tabla 26: Métricas obtenidas para los mejores clasificadores de ambos escenarios (Fase de Testeo). Escenario Métricas Escenario 1 (datos sin normalizar) Escenario 2 (datos normalizados) AUC 0,970809 0,977740 MQE 39,592070 0,452661 TE 0,118567 0,078204 AUC mejor discreto relacionado & “Threshold” 0,924172 38 0,944499 37 Distancia al punto (0, 1) 0,118007 0,083623 Especificidad 0,889344 0,924103 Sensibilidad 0,959000 0,964895 F-score 0,927915 0,946385 “Accuracy”0,924595 0,944726 “Precision”0,898782 0,928571 TP 959 962 FP 108 74 TN 868 901 FN 41 35 A continuación, presentamos las curvas ROC (desde la Figura 21 hasta la Figura 29) pertenecientes a los clasificadores cuyos valores hemos tabulado y comentado anteriormente. Cada una de dichas configuraciones obtienen curvas similares entre sí, de ahí que se confirma que no existan grandes diferencias en los resultados tabulados. Vistas dichas curvas ROC podemos afirmar que cada uno de los mejores clasificadores para cada uno de los dos escenarios (datos sin normalizar y datos normalizados), tanto durante la fase de entrenamiento-ajuste (Figura 21 a Figura 28) como durante la de testeo (Figura 29), se caracterizan por ser de excelente calidad (como nos indicaba la Tabla 20) por varios motivos: •Pasan cerca del punto de clasificación perfecta en (0, 1), lo que en las anteriores tablas se deduce observando los valores bastante altos de especificidad y sensibilidad. •Tienen bastante poder de discriminación, debido a estar bastante alejados de la línea de decisión aleatoria (discontinua y en color rojo en todas las figuras). •Los valores de AUC asociados a dichas curvas ROC son bastante altos debido a los anteriores puntos, quedando demostrado lo expuesto en las tablas precedentes. 85 86 Figura 21: Curvas ROC de 8 mejores SOM Top 25 – Escenario 1 – Fase de Entrenamiento-Ajuste Figura 22: Curvas ROC de 5 mejores SOM Top 10 – Escenario 1 – Fase de Entrenamiento-Ajuste 87 Figura 23: Curvas ROC de 5 mejores SOM Top 10 – Escenario 2 – Fase de Entrenamiento-Ajuste Figura 24: Curvas ROC de 2 mejores SOM Top 25 – Escenario 2 – Fase de Entrenamiento-Ajuste 88 Figura 25: Curva ROC del mejor SOM Top 50 – Escenario 2 – Fase de Entrenamiento-Ajuste Figura 26: Curva ROC del mejor SOM Top 75 – Escenario 2 – Fase de Entrenamiento-Ajuste 89 Figura 28: Curvas ROC de 2 mejores SOM Top 100 – Escenario 2 – Fase de Entrenamiento-Ajuste Figura 27: Curvas ROC de 2 mejores SOM Top 95 – Escenario 2 – Fase de Entrenamiento-Ajuste 14. Las 1260 configuraciones probadas de nuestro sistema de filtrado antispam obtienen resultados entre muy buenos (0,9 < AUC <= 0,95) y excelentes (AUC > 0,95), no habiendo ninguna que obtuviera AUC < 0,9. Para el escenario 1 se obtuvieron 533 muy buenas y 97 excelentes mientras que para el escenario 2 fueron 523 y 107, respectivamente. 15. Las 13 mejores configuraciones, o conjunto de posibles soluciones finales, tienen buen poder de discriminación y las decisiones tomadas por los clasificadores pueden ser consideradas correctas. Se observa que, en conjunto, presentan menores valores de FP y FN, y más TP y TN. Son las configuraciones que alcanzan los mejores valores para esos dos pares de métricas al mismo tiempo, que es lo que las diferencia de las restantes. 16. Para el escenario 1 se puede inferir que ICF linear no es el más idóneo aunque no se puede concluir fehacientemente lo mismo para el escenario 2. 17. Se observa que mayores tamaños de SOM no implican mejores resultados para el filtro antispam. 18. La opción más prometedora de todas las 1260 configuraciones resulta ser una probada sobre el escenario 2, es decir, a los datos de entrada se les aplicó un método de normalización. Obtiene mejores resultados en todas las métricas utilizadas que la mejor configuración para el escenario 1, con datos sin normalizar. 4.2 Trabajos futuros Igualmente, se nos han abierto algunas posibles futuras líneas de investigación y de trabajo, entre las que podemos mencionar las siguientes: 1. Implementación en ciertos entornos de desarrollo (tales como GNU Octave, Weka o R) o con lenguajes de programación de uso general (como Python, Java, Ruby y C++114), en ambos casos libres y gratuitos. Aparte de ahorrar costes, también se pretendería aumentar el trabajo colaborativo o hacer más eficiente nuestro código. 2. Mejorar la eficiencia y el rendimiento de la implementación (e.g. incrementar el nivel de paralelización del código, reducir el consumo de memoria tanto primaria como secundaria...). Realizar la implementación del sistema propuesto en infraestructuras de cómputo de alto rendimiento, tales como el clúster de altas prestaciones COMCIENCIA o el supercomputador Atlante, con el fin de reducir los tiempos de ejecución. 3. Ampliación de las capacidades del software desarrollado agregando nuevas funcionalidades (Ej.: mejorar la interfaz gráfica de usuario, conseguir mayor robustez durante la E/S, etc). 4. Probar con otras configuraciones de SOM (i.e. podría ser de gran interés hacerlo con otros tamaños y formas de SOM, con inicialización aleatoria o con el algoritmo secuencial). 114 En estos lenguajes de programación está disponible la implementación de un diccionario, tabla de hash, mapa o multimapa (en sus versiones ordenadas o sin ordenar) que pueden ser equivalentes al container map disponible en MATLAB y que ha sido bastante utilizado en este proyecto. 96 5. Testear más profusamente la idoneidad y potencialidad de la nueva métrica del poder de clasificación desarrollada, probablemente haciendo una versión mejorada más potente y versátil. Para ello, nuestra nueva métrica mejorada podría tener en cuenta no sólo la menor distancia sino otra clase de información posiblemente útil como, por ejemplo, el ángulo entre la recta formada por el punto (FPR, TPR) más cercano de la curva ROC para dicho clasificador y el punto (0, 1) de clasificación perfecta, y el eje X (o de FPR). 6. Trabajar el esquema de preprocesado. Desarrollar nuevos modelos y métodos de preprocesado así como analizar más variantes propuestas por otros autores. 7. Analizar otras métricas de calidad de los clasificadores diferentes. 8. No usar el método bag-of-words durante la fase 1 del preprocesado sino algún otro que sí tenga en cuenta el orden de las palabras (Ej.: n-gramas). 9. Trabajar con algún cuerpo de ham más genérico que el aquí utilizado115 y, si es posible, con correos electrónicos más actuales. 10. Investigar con otras RNA, tanto con aprendizaje no supervisado (e.g. neural gas) como supervisado o, incluso, híbrido como la red counterpropagation (CPN) y la arquitectura HUMANN. 11. Desarrollar un filtro antispam multiclase116. Este consistiría en un sistema inteligente de clasificación multiclase con capacidad para detectar casos dudosos o grises. 12. Desarrollo de sistemas de clasificación automática de correos electrónicos en carpetas temáticas, sistemas inteligentes con capacidad tanto de clasificación multiclase como de clasificación multietiqueta117. 115 Per se proveniente de usuarios de la empresa energética Enron ergo el contenido de los ham es bastante peculiar y particular, no necesariamente extrapolable a la mayoría de los usuarios de correo electrónico. 116 En este caso, clasificar cada mensaje en una de las más de dos carpetas temáticas (clases) posibles. Cuando sólo existen dos clases posibles, se trata de clasificación binaria. 117 Aquí significa que cada correo electrónico puede pertenecer a varias carpetas temáticas al mismo tiempo. 97 98 Bibliografía Para la realización de este proyecto ha sido necesario recurrir a un extenso material bibliográfico de diversa índole tales como libros, artículos en revistas científicas, artículos en conferencias, y páginas web. 99 AALTO UNIVERSITY (CIS), 2005. SOM Toolbox. [en línea]. [Consulta: 5 julio 2013]. Disponible en: http://www.cis.hut.fi/projects/somtoolbox/. AIROLA, A., PAHIKKALA, T., WAEGEMAN, W., DE BAETS, B. y SALAKOSKI, T., 2009. A comparison of AUC estimators in small-sample studies. 3rd International workshop on Machine Learning in Systems Biology (MLSB 09) [en línea]. S.l.: s.n., pp. 15–23. [Consulta: 8 octubre 2014]. Disponible en: https://biblio.ugent.be/publication/860678/file/860679.pdf. ÁLVAREZ ROMERO, Y., DOMÍNGUEZ BRITO, A.C. y SUÁREZ ARAUJO, C.P., 2013. Diversity in neural ensembles. Application in simultaneous resolution of fungicides [en línea]. S.l.: Universidad de Las Palmas de Gran Canaria. [Consulta: 27 septiembre 2014]. Disponible en: http://acceda.ulpgc.es/bitstream/10553/11192/5/Tfm_Yeray_Alvarez_Romero.pdf. ANDERSON, D., 2006. Statistical Spam Filtering. EECS595 [en línea], vol. 4. [Consulta: 7 marzo 2013]. Disponible en: http://web.eecs.umich.edu/~rthomaso/courses/nlp/projects.06/David_Anderson.pdf. ANDROUTSOPOULOS, I., KOUTSIAS, J., CHANDRINOS, K.V., PALIOURAS, G. y SPYROPOULOS, C.D., 2000. An evaluation of naive bayesian anti-spam filtering. arXiv preprint cs/0006013 [en línea], [Consulta: 27 junio 2015]. Disponible en: http://arxiv.org/abs/cs/0006013. ANDROUTSOPOULOS, I., KOUTSIAS, J., CHANDRINOS, K.V. y SPYROPOULOS, C.D., 2000. An experimental comparison of naive Bayesian and keyword-based anti-spam filtering with personal e-mail messages. Proceedings of the 23rd annual international ACM SIGIR conference on Research and development in information retrieval [en línea]. S.l.: ACM, pp. 160–167. [Consulta: 27 junio 2015]. Disponible en: http://dl.acm.org/citation.cfm?id=345569. ANDROUTSOPOULOS, I., PALIOURAS, G., KARKALETSIS, V., SAKKIS, G., SPYROPOULOS, C.D. y STAMATOPOULOS, P., 2000. Learning to filter spam e-mail: A comparison of a naive bayesian and a memory-based approach. arXiv preprint cs/0009009 [en línea], [Consulta: 11 junio 2013]. Disponible en: http://arxiv.org/abs/cs/0009009. ANDROUTSOPOULOS, I., PALIOURAS, G. y MICHELAKIS, E., 2004. Learning to filter unsolicited commercial e-mail [en línea]. S.l.: « DEMOKRITOS», National Center for Scientific Research. [Consulta: 27 junio 2015]. Disponible en: http://pages.cs.aueb.gr/nlp/pubs/TR2004_updated.pdf. ANDROUTSOPOULOS, I., PALIOURAS, G., MICHELAKIS, E. y CSMINING.ORG, 2003. PU1 y PU123A. [en línea]. [Consulta: 9 abril 2013]. Disponible en: http://www.csmining.org/index.php/pu1-and-pu123a-datasets.html. BASOGAIN OLABE, X., 1998. Redes Neuronales Artificiales y sus Aplicaciones. Publicaciones de la Escuela de Ingenieros [en línea], [Consulta: 5 marzo 2015]. Disponible en: http://datateca.unad.edu.co/contenidos/299018/11_Redes_neuronales_artificiales_y_sus_aplicaciones.pdf. BEKKERMAN, R., 2013. Ron Bekkerman: Email Classification on Enron Dataset. [en línea]. [Consulta: 9 abril 2013]. Disponible en: http://people.cs.umass.edu/~ronb/enron_dataset.html. BEKKERMAN, R., MCCALLUM, A. y HUANG, G., 2004. Automatic categorization of email into folders: Benchmark experiments on Enron and SRI corpora. Center for Intelligent Information Retrieval (CIIR) - University of Massachusetts [en línea], vol. Technical Report IR-418 2004. 100 [Consulta: 1 julio 2015]. Disponible en: http://scholarworks.umass.edu/cs_faculty_pubs/218/? utm_source=scholarworks.umass.edu%2Fcs_faculty_pubs %2F218&utm_medium=PDF&utm_campaign=PDFCoverPages. BLANCO, Á., RICKET, A. y MARTÍN-MERINO, M., 2007. Combining SVM classifiers for email anti-spam filtering. Computational and Ambient Intelligence, pp. 903–910 (10). BOROVICKA, T., JIRINA JR., M., KORDIK, P. y JIRINA, M., 2012. Selecting Representative Data Sets. Advances in Data Mining Knowledge Discovery and Applications [en línea]. S.l.: Associate Prof. Adem Karahoca, ISBN 978-953-51-0748-4. Disponible en: http://www.intechopen.com/books/advances-in-data-mining-knowledge-discovery-andapplications/selecting-representative-data-sets. BRADLEY, A.P., 1997. The use of the area under the ROC curve in the evaluation of machine learning algorithms. Pattern Recognition, vol. 30, no. 7, pp. 1145-1159. BRIGHAM YOUNG UNIVERSITY, 1994. British National Corpus (BYU-BNC). [en línea]. [Consulta: 18 diciembre 2013]. Disponible en: http://corpus.byu.edu/bnc/. BROWN, C.D. y DAVIS, H.T., 2006. Receiver operating characteristics curves and related decision measures: A tutorial. Chemometrics and Intelligent Laboratory Systems, vol. 80, no. 1, pp. 24-38. ISSN 01697439. DOI 10.1016/j.chemolab.2005.05.004. BULLINARIA, J.A., 2012a. Self Organizing Maps: Algorithms and Applications. [en línea]. S.l. [Consulta: 25 mayo 2013]. Disponible en: http://www.cs.bham.ac.uk/~jxb/INC/l17h.pdf. BULLINARIA, J.A., 2012b. Self Organizing Maps: Fundamentals. [en línea]. S.l. [Consulta: 25 mayo 2013]. Disponible en: http://www.cs.bham.ac.uk/~jxb/INC/l16.pdf. CABESTANY, J., IENNE, P., MORENO, J.M. y MADRENAS, J., 1996. Is There a future for ANN Hardware. Workshop on Mixed Design of Integrated Circuits and Systems, Poland, Lodz [en línea]. S.l.: Citeseer, [Consulta: 8 marzo 2015]. Disponible en: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.7.8418&rep=rep1&type=pdf. CABRERA, Y. y ACOSTA, O., 2011. spam. . Politechnika Wroclawska (Poland): INE4242. CHAPELLE, O., SCHÖLKOPF, B. y ZIEN, A., 2006. Semi-supervised learning [en línea]. S.l.: MIT press Cambridge, MA: [Consulta: 11 diciembre 2012]. Disponible en: http://fs1.bib.tiera.ru/content/dvd38/Chapelle%20O.%20(Ed),%20Scholkopf%20B.%20(Ed), %20Zien%20A.%20(Ed)%20-%20Semi-Supervised%20Learning(2006)(508).pdf. CHHABRA, P., WADHVANI, R. y SHUKLA, S., 2010. Spam Filtering using Support Vector Machine. , pp. 6. CHHABRA, S., 2005. Fighting spam, phishing and email fraud [en línea]. S.l.: University of California Riverside. [Consulta: 3 febrero 2015]. Disponible en: http://www.cs.ucr.edu/~schhabra/thesis.pdf. CHUAN, Z., XIANLIANG, L., MENGSHU, H. y XU, Z., 2005. A LVQ-based neural network antispam email approach. ACM SIGOPS Operating Systems Review, vol. 39, no. 1, pp. 34–39 (6). CLARK, J., KOPRINSKA, I. y POON, J., 2003. A neural network based approach to automated e101 mail classification. Web Intelligence, 2003. WI 2003. Proceedings. IEEE/WIC International Conference on [en línea]. S.l.: s.n., pp. 702–705 (4). [Consulta: 27 noviembre 2012]. Disponible en: http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1241300. COHEN, W.W., 2013. Enron Email Dataset. [en línea]. [Consulta: 9 abril 2013]. Disponible en: http://www.cs.cmu.edu/~enron/. CORMACK, G.V. y MOJDEH, M., 2009. Machine learning for information retrieval: TREC 2009 web, relevance feedback and legal tracks. The eighteenth Text REtrieval Conference proceedings (TREC 2009), Gaithersburg, MD [en línea]. S.l.: s.n., [Consulta: 6 diciembre 2012]. Disponible en: http://trec.nist.gov/pubs/trec18/papers/uwaterloo-cormack.WEB.RF.LEGAL.pdf. CORTES GENERALES DE ESPAÑA, 1999. Ley Orgánica 15/1999, de 13 de diciembre, de Protección de Datos de Carácter Personal. BOE de [en línea], vol. 14. [Consulta: 19 septiembre 2014]. Disponible en: http://www.ugtextremadura.org/userfiles/ugt73.pdf. CORTES GENERALES DE ESPAÑA, 2002. Ley 34/2002, de 11 de julio, de Servicios de la Sociedad de la Información y de Comercio Electrónico. No166 [en línea], vol. 12. [Consulta: 19 septiembre 2014]. Disponible en: http://www.wipo.int/edocs/lexdocs/laws/es/es/es159es.pdf. DRUCKER, H., WU, D. y VAPNIK, V.N., 1999. Support vector machines for spam categorization. Neural Networks, IEEE Transactions on, vol. 10, no. 5, pp. 1048–1054 (7). DUDA, R.O., HART, P.E. y STORK, D.G., 2001. Pattern classification [en línea]. 2. S.l.: Wiley. [Consulta: 26 septiembre 2014]. Disponible en: http://books.google.es/books/about/Pattern_classification.html?id=YoxQAAAAMAAJ. ELUYODE, O.S. y AKOMOLAFE, D.T., 2013. Comparative study of biological and artificial neural networks. [en línea], [Consulta: 10 septiembre 2014]. Disponible en: http://scholarsresearchlibrary.com/EJAESR-vol2-iss1/EJAESR-2013-2-1-36-46.pdf. ERICKSON, D., CASADO, M. y MCKEOWN, N., 2008. The Effectiveness of Whitelisting: a User-Study. Proc. of Conference on Email and Anti-Spam [en línea]. S.l.: s.n., pp. 10. [Consulta: 8 diciembre 2012]. Disponible en: http://citeseerx.ist.psu.edu/viewdoc/download? doi=10.1.1.151.9251&rep=rep1&type=pdf. ERWIN, E., OBERMAYER, K. y SCHULTEN, K., 1991. Convergence Properties of SelfOrganizing Maps. Artificial Neural Networks [en línea], [Consulta: 12 junio 2015]. Disponible en: http://ottawa.ks.uiuc.edu/Publications/Papers/PDF/ERWI91/ERWI91.pdf. ERWIN, E., OBERMAYER, K. y SCHULTEN, K., 1992. Self-organizing maps: ordering, convergence properties and energy functions. Biological cybernetics, vol. 67, no. 1, pp. 47–55. FAWCETT, T., 2004. ROC graphs: Notes and practical considerations for researchers. Machine learning, vol. 31, pp. 1–38. FAWCETT, T., 2006. An introduction to ROC analysis. Pattern recognition letters, vol. 27, no. 8, pp. 861–874. FORCADA, V.R., 2003. Clasificación supervisada basada en redes bayesianas, aplicación en biología computacional [en línea]. S.l.: Universidad Politécnica de Madrid. [Consulta: 20 febrero 2015]. Disponible en: http://dialnet.unirioja.es/servlet/tesis?codigo=3037. 102 FORT, J.-C., LETREMY, P. y COTTRELL, M., 2002. Advantages and drawbacks of the Batch Kohonen algorithm. ESANN [en línea]. S.l.: s.n., pp. 223–230. [Consulta: 28 septiembre 2014]. Disponible en: http://samos.univ-paris1.fr/archives/ftp/preprints/samos158.pdf. FRESCHI, V., SERAGHITI, A. y BOGLIOLO, A., 2006. Filtering obfuscated email spam by means of phonetic string matching. Advances in Information Retrieval [en línea]. S.l.: Springer, pp. 505– 509. [Consulta: 29 marzo 2014]. Disponible en: http://link.springer.com/chapter/10.1007/11735106_52. FREUND, Y. y SCHAPIRE, R.E., 1999. Large margin classification using the perceptron algorithm. Machine learning, vol. 37, no. 3, pp. 277–296 (19). FUMERA, G., PILLAI, I. y ROLI, F., 2006. Spam filtering based on the analysis of text information embedded into images. En: R. LIPPMANN (ed.), The Journal of Machine Learning Research, vol. 7, pp. 2699–2720. GABRIELSSON, S. y GABRIELSSON, S., 2006. The Use of self-organizing maps in recommender systems. A survey of the Recommender Systems field and a presentation of a State of the Art Highly Interactive Visual Movie Recommender System [en línea]. Master’s Thesis. S.l.: Department of Information Technology at the Division of Computer Systems, Uppsala University. [Consulta: 27 julio 2014]. Disponible en: http://rslab.movsom.com/paper/somrs/somrs.pdf. GAMMERMAN, A., VOVK, V. y VAPNIK, V.N., 2013. Learning by Transduction [en línea]. 2013. S.l.: s.n. [Consulta: 29 enero 2015]. Disponible en: http://www1.cs.columbia.edu/~dplewis/candidacy/gammerman98learning.pdf. GAO, Y., YAN, M. y CHOUDHARY, A., 2009. Semi Supervised Image Spam Hunter: A Regularized Discriminant EM Approach. [en línea]. S.l.: s.n., pp. 152–164 (13). [Consulta: 29 noviembre 2012]. Disponible en: http://users.eecs.northwestern.edu/~mya671/mypapers/ADMA09_Gao_Yang_Choudhary.pdf. GARCÍA ABAD, J., 2012. Calibración Local de Predicciones Numéricas de Viento con Técnicas Estadísticas no Lineales (Downscaling Estadístico) [en línea]. Santander: Universidad de Cantabria. [Consulta: 5 junio 2015]. Disponible en: http://repositorio.unican.es/xmlui/bitstream/handle/10902/1006/Jesus%20Garcia%20Abad.pdf? sequence=1&isAllowed=y. GARCIA, F., HOEPMAN, J.H. y VAN NIEUWENHUIZEN, J., 2004. Spam filter analysis. Security and Protection in Information Processing Systems, pp. 395–410 (17). GOLBECK, J. y HENDLER, J., 2004. Reputation network analysis for email filtering. Proceedings of the First Conference on Email and Anti-Spam [en línea]. S.l.: s.n., pp. 54–58. [Consulta: 6 diciembre 2012]. Disponible en: ftp://ftp.research.microsoft.com/Users/joshuago/conference/papers-2004/177.pdf. GRAHAM-CUMMING, J., 2006. SpamOrHam. , pp. 22-24 (2). GUENTER, B., 1998. SPAM Archive. [en línea]. [Consulta: 2 julio 2015]. Disponible en: http://untroubled.org/spam/. GUZELLA, T.S. y CAMINHAS, W.M., 2009. A review of machine learning approaches to Spam filtering. Expert Systems with Applications, vol. 36, no. 7, pp. 10206-10222. ISSN 09574174. DOI 103 10.1016/j.eswa.2009.02.037. HAYKIN, S.S., 1999. Neural Networks. A Comprehensive Foundation [en línea]. 2nd. Ontario, Canada: Prentice-Hall International. [Consulta: 27 septiembre 2014]. Disponible en: http://www.mif.vu.lt/~valdas/DNT/Literatura/Haykin99/Neural%20Networks-A %20Comprehensive%20Foundation,%202nd%20Edition%20by%20Simon%20S.%20Haykin.pdf. HAYKIN, S.S., 2009. Neural Networks and Learning Machines. S.l.: Prentice Hall. ISBN 978-013-147139-9. HEBB, D.O., 1949. The organization of behavior: A neuropsychological theory [en línea]. S.l.: Psychology Press. [Consulta: 10 septiembre 2014]. Disponible en: http://books.google.com/books? hl=en&lr=&id=uyV5AgAAQBAJ&oi=fnd&pg=PP1&dq= %22to+bridge+the+gap+between+neurophysiology+and%22+ %22frequently+have+direct+access+to+data+of+first%22+%22human+adult)+psychology, +and+Moss+(1942)+or+Maier%22+%22winter.+Part+or+all+of+the+manuscript+was+read+by %22+&ots=mImSArJTXt&sig=HwZvBVhEWJGyHFjibReIbrHXNFc. HILL, S., 1999. samhill.co.uk | Kohonen Neural Networks. [en línea]. [Consulta: 9 diciembre 2012]. Disponible en: http://www.samhill.co.uk/kohonen/. HOPKINS, M., REEBER, E., FORMAN, G. y SUERMONDT, J., 1999. UCI Machine Learning Repository: Spambase Data Set. [en línea]. [Consulta: 9 abril 2013]. Disponible en: http://archive.ics.uci.edu/ml/datasets/Spambase. HOVOLD, J., 2005. Naive Bayes Spam Filtering Using Word-Position-Based Attributes. CEAS [en línea]. S.l.: s.n., [Consulta: 6 agosto 2013]. Disponible en: http://fileadmin.cs.lth.se/ai/psfiles/ceas05b.pdf. INDRAYAN, A., 2012. ROC Curve - Medical Biostatistics [en línea]. 3a. S.l.: Chapman & Hall. [Consulta: 17 febrero 2015]. Disponible en: http://www.medicalbiostatistics.com/roccurve.pdf. JAIN, A.K., MAO, J. y MOHIUDDIN, K.M., 1996. Artificial Neural Networks: A Tutorial. IEEE Computational Science & Engineering, vol. 29, pp. 31-44. JAMES BRUCE, 2012. Grey Mail: The New Email Nuisance To Hit Your Inbox. [en línea]. [Consulta: 4 marzo 2013]. Disponible en: http://www.makeuseof.com/tag/grey-mail-new-emailnuisance-inbox/. JOACHIMS, T., 1999. Transductive Inference for Text Classification using Support Vector Machines. [en línea]. S.l.: s.n., pp. 10. [Consulta: 11 diciembre 2012]. Disponible en: http://www1.cs.columbia.edu/~dplewis/candidacy/joachims99transductive.pdf. KARAHOCA, A. (ed.), 2012. Advances in Data Mining Knowledge Discovery and Applications [en línea]. S.l.: InTech. [Consulta: 23 septiembre 2014]. ISBN 978-953-51-0748-4. Disponible en: http://www.intechopen.com/books/advances-in-data-mining-knowledge-discovery-and-applications. KASKI, S. y LAGUS, K., 1996. Comparing Self-Organizing Maps. ICANN96 [en línea]. Berlin: Springer, pp. 809-814. [Consulta: 21 julio 2014]. Disponible en: http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=44E93668DE4AC3CC4EA5A828F702C ABF?doi=10.1.1.47.8238&rep=rep1&type=pdf. 104 KEILA, P.S. y SKILLICORN, D.B., 2005a. Detecting unusual and deceptive communication in email. Centers for Advanced Studies Conference [en línea]. S.l.: s.n., pp. 17–20. [Consulta: 1 julio 2015]. Disponible en: http://research.cs.queensu.ca/TechReports/Reports/2005-498.pdf. KEILA, P.S. y SKILLICORN, D.B., 2005b. Structure in the Enron email dataset. Computational & Mathematical Organization Theory, vol. 11, no. 3, pp. 183–199. KELLER, F., 2003. Connectionist and Statistical Language Processing. Universität des Saarlandes, [Online]. Available: http://www. coli. unisaarland. de/ crocker/courses/learning/lecture10. pdf [Accessed: July 2012] [en línea], [Consulta: 27 mayo 2014]. Disponible en: http://www.coli.unisaarland.de/~crocker/courses/learning/lecture11.pdf. KHORSI, A., 2007. An overview of content-based spam filtering techniques. INFORMATICALJUBLJANA-, vol. 31, no. 3, pp. 269 (10). KIVILUOTO, K., 1996. Topology Preservation in Self-Organizing Maps. International Conference on Neural Networks [en línea]. http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=548907: s.n., [Consulta: 7 agosto 2014]. Disponible en: http://cis.legacy.ics.tkk.fi/kkluoto/publications/icnn96.pdf. KLENSIN, J., 2008. RFC 5321 - Simple Mail Transfer Protocol. [en línea]. [Consulta: 17 septiembre 2014]. Disponible en: http://tools.ietf.org/html/rfc5321. KLIMT, B. y YANG, Y., 2004. The Enron Corpus: A new dataset for email classification research. Machine learning: ECML 2004 [en línea]. S.l.: Springer, pp. 217–226. [Consulta: 26 septiembre 2014]. Disponible en: http://link.springer.com/chapter/10.1007/978-3-540-30115-8_22. KOHONEN, T., 1988. An Introduction to Neural Computing. Neural Networks1, pp. 3-16. KOHONEN, T., 2001. Self-Organizing Maps - Teuvo Kohonen - Google Libros [en línea]. S.l.: Springer. [Consulta: 21 julio 2014]. Disponible en: http://books.google.es/books? id=e4igHzyfO78C&printsec=frontcover&hl=es#v=onepage&q&f=false. KOHONEN, T., 2013. Essentials of the self-organizing map. Neural Networks, vol. 37, pp. 52-65. ISSN 08936080. DOI 10.1016/j.neunet.2012.09.018. KOHONEN, T., HYNNINEN, J., KANGAS, J. y LAAKSONEN, J., 1996. SOM_PAK: The SelfOrganizing Map Program Package. Report A31, Helsinki University of Technology, Laboratory of Computer and Information Science [en línea], [Consulta: 26 diciembre 2014]. Disponible en: http://hackbbs.org/article/reds/form_de_base/SBI/labo5/som_pak.pdf. KOHONEN, T., NIEMINEN, I.T. y HONKELA, T., 2009. On the quantization error in SOM vs. VQ: A critical and systematic study. Advances in Self-Organizing Maps [en línea]. S.l.: Springer, pp. 133–144. [Consulta: 14 agosto 2014]. Disponible en: http://link.springer.com/chapter/10.1007/9783-642-02397-2_16. KOLCZ, A., CHOWDHURY, A. y ALSPECTOR, J., 2004. The impact of feature selection on signature-driven spam detection. Proceedings of the 1st Conference on Email and Anti-Spam (CEAS-2004) [en línea]. S.l.: s.n., [Consulta: 6 diciembre 2012]. Disponible en: http://ir.cs.georgetown.edu/~abdur/publications/147.pdf. KOTSIANTIS, S.B., KANELLOPOULOS, D. y PINTELAS, P.E., 2006. Data preprocessing for 105 TREC, 2007. 2007 TREC Public Spam Corpus. [en línea]. [Consulta: 8 diciembre 2012]. Disponible en: http://plg.uwaterloo.ca/~gvcormac/treccorpus07/. TRUSTWAVE, 2013a. Spam Statistics (weekly updated) - Support. [en línea]. [Consulta: 6 diciembre 2012]. Disponible en: https://www.trustwave.com/support/labs/spam_statistics.asp. TRUSTWAVE, 2013b. Spam Types - Support. [en línea]. [Consulta: 20 diciembre 2013]. Disponible en: https://www.trustwave.com/support/labs/spam_types.asp. UEMURA, T., IKEDA, D. y ARIMURA, H., 2008. Unsupervised spam detection by document complexity estimation. Discovery Science [en línea]. S.l.: s.n., pp. 319–331. [Consulta: 10 marzo 2013]. Disponible en: http://www.springerlink.com/index/u3p2846735751k11.pdf. UNITED STATES SENATE y UNITED STATES HOUSE OF REPRESENTATIVES, 2003. Controlling the Assault of Non-Solicited Pornography And Marketing Act of 2003. [en línea], [Consulta: 27 enero 2015]. Disponible en: http://www.legalarchiver.org/cs.htm. UNSPAM TECHNOLOGIES, INC, 2004. Project Honey Pot. [en línea]. [Consulta: 2 julio 2015]. Disponible en: http://www.projecthoneypot.org/about_us.php. URIARTE, E.A. y MARTÍN, F.D., 2005. Topology preservation in SOM. International Journal of Mathematical and Computer Sciences, vol. 1, no. 1, pp. 19–22. VAPNIK, V.N., 1999. An overview of statistical learning theory. Neural Networks, IEEE Transactions on, vol. 10, no. 5, pp. 988–999. VESANTO, J., 1999. SOM-based data visualization methods. Intelligent Data Analysis, vol. 3, pp. 111-126. VESANTO, J., HIMBERG, J., ALHONIEMI, E. y PARHANKANGAS, J., 1999. Self-organizing map in Matlab: the SOM Toolbox. Proceedings of the MATLAB DSP Conference [en línea]. S.l.: s.n., pp. 16–17. [Consulta: 28 junio 2013]. Disponible en: http://cda.psych.uiuc.edu/matlab_class/martinez/edatoolbox/Docs/toolbox2paper.pdf. VESANTO, J., HIMBERG, J., ALHONIEMI, E. y PARHANKANGAS, J., 2000. SOM Toolbox for Matlab 5. [en línea]. S.l.: [Consulta: 14 julio 2013]. Disponible en: http://www.cis.hut.fi/projects/somtoolbox/package/papers/techrep.pdf. VILLMANN, T., DER, R., HERRMANN, M. y MARTINETZ, T., 1994. Topology preservation in self-organizing feature maps: general definition and efficient measurement. Lecture Notes in Computer Science, pp. 159-166. VILLMANN, T., DER, R. y MARTINETZ, T., 1994a. A new quantitative measure of topology preservation in Kohonen’s feature maps. Proceedings of the IEEE International Conference on Neural Networks [en línea]. Orlando: s.n., pp. 645-648. [Consulta: 14 agosto 2014]. Disponible en: http://www.inb.uni-luebeck.de/publications/pdfs/ViDeMa94.pdf. VILLMANN, T., DER, R. y MARTINETZ, T., 1994b. A novel approach to measure the toplogy preservation of feature maps. Proceedings of the International Conference on Artificial Neural Networks [en línea]. S.l.: s.n., pp. 298-301. [Consulta: 14 agosto 2014]. Disponible en: http://www.inb.uni-luebeck.de/publications/pdfs/ViDeMa94a.pdf. 112 VRUSIAS, B.L. y GOLLEDGE, I., 2009a. Adaptable Text Filters and Unsupervised Neural Classifiers for Spam Detection. Proceedings of the International Workshop on Computational Intelligence in Security for Information Systems CISIS’08 [en línea]. S.l.: s.n., pp. 195–202. [Consulta: 18 diciembre 2013]. Disponible en: extras.springer.com/2009/978-3-540-881803/papers/0053/00530195.pdf. VRUSIAS, B.L. y GOLLEDGE, I., 2009b. Online Self-Organised Map Classifiers as Text Filters for Spam Email Detection. Journal of Information Assurance and Security (JIAS), vol. 4, no. 2, pp. 151–160. WANG, D., IRANI, D. y PU, C., 2013. A Study on Evolution of Email Spam Over Fifteen Years. 2013 9th International Conference Conference on Collaborative Computing: Networking, Applications and Worksharing (Collaboratecom). Atlanta, Georgia (USA): s.n., pp. 1-10. WANG, D. y ZHANG, H., 2013. Inverse-Category-Frequency Based Supervised Term Weighting Schemes for Text Categorization. Journal of Information Science & Engineering [en línea], vol. 29, no. 2. [Consulta: 20 febrero 2014]. Disponible en: http://search.ebscohost.com/login.aspx? direct=true&profile=ehost&scope=site&authtype=crawler&jrnl=10162364&AN=86233840&h=Fs AsqRQCBYavGA%2FPgSc3j8hM18rr2VCzfi89ZBJh %2FhuVjmzquqrWMKvurz0FMBojnTrVJuJfzp%2BSTLITPh6eJg%3D%3D&crl=c. WEISSTEIN, E.W., 2014. Plane. En: A plane is a two-dimensional doubly ruled surface spanned by two linearly independent vectors. The generalization of the plane to higher dimensions is called a hyperplane. The angle between two intersecting planes is known as the dihedral angle. The equation of a plane with nonzero normal vector n=(a,b,c) through the point x_0=(x_0,y_0,z_0) is n·(xx_0)=0, (1) where x=(x,y,z). Plugging in gives the general equation of a plane, ax+by+cz+d=0, (2) where d=-ax_0-by_0-cz_0. (3) A... [en línea]. [Consulta: 26 septiembre 2014]. Disponible en: http://mathworld.wolfram.com/Plane.html. WESTERLUND, M.L., 2005. Classification with Kohonen Self-Organizing Maps. [en línea], [Consulta: 5 julio 2013]. Disponible en: https://notendur.hi.is/benedikt/Courses/Mia_report2.pdf. WIEHES, A., 2005. Comparing anti spam methods. [en línea], [Consulta: 26 septiembre 2014]. Disponible en: http://brage.bibsys.no/xmlui/handle/11250/143763. WIKIPEDIA, 2012a. Anti-spam techniques. En: Page Version ID: 524163282, Wikipedia, the free encyclopedia [en línea]. [Consulta: 29 noviembre 2012]. Disponible en: http://en.wikipedia.org/w/index.php?title=Anti-spam_techniques&oldid=524163282. WIKIPEDIA, 2012b. Image spam. En: Page Version ID: 521427814, Wikipedia, the free encyclopedia [en línea]. [Consulta: 6 diciembre 2012]. Disponible en: http://en.wikipedia.org/w/index.php?title=Image_spam&oldid=521427814. WIKIPEDIA, 2013a. Bacn emails. [en línea]. [Consulta: 4 marzo 2013]. Disponible en: http://en.wikipedia.org/wiki/Bacn_(electronic). WIKIPEDIA, 2013b. Bayesian poisoning. [en línea]. [Consulta: 12 diciembre 2012]. Disponible en: http://en.wikipedia.org/wiki/Bayesian_poisoning. WIKIPEDIA, 2013c. Binary classification. [en línea]. [Consulta: 14 abril 2013]. Disponible en: http://en.wikipedia.org/wiki/Binary_classification. 113 WIKIPEDIA, 2013d. Enron Corpus. [en línea]. [Consulta: 9 abril 2013]. Disponible en: http://en.wikipedia.org/wiki/Enron_Corpus. WIKIPEDIA, 2013e. Greylisting. [en línea]. [Consulta: 8 diciembre 2012]. Disponible en: http://en.wikipedia.org/wiki/Greylisting. WIKIPEDIA, 2013f. Precision and recall. [en línea]. [Consulta: 14 abril 2013]. Disponible en: http://en.wikipedia.org/wiki/Recall_(information_retrieval). WIKIPEDIA, 2013g. Receiver operating characteristic (ROC curve). [en línea]. [Consulta: 14 abril 2013]. Disponible en: http://en.wikipedia.org/wiki/Receiver_operating_characteristic. WIKIPEDIA, 2013h. Self-organizing map. Wikipedia, the free encyclopedia [en línea]. [Consulta: 25 mayo 2013]. Disponible en: http://en.wikipedia.org/w/index.php?title=Selforganizing_map&oldid=555704734. WIKIPEDIA, 2013i. Sensitivity and specificity. [en línea]. [Consulta: 14 abril 2013]. Disponible en: http://en.wikipedia.org/wiki/Sensitivity_and_specificity. WIKIPEDIA, 2014a. Accuracy and precision. [en línea]. [Consulta: 29 septiembre 2014]. Disponible en: http://en.wikipedia.org/wiki/Accuracy_and_precision. WIKIPEDIA, 2014b. Email. [en línea]. [Consulta: 24 enero 2015]. Disponible en: http://en.wikipedia.org/wiki/Email#Origin. WIKIPEDIA, 2014c. Pareto principle. [en línea]. [Consulta: 27 mayo 2014]. Disponible en: http://en.wikipedia.org/wiki/Pareto_principle. WILSON, D.R. y MARTINEZ, T.R., 2003. The general inefficiency of batch training for gradient descent learning. Neural Networks, vol. 16, no. 10, pp. 1429-1451. ISSN 08936080. DOI 10.1016/S0893-6080(03)00138-2. WITTEL, G.L. y WU, S.F., 2004. On Attacking Statistical Spam Filters. CEAS [en línea]. S.l.: s.n., [Consulta: 28 enero 2015]. Disponible en: http://pdf.aminer.org/000/085/123/on_attacking_statistical_spam_filters.pdf. WORSTER, A., FAN, J. y UPADHYE, S., 2006. Understanding receiver operating characteristic (ROC) curves. Cjem, vol. 8, no. 1, pp. 19–20. YERAZUNIS, W., KATO, M., KORI, M., SHIBATA, H. y HACKENBERG, K., 2010. Keeping the Good Stuff In: Confidential Information Firewalling with the CRM114 Spam Filter & Text Classifier. Black Hat [en línea]. USA: s.n., [Consulta: 28 enero 2015]. Disponible en: http://www.merl.com/publications/docs/TR2010-064.pdf. ZEIMPEKIS, D., KONTOPOULOU, E.M. y GALLOPOULOS, E., 2011. Text to Matrix Generator (TMG). [en línea]. [Consulta: 20 diciembre 2013]. Disponible en: http://scgroup20.ceid.upatras.gr:8000/tmg/. ZHANG, Y., 2012. Lecture for Chapter 2 - Data Preprocessing. [en línea]. S.l. [Consulta: 11 marzo 2013]. Disponible en: http://www.cs.gsu.edu/~cscyqz/courses/dm/slides/ch02.ppt. ZHOU, D., BOUSQUET, O., LAL, T.N., WESTON, J. y SCHÖLKOPF, B., 2004. Learning with 114 local and global consistency. Advances in neural information processing systems, vol. 16, pp. 321– 328 (8). ZHOU, D., BURGES, C.J.C. y TAO, T., 2007. Transductive link spam detection. Proceedings of the 3rd international workshop on Adversarial information retrieval on the web [en línea]. S.l.: s.n., pp. 21–28 (8). [Consulta: 11 diciembre 2012]. Disponible en: http://dl.acm.org/citation.cfm? id=1244413. ZHU, X., 2008. Semi-supervised learning literature survey. , pp. 60. ZHU, X., 2010. Semi-supervised learning. Encyclopedia of Machine Learning [en línea]. S.l.: Springer, pp. 892–897. [Consulta: 29 enero 2015]. Disponible en: http://link.springer.com/content/pdf/10.1007/978-0-387-30164-8_749.pdf. ZIEN, A., 2006. Semi-Supervised Support Vector Machines and Application to Spam Filtering (PPT). [en línea]. S.l.: s.n., pp. 37. [Consulta: 29 noviembre 2012]. Disponible en: http://www.is.tuebingen.mpg.de/fileadmin/user_upload/files/publications/SSLspam_4162%5B0%5D.pdf. ZWEIG, M.H. y CAMPBELL, G., 1993. Receiver-operating characteristic (ROC) plots: a fundamental evaluation tool in clinical medicine. Clinical Chemistry, vol. 39, no. 4, pp. 561–577. 115