Desarrollando una conversación emocional con Deep Learning. Parte 1: Planeación
Owly es un Socialbot cuyos principales objetivos son proveer soporte emocional y asistencia personal para estudiantes universitarios. Es decir, Entender los contextos en los que se desarrollan los estudiantes a través de datos exógenos (como horarios de clase, agendas personales, notas y sillabus), y que permite acceder a productos y servicios según sea la necesidad de cada uno de sus usuarios.
Owly funciona mediante Telegram, y no necesita ningún tipo de registro.
En este post expondré los principios de diseño que existen de manera subyacente en Owly y que permiten la existencia de lo que, como objetivo, debería convertirse en el amigo de todas las personas, manteniendo un ratio de calidad de conversaciones cercano o superior al humano, cumpliendo 4 objetivos básicos.
- Atender las necesidades de comunicación y soporte emocional de los usuarios finales.
- Identificar emociones humanas y mantener un registro de los cambios en las emociones de los usuarios durante la conversación,
- Cumplir tareas mientras toma el tiempo para conversar y continuar una conversación, sin desatender los objetivos propuestos.
- Aprender de los usuarios en términos de voz, tono y lexico, para dejar de depender en un numero no determinado de iteraciones de los modelos tipo Script.
Como se puede ver, el modelo de ML se diferencia de los existentes en el punto 4, esto es, integrando el conjunto de respuestas dadas por usuarios humanos a los mensajes del bot, y aplicandoles una puntuación más alta que aquellas entradas generadas por script o mecánico turco, ligandolo con las condiciones o "nodos condicionales" que puedan existir dentro de la conversación.
(modelo de conversación de scripting por Replika. https://github.com/lukalabs/replika-research/blob/master/scai2019/replika_scai_19.pdf)
El cumplimiento de dichos objetivos depende, en gran medida de algunos subsistemas relacionados de comprensión y generación de mensajes, así pues, el subsistema encargado de la empatia, debe tener como tareas, reconocer las emociones del usuario dentro de sus "declaraciones" o strings dirigidos al sistema, detectar como las emociones cambian en el tiempo y cuales son sus raíces, (lo que potencialmente daría origen a un reconocimiento del comportamiento propio y de sus implicaciones), y por último, entender las necesidades emocionales del usuario, lo que se traduciría en dar un "puntaje" a la emotividad del usuario y generar un refuerzo en la red neuronal que permita maximizar esa variable a partir de la manipulación del sistema de generación procedural de strings.
Entendiendo que el sistema de empatía no es suficiente para mantener el interez de los usuarios, se propone el uso de una red neuronal secundaria, manejada por la primera, que se encargue del procesamiento de los datos del contexto del usuario, y de un contexto propio, necesario para darle una "personalidad" al generador procedural. esta segunda red necesita una serie de bases de conocimiento y capacidades, conocidos por nosotros como "Skills". Estos son:
- Inteligencia general
- Entender lenguaje (Parseo, léxico y NER)
- Capacidad para retomar conversaciones anteriores, así mismo recordar eventos pasados.
- Razonamiento, o base de conocimiento de sentido común, es básicamente un set de reglas que "explica" el mundo real.
- Aprendizaje general sobre el mundo real, adquiriendo información sobre el mundo de manera constante, para poder asociar las emociones como contexto-dependientes.
- Personalidad propia
- Edad o grupo etareo
- Genero de identidad
- Lenguaje (en este caso español)
- Estilo de voz y tono (tanto en el texto como en la interacción)
- Actitud en general
- Skills asociados con la empatía y con el contexto.
- Personalización
- Usa el perfil de información del usuario para adaptarse
- Se ajusta a los intereses del usuario
- Intenta mantener conversaciones en los temas en los que el usuario se muestra interesado
- Ejecuta tareas programáticas que alivien los to-do del usuario ejecutando skills pre-programados.
A nivel funcional entonces, tenemos cuatro componentes principales, un sistema de clasificación de uterancias según un sistema vectorial n-dimensional encargado también del reconocimiento de emociones y al analisis de sentimientos, un conjunto de modelos de parseo y de comprensión de lenguaje natural, un modelo de generación de declaraciones (utterances) que responda a estas entradas, y finalmente un sistema capaz de ejecutar o conectar a la ejecución de skills programáticos específicos.

Comentarios
Publicar un comentario