Etiquetamiento de datos no estructurados

Para muchos el Santo Grial en el área de aprendizaje supervisado viene dado por los conjuntos de datos etiquetados[1]. En efecto, generalmente lo primero que hacemos nosotros como buenos científicos de datos, luego de haber sido encargados con un proyecto, es investigar para determinar si ya existen conjuntos de datos adecuados. Sin embargo, en realidad es muy difícil disponer de conjuntos de datos adecuados y etiquetados.

Lo siguiente que haremos como buenos científicos de datos es buscar conjuntos de datos estructurados, incluso si no están etiquetados. Por suerte, en la gran mayoría de los casos nos encontraremos con una buena disponibilidad de datos sin etiquetar.

Aquí es donde entran las técnicas de etiquetamiento manual de datos. Como su nombre indica, el etiquetado depende de la interacción con un usuario experto que pueda identificar los datos y sepa reconocer cómo han de ser etiquetados. Ésta puede ser una tarea laboriosa y por ello existen muchas herramientas y técnicas que permiten al etiquetador ser más productivo.

Ahora bien, existen tantas herramientas como tipos de datos haya que etiquetar. Por ejemplo, si se tiene una serie de tiempo y se quiere etiquetar un intervalo de ésta como anómalo, entonces es necesaria una herramienta sencilla con un UI adecuado y capacidades de persistencia de datos (Ilustración 1).

Ilustración 1: ejemplo de herramienta de etiquetamiento para series temporales[2]

Otro ejemplo muy popular puede ser el etiquetamiento de vídeos. Esta tarea no sólo requiere las capacidades citadas arriba, sino que también requiere la persistencia y actualización de los datos en el tiempo (Ilustración 2).

La imagen tiene un atributo ALT vacío; su nombre de archivo es image003.png

Ilustración 2: ejemplo de herramienta de etiquetamiento de vídeo[3]

Para aprovechar la oportunidad y ahondar claramente en los problemas operativos del etiquetamiento de datos, usaremos como ejemplo a Doccano. Ésta es una herramienta de código abierto orientada a datos textuales que facilita las tareas de etiquetamiento relacionadas con los problemas de reconocimiento de entidades nombradas (NER), análisis de sentimientos y traducción[4].

Ilustración 3: ejemplo de flujo de trabajo en Doccano para tareas de NER[5]

Una de las características que hace interesante a Doccano es que sus casos de uso incluyen el uso de roles para la revisión y autorización de las etiquetas. Este caso de uso viene a paliar un gran problema en cualquier tarea del etiquetamiento de datos: el sesgo. En efecto, algunos estudios han analizado los datos etiquetados y recolectados usando servicios como Amazon Mechanical Turk[6] y han encontrado evidencias de que los datos recolectados están sesgados[7]. En este sentido, tener un usuario experto con el rol de administrador y que pueda aprobar o rechazar etiquetas es de suma importancia como primer paso en el establecimiento de controles de calidad.

Por otra parte, también es de suma importancia definir claramente una política de etiquetamiento a seguir si se cuenta con la asistencia de varios etiquetadores y un problema potencialmente ambiguo. Por ejemplo, supongamos que se desea etiquetar todos los números de teléfono oficiales de compañía y el texto en cuestión también contiene números de teléfonos personales. En este caso, si el objetivo final es entrenar un modelo profundo de NER, puede ser factible distinguir entre ambos números de teléfono. Sin embargo, el etiquetador no tiene por qué saber esto. Es por ello por lo que Doccano cuenta en su UI con una sección que les permite a los etiquetadores revisar la política de etiquetamiento definida por los científicos de datos.

Si vamos más allá de Doccano, una vez que se tiene un gran número de etiquetadores y se han aprobado sus etiquetas, es posible encontrar otra clase de problemas. Por ejemplo, supongamos que se les permite a los anotadores etiquetar las mismas instancias de información. En este caso cabe preguntarse qué etiqueta usar si hay discrepancias. Lamentablemente, éste es un problema complejo que puede comprender desde técnicas de votación hasta el uso de métricas de evaluación como el Coeficiente Kappa de Cohen[8].

Sin embargo, sea cual sea la herramienta o la técnica usada, es posible toparse con problemas de costo y de tiempo. Es por ello por lo que a veces resulta viable explorar otros tipos de artificios. Por ejemplo, la herramienta llamada Snorkel permite trabajar con una modalidad de entrenamiento llamada supervisión débil[9]. Esta técnica consiste en el etiquetamiento de datos usando reglas heurísticas y su uso para el entrenamiento de modelos supervisados. En este caso, la tarea del anotador es definir qué reglas heurísticas se han de usar. Otra técnica muy usada, aunque no sea estrictamente de etiquetamiento, es el aumento de datos, que consiste en la generación de variaciones válidas en los datos que ya se tengan etiquetados[10].

Ilustración 4: ejemplo de una función de etiquetamiento de Snorkel[11]

Otra manera de paliar la falta de datos etiquetados es el aprendizaje activo. A través de esta técnica, en lugar de simplemente generar una mayor cantidad de dados etiquetados eficientemente, se determina qué dato se ha de etiquetar nuevamente por parte del anotador y se le presenta a éste. En este caso, la selección de la instancia a etiquetar se hace de tal manera que se maximice el aprendizaje del modelo. De esta manera, se requieren menos datos etiquetados y se logra un aprendizaje más dirigido[12]. Un ejemplo de esto es modAl[13]. Esta herramienta precisamente permite elegir las instancias sobre las que el modelo tiene la mayor incertidumbre para su etiquetamiento o revisión, logrando así el mayor impacto en su aprendizaje.

Como hemos visto, el etiquetamiento de datos es un área típicamente soslayada cuando estamos comenzando nuestra carrera en las ciencias de datos. Sin embargo, ésta puede ser el mayor cuello de botella en algunos proyectos. La selección de la herramienta va a venir dada por el tipo de datos usado, la disponibilidad de anotadores, tiempo y recursos. Sea cual sea la herramienta seleccionada, lo que no puede faltar nunca es la rigurosidad durante el etiquetamiento. De esta manera, se evita perder tiempo, dinero y esfuerzo y nos aseguramos de generar conjuntos de datos de excelente calidad. Es por todo esto que el etiquetado rápido, barato, eficiente e inteligente de datos es el Santo Grial de la ciencia de datos[14].

Autores: Georvic Tur / Oscar Potrony


[1] https://medium.com/@ODSC/the-data-scientists-holy-grail-labeled-data-sets-9d413ccc50b5

[2] https://github.com/Microsoft/TagAnomaly

[3] https://github.com/alexandre01/UltimateLabeling

[4] https://github.com/doccano/doccano

[5] https://doccano.herokuapp.com/demo/named-entity-recognition/#

[6] https://www.mturk.com/

[7] http://sun0.cs.uca.edu/~ssheng/DA/doc/biasedLabelingInCrowdsourcing.htm

[8] https://www.aclweb.org/anthology/N04-4020.pdf

[9] https://github.com/snorkel-team/snorkel

[10] https://www.snorkel.org/blog/tanda

[11] https://www.snorkel.org/use-cases/01-spam-tutorial

[12] https://medium.com/mindboard/active-learning-for-fast-data-set-labeling-890d4080d750#:~:text=Active%20learning%20is%20a%20special,query%20a%20user%20for%20input.&text=Using%20our%20labeled%20data%2C%20train,probabilities%20for%20all%20unlabeled%20data.

[13] https://github.com/modAL-python/modAL

[14] https://medium.com/@ODSC/the-data-scientists-holy-grail-labeled-data-sets-9d413ccc50b5

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s