Guía para principiantes de AutoML Natural Language

Introducción

Imagina que tu negocio tiene un formulario de contacto en su sitio web. Todos los días recibes muchos mensajes del formulario, muchos de los cuales son prácticos de alguna manera. Sin embargo, todos vienen juntos y, a veces, las respuestas se demoran porque diferentes empleados controlan los mensajes diferentes tipos de mensaje. Sería fabuloso si un sistema automatizado pudiera clasificarlos para que la persona idónea vea los comentarios correctos.

Imágenes categorizadas

Necesitas un sistema para ver los comentarios y decidir si representan reclamos, elogios por servicios pasados, o un intento por obtener más información sobre tu negocio, programar una cita o establecer una relación.

¿Por qué el aprendizaje automático (AA) es la herramienta correcta para este problema?

La programación clásica requiere que el programador especifique las instrucciones paso por paso para que la computadora las siga. Sin embargo, este enfoque se vuelve rápidamente inviable. Los comentarios de los clientes usan un vocabulario y una estructura amplios y variados, demasiado diversos para ser capturados por un simple conjunto de reglas. Si intentaras crear filtros manuales, descubrirías rápidamente que no pudiste clasificar la gran mayoría de los comentarios de los clientes. Necesitas un sistema que pueda generalizar a una amplia variedad de comentarios. En una situación en la que una secuencia de reglas específicas está destinada a expandirse de manera exponencial, necesitas un sistema que pueda aprender de los ejemplos. Afortunadamente, los sistemas de aprendizaje automático están bien preparados para resolver este problema.

¿La API de Cloud Natural Language o AutoML Natural Language son herramientas adecuadas para mí?

La API de Natural Language descubre la sintaxis, las entidades y las opiniones en un texto, y clasifica el texto en un conjunto predefinido de categorías. Si tu texto consiste en artículos de noticias o en otro contenido que deseas clasificar, o si deseas descubrir la opinión de tus ejemplos, vale la pena probar la API de Natural Language. Pero si los ejemplos de texto no encajan perfectamente en el esquema de clasificación basado en opiniones o en temas verticales disponible en la API de Natural Language, y deseas usar tus propias etiquetas, vale la pena experimentar con un clasificador personalizado para ver si se ajusta a tus necesidades.

Comparar la API de Natural Language con AutoML Natural Language

Probar la API de Natural Language Comenzar a usar AutoML

¿Qué implica el aprendizaje automático en AutoML Natural Language?

 El aprendizaje automático implica el uso de datos para entrenar algoritmos a fin de lograr un resultado deseado. Los detalles de los algoritmos y los métodos de entrenamiento cambian según el caso de uso. Existen muchas subcategorías diferentes de aprendizaje automático; todas ellas resuelven distintos problemas y funcionan con diferentes restricciones. AutoML Natural Language te permite realizar un aprendizaje supervisado, que consiste en entrenar una computadora para reconocer patrones a partir de datos etiquetados. Mediante el aprendizaje supervisado, puedes entrenar un modelo personalizado para que reconozca el contenido que te interesa en el texto.

Preparación de datos

Para entrenar un modelo personalizado con AutoML Natural Language, debes proporcionar ejemplos etiquetados de las categorías de elementos de texto (entradas) que deseas clasificar y las categorías o etiquetas (la respuesta) que quieres que predigan los sistemas del AA.

Evalúa tu caso práctico

Para crear el conjunto de datos, comienza siempre con el caso práctico. Puedes empezar con las siguientes preguntas:

  • ¿Qué resultado quieres lograr?
  • ¿Qué tipos de categorías necesitas reconocer para lograr este resultado?
  • ¿Es posible que las personas reconozcan esas categorías? Aunque AutoML Natural Language puede manejar más categorías de las que los seres humanos pueden recordar y asignar al mismo tiempo, si una persona no puede reconocer una categoría específica, AutoML Natural Language también tendrá dificultades.
  • ¿Qué clases de ejemplos reflejarán mejor el tipo y el rango de datos que clasificará tu sistema?

Un principio fundamental en el que se basan los productos del AA de Google es el aprendizaje automático centrado en las personas, un enfoque que destaca las prácticas de Responsible AI, incluida la equidad. El objetivo de la equidad en el AA es comprender y evitar un tratamiento injusto o perjudicial de las personas en relación con su origen étnico, orientación sexual, religión, género, ingresos y otras características asociadas a lo largo de la historia con la discriminación y la exclusión, cuando y donde se manifiesten en los sistemas algorítmicos o en la toma de decisiones basada en algoritmos. Puedes leer más en la Guía para el AA inclusivo y encontrar notas “imparciales”  en los siguientes lineamientos. A medida que avances a través de los lineamientos para armar tu conjunto de datos, te recomendamos que consideres la equidad en el aprendizaje automático cuando sea relevante para tu caso de uso.

Obtén tus datos

Después de establecer qué datos necesitas, debes buscar una manera de obtenerlos. Para comenzar, puedes tener en cuenta todos los datos que recopila tu organización. Es posible que descubras que ya estás recopilando los datos que necesitas para entrenar un modelo. En caso de que no tengas los datos que necesitas, puedes obtenerlos de forma manual o subcontratarlos a un tercero.

Incluye suficientes ejemplos etiquetados en cada categoría

El mínimo requerido por el entrenamiento de AutoML Natural Language es de 10 ejemplos de texto por categoría o etiqueta. La probabilidad de reconocer de forma correcta una etiqueta aumenta con la cantidad de ejemplos de alta calidad para cada uno. Por lo general, cuantos más datos etiquetados puedas aportar al proceso de entrenamiento, mejor será tu modelo. La cantidad de muestras necesarias también varía según el grado de coherencia en los datos que deseas predecir y el nivel objetivo de precisión. Puedes usar menos ejemplos para conjuntos de datos coherentes o a fin de lograr un 80% de precisión en lugar del 97% de precisión. Entrena un modelo mediante 50 ejemplos por etiqueta y evalúa los resultados. Agrega más ejemplos y vuelve a entrenar hasta que alcances tus objetivos de precisión, lo que podría requerir cientos o incluso miles de ejemplos por etiqueta.

Distribuye ejemplos por igual en todas las categorías

Es importante capturar cantidades similares de ejemplos de entrenamiento para cada categoría. Incluso si tienes una gran cantidad de datos que corresponden a una etiqueta, es mejor tener una distribución equitativa para cada una. Para entender por qué, imagina que el 80% de los comentarios de clientes que usas cuando compilas tu modelo son solicitudes de presupuesto. Con una distribución de etiquetas tan desequilibrada, es muy probable que tu modelo suponga que es seguro indicar siempre que un comentario de un cliente es una solicitud de presupuesto, en lugar de intentar predecir una etiqueta mucho menos común. Es como escribir una prueba de opción múltiple en la que casi todas las respuestas correctas son “C”. Pronto, el experto sabrá que puede responder “C” sin siquiera mirar la pregunta.

No siempre será posible obtener una cantidad parecida de ejemplos para cada etiqueta. Puede ser más difícil obtener ejemplos imparciales y de alta calidad para algunas categorías. En esas circunstancias, la etiqueta con el número más bajo de ejemplos debe tener al menos el 10% de los que tiene la etiqueta con el número más alto. Entonces, si la etiqueta más grande tiene 10,000 ejemplos, la etiqueta más pequeña debe tener al menos 1,000 ejemplos.

Captura la variación en tu espacio problemático

Por razones similares, intenta que tus datos capturen la variedad y diversidad de tu espacio problemático. Cuando proporcionas un conjunto más amplio de ejemplos, el modelo puede mejor generalizar mejor los datos nuevos. Digamos que estás tratando de clasificar artículos sobre electrodomésticos en temas. Cuanto más marcas y especificaciones técnicas proporciones, más fácil será para el modelo descubrir el tema de un artículo, incluso si trata sobre una marca que no llegó a formar parte del conjunto de entrenamiento. Considera incluir una etiqueta “none_of_the_above” para los documentos que no coincidan con ninguna de tus etiquetas definidas, y así mejorar aún más el rendimiento del modelo.

Haz coincidir los datos con el resultado previsto para tu modelo

Textos y resultados

Encuentra ejemplos de texto que sean similares a los que planeas usar para hacer predicciones. Si tratas de clasificar las publicaciones de las redes sociales sobre vidrio soplado, probablemente no obtendrás un gran rendimiento de un modelo entrenado en sitios web de información sobre vidrio soplado, ya que el vocabulario y el estilo pueden ser muy diferentes. Lo ideal es que tus ejemplos de entrenamiento sean datos del mundo real extraídos del mismo conjunto de datos que deseas clasificar mediante el modelo.

Considera cómo AutoML Natural Language usa tu conjunto de datos para crear un modelo personalizado.

Tu conjunto de datos contiene conjuntos de entrenamiento, validación y prueba. Si no especificas las divisiones como se explica en la sección Prepara tus datos, AutoML Natural Language usa de forma automática el 80% de tus documentos de contenido para el entrenamiento, el 10% de validación y el 10% para pruebas.

Conjuntos de entrenamiento, validación y prueba

Conjunto de entrenamiento

La gran mayoría de tus datos deben estar en el conjunto de entrenamiento. Estos son los datos que tu modelo “ve” durante el entrenamiento: se usan para aprender los parámetros del modelo, es decir, el peso de las conexiones entre los nodos de la red neuronal.

Conjunto de validación

El conjunto de validación, a veces denominado el conjunto “dev”, también se usa durante el proceso de entrenamiento. Después de que el framework del modelo de aprendizaje incorpora datos de entrenamiento durante cada iteración del proceso de entrenamiento, usa el rendimiento del modelo en el conjunto de validación para ajustar sus hiperparámetros, que son variables que especifican la estructura del modelo. Si intentaste usar el conjunto de entrenamiento para ajustar los hiperparámetros, es probable que el modelo se centre demasiado en los datos de entrenamiento y le cueste generalizar ejemplos que no coincidan con exactitud Si usas un conjunto de datos un tanto nuevo para configurar la estructura del modelo, este realizará mejores generalizaciones.

Conjunto de prueba

El conjunto de prueba no forma parte del proceso de entrenamiento. Una vez que el modelo completa su entrenamiento, AutoML Natural Language usa el conjunto de pruebas como un desafío para tu modelo. El rendimiento de tu modelo en el conjunto de prueba sirve para darte una idea del rendimiento que tendrá tu modelo con datos del mundo real.

División manual

Puedes dividir tu conjunto de datos. La división manual de los datos te permite ejercer un mayor control sobre el proceso o cuando hay ejemplos específicos que deseas incluir en alguna parte del ciclo de vida del entrenamiento del modelo.

 

Prepara tus datos para importarlos

Una vez que elijas entre la división manual o automática de lo datos, hay tres formas de agregar datos en AutoML Natural Language:

  • Puedes importar datos con tus ejemplos de texto ordenados y almacenados en carpetas que correspondan a tus etiquetas.
  • Puedes importar datos desde tu computadora o Cloud Storage en formato CSV con las etiquetas intercaladas, como se especifica en Prepara los datos de entrenamiento. Si deseas dividir el conjunto de datos de forma manual, debes elegir esta opción y formatear tu CSV según corresponda.
  • Si tus datos no están etiquetados, puedes subir ejemplos de texto sin etiqueta y usar la IU de AutoML Natural Language para aplicar etiquetas a cada uno.

Evaluar

Una vez que tu modelo esté entrenado, recibirás un resumen de su rendimiento. Para ver un análisis detallado, haz clic en evaluate o evaluate.

¿Qué debo tener en cuenta antes de evaluar mi modelo?

La depuración de un modelo es más bien una depuración de los datos que del modelo en sí. Si tu modelo comienza a actuar de manera inesperada mientras evalúas su rendimiento antes y después de pasar a producción, debes regresar y verificar los datos para ver dónde podrían realizarse mejoras.

¿Qué tipos de análisis puedo realizar en AutoML Natural Language?

En la sección de evaluación de AutoML Natural Language, puedes evaluar el rendimiento de tu modelo personalizado con el resultado del modelo en los ejemplos de prueba y las métricas comunes del aprendizaje automático. En esta sección, se explica qué significa cada uno de los siguientes conceptos:

  • La salida del modelo
  • El límite de puntuación
  • Positivos verdaderos, negativos verdaderos, falsos positivos y falsos negativos
  • Precisión y recuperación
  • Curvas de precisión y recuperación
  • Precisión promedio

¿Cómo interpreto el resultado del modelo?

AutoML Natural Language extrae ejemplos de tus datos de prueba para presentar desafíos nuevos a tu modelo. Para cada ejemplo, el modelo genera una serie de números que reflejan el grado de confianza con el que asocia cada etiqueta con ese ejemplo. Si el número es alto, el modelo tiene una confianza alta en que la etiqueta se debe aplicar a ese documento.

¿Cuál es el umbral de puntuación?

El umbral de puntuación permite que AutoML Natural Language convierta las probabilidades en valores binarios de “encendido” y “apagado”. El umbral de puntuación se refiere al nivel de confianza que debe tener el modelo para asignar una categoría a un elemento de prueba. El control deslizante del límite de puntuación en la IU es una herramienta visual para probar el impacto de diferentes límites en todo el conjunto de datos. En el ejemplo anterior, si establecemos un límite de puntuación de 0.8 para todas las categorías, se asignarán "Gran Servicio" y "Sugerencia", pero no "Solicitud de información". Si tu umbral de puntuación es bajo, el modelo clasificará más elementos de texto, pero corres el riesgo de clasificar de forma errónea más elementos de texto en el proceso. Si el umbral de puntuación es alto, tu modelo clasificará menos elementos de texto, pero tendrá un riesgo menor de clasificarlos de forma errónea. Puedes modificar los umbrales por categoría en la IU para experimentar. Sin embargo, cuando uses el modelo en producción, tendrás que aplicar los umbrales óptimos de tu lado.

Umbrales de confianza

¿Qué son los positivos verdaderos, los negativos verdaderos, los falsos positivos y los falsos negativos?

Después de aplicar el límite de puntuación, las predicciones que haga tu modelo entrarán en una de las cuatro categorías siguientes.

Descripciones de categorías de confianza

Puedes usar estas categorías para calcular la precisión y la recuperación, métricas que ayudan a medir la eficacia de tu modelo.

¿Qué son la precisión y la recuperación?

La precisión y la recuperación nos ayudan a comprender qué tan bien nuestro modelo captura información y cuánta omite. La precisión nos dice cuántos de todos los ejemplos de prueba a los que se asignó una etiqueta se clasificaron de forma correcta. La recuperación nos dice, de todos los ejemplos de prueba a los que debía asignarse una etiqueta determinada, a cuántos se asignó.

¿Debo optimizar la precisión o la recuperación?

Según tu caso práctico, puedes optimizar la precisión o la recuperación. Examinemos cómo podrías abordar esta decisión con los dos casos prácticos siguientes.

Caso práctico: Documentos urgentes

Supongamos que deseas crear un sistema que conceda prioridad a los documentos urgentes con respecto a los que no lo son.

Un falso positivo en este caso sería un documento que no es urgente, pero que se marca como tal. El usuario puede descartarlo como no urgente y continuar.

En este caso, se produciría un falso negativo si el sistema no logra etiquetar un documento urgente como tal. ¡Esto podría causar problemas!

En este caso, debes optimizar el modelo para la recuperación. Esta métrica determina cuánto se omite en todas las predicciones realizadas. Es probable que un modelo de recuperación alta etiquete ejemplos apenas relevantes, lo cual es útil para los casos en los que tu categoría tiene pocos datos de entrenamiento.

Caso práctico: Filtros de spam

Supongamos que deseas crear un sistema que detecte de manera automática los mensajes de correo electrónico que son spam de los que no lo son.

Un falso negativo en este caso sería un correo electrónico spam que no se detecta y que ves en la carpera de Recibidos. Por lo general, es un poco molesto.

Un falso positivo en este caso sería un correo electrónico que se marca erróneamente como spam y se quita de tu carpeta Recibidos. Si el correo electrónico fuera importante, el usuario podría verse afectado de forma negativa.

En este caso, debes optimizar el modelo para la precisión. Esta métrica determina lo correctas que son todas las predicciones hechas. Es probable que un modelo de precisión alta etiquete solo los ejemplos más relevantes, lo cual es útil para los casos en los que tu categoría es común en los datos de entrenamiento.

¿Cómo uso la matriz de confusión?

Podemos comparar el rendimiento del modelo en cada etiqueta con una matriz de confusión. En un modelo ideal, todos los valores en la diagonal serán altos y todos los demás valores serán bajos. Esto demuestra que las categorías deseadas se identifican de manera correcta. Si cualquier otro valor es alto, nos da una pista sobre la forma en la que el modelo clasifica las imágenes de prueba de manera errónea.

Matriz de confusión

¿Cómo interpreto las curvas de precisión-recuperación?

Curvas de precisión y recuperación

La herramienta de umbral de puntuación te permite explorar cómo el umbral de puntuación elegido afecta la precisión y la recuperación. A medida que arrastras el control deslizante en la barra de umbral de puntuación, puedes ver dónde te sitúa ese umbral en la curva de balance de precisión-recuperación y cómo afecta a tu precisión y recuperación individuales (para modelos multiclase, la única etiqueta que se usa en estos grafos a fin de calcular las métricas de precisión y recuperación es la que tiene la puntuación más alta en el conjunto que mostramos). Esto puede ayudarte a encontrar un equilibrio bueno entre falsos positivos y falsos negativos.

Una vez que eliges un umbral aceptable para el modelo en general, puedes hacer clic en etiquetas individuales y ver dónde se ubica ese umbral en la curva de precisión y recuperación correspondiente. En algunos casos, esto puede significar que obtienes muchas predicciones incorrectas en algunas etiquetas, lo que puede ser útil a fin de elegir un umbral por clase personalizado para esas etiquetas. Por ejemplo, supongamos que revisas tu conjunto de datos de comentarios de clientes y observas que un umbral de 0.5 tiene una precisión y recuperación razonables para todos los tipos de comentarios excepto "Sugerencia", tal vez porque es una categoría muy general. En esa categoría, encontrarás muchos falsos positivos. En ese caso, puedes decidir usar un umbral de 0.8 solo para "Sugerencia" cuando llames al clasificador para hacer predicciones.

¿Qué es la precisión media?

Una métrica útil para la precisión del modelo es el área bajo la curva de precisión-recuperación. Mide el rendimiento de tu modelo en todos los umbrales de puntuación. En AutoML Natural Language, esta métrica se llama Precisión media. Cuanto más cerca de 1.0 esté esta puntuación, mejor será el rendimiento de tu modelo en el conjunto de prueba. Un modelo que adivine al azar para cada etiqueta obtendría una precisión promedio de alrededor de 0.5.

Probar tu modelo

AutoML Natural Language usa el 10% de tus datos de forma automática (o el porcentaje que hayas elegido usar, si elegiste la división manual) para probar el modelo, y la página "Evaluar" te indica cómo le fue al modelo con esos datos de prueba. Pero en caso de que quieras verificar el estado de tu modelo, hay varias maneras de hacerlo. La más fácil es ingresar ejemplos de texto en el cuadro de texto de la página “Predecir” y mirar las etiquetas que el modelo elige para tus ejemplos. Espero que esto coincida con tus expectativas. Intenta ingresar algunos ejemplos para cada tipo de comentario que creas que vas a recibir.

Si deseas usar tu modelo en tus propias pruebas automatizadas, la página "Predecir" te indica cómo realizar llamadas al modelo de manera programática.