¿Qué algoritmos de aprendizaje automático utilizan servicios como wit.ai y api.ai?

Los conceptos principales en los sistemas de diálogo modernos son Slot e Intent . Para ilustrar esto, consideremos una oración que puede decirle a su Siri:

“Oye Siri, ¿me cuentas sobre el clima ayer en Moscú?

En este ejemplo, y la intención es “SHOW_WEATHER_FORECAST”, y los espacios para esta intención son “CUANDO: ayer” y “DÓNDE: Moscú”.

Entonces, cuando le pide algo al agente de conversación, persigue alguna intención, quiere algo del agente. Esta cosa se llama intención. Puedes considerarlo como un tipo de consulta.

Cada consulta debe tener algunos parámetros. Por ejemplo, para mostrar el pronóstico del tiempo, el sistema necesita conocer la ubicación y la hora (o puede usar valores predeterminados, como su ubicación y el día actual). Estos parámetros se llaman slots.

Para crear un motor de conversación, debe definir una lista de intenciones que su sistema debe admitir. Para cada intento, en el caso más simple, tiene una respuesta de plantilla (en el caso de api.ai, para cada intento tiene una acción con parámetros) y puede completarla con parámetros. Por lo tanto, debe definir ranuras para cada intento.

Cuando el usuario pregunta algo a su sistema, el sistema necesita clasificar la intención de la expresión del usuario, mirar las ranuras de esta intención e intentar inferirlas del mensaje.

El primer problema es un problema de clasificación, se puede resolver con diferentes modelos. El modelo que elija depende de la cantidad de datos que tenga y del número de intentos. Puede utilizar modelos lineales en textos vectorizados (por ejemplo, clasificador Multiclass SVM o Softmax en TFIDF / Bag of Words of enunciado) o ajustar la red neuronal profunda (hype hype hype).

El segundo problema generalmente se resuelve con modelos de la tarea de reconocimiento de entidad con nombre. La tarea de inferencia de slots se llama Slot Filling y es similar a la tarea NER (pero no son lo mismo). Un modelo adecuado para esta tarea son los campos aleatorios condicionales (CRF).

Describí algunos conceptos fundamentales y hay muchos detalles que no cubrí.

  1. Por ejemplo, es posible que desee implementar el servicio de soporte (respondiendo a muchos problemas de muchos usuarios) y tendrá muchas intenciones (quizás cientos). ¿Cómo los clasificarán unos de otros?
  2. Hay algunos documentos en los que las intenciones y los espacios se predicen conjuntamente con mayor calidad.
  3. O quizás desee que su sistema solicite a los usuarios algunos valores de espacio. Esta cosa se llama seguimiento de estado de diálogo .

Intente crear su propio chatbot en la plataforma api.ai o wit.ai y piense qué algoritmos podrían usar.