Evaluación en clasificación secuencial

Evaluación en clasificación secuencial

de Rafael Agustin Castelli Ottati -
Número de respuestas: 2

Hola, haciendo el ejercicio 6 del práctico 3 me surgieron algunas dudas.

¿Cómo se definen los true positives (TP) en la clasificación secuencial? En particular, en las diapositivas se menciona que solo exact  matches se aceptan como TP, pero entonces ¿como se definen FN, FP y TP?

Por lo que entendí, para el concepto de TP es necesario tener una clase objetivo, pero dado que ahora estoy clasificando secuencias de distinto tamaño, tengo al menos |Tags|^n clases para cada largo n (todas las permutaciones de largo n de tags).  Si considero que las oraciones pueden ser de largo arbitrario tendría infinitas clases, y si me restrinjo a un N máximo, tendría un número exponencial de clases (algunas imposibles según la gramática del lenguaje) y acumular estadísticas significativas del rendimiento sería "imposible" (para armar la matríz de confusión).

Por otro lado, si tomo TP como el número de aciertos, entonces no puedo computar ni la precision ni el recall, solo la accuracy.

Por último, en el práctico se me pide que determine una relación entre accuracy, recall y presicion para un problema de reconocimiento de spans de texto, pero no me queda claro que debería hacer.

Saludos,

Rafael.

En respuesta a Rafael Agustin Castelli Ottati

Re: Evaluación en clasificación secuencial

de Luis Chiruzzo -
Hola,

Acá tenemos dos temas diferentes:

1) Cuando hablamos de clasificación secuencial, normalmente nos referimos a devolver un tag por palabra. Ejemplos: POS-tagging y todos los problemas que se pueden reformular con tags B-I-O o F-O-L (NER, chunking, este problema de detectar texto especulativo, etc). No te pasa que haya diferente cantidad de tags predichos que te palabras, por lo que las medidas de accuracy, precisión, recall, etc. quedan bien definidas al calcularlas por token.

Para problemas de secuencia a secuencia (traducción automática, resúmenes, respuestas a preguntas), en que la secuencia predicha puede tener largo variable, se utilizan otras métricas completamente distintas, que tienen que ver más con la naturaleza generativa de esos problemas.

2) En este ejercicio en particular, se está presentando una tarea un poco diferente. Nos dice la letra que nos dan una oración y una marca especulativa, y tenemos que determinar el segmento de texto (span) que contiene el texto especulativo. Para eso lo representamos usando tags F-O-L. Si lo mirás como un problema de clasificación de secuencias, resultaría que la mayoría son tags "O" y unos pocos "F" y "L". Quedaría un problema muy desbalanceado, y por ejemplo el accuracy te daría artificialmente alto. Así que no se usan el accuracy u otras métricas a nivel de tag individual para estos problemas.

En un problema de detección de spans podemos asumir que buscamos embocarle al span con "exact match" (mismos puntos de inicio y fin), y las métricas quedan así:
TP = cantidad de spans que predije y que estaban exactamente bien
FP = cantidad de spans que predije pero eran incorrectos
FN = cantidad de spans que no predije
TN = no hay, porque no predigo la "clase negativa" de este problema

Miremos lo que pasa con precision y recall en este caso particular:
Precision = TP / (TP + FP) = los_que_le_emboqué / los_que_predije
Recall = TP / (TP + FN) = los_que_le_emboqué / los_esperados

En este problema en particular vienen dadas N marcas especulativas y el sistema predice N spans, así que la cantidad de spans predichos va a ser igual a la esperada. Por lo tanto, el valor de precisión y el de recall (y consecuentemente el de F1) van a ser iguales.

Saludos,
Luis