Tabla de contenidos

Introducción

A la hora de hacer un bot una de las decisiones más importantes es qué inteligencia artificial conversacional utilizar, y para ello hay que evaluar cómo se comportan. Para ello, actualmente, uno de los papers más relevantes es el SIGDIAL22 que propone 3 corpus (conjuntos de datos) para probarlas. El problema con esto es que la cantidad de datos utilizados para el estudio distan mucho de un caso real. Una descripción de los tres corpus:

  • Chatbot: Entrenamiento con 100 frases clasificadas en 2 intents
  • Ask Ubuntu: Entrenamiento con 53 frases clasificadas en 5 intents
  • Web Applications: Entrenamiento con 30 frases clasificadas en 8 intents

Pero, ¿cómo se comportan ante una situación real?

En nuestro caso hemos evaluado diferentes inteligencias artificiales conversacionales con un chatbot real en el que se entrena con 854 frases (en inglés) clasificadas en 126 intents (127 si contamos el “None” que significa que la frase no se corresponde con ninguno con los intents de entrenamiento), y además un juego de tests de 82 frases reales dichas por usuarios y en las que ninguna está presente en el juego de datos utilizado para entrenar.

Sistemas evaluados

Estos son los sistemas evaluados:

De estos sistemas el único Open Source es NLP.js, mientras que los demás son sistemas propietarios.

También se quería evaluar Amazon LEX pero por la limitación a 100 intents por bot los resultados no se pueden comparar con el resto de proveedores.

Resultados del Corpus

La primera prueba realizada tras entrenar con esas 854 frases hacia los 126 intents, es probar cada una de las 854 frases esperando que el intent devuelto por el sistema sea aquel con el que se entrenó. Para cada uno de los sistemas esta es la cantidad de errores usando las frases de entrenamiento:

  • Microsoft LUIS: falla en 20 de las frases
  • Google Dialogflow: falla en 27 de las frases
  • IBM Watson Assistant: falla en 27 de las frases
  • SAP Conversational AI: falla en 10 de las frases
  • NLP.js: falla en 1 de las frases

Resultados de los Tests

El juego de tests son 82 frases que las inteligencias artificiales utilizadas no han visto jamás, y son frases reales de usuarios, y se comprueba cuántas aciertan o fallan cada uno de los proveedores. Esta es la cantidad de errores de cada uno:

  • Microsoft LUIS: falla en 18 de las frases
  • Google Dialogflow: falla en 19 de las frases
  • IBM Watson Assistant: falla en 6 de las frases
  • SAP Conversational AI: falla en 20 de las frases
  • NLP.js: falla en 3 de las frases

Resultados totales

Estos serían entonces los resultados totales para cada uno:

  • Microsoft LUIS: falla en 20 de las frases de entrenamiento y 18 de las frases de test
  • Google Dialogflow: falla en 27 de las frases de entrenamiento y 19 de las frases de test
  • IBM Watson Assistant: falla en 27 de las frases de entrenamiento y 6 de las frases de test
  • SAP Conversational AI: falla en 10 de las frases de entrenamiento y 20 de las frases de test
  • NLP.js: falla en 1 de las frases de entrenamiento y 3 de las frases de test

Conclusiones

Observando la última gráfica podemos observar que SAP Conversational AI es muy buena ajustándose a los datos de entrenamiento pero no tanto generalizando para casos que no ha visto: esto es lo que se denomina “overfitting”, es decir, se ajusta demasiado a los datos de entrenamiento.

Por su parte a Watson Assistant le ocurre lo contrario: es capaz de generalizar muy bien, pero por el contrario no es capaz de acertar bien con los datos de entrenamiento.

Por otro lado tanto Microsoft LUIS como Dialogflow están bastante equilibrados, pero de media son bastante peores que sus competidores.

Como muestran los números, NLP.js, la solución open-source sorprendentemente da mejor respuesta tanto en el set de entrenamiento como en el de pruebas. Analizando estadísticas del repositorio en Github, podemos ver que está recibiendo mucho apoyo de la comunidad y que las últimas actualizaciones mejoran notablemente el rendimiento.

Por Jesús Seijas de la Fuente

Enfocado en proyectos de IA, principalmente IA conversacional y Visión por Computador. Autor de NLP.js, un conjunto de librerías NLP para AI conversacional, capaz de hacer clasificación, con normalizadores, tokenizadores y lematizadores para 41 idiomas, que es capaz de entrenar y clasificar en el navegador y móvil sin conexión a internet, e integrado con BERT. La red neuronal está diseñada para el problema de clasificación de PNL en términos de precisión y rendimiento.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *