jueves, octubre 27, 2005

Métodos de Regresión

Regresión se refiere a la aproximación del valor real de la función que determina la correcta clasificación del texto.

Uno de estos métodos es LLSF: Linear Least-Square Fit. En él, existen dos vectores asociados a los documentos:

- I(dj), de largo |T|, y que representa a los términos
- y O(dj), de largo |C|, y que representa a las categorías. Es de tipo binario para entrenamiento y no binario para prueba.

Este procedimiento trata de determinar O(dj) dado I(dj), y construir una matriz M con |C| filas y |T| columnas, tal que al hacer el producto cruz entre M e I(dj) se encuentre O(dj).

La matemática del método puede sonar complicada, pero no lo es: se calcula la matriz de los datos de entrenamiento calculando un “linear least-square fit” que minimice el error en la fórmula



, donde minM(x)=M para el que x es mínimo



representa la llamada norma de Frobenius para una matriz |C|x|T|,

I es la matriz |T|x|Tr|, donde las columnas son los vectores de entrada para los documentos de entrenamiento; y O es la matriz |C|x|Tr|, donde las columnas son la salida de los vectores de entrenamiento.

M normalmente se calcula haciendo una descomposición valor singular en el conjunto de entrenamiento, y esta entrada genérica representa el grado de asociación entre la categoría ci y el término tk.

LLSF es considerado uno de los más efectivos clasificadores de textos, pero tiene el serio problema del costo computacional.

Clasificadores por reglas de decisión

Son clasificadores construidos a partir de métodos inductivos de reglas tipo condicional, donde los literales en la premisa denotan presencia o ausencia de una palabra clave; por ejemplo, si está la palabra fútbol, es probable que se trate de deportes.

En tal sentido, tienden a ser similares a los árboles de decisión, pero además tienden a generar clasificadores más compactos.

Inicialmente los documentos se expresan como un vector de términos n1,..., nx -> C, donde C indica si pertenece o no a la categoría.

A estas reglas, se les aplica un proceso de generalización donde la regla se modifica removiendo premisas o mezclándolas.

Finalmente se podan con un criterio similar al de los árboles de decisión.

Existe una amplia variedad de métodos, heurísticas y criterios empleados para la generalización y la poda.

miércoles, octubre 19, 2005

Clasificadores simbólicos - Árboles de Decisión

Si bien puede ser fácil de implementar los clasificadores probabilísticos, son difíciles de interpretar por lo humanos.

No es el caso de los Algoritmos Simbólicos, de los Aprendices Inductivos de Reglas y de los Árboles de Decisión; entre otros.

El caso de los Árboles de Decisión, DT de sus siglas en Inglés (Decision Tree), tienen la facilidad que son representables esquemáticamente como un grafo, donde sus nodos internos están etiquetados por términos, sus hojas con pesos y sus hojas con categorías.

Así, para encontrar la categoría de un documento, basándose en el vector que representa el documento, se navega recursivamente hasta una hoja.

Hay paquetes estándar de aprendizaje de árboles de decisión. Los más populares son ID3, C4.5 y C5.

Un método simple de aprendizaje para árboles de decisión es Dividir para Conquistar. En este método,
- Se revisan todos los ejemplos con igual etiqueta: los que pertenecen y los que no pertenecen a ci.
- Sino, se seleccionan aquellos términos que tengan igual término tk y se colocan en un subárbol separado.
- Se repite el proceso hasta que en la misma hoja queden todos los ejemplos de entrenamiento con igual categoría.

Para saber qué término escoger, normalmente se usan criterios como ganancia de la información o entropía.

Además, normalmente se usa posteriormente un proceso de poda para evitar el sobreajuste del árbol.

Los árboles de decisión han sido usados normalmente como el proceso principal en las herramientas de clasificación de texto; aunque también se les suele encontrar como punto de partida o como parte de un comité de clasificación en otras herramientas.

Clasificadores Probabilísticos - Ingenuo de Bayes

El clasificador CVSi(dj), es quizás el clasificador más utilizado y el que más frecuentemente se encuentra en la literatura. Este clasificador expresa la probabilidad de que un documento, representado por el vector dj cualquiera, pertenezca a una clase ci dada. De forma matemática, se puede ver de la siguiente manera:




donde el espacio de eventos es el de los documentos, P(dj) es la probabilidad de escoger aleatoriamente un documento este esté representado por el vector d(j); y P(ci) es la probabilidad de que al tomar un documento cualquiera este pertenezca a la clase ci.

Estimar la probabilidad anterior no es fácil por lo complejo de dj; por lo que normalmente se asume que las variables que componen el documento vector son independientes; por lo que se puede representar la probabilidad anterior como:




Dada esta suposición, es lo que se conoce como Ingenuo de Bayes (Naive Bayes), y por su simplicidad y rendimiento, es ampliamente utilizado en Categorización de Textos.

De todas las aproximaciones del Ingenuo de Bayes, la más común es la Independencia Binaria, donde se usan valores binarios para la representación del documento en el vector; pero se pueden encontrar otras variaciones que apuntan a:
- Relajar la restricción que el vector documento tenga valores binarios
- Introducir normalización en el largo del documento
- Relajar la suposición de independencia

martes, octubre 18, 2005

Construcción Inductiva de Clasificadores de Texto

Como se vió, existen dos formas de clasificar texto: una manera dura, donde se toma una decisión booleana respecto a la pertenencia o no del texto a una determinada categoría; o una graduada, donde se estima una probabilidad de pertenencia.

De manera similar, hay dos formas de crear los clasificadores: una manera dura o automatizada, donde se deja la responsabilidad completa de la clasificación del texto al clasificador; y una parcialmente automatizada, donde el clasificador entrega una "proximidad a la clase".

En el caso de la clasificación dura, se define una función CVSi que determina si pertenece o no a la categoría (D->{V, F}). Esta función D, es en realidad una función que entrega un valor entre 0 y 1, y se define un valor umbral por sobre el cual la respuesta de D es considerada verdadera y falsa en otro caso.

El caso de la clasificación parcialmente automatizada es similar desde el punto de vista que también define una función CVSi que entrega un valor entre 0 y 1, pero que en este caso indica la proximidad a una clase; y así como funciona para clasificación con pivote en el documento, funciona para clasificación con pivote en la categoría.

Además, la función CVSi toma distintos significados dependiendo del método de aprendizaje utilizado. Así, para el Ingenuo de Bayes indica probabilidad; en cambio para Roccio, es una medida de proximidad en el espacio |T|-dimensional.

Determinación de Umbrales

Se distinguen dos caminos para la determinación de umbrales: analítica y experimental.

El caso de la determinación analítica, sólo es posible cuando hay un resultado teórico que indique cómo calcular el umbral que maximice el valor esperado para la función efectividad. Normalmente se utiliza con funciones cuya salida sea una probabilidad y cuya efectividad sea calculada por una medida de decisión teórica, como la utilidad .

Pero este análisis no siempre es posible. Para estos casos la determinación del umbral es en forma experimental, para lo que existen varias alternativas.

- Una manera es Scut, donde se prueban distintos umbrales y se escoge el que maximice la efectividad. Lo normal es que para esta forma de determinación se seleccionen distintos umbrales para distintas categorías.

- Una segunda alternativa es Pcut, donde se establece en aquel valor donde la generalidad del conjunto de validación es cercano a la generalidad del conjunto de prueba. Esta forma de determinar el umbral incorpora el principio que el porcentaje de documentos que pertenece a una determinada clase debiera mantenerse en el conjunto de entrenamiento que en el de prueba. Este método no se usa para clasificación con pivote en el documento.

- Una tercera forma, algo menos común, es el de umbral reparado, Rcut o umbral "k-per-doc"; donde una cantidad k de categorías es asignada a cada documento, aunque el umbral no está aplicado en el sentido anterior, pero se usa con pivote en el documento, y no permite una sintonía fina.

jueves, octubre 06, 2005

Reducción de la dimensionalidad

Se denomina Reducción de la Dimensionalidad a disminuir el tamaño del vector que contiene los términos representativos de un documento.

La razón de querer disminuirlo es que los algoritmos más sofisticados de inducción tienen problemas para manejar vectores de gran tamaño, por eso se reduce |T|<<|T'|

Además, el reducir la dimensionalidad entrega la ventaja que disminuye el sobre ajuste, que es el fenómeno en el que el clasificador aprende las características contingentes y no sólo las constitutivas del documento.

Si bien hay muchas cifras respecto de cuánto debe ser esta reducción de dimensionalidad, llegando incluso algunos autores a proponer un 50%; la verdad es que una cifra así o superior puede llegar a ser perjudicial porque se puede llegar a eliminar términos con significado para el documento.

Respecto de los métodos de reducción, hay varios propuestos; la mayoría de ellos provienen del álgebra lineal o de la teoría de la información.

La Reducción de la Dimensionalidad puede ser vista desde dos puntos de vista:

- De modo Local: esto es, para cada categoría, es escoge |T'|<<|T| para la clasificación de la categoría (vale decir, cada categoría tendrá su propio conjunto de términos para ser evaluado). Normalmente, el valor de |T'| va de 0 a 50 términos... aunque intuitivamente se trata de cantidades empíricas.

- De modo Global: vale decir, el mismo conjunto de términos será utilizado para evaluar la clasificación en todas las categorías.

[Sebastiani 2002] nos dice que ambas formas han impactado en el resultado final, pero no se ha notado cambio cuando se trata de aprendizaje supervisado.

Respecto de cómo escoger los términos, también se ha encontrado dos formas:

- Reducción de Dimensionalidad por Selección: de los términos disponibles, se escogen los más representativos.

- Reducción de Dimensionalidad por Extracción: Los términos en T' no son los mismos que en T; por ejemplo, T' puede contener sólo palabras y T no sólo eso; pero son obtenidos por combinación o transformación de las originales.


Reducción de la dimensionalidad por Selección de Términos

También se le llama Reducción de Dimensionalidad por Espacio de Términos (TSR - Term Space Reduction).

La idea básica es que, dado un conjunto de términos T, seleccionar un subconjuto T', con |T|<<|T'|; con el que se indexan los documentos.

El TSR, ha mostrado mejorar la efectividad de la clasificación menor de un 5% dependiendo del clasificador, la agresividad de la reducción y la técnica TSR utilizada.

Dentro de las técnicas, una que debe llamar la atención es aquella llamada wrapper, que agrega y quita términos del conjunto T' inicial, para luego generar el clasificador. Una vez realizadas varias iteraciones, se selecciona aquel conjunto que presente mejores resultados. Si bien esta técnica parece ser buena, dado que a medida que aprende se afina, es prohibitiva en la mayoría de las aplicaciones de categorización de textos comunes dado el tamaño del espacio que requiere.

Frecuencia Documental

Esta es una sencilla técnica, aunque muy efectiva, donde se escogen aquellos términos que presentan mayor ocurrencia en los documentos.

Se ha demostrado (Sebastiani, 2002) que se puede disminuir la dimensionalidad del conjunto T hasta en un factor de 10 sin pérdida de información; y hasta en 100 con una pérdida de información despreciable.

Previo a la selección de los términos, y en un detalle no menor, se eliminan aquellos términos que, aportando a la redacción, no aportan información, como adverbios y preposiciones. El listado de estas palabras es almacenado en un conjunto denominado Stop Words.

A esta lista, hay quienes eliminan además aquellos términos que aparecen en un conjunto muy reducido de documentos, los que varían de 1 a 5.

Otras funciones de Teoría de Información

Nuevamente la Teoría de Información aporta a la categorización de textos; en este caso, a la reducción del espacio de términos.

Adjunto vemos un listado de las más conocidas sin perjuicio que se pueda encontrar alguna más.



Las probabilidades son interpretadas en un espacio de eventos para los documentos, y son estimadas contando las ocurrencias en el conjunto de entrenamiento.

Todas las funciones son especificadas localmente a una categoría específica ci, con el objeto de calcular el calor para el término tk en un sentido “global”independiente de la categoría.

Lo que intentan capturar es la intuición que los mejores términos para ci son aquellos distribuidos más diferentemente en el conjunto de ejemplos positivos y negativos para ci. De este modo, las interpretaciones para este principio varían a través de las diferentes funciones.

La mayoría de las funciones de la tabla han mejorado con frecuencia de documentos.

Colectivamente, los experimentos reportados indican que en cuanto a performance que el Coeficiente NGL, Tasa impar y Coeficiente GSS, son mejores que Xi Cuadrado y Ganancia de Información; y estos, a su vez, son mejores que el resto de los restantes presentes en la tabla.

Una observación interesante que nos muestra [Sebastiani, 2002], es que Xi cuadrado y ganancia de información, han podido, con distintos corpus, reducir la dimensionalidad en un factor de 100 sin pérdida de efectividad.


Reducción de la dimensionalidad por Reducción de Términos

El objetivo es similar a la por selección de términos, vale decir, a partir de T, generar un T' donde |T'|<<|T|.

La diferencia está en que busca el aumento de la efectividad en la existencia de palabras polisémicas, hominómicas y sinonímicas.

Se llama polisemia a la capacidad que tiene una sola palabra para expresar muy distintos significados. Al igual que la homonimia, en el caso de la polisemia se asignan varios significados a un solo significante. Pero, mientras la homonimia se produce por coincidencia de los significantes de diversos signos, la polisemia se debe a la extensión del significado de un solo significante. (Fuente: Wikipedia.org)

El método, cualquiera que este sea, se basa en:
- Un método de extracción de nuevos términos a partir de los viejos
- Un método de transformación de la representación original a la nueva basado en la nueva síntesis.

Don métodos se han probado en Categorización de Textos: Agrupación de Texto (Text Clustering) y Indexación Semántica Latente (Latent Semantic Indexing – LSI).

Agrupación de Textos

Trata de agrupar palabras con alto grado de semejanza (centroide o término representativo) para ser usado como término en la dimensión del espacio vector. Trata de hallar sinonimia.

El clustering puede ser no supervisado:
i)Buscar términos semejantes por alguna medida de similaridad
ii)Buscar co-ocurrencia o co-ausencia en los documentos de entrenamiento

o supervisado:

Se agrupan aquellos términos que tienden a estar presentes en la misma categoría o grupo de categorías.

El supervisado ha presentado mejores resultados con sólo un 2% de pérdida de la efectividad con una agresividad de 1000 y mejoras al bajar la agresividad.

Los resultados con no supervisados son pobres.

Indexación Semántica Latente

Originalmente fue desarrollado para Recuperación de la Información para resolver problema de uso de sinónimos, términos similares y palabras polisémicas en representación de documentos.

Comprime vectores de documentos en vectores de menor espacio dimensional, cuyas dimensiones son obtenidas como combinación de las dimensiones originales mirando sus patrones de co-ocurrencia.

Las dimensiones obtenidas no son intuitivamente interpretables, pero trabajan bien trayendo la estructura semántica latente del vocabulario usado en el corpus.

martes, octubre 04, 2005

Representación de Documentos

Existen varias aproximaciones a la representación de la información (Hearst and Hirsh 1996):

- Bag of Words: cada palabra constituye una posición de un vector y el valor corresponde con el nº de veces que ha aparecido.

- N-gramas o frases: permite tener en cuenta el orden de las palabras. Trata mejor frases negativas “... excepto ...”, “... pero no...”, que tomarían en otro caso las palabras que le siguen como relevantes.

- Representación relacional (primer orden): permite detectar patrones más complejos (si la palabra X está a la izquierda de la palabra Y en la misma frase...).

Sea cual sea la representación a utilizar, es necesario indexar el documento, vale decir, representaciones compactas de él. El tipo de indexación dependerá de cual represente mejor las unidades de texto (semántica léxica) y las reglas del lenguaje natural (semántivca composicional).

Normalmente se utiliza para la representación un vector de pesos de los términos,



donde cada posición representa una característica del documento y contiene el peso que en el documento específico se asigna a la característica. Este peso viene dado por un valor normalmente entre 0 y 1. T representa el conjunto de características que está presente al menos una vez en el documento.

Los términos normalmente son palabras, en cuyo caso estamos ante un bag of words, pero también podría ser algo más complejo como se vió arriba. Del mismo modo, el peso puede ser binario, el término está o no presente; o un valor entre 0 y 1, para representar, por ejemplo, el peso relativo de la palabra en el documento. Todo depende del algoritmo usado.

La verdad es que, por ejemplo en [Sebastiani 2002], hay numerosa literatura que habla de que representaciones más complejas que bag of words; como podrían ser frases, tanto sintácticas (de acuerdo a la gramática del idioma) como estadísticas (que no es gramatical, sólo una secuencia de palabras), no han demostrado ser más efectivas. Esto dado que las frases, si bien tienen mejores características semánticas, tienen menores características estadísticas que las palabras solas, por la existencia de sinónimos, entre otros problemas del lenguaje, y la menor frecuencia en los documentos. [Sebastiani et al.] también aclaran que una mezcla de frases y palabras sueltas da mejor resultado, aunque esto es objeto aún de estudio.

Cuando se trata de pesos no binarios, normalmente se calcula una frecuencia de aparición del término en el documento. La ecuación de abajo es el ejemplo más común de estas ecuaciones:



donde Card() representa la cantidad de veces que el término aparece en el documento.

Esta ecuación muestra que:
- a mayor ocurrencia del término en el documento, es más representativo del contenido
- mientras mayor sea la cantidad de documentos que contengan el término, éste es menos discriminador.
- al igual que muchas otras ecuaciones equivalentes, el orden de aparición del término ni la sintaxis de él, no reviste importancia.

Para que los pesos pertenezcan al rango entre 0 y 1, normalmente son normalizados por el coseno de normalización:



Existen otras técnicas de indexación, como probabilísticas o documentación estructurada, necesarias, por ejemplo, cuando Tr no está disponible y la cardinalidad del término no se puede calcular.

Antes de indexar, se eliminan las palabras neutras, aunque es controversial respecto de la procedencia (stemming), vale decir, agrupar palabras que comparten la misma raíz morfológica; dado que se han reportado casos donde ha sido perjudicial a la efectividad.

Dependiendo de la aplicación, se indexa todo el texto o sólo parte de él, como con los documentos estructurados.

La aproximación de indexación Darmstadt

El proyecto AIR (AIR/X) es uno de los más importantes esfuerzos en Categorización de Textos. Duró más de 10 años y desde 1985 es usado en clasificación de literatura científica, y cuenta del orden de O(105) documentos, agrupados en el orden de O(104) categorías.

La indexación utilizada en ese proyecto fue DIA (Darmstad Indexing Approach), que usa un vocabulario controlado pero ampliado con características o propiedades para los términos, documentos, categorías y relaciones entre estos. Por ejemplo:

- Propiedades de un término tk: por ejemplo, idf para tk

- Propiedades de una relación entre un término tk y un documento dj: por ejemplo, el tf para tk en dj; o la ubicación (título, resumen, etc.) de tk en dj.

- Propiedades para un documento dj: por ejemplo, el largo del documento.

- Propiedades de una categoría ci: por ejemplo, la generalidad para el conjunto de prueba de la categoría

Para cada posible relación documento-categoría, existe un “vector descriptor de relevancia” rd(dj, ci) que reúne las características de la relación. El tamaño de este vector es determinado por el número de propiedades consideradas y es independiente de la cantidad de términos, categorías o documentos.

La relación entre término y categoría se obtiene del conjunto de entrenamiento y se expresa como una probabilidad P(ci|tk) de que el documento pertenezca a la categoría ci (DIA association factor)

Esta indexación no ha sido usada para otras investigaciones, pero cobra y aumenta importancia en indexación de documentos estructurados y páginas web.

lunes, octubre 03, 2005

Los conjuntos de entrenamiento, prueba y validación

Como ya se ha dicho, la categorización de texto basada en aprendizaje necesita ejemplos para deducir las reglas de clasificación.

Normalmente, se recolectan ejemplos de textos correctamente clasificados, normalmente tarea realizada por expertos humanos; los que se agrupan para servir de entrada al clasificador.

A estos ejemplos recolectados se les denomina generalmente el corpus inicial; y está definido como el conjunto O={d1,...,dn} contenidos en D preclasificados en C={c1,..., c|C|}, donde C es el conjunto de categorías existentes y D el conjunto de documentos.

A este conjunto inicial de documentos, o corpus inicial, se puede dividir de diferentes formas. Lo más normal es dividir en Entrenamiento y Prueba, donde el conjunto de entrenamiento sirve para educar al clasificador, y el de prueba para medir la efectividad conseguida. Estos conjuntos son disjuntos. Luego de probarlo, algún parámetro se moverá de modo de mejorar la efectividad del clasificador. Para ello se tiene reservado una parte del conjunto de entrenamiento no utilizado antes, que permite observar el resultado de este tunning o sintonización sobre los parámetros.

Otra manera es la Validación Cruzada. En esta variante, también conocida como k-fold cross validation; el conjunto de ejemplos conseguidos se divide en k conjuntos disjuntos, con los que iterativamente se van generando conjuntos de entrenamiento y prueba. Como el resultado será una serie de clasificadores menores, la efectidad final del clasificador está dada por el promedio de los clasificadores individuales. Al igual que el anterior, se reserva un conjunto para sintonización de los parámetros.

Se definirá Generalidad como el porcentaje de documentos del conjunto de entrenamiento que pertenecen a una categoría, de la forma como la define la siguiente fórmula: