Los modelos de usuario pueden ser creados ya sea dirigidos por el usuario (los modelos son creados directamente en base a información que el usuario proporciona directamente) o en un enfoque automático (el sistema controla el proceso de creación del modelo de usuario de manera oculta). Se tienen dos conjuntos de características, primero los adaptables que deben reducirse al mínimo (edad, género, color favorito, etc.) y segundo, los adaptivos que deben ser creados por un proceso de aprendizaje (temas favoritos, patrones de comportamiento, etc.)
Se mencionan como sitios importantes para User Modeling:
- User Modeling and User-Adapted Interaction.
- International Conference on User Modeling.
- IEEE Transactions on Neural Networks.
- Workshop of Intelligent Techniques for Web Personalization (part of IJCAI International Joint Conference of Artificial Intelligence).
- International Workshop on Knowledge Discovery on the WEB (WEBKDD, part of the ACM SIGKDD).
Primero, queda definido el modelado del usuario como un conjunto de estructuras de información diseñadas para representar al menos uno de los siguientes elementos:
- Representación de objetivos, planes, preferencias, tareas o habilidades de uno o más tipos de usuarios.
- Representación de características comunes relevantes de usuarios pertenecientes a subgrupos de usuarios o estereotipos específicos.
- Clasificación del usuario en uno o más subgrupos o estereotipos.
- Almacenamiento del comportamiento del usuario.
- Formación de suposiciones sobre el usuario basado en su historial.
- Generalización de historiales de interacción de muchos usuarios en los grupos.
El proceso básico para la generación automática del modelo de usuario es la siguiente:
- Recolección de datos
- Pre-procesamiento/extracción de información
- Descubrimiento de patrones
- Validación e interpretación
La siguiente figura ilustra el proceso:
Algunos de los retos al llevar a cabo el modelado de usuario son: se requieren grandes cantidades de datos, etiquetar los datos para el aprendizaje supervisado y la complejidad computacional. Dependiendo de la técnica de aprendizaje empleada, se capturan distintas relaciones entre los datos. Se debe localizar qué patrones deben ser capturados para crear un servicio adaptivo.
A lo largo del artículo se analizan técnicas de aprendizaje no supervisado y de aprendizaje supervisado empleadas para el modelado de usuario.
Aprendizaje no supervisado
a) Clustering
Primero inicia con clustering que trata de estructurar un conjunto de instancias sin clasificar creando conceptos basado en las similitudes de los datos. Los conceptos encontrados deben cubrir a todos los datos y se deben de asegurar que la similitud de los ejemplos dentro de un concepto sea maximizada mientras que la similitud entre ejemplos de distintos conceptos sea minimizada. Se puede llevar a cabo hard-clustering y fuzzy-clustering. En el primero, cada ejemplo sólo puede pertenecer a un concepto. En el segundo, los ejemplos pueden pertenecer a más de un concepto y se lleva registro de un grado de pertenencia.
Los algoritmos de hard-clustering se pueden clasificar en jerárquicos y no jerárquicos. Los primeros consisten en crear una estructura jerárquica (como un árbol) resultando en una serie de particiones anidadas. Los no jerárquicos también se les conocen como particionales y obtienen un número en particular de clusters en un solo paso.
Los principales algoritmos no jerárquicos son: k-means y self-organizing maps (SOM). Por otra parte, los algoritmos no jerárquicos tienen problemas trabajando con ejemplos multidimensionales debido a que constantemente no se cuentan con suficientes datos para hacer relevantes a todas las relaciones, debido a esto se crearon los algoritmos jerárquicos. Existen dos tipos de algoritmos jerárquicos: aglomerantes y divisivos. La diferencia entre ambos es que los aglomerantes crean una jerarquía de abajo hacia arriba (bottom-up) mientras que los divisivos crean una contraria (top-down). De manera general, se menciona que los divisivos son menos eficientes computacionalmente.
Para los algoritmos difusos (fuzzy), el principal es conocido como fuzzy C-means. La técnica es muy parecida a k-means pero se guarda una matriz de pertenencia que asocia a cada ejemplo a un cluster con cierto grado.
Las dos áreas de clustering mencionadas son: clusters de uso y clusters de páginas. El primero, establece grupos de usuarios con patrones de navegación similares. El conocimiento obtenido se ha usado para inferir perfiles demográficos para llevar a cabo segmentaciones de mercado para aplicaciones de comercio electrónico o para contenido en web personalizado. El segundo tipo, descubre grupos de páginas con contenido relacionado. Esta información es usada en motores de búsqueda y proveedores de asistencia en web. Por el lado de UM, la característica principal es que se usan valores no numéricos por lo que se obtienen mayormente datos relacionales.
El principal problema para la aplicación de clustering es el decidir qué concepto de distancia será utilizado. En general, se requiere de un conocimiento del problema para definirlo. En el caso de UM, el problema es que los valores presentados no son numéricos por lo que las representaciones hechas tienden a perder parte del significado semántico original. Por otra parte, los algoritmos no jerárquicos asumen que se conoce de antemano el número de grupos y siendo que en general esto no ocurre, se deben aplicar heurísticas para determinarlo. Por último, se menciona que no se han explotado por completo los usos de los algoritmos difusos.
La siguiente tabla muestra algunos modelos de usuarios basados en clustering:
Por otra parte la siguiente tabla muestra algunos ejemplos de fuzzy clustering:
b) Reglas de asociación
Una de las principales aplicaciones es la captura de páginas accedidas en conjunto. Normalmente se emplean para tareas de recomendación. La principal limitante consiste en que no capturan la secuencialidad de antecedente y consecuente además de la información sobre temporalidad. La secuencialidad captura el orden en que un usuario lleva a cabo un conjunto de acciones que permite predecir el consecuente que se presentará al tener una acción actual. La temporalidad sirve para no sólo predecir una acción sino el momento en que se llevará a cabo. La siguiente tabla muestra algunos ejemplos de aplicaciones:
Aprendizaje supervisado
a) Árboles de decisión / Reglas de clasificación
Se emplean para clasificar usuarios y/o documentos para propósito de personalizar la información presentada. Los árboles pueden lidiar con datos con errores o con parámetros faltantes. Los árboles se emplean típicamente para labores de clasificación y para implementar tareas de recomendación. Las reglas de clasificación se emplean para modelar el comportamiento del usuario. Una de las principales limitantes radica en que se depende enteramente de la calidad de los datos disponibles. En problemas multidimensionales, el tiempo de respuesta de los árboles puede ser muy grande. Algunos ejemplos del uso árboles se muestra en la siguiente tabla:
Por otro lado, la siguiente tabla muestra el uso de reglas de clasificación para UM:
b) KNN
Este tipo de algoritmos se emplea efectivamente para labores de recomendación de elementos nuevos basado en el comportamiento previo del usuario. Sin embargo, al ser un algoritmo de clasificación, también puede ser usado para esa tarea, principalmente para inicializar de cierta forma a un nuevo usuario. Las principales limitantes son las dependencias de los resultados respecto al valor de k y la métrica elegida. En general, se requiere experimentación y conocimiento sobre el funcionamiento del sistema para llevar a cabo la elección. El valor de k debe ser grande para ser más tolerante al ruido (que se presenta constantemente en el caso de los datos para UM). Sin embargo, el incrementar el valor de k, también implica un incremento en el tiempo para computar. Algunos ejemplos que han usado estos algoritmos se muestran en la siguiente tabla:
c) Redes neuronales
Estas redes son capaces de obtener un significado de datos imprecisos o complejos. No se requiere de la definición de una métrica. Se han empleado para clasificación y recomendación de forma que agrupan a los usuarios con características similares creando así perfiles y estereotipos. La principal ventaja para usar este tipo de algoritmos es que no requieren ningún tipo de heurística. Las principales desventajas son el tiempo requerido para el entrenamiento y la cantidad de datos requerida. El tiempo de entrenamiento es un impedimento para la creación de modelos dinámicos. La siguiente tabla muestra algunas aplicaciones:
d) Máquinas de soporte vectorial (SVM)
Debido a su capacidad para trabajar con datos multidimensionales, se emplean clasificar documentos para personalizar las recomendaciones en los motores de búsqueda. También se han usado para labores de clasificación. La principal limitación es la selección del kernel para el clasificador. Aunque existen algunos predefinidos que sirven para varios tipos de aplicaciones, se recomienda crear uno específico. Hasta el momento de la escritura de este artículo, solo se había empleado SVM en documentos y no directamente en los usuarios. Algunos ejemplos se muestran en la siguiente tabla:
Las características principales de los métodos revisados se conjuntan en la siguiente tabla:
En general, este artículo es un buen punto de partida pero ya es un tanto viejo por lo que hace falta ver las aplicaciones que se han hecho a partir de su escritura.
Frias-Martinez, E., Chen, S. Y., & Liu, X. (2006). Survey of data mining approaches to user modeling for adaptive hypermedia. IEEE Transactions on Systems, Man, and Cybernetics, Part C: Applications and Reviews, 36(6), 734–749. doi:10.1109/TSMCC.2006.879391