En el dominio abierto, se puede tratar cualquier tipo de tema, el usuario no tiene un objeto de conversación específico, pudiendo derivar la conversación a cualquier lugar. Las redes sociales por ejemplo, tienen un dominio abierto, pudiendo ser los temas de cualquier ámbito. Esto provoca que se necesiten infinidad de datos para crear respuestas, por lo que es el caso más complejo.
En el dominio semiabierto, en general, se conoce el contexto y los interlocutores pero no exactamente los temas a tratar. Es el caso de los robots sociales que se utilizan en museos o supermercados. Están preparados para interactuar de forma “general”, pero en realidad se limitan a un cierto espectro de conversaciones (aunque sea difícil definir cuáles son esos temas que domina).
En el dominio cerrado el tema de la conversación es limitado, con el fin de llegar a un tema muy específico. Por ejemplo, el soporte técnico de un empresa trata un solo campo de conocimiento, haciendo estos casos más sencillos que los abiertos. El usuario puede salirse del tema de conversación, pero el sistema no lo dominará y no será efectivo, aunque el usuario tampoco lo espera.
Capítulo 3
Marco Teórico
En este capítulo se van a describir y explicar los conceptos necesarios para una buena compresión del trabajo, con el fin de comprender como más en detalle los pro- cedimientos que se han llevado a cabo en el proyecto. Primeramente se va a hablar del tipo de LSTM usado basado en recuperación y de los modelos y algoritmos que lo complementan para el word embedding y la representación de los datos; seguida- mente se hablará de la elección del algoritmo, su funcionamiento y parámetros; y por último de las herramientas que se han usado para implementarlo, especialmente la herramienta Tensorflow.
3.1.
LSTM: Modelo basado en recuperación y algoritmos
En este proyecto se ha utilizado una red neuronal recurrente de tipo LSTM con algoritmo supervisado, más concretamente el modelo de LSTM basado en la recuperación. Este tipo de modelos utiliza un dataset con respuestas ya predefinidas que puede utilizar tanto en su entrenamiento como en una conversación, devolviendo siempre respuestas ya aprendidas previamente, a diferencia del modelo generativo, el cual puede dar respuestas nunca vistas.
3.1.0.1. Modelo
Se ha elegido un modelo basado en la recuperación por ser bastante más senci- llo de implementar. Los modelos generativos no funcionan aún correctamente en la práctica debido a su gran libertad a la hora de generar las frases, cometiendo errores en la gramática o respuestas sin importancia en la conversación, inconsistentes o ge- néricas, como en las primeras versiones que desarrolló, donde se repetía la respuesta “Te amo”1 a prácticamente cualquier cosa. Además, son extremadamente difíciles de
optimizar.
1https://ai.googleblog.com/2015/11/computer-respond-to-this-email.html
24 Capítulo 3. Marco Teórico La gran mayoría de los agentes conversacionales actuales son del tipo basados en recuperación, o una combinación de este y el generativo. Por ejemplo, el sistema Google’s Smart Reply [17] es una combinación de ambos.
3.1.0.2. Algoritmo
A la hora de elegir un tipo de algoritmo de aprendizaje supervisado para aplicar en la red, hay cuatro aspectos fundamentales que se deben tener en cuenta:
Diferencia de sesgo-varianza
La compensación entre el sesgo y la varianza [45]. Si tenemos conjuntos de datos de entrenamiento diferentes pero válidos.
Cuando entrenamos el algoritmo para estos conjuntos de datos, si ante una entrada en particular al predecir el resultado es sistemáticamente erróneo, di- remos que está sesgado. Si por otro lado, ante un mismo dato de entrada de diferentes conjuntos de datos se predicen diferentes valores de salida, entonces tendrá una gran varianza. El error de predicción de un clasificador de apren- dizaje se relaciona con la suma del sesgo (bias) y la varianza del algoritmo de aprendizaje [46].
El objetivo será encontrar un equilibrio entre ambos parámetros. Se ha de buscar un bajo sesgo que sea flexible para ajustarse a los datos, pero no dema- siado, o podría sobreajustarse (overfitting) a cada conjuntos de datos y tener alta varianza. Existen métodos para que el usuario pueda ajustar este sobre- ajustamiento, así como gráficas para orientarnos en la posible solución.
La complejidad de la función verdadera y la cantidad de datos de entrenamiento Si la función verdadera es simple, utilizaremos un algoritmo de aprendizaje “in- flexible” con alto sesgo y baja varianza, pudiendo así aprender de una pequeña cantidad de datos. Pero si la función verdadera es muy compleja, utilizaremos un algoritmo de aprendizaje “flexible” con bajo sesgo y alta varianza, haciendo que la función aprenda de una gran cantidad de datos de entrenamiento. Dimensionalidad del espacio de entrada
Si los vectores de características de entrada poseen una dimensión muy alta podría confundir al algoritmo y provocar una alta varianza, tendremos que corregirlo para que tenga baja varianza y alto sesgo. Una forma de hacerlo es eliminando a mano algunas de las características que no sean necesarias en los datos de entrada o aplicando algoritmos para seleccionar las características mas importantes, como por ejemplo el método de Reducción de Dimensionalidad. Ruido en los valores de salida
El algoritmo de aprendizaje no debe intentar encontrar una función que coin- cida exactamente con los ejemplos de entrenamiento, si estos tienen un error demasiado alto o bajo, donde los datos de salida no son próximos a los de en- trada o se sobreajustan. En estos casos, los datos que no se ajustan a la función corromperían el entrenamiento. Cuando hay cualquier tipo de ruido presente,
3.2. Dataset: Ubuntu Dialog Corpus (UDC) 25