¿Cómo funcionan los bots de chat desde una perspectiva de Machine Learning?

Sobre la base de lo que dijo Tom, imagine por un minuto cómo es el proceso de comunicación con otro ser humano.

Digamos que tu madre te pide que vayas a comprar jugo de naranja 100% Tropicana. Tu primera pregunta es ¿cuánto quiere ella? 1 litro? 500ml? 200? Ella te dice que quiere un jugo Tropicana 100% de naranja de 1 litro. Ahora sabe que el Tropicana normal está fácilmente disponible, pero es difícil encontrar el 100%, por lo que debe llamar a algunas tiendas de antemano para ver dónde está disponible. Encuentras una tienda que está bastante cerca, así que vuelves con tu madre y le dices que encontraste lo que quería. Son 120 dólares y después de pedirle el dinero, sigues tu camino.

Un chatbot sigue el mismo proceso, con dos diferencias fundamentales, el canal de comunicación y con lo que estás hablando. Te daré un paso a paso basado en la imagen a continuación.

  1. Usted encuentra un producto en el Messenger de Facebook, en aras de la coherencia, digamos que es la misma botella de Tropicana. Solo ves la capa de presentación y le envías al bot un mensaje recogido por el servidor diciendo que quieres un poco de Tropicana.
  2. Utilizando el procesamiento de lenguaje natural ( lo que sucede cuando las computadoras leen lenguaje. Los procesos de PNL convierten el texto en datos estructurados), la máquina convierte esta solicitud de texto sin formato en comandos codificados por sí misma.
  3. Ahora el chatbot arroja estos datos en un motor de decisión, ya que en la mente de los bots tiene que cumplir ciertos criterios para salir del ciclo de conversación, en particular, la cantidad de Tropicana que desea.
  4. Utilizando la generación de lenguaje natural (lo que sucede cuando las computadoras escriben lenguaje. Los procesos NLG convierten los datos estructurados en texto) , al igual que lo hizo con su madre, el bot le pregunta cuánto de dicho Tropicana desea.
  5. Este conjunto de respuestas se remonta al backend de mensajería y se le presenta en forma de una pregunta. Le dices al bot que quieres 1 litro y volvemos a través de la PNL al motor de decisión.
  6. El bot ahora analiza datos prealimentados sobre el producto, las tiendas, sus ubicaciones y su proximidad a su ubicación. Identifica la tienda más cercana que tiene este producto en stock y le dice cuánto cuesta.
  7. Luego lo dirige a un portal de pago y después de recibir la confirmación de la puerta de enlace, hace su pedido por usted, y listo en uno o dos días hábiles, tiene 1 litro de jugo de naranja 100% Tropicana.

Ahora, para responder su pregunta sobre el aprendizaje automático, a lo largo de todo el proceso, la máquina “aprende” y utiliza sus algoritmos a través del aprendizaje supervisado y no supervisado.

El aprendizaje supervisado significa entrenar a la máquina para traducir los datos de entrada en un valor de salida deseado. En otras palabras, asigna una función inferida a los datos para que los ejemplos más nuevos de datos den el mismo resultado para esa interpretación “aprendida”.

El aprendizaje no supervisado significa descubrir nuevos patrones en los datos sin ninguna información y capacitación previa. La máquina misma asigna una función inferida a los datos a través de un análisis cuidadoso y la extrapolación de patrones a partir de datos sin procesar.

Realmente es #rainingChatsandBots

Un chatbot es un programa informático diseñado para simular conversaciones con los humanos.

Según el tipo de conversación, puede ser de dominio abierto o de dominio cerrado.

En dominio abierto , la conversación puede ir a cualquier tema. mientras que en un dominio cerrado , la posible conversación está algo limitada a un tema específico.

Aquí está la taxonomía de los modelos:

El modelo basado en recuperación utiliza respuestas predefinidas y algún tipo de algoritmo para elegir una respuesta apropiada basada en la entrada y el contexto.

Por otro lado, el modelo basado en la generación no se basa en predefinidos contexto. Este modelo se basa básicamente en técnicas de aprendizaje automático.

La pregunta que ha formulado es, en sí misma, propiedad del aprendizaje automático para aprender de hacer. Las técnicas de aprendizaje profundo se utilizan especialmente para modelos generativos.

Aquí hay un ejemplo de cómo funciona el modelo basado en la generación:

Las arquitecturas de aprendizaje profundo, como secuencia a secuencia, son especialmente adecuadas para generar texto y los investigadores esperan progresar rápidamente en esta área.

Hay varias formas diferentes de bots de chat, algunas reglas basadas en ELIZA, que en realidad pueden funcionar sorprendentemente bien.

Sin embargo, los métodos más modernos que representan la vanguardia en la investigación, emplean el aprendizaje automático, son parte del campo más amplio de los sistemas de diálogo estadístico (SDS) que son típicamente de estructura modular. Un resumen de cada módulo en particular es:

Comprensión del lenguaje natural

Esto toma el texto sin procesar del usuario como entrada y genera un formato legible por máquina, tal mapeo podría verse más o menos así:
“¿Cómo te va, amigo?” -> consulta (auto, estado)
Estos son sistemas típicos basados ​​en reglas, pero se ha realizado un trabajo más reciente sobre el uso, por ejemplo, de redes neuronales para componer el lenguaje natural en una representación vectorial fija.

Gerente de diálogo

Esto toma el formato legible por máquina de la unidad NLU como entrada. Realiza dos acciones principales:

  1. Rastrea el estado de la conversación a lo largo del tiempo
  2. Decide la respuesta del sistema.

Hay muchos métodos para realizar 1), pero normalmente rastrearía la aparición de ciertas palabras clave a lo largo del tiempo y colocaría una distribución sobre la creencia del sistema a lo largo del tiempo.
Decidir sobre la respuesta del sistema es algo más difícil. Los métodos más modernos utilizan el aprendizaje de refuerzo que toma como entrada la creencia del sistema y luego busca en un conjunto de acciones posibles del sistema, tal vez limitando la búsqueda de acuerdo con una ontología correspondiente al conocimiento de fondo del sistema. Este módulo genera una acción del sistema.

Se han realizado algunas investigaciones recientes sobre la sustitución del aprendizaje por refuerzo con redes neuronales recurrentes, aunque es mucho más difícil incorporar información ontológica.

Generación de lenguaje natural

Esto lleva a cabo la acción del sistema y lo convierte a un formato legible por humanos (es decir, lenguaje natural). Puede tomar información de la ontología como entrada para reemplazar variables en la acción del sistema.

También ha habido una investigación reciente en redes neuronales recurrentes de extremo a extremo que introducen y generan lenguaje natural. Esto es similar a los enfoques en la traducción automática, con el idioma de destino ahora convirtiéndose en la respuesta a una declaración anterior.

Construcción de alto nivel de un Chatbot AI

Construir un chatbot de IA es algo interesante. Bueno, primero debes aprender en qué área específica quieres enfocarlo. Esto se debe a que es difícil construir un bot de IA general y, a menudo, funcionan mejor cuando se especializan. ¡Parecen tener la mayor promesa a largo plazo!

Por lo general, hay dos componentes principales de un chatbot de IA: procesamiento del lenguaje natural (PNL) y redes neuronales (NN).

Procesamiento de lenguaje natural (PNL)

El procesamiento del lenguaje natural busca analizar el lenguaje en entidades, intenciones, sentimientos y algunas otras cosas. Si no tiene experiencia en esto, entonces es mejor usar Dialogflow o http://Wit.ai .

Dependiendo de los datos que utilizará para entrenar las redes neuronales, requerirán una buena cantidad de preprocesamiento de datos para eliminar el relleno y las palabras de baja ocurrencia.

Red neuronal

Después de todo eso, tendrás que contar las palabras, convertir las palabras en números enteros y luego mapearlas entre sí. De esta manera, se puede usar el NN o un tipo más específico llamado Red Neural Recurrente (RNN). Un chatbot a menudo es un codificador y decodificador RNN. Si usa Google TensorFlow (o Keras), terminará usando la secuencia de secuencia (Seq2Seq) para crear modelos.

Las redes Seq2Seq generalmente contienen dos redes neuronales recurrentes: codificador y decodificador. Estos se basan en la memoria a corto y largo plazo (LSTM). Estos sistemas se llaman Seq2Seq porque toman una secuencia (con contexto) y producen la probabilidad de que ocurra otra palabra / oración.

El aprendizaje automático es un proceso en el que la computadora aprende de los resultados anteriores. Hay muchas API de chatbot disponibles que utilizan aprendizaje automático y PNL para hacerlo inteligente y aumentar la eficiencia. Las API de Chatbot se construyen de tal manera que se aprende cualquier intento y derechos y cuando el usuario hace una pregunta sobre este intento, chatbot responde la pregunta.

Describí un artículo relevante sobre cómo construir chat-bot que será útil.

Conozca la tecnología de subrayado detrás de la inteligencia artificial | API de Chatbot

La respuesta de Sukesh Kumar Ranjan a ¿Cómo se aplica el aprendizaje automático al bot de chat?

More Interesting

¿Hay ejemplos de organizaciones de ciencias de la vida que logren resultados en el descubrimiento de drogas a través del aprendizaje automático que no serían posibles sin el aprendizaje automático?

Dado que los modelos pueden ser entrenados en datos sintéticos, ¿podemos usar el Entrenamiento Adversario para hacer que las imágenes de prueba sean más sintéticas?

¿Cuáles son las principales innovaciones y hallazgos del documento 'Diseño químico automático utilizando una representación continua de moléculas basada en datos'?

¿El aprendizaje por refuerzo es escalable?

¿Cómo funciona el algoritmo de recomendación de filtrado basado en contenido?

¿Cuáles son todas las diferencias entre el aprendizaje en línea y el aprendizaje fuera de línea con backpropagation?

Hay muchas críticas positivas para Pytorch. Actualmente uso Keras y TensorFlow. ¿Recomienda hacer un cambio o apegarse a Tensorflow y dominarlo?

Cómo extender una red neuronal profunda que se capacitó en la inclusión de palabras en inglés como entrada en una tarea de clasificación a multilingüe

¿Se utiliza Machine Learning fuera de las startups y otras "nuevas" empresas?

¿Qué tan importante es la optimización de hiperparámetros en los modelos gráficos bayesianos, como la asignación de Dirichlet latente?

¿Cómo se ajustan los pesos en una red neuronal mientras estoy entrenando la red?

Cómo calcular la retropropagación en una capa de agrupación promedio global

¿Está bien usar API para mi proyecto de último año en Informática?

Support Vector Machines: ¿Cómo elijo un parámetro de escala de kernel?

Cómo implementar clustering basado en densidad