Full text
MODELADO DE COMUNIDADES PARA LA RECOMENDACIÓN DE CONTENIDOS EN MUSEOS COMMUNITY MODELLING FOR THE RECOMMENDATION OF CONTENTS IN MUSEUMS TRABAJO FIN DE GRADO CURSO 2020-2021 AUTORES IAGO ZAMORANO CHOUCIÑO MARCOS RAFAEL NÚÑEZ VADYM BATSULA BILENKA DIRECTORES GUILLERMO JIMÉNEZ DÍAZ MARÍA BELÉN DÍAZ AGUDO GRADO EN INGENIERÍA INFORMÁTICA FACULTAD DE INFORMÁTICA UNIVERSIDAD COMPLUTENSE DE MADRID
MODELADO DE COMUNIDADES PARA LA RECOMENDACIÓN DE CONTENIDOS EN MUSEOS COMMUNITY MODELLING FOR THE RECOMMENDATION OF CONTENTS IN MUSSEUM TRABAJO DE FIN DE GRADO EN INGENIERÍA INFORMÁTICA DEPARTAMENTO DE INGENIERÍA DE SOFTWARE E INTELIGENCIA ARTIFICIAL AUTORES IAGO ZAMORANO CHOUCIÑO MARCOS RAFAEL NÚÑEZ VADYM BATSULA BILENKA DIRECTORES GUILLERMO JIMÉNEZ DÍAZ MARÍA BELÉN DÍAZ AGUDO CONVOCATORIA: JUNIO 2021 CALIFICACIÓN: GRADO EN INGENIERÍA INFORMÁTICA FACULTAD DE INFORMÁTICA UNIVERSIDAD COMPLUTENSE DE MADRID 15 DE JUNIO DE 2021
III
V RESUMEN Modelado de comunidades para exploración y recomendación de contenidos en museos Las comunidades llevan consigo una implícita relación de similitud entre los individuos que las conforman. Las relaciones entre los individuos y el diferente método que tengamos en cuenta a la hora de precisar ciertas características comunes determinan las comunidades que se puedan llegar a encontrar. Este trabajo pretende desarrollar una serie de herramientas que permitan la detección de comunidades de usuarios, así como la visualización de las mismas. Se experimentará con diferentes técnicas de clustering explorando las diferentes comunidades resultantes. Se desarrollará una aplicación que permita la exploración de los diferentes resultados obtenidos, así como la experimentación a la hora de modificar las medidas de similitud y la influencia en los resultados. Palabras clave Clustering, similitud, arte, SPARQL, comunidades, distancia.
VI
VII ABSTRACT Community modeling for exploration and content recommendation in museums The communities involve similarity relationship between individuals on it. Relationships between these people and the method we consider at the time of specifying various common features will determine the communities that may be found. This works pretends to develop a set of tools that allow us to detect communities of users, as well as their visualization. There will be done experimentations with different clustering techniques exploring in the process the communities that will result from these experiments. An application will be developed with the purpose of exploring different results obtained, as well as testing different similarities and their influences. Keywords Clustering, similarity, art, SPARQL, communities, distance.
1 Capítulo 1 - Introducción El ser humano es social por naturaleza. A lo largo de toda su historia, ha tratado de organizarse en grupos de individuos para, no solo intentar sobrevivir, si no poder compartir hábitos, gustos, cultura o rutinas con los miembros de dicho grupo. El sentimiento de pertenencia a una comunidad con la que se comparten diferentes características puede ser muy gratificante para las personas que la componen. Son diversos los campos de estudio que sacan provecho del concepto de comunidad a la hora de realizar estudios sobre la población, ya que resulta más sencillo encontrar estructura o caracterizar grupos de personas con características comunes que estudiarlos individualmente. Es precisamente en la idea de compartir elementos o características donde reside la potencia de poder modelar o detectar comunidades, ya que, si somos capaces de reunir a un grupo de individuos en torno a una idea, afición, costumbre o valor común, además de promover la socialización y comunicación, lo cual siempre es positivo para el progreso como persona, será más fácil dirigirles mensajes, ofrecerles productos o recomendarles cualquier tipo de contenido. Por otro lado, vivimos en un momento en el que la adquisición de datos a partir de sensores, tecnologías móviles o simplemente navegación por internet vive un momento álgido. Esto, junto con las distintas técnicas para la extracción de la información conforman lo que se conoce como Big-Data. La aplicación de estas técnicas permite entre otras muchas, la detección de comunidades por medio de mecanismos de aprendizaje automático. Por ello, con este trabajo buscamos desarrollar una serie de herramientas de detección y visualización de comunidades. Estas herramientas tendrán distintas aplicaciones como encontrar una serie de comunidades de usuarios de museos en base a una serie de valoraciones acerca de distintas obras, junto con ciertas características demográficas de los mismos, con el objetivo de poder así estudiar sus gustos con mayor facilidad y que estas comunidades puedan ser de utilidad a la hora de optimizar nuestras herramientas para realizarles recomendaciones, tanto de obras que podrían resultarles interesantes, como de personas con las que con bastante seguridad compartirán gustos en el arte.
2 1.1 Motivación El objetivo de este trabajo es desarrollar herramientas para encontrar, modelar, caracterizar y visualizar una serie de comunidades de personas en museos de arte. Partiendo de un caso de estudio de un conjunto de usuarios de los que se tienen datos demográficos y una serie de opiniones acerca de diversas obras de arte, la idea es poder encontrar comunidades de usuarios explorando las similitudes y diferencias entre dichos usuarios, tratando de encontrar rasgos comunes, ya sean a nivel demográfico o de valoración artística. Aunque las herramientas son específicas para nuestro dominio (arte), las técnicas de modelado se pueden aplicar a otros campos adaptando las medidas de similitud en las que se basan las comunidades. Aplicando distintos tipos de modelado y algoritmos el objetivo es identificar y visualizar estos grupos para encontrar un mecanismo que nos permita concretar dichos grupos, para que luego puedan ser utilizados con otros fines como pueden ser el de la recomendación de contenidos del museo, trazado de rutas que más puedan agradar al usuario en función de sus opiniones o la interacción de personas en la misma comunidad. 1.2 Objetivos Los objetivos más relevantes de nuestro trabajo en cuanto contribución son los siguientes: • Realizar un estudio comparativo de las técnicas de clustering, sus diferencias y similitudes para tratar de averiguar cuál puede ser la más adecuada, tanto de cara a llegar al objetivo de manera óptima, con el menor coste de tiempo posible, como para formar comunidades en función de la situación y el contexto en que se quieran aplicar. • Definir una medida de similitud entre cuadros que podamos utilizar para relacionar personas en base a su opinión/valoración sobre ciertas obras. En este proceso se definen una serie de similitudes parciales basadas en diferentes características de los cuadros, sobre las cuales utilizaremos unas medidas de peso concretas según ciertos criterios, para finalmente combinarlas en una similitud general. De manera paralela, se experimentará con el impacto que tiene la medida de similitud en el proceso de detección de comunidades.
3 • Desarrollar una interfaz a partir de un caso de estudio con datos reales que nos permita configurar variaciones de esta medida de similitud entre cuadros, permitiendo visualizarlos, y pudiendo ajustar los pesos de las similitudes parciales para ver como varían los resultados en función de los mismos. • Modelar una serie de comunidades utilizando técnicas de clustering que definan la distancia entre usuarios en función de las distintas medidas de similitud, con el fin de encontrar otros usuarios que hayan valorado de la misma manera las mismas obras u otras similares. • Experimentar con herramientas de visualización existentes y estudiar su adecuación en base las características de las comunidades detectadas en el dominio del trabajo. Proponer alguna de ellas que permita caracterizar las comunidades en base a distintos criterios ya sean demográficos, de gustos sobre arte o visualizar de alguna manera su cohesión. Los objetivos a nivel de aprendizaje personal son los siguientes: • Enfrentarnos durante el desarrollo del trabajo con conceptos y técnicas de programación o de diseño que no nos resulten familiares o que no hayamos estudiado en el grado para poder así ampliar nuestros conocimientos y competencias. • Descubrir y utilizar diferentes herramientas nuevas que nos ayuden a desarrollar nuestras ideas, tanto por parte técnica como teórica. 1.3 Plan de trabajo Una vez hemos expuesto cual es la motivación de este trabajo y cuáles son los objetivos que nos gustaría cumplir, pasamos a ver como hemos organizado el progreso del mismo. En las primeras fases del proyecto, procuramos familiarizarnos con las diferentes técnicas de clustering, estudiando las características y el funcionamiento de cada una de ellas. Las
4 conclusiones y resumen de la revisión de las técnicas de clustering se han incluido en el Capítulo 2 (Estado de la cuestión). Una vez conocimos en detalle dichas técnicas, las aplicamos sobre un conjunto de datos demográficos para tratar de entender qué nivel de relevancia podían tener a la hora de definir comunidades para así poder descartar ciertas de ellas, y mantener las que resulten satisfactorias. Posteriormente, como el resultado del análisis de los datos demográficos no resultaba del todo relevante, decidimos cambiar el enfoque y considerar los datos de valoraciones de los usuarios sobre las obras, que finalmente serían los que utilizaríamos para modelar las comunidades. Para trabajar en base a los datos de opinión de usuario, decidimos plantear una medida de similitud entre las obras, la cual estaría compuesta por diversas medidas parciales que considerasen distintos atributos de los cuadros como se detalla en el Capítulo 3 (Modelado de comunidades). Para poder visualizar y comprender a fondo la medida de similitud entre obras, hemos desarrollado una interfaz que permitiera visualizar los cuadros más similares a uno dado, ajustando las medidas de similitud empleadas. Esta parte se detalla en el Capítulo 4 (Implementación), tanto la parte relativa a su funcionamiento (backend) como la visual (frontend). Además, hemos buscado algún método o criterio para poder definir con qué pesos comparamos las obras a la hora de crear las comunidades, ya sea desarrollando alguna herramienta para su búsqueda u obteniendo información relevante para su decisión Para llevar cabo la detección de comunidades aplicamos las medidas de similitud establecidas entre los cuadros para encontrar usuarios que valoren de forma parecida las obras. Finalmente, representaremos los datos más relevantes de estas comunidades de usuarios utilizando diferentes herramientas de visualización.
5 Capítulo 2 - Estado de la cuestión Para poder entender el proceso de detección de comunidades primero hay que explicar el contexto en el que se encuentran las distintas técnicas y procesos utilizados. La abrumadora cantidad de datos que hoy por hoy se generan (algo más de 2,5 exabytes según IBM), hace de ellos, una entrada de información de gran volumen. La naturaleza de los datos abarca casi cualquier campo hoy en día. Desde datos médicos hasta datos bancarios. Esta gran cantidad de datos es lo hoy se conoce por Big Data. Sin embargo, el Big Data no solo consta de la generación y adquisición de datos sino también de las técnicas que se aplican para extraer información relevante de los datos. Algunas de esas técnicas son las denominadas técnicas de clustering. En concreto, aquellas técnicas de clustering capaces de revelar cierta estructura dentro de los individuos. Por esta razón, durante el desarrollo de este trabajo se han aplicado distintas técnicas de clustering [1]. Para poder aplicar estas técnicas de clustering es necesario la recuperación de datos. El paradigma Linked Data ofrece numerosas herramientas para poder acceder a distintos datos utilizando en nuestro beneficio las redes semánticas sobre las que se definen. 2.1 Técnicas de clustering La utilización del modelo de aprendizaje no supervisado es fundamental, al permitir el aprendizaje automatizado para entrenar la máquina y así poder conocer y agrupar los conjuntos de datos. Esto es necesario, frente al aprendizaje supervisado, porque a priori no tenemos información sobre la clase a la que pertenecen los elementos, por tanto, debemos descubrir patrones y características que permitan agrupar los datos de la manera más precisa posible. Existen dos técnicas básicas de exploración en el aprendizaje no supervisado: las de agrupamiento o clustering, basadas en los individuos y las de reducción de dimensionalidad, que se basan en las variables [2]. En las técnicas de reducción de dimensionalidad, el objetivo es reducir un conjunto de variables en subconjuntos que difieran lo mínimo posible de sus originales. Muchos factores resultantes vienen de la combinación de varias variables. Las variables originales que más
6 impacten en un factor serán las que se relacionen entre sí resultando en subgrupos comunes [3]. La reducción de dimensionalidad puede presentar los siguientes problemas: • Obtener una cantidad de dimensiones tan elevada que no contenga los suficientes ejemplos para caracterizar ciertos conjuntos. • A la hora de encontrar variables que impacten en los factores, puede haber algunas que no ofrezcan ninguna contribución y confundan el sistema. • Su visualización no es tan sencilla como otros algoritmos. En este caso, la técnica que nos concierne es el clustering. De cara a afrontar el trabajo que se nos presenta, los principales problemas que nos encontramos son: • Seleccionar las variables más importantes, las que realmente tengan impacto en el aprendizaje automatizado, dado que es bastante probable que haya varias de ellas irrelevantes y que no ofrezcan ninguna utilidad al proceso, ya sea porque sean demasiado escuetas o porque no sean lo suficientemente descriptivas. • La representación que pueden tener algunos atributos. Esto complica la preparación del algoritmo de clustering, dado que puede haber variables entre sí con formatos no representativos o que no puedan relacionarse de manera directa, ya sea por formato, o por tipo; lo cual fuerza a refactorizar muchos de ellos de manera coherente y eficiente. El objetivo final del proceso clustering es generar conjuntos de individuos lo más parejos entre sí dentro del conjunto y lo más diferentes posible con los de otros grupos. Las medidas de similitud que definen estas distancias entre individuos y conjuntos son las resultantes de resolver los problemas mencionados anteriormente y definiendo los atributos que mejor caractericen a los objetos. Existen tres principales familias de técnicas de agrupamiento: clustering jerárquico y clustering basado en particiones y clustering basado en densidad. En cuanto al agrupamiento jerárquico (Figura 1 Modelo estructural del clustering jerárquicoFigura 1), llamamos de esta manera al método que agrupa los datos según la distancia
7 entre cada uno de ellos y buscando que los que están dentro de un mismo cluster son los más similares. Un ejemplo claro es el aglomerativo, que comienza definiendo tantos clusters como individuos haya y a partir de este punto ir agrupando los más cercanos entre sí hasta formar un solo conjunto. El punto más importante de esto es definir la distancia que va a medir la proximidad entre elementos [4]. Habitualmente se utilizan las métricas Minkowski. Una vez elegida la métrica, se designan los puntos de referencia que se medirán. En este caso tenemos tres opciones: • Centroide: Mide la distancia entre los puntos medios de cada cluster. • Enlace simple: Se tiene en cuenta la medida entre los puntos más cercanos entre conjuntos. • Enlace completo: Se toman los puntos más alejados de los cluster. En el caso del algoritmo basado en particiones, su objetivo es dividir el espacio en k clusters en los cuales se sitúan los individuos de la mejor manera posible. El más común es k-means (Figura 2), y su manera de funcionar es la siguiente: Tras fijar el valor k mencionado anteriormente, se generan k puntos aleatorios en el espacio llamados centroides. A continuación, se asignan los objetos que buscamos agrupar al centroide más cercano en el área y se vuelve a calcular el centroide de ese cluster en base a la nueva asignación de participantes del mismo. Este proceso se Figura 1 Modelo estructural del clustering jerárquico
8 repite hasta que los centroides se mantengan en el sitio, lo cual en ese momento significa que hemos llegado a la disposición más optimizada. Figura 2 Proceso de ajuste de centroides en el algoritmo de k-means Por otro lado, para el aprendizaje supervisado se necesitan previamente ejemplos ya clasificados, para así poder el sistema aprender funciones que permitan establecer reglas más precisas de clasificación. El aprendizaje supervisado se divide, según su variable, de las siguientes dos maneras: • Si la variable es numérica, se trata de un problema de regresión. • Si, por el contrario, la variable es categórica, el problema es de clasificación. Entre las técnicas más relevantes del aprendizaje supervisado, se encuentra el k-NN (k nearest neighbors). Se trata de un algoritmo basado en criterios de vecindad, el cual, a través de unos factores de clasificación dados inicialmente, se van reagrupando los individuos en base a la cercanía con otros que sean más parecidos [5].
9 Por otro lado, existe la técnica basada en árboles de decisión, la cual, a raíz de un conjunto inicial, se construye un árbol donde cada nodo pregunta por el valor de una variable que servirá para clasificar nuevas entradas que vayan ocurriendo. De cara a la utilización de medidas de similitud, debemos encontrar técnicas que puedan trabajar con matrices de distancia entre los diferentes individuos. Los algoritmos de clustering que hemos estudiado anteriormente, tratan los datos como puntos en el espacio, entre los que mide la distancia mediante diferentes métodos. En este caso no contamos con puntos en el espacio sino con una herramienta que mide la distancia entre dos individuos, por tanto, necesitamos utilizar métodos que puedan calcular clusters con ella. En este sentido, consideramos primeramente el método de k-medoids [6], que es una modificación de la técnica k-means. La principal diferencia es que k-medoids utiliza uno de los datos como centro del cluster, en vez de calcular el punto medio representativo de cada grupo en el espacio. Es por ello por lo que permite trabajar con una medida de distancia personalizada sin necesidad de definir a unos individuos en puntos concretos del espacio. Otro método que se puede adecuar con facilidad es DBSCAN [7](Density Based Spatial Clustering of Applications with Noise) que pertenece a la familia de métodos basados en densidad. Esta técnica itera sobre los datos agrupando en un mismo cluster todos los puntos que estén a una distancia igual o menor que un valor épsilon (Figura 3). Es por ello por lo que se da el caso en que ciertos puntos de los datos no sean incluidos en ningún cluster al no estar dentro del rango mínimo de proximidad con respecto a ningún otro y sean etiquetados como ruido. En este sentido entra en juego el segundo parámetro con el que trabaja DBSCAN, el tamaño mínimo de los clusters. Este último valor define cuantos valores son necesarios para poder definir un cluster. Obsérvese que, si este último valor se define a 1, cada dato que anteriormente se etiquetaba como ruido al no estar cerca de ningún otro dato, conformara su propio cluster. Este método supone una ventaja con respecto a los anteriores al crear clusters densos en los que sus datos están con un mínimo de proximidad entre ellos, ya que los anteriores incluyen todos los datos en un cluster independientemente de la distancia que los separe.
10 Figura 3 Esquema DBSCAN mínimo de 3 muestras por cluster 2.2 Herramientas de Linked Data La Web Semántica [8] es una extensión de la World Wide Web que procura darle una estructura más organizada al conocimiento en la misma. Creada en 1990 en el CERN por Tim Berners-Lee y Robert Cailliau, la World Wide Web se basa en una colección de documentos de texto no estructurados, pensado para ser utilizados e interpretado por personas. Al carecer de una organización clara, realizar búsquedas precisas por significado o relaciones no es posible, reduciéndose las posibilidades a encontrar meras coincidencias textuales. Es por ello por lo que en 2001 Tim Berners-Lee propone la idea de la Web Semántica, buscando dar una estructura más clara al conocimiento que contiene la web y que así pueda también ser accedido, interpretado y utilizado por agentes software y no solo por personas. De esta iniciativa surgen distintas tecnologías que tratan de dotar a la web de una estructura semántica
17 crear una bolsa de cuadros similares bajo ciertos criterios. Una vez concretada la similitud entre cuadros, se utilizan los sentimientos de los usuarios para, en un primer lugar, saber que cuadros han valorado positiva y negativamente y, en un segundo lugar, utilizar la medida de similitud entre cuadros para crear una bolsa de cuadros que son del agrado o desagrado del usuario. Con todo esto ya podemos concretar una medida de similitud válida para los usuarios. A continuación, se explica de manera detallada cada una de las similitudes principales definidas para la detección de comunidades de usuarios. 3.2.1 Similitud de usuarios Como comentábamos al principio del capítulo, necesitamos poder definir una medida de similitud entre los distintos usuarios para poder agruparlos en comunidades, ya que las diferentes técnicas de clustering que utilizaremos para ello requieren conocer cuan cerca están los unos de los otros a la hora de definir estos grupos. Para ello hemos de considerar las valoraciones y opiniones que cada persona ha proporcionado sobre los cuadros. Con esta idea hemos definido una medida de similitud entre las obras tal que la podamos utilizar a la hora de poder comparar dos conjuntos de cuadros que dos usuarios han valorado de cierta manera. Los usuarios han comentado sobre una serie de obras la emoción que esta les causa o inspira. A su vez estas emociones han sido etiquetadas con tres polaridades, siendo estas positive, negative y mixed con el objetivo de poder obtener conjuntos de cuadros que les gusten, no les gusten o les resulten indiferentes. A la hora de enfrentar dos usuarios para obtener su índice de similitud, es útil tener conjuntos de cuadros los más amplios posibles para obtener medidas más significativas, y es por ello por lo que a la hora de compararlos consideramos los conjuntos de cuadros que han valorado con cierta polaridad, dejando de lado las emociones concretas, con las que solo obtendríamos conjuntos pequeños y en muchos casos vacíos. Una vez hemos decidido que llevaremos a cabo las comparaciones de usuarios enfrentando conjuntos de obras que han valorado con cierta polaridad, hemos de definir un método que, haciendo uso de las medidas de similitud entre cuadros que definiremos posteriormente, devuelva el índice de similitud entre ambos conjuntos de obras.
18 Una primera aproximación que tomamos fue considerar la similitud media de los cuadros de ambos conjuntos. La idea era tomar las obras de ambos de dos en dos y obtener así todas las similitudes de cada posible pareja, para después poder calcular la media. El problema que presentaba este método es que considerar la media centraba en exceso los resultados, obteniendo gran parte de los usuarios índices de similitud muy cercanos. Para conseguir una medida algo más significativa y discriminante a la hora de comparar conjuntos definimos el método que describimos a continuación: La idea principal es extender los conjuntos de obras valoradas en cierta polaridad iniciales de cada usuario (Figura 7). Para llevarlo a cabo usamos la medida de similitud de cuadros para recuperar los k (parametrizable) cuadros más similares a cada uno de los presentes en cada conjunto. Otra opción sería recuperar para cada cuadro aquellos que superen un cierto umbral (parametrizable) de similitud. Figura 7 Extensión de los conjuntos de obras valoradas por usuarios con obras similares Una vez hemos extendido ambos conjuntos de obras, podemos aplicar alguna medida de similitud entre los dos. En este caso aplicamos el coeficiente de similitud entre conjuntos de Jaccard que se calcula de la siguiente manera: Sean A y B dos conjuntos, definimos el coeficiente
19 de similitud de Jaccard como el cociente entre el cardinal de la intersección y el cardinal de la unión de A y B. 𝐽(𝐴,𝐵)= |𝐴∩𝐵| |𝐴∪𝐵| El coeficiente de similitud de Jaccard nos da una idea de en qué medida dos conjuntos de solapan. Llevado a nuestro caso, es una medida muy indicativa de cuan parecidos son las valoraciones de dos usuarios. Al haber recuperado los cuadros más similares con respecto al conjunto original, dos usuarios con gustos parecidos tendrán un índice de solapamiento muy alto. Sin embargo, dos usuarios más disonantes, obtendrán un porcentaje de solapamiento mucho menor ya que si sus cuadros no son similares, con la extensión de los conjuntos, no obtendrán tampoco demasiada coincidencia. 3.2.2 Similitud de cuadros El proceso de detección de comunidades de usuarios hace uso de una medida de similitud entre cuadros previa. El objetivo de esta similitud es poder concretar cuanto de similares son los cuadros entre sí en base unas variables concretas. Para definir la medida de similitud entre dos cuadros se utilizan diversas similitudes parciales de manera ponderada. Es decir, adjudicando diversos pesos a cada una de las similitudes parciales. Para llevarlo a cabo, se construye una matriz de distancias entre los cuadros siendo 1 la similitud más alta y 0 la más baja entre un par de cuadros dados. Para ello, se han definido cinco medidas de similitud parcial. Con esta técnica se enriquece de manera sustancial la similitud entre cuadros. Sin embargo, surge una gran cuestión una vez concretadas y definidas las similitudes parciales de los cuadros. ¿Qué peso deben tener cada una de las variables al comparar dos cuadros? Para responder esta pregunta debemos entender que repercusión tiene el uso de los pesos.
20 Si por ejemplo queremos comparar los cuadros de la Figura 9 y la Figura 8 en base al autor exclusivamente, la variable autor tendrá el peso total de la similitud. Es decir, los posibles resultados que obtendremos serán la completa similitud (100%) en caso de coincidencia de autor o el 0% en caso contrario. Para este caso, se obtendría un 100% de similitud ya que ambos cuadros pertenecer a Francisco Goya. Sin embargo, si ahora tomamos dos atributos de los cuadros como autor y color dominante, y cada uno tiene un peso de 40% y 60% respectivamente veremos que los índices de similitud varían. En este caso, si el autor coincide, pero el color predominante no, obtendremos una similitud de un 40% entre esa pareja de cuadros. Como se puede observar, la repercusión a la hora de elegir el peso de cada una de las similitudes parciales es de vital importancia a la hora de comparar dos cuadros. Cabe destacar que los distintos pesos que se apliquen a las similitudes parciales no llevan consigo una connotación ni positiva ni negativa. Gracias a este planteamiento, se pueden construir distintas medidas de similitud entre cuadros permitiendo generar comunidades de usuarios bajo ciertos criterios. Si por ejemplo quisiéramos detectar comunidades de usuarios en base al gusto por un autor exclusivamente, sería tan fácil como ajustar el peso al 100% de la variable autor. De esta manera se conseguiría definir comunidades que tienen como característica común su gusto por un autor en concreto. En los siguientes subapartados se explica de manera detallada cómo se han utilizado los siguientes atributos de los cuadros como medidas de similitud parcial. • Similitud por contenido • Similitud por color dominante • Similitud por tamaño • Similitud por artista y movimiento • Similitud por error cuadrático medio por píxel Figura 9 La maja desnuda Figura 8 Los fusilamientos del tres de mayo
21 3.2.2.1 Similitud por contenido El contenido de un cuadro se define por los elementos que están representados en él, que llamaremos depicts. Podemos observar, por ejemplo, los depicts de la obra La rendición de Breda de Velázquez en la Figura 10. Se trata de una variable muy descriptiva y representativa de la temática del mismo, por lo que una comparativa entre ellos puede suponer una buena medida de similitud entre dos obras. Además, acceder a esta información es muy sencillo a través de Wikidata ya que se trata de una de las principales propiedades de las obras (P180). Figura 10 Depicts de la obra La Rendición de Breda de Velázquez Para definir una medida de similitud entre dos conjuntos de conceptos, como son los representados en un cuadro, no debemos limitarnos a la coincidencia directa de términos ya que en la mayoría de los casos ésta será muy limitada y estaremos perdiendo información. Por ejemplo, si en dos cuadros podemos encontrar un fondo boscoso, pero en un caso se trata de un pinar y en el otro se trata de un encinar. No podemos desechar esa información porque simplemente solo consideremos la coincidencia directa de los conceptos pino y encina, deberíamos poder abstraernos hasta el concepto de árbol. Es por ello por lo que la medida de similitud que hemos definido para los conjuntos de depicts de dos cuadros tiene en cuenta las superclases de cada concepto, en cierta profundidad. En este caso, hemos recuperado las propiedades “instance of” (P31 en wikidata) y “subclass of”
22 (P279 en wikidata) para utilizarlas como superclases, ya que representan los conceptos en un nivel abstracción mayor, conservando, sin embargo, la semántica de los mismos. Debemos considerar también la profundidad en la que recuperaremos estos conceptos, es decir, cuanto vamos a escalar en la jerarquía de superclases de dos pares de conceptos a la hora de buscar coincidencias. También es importante que la medida de similitud entre dichos pares de conceptos tenga en cuenta en qué profundidad se ha hallado un término coincidente, ya que cuanto más subimos en el árbol de superclases, más generales serán los conceptos que recuperemos y nos exponemos a una probable pérdida de semántica si nos excedemos al subir en la jerarquía. Volviendo al ejemplo anterior (Figura 11), los conceptos pino y encina, coincidirán con total seguridad en el primer nivel ya que ambos son subclases de árboles. Sin embargo, considerando de nuevo el concepto del pino y en este caso el de un animal como puede ser un caballo, aunque no coincidan en primera instancia, lo acabarán haciendo eventualmente al ser, ambos, subclases de seres vivos. Teniendo esto en cuenta, debemos aplicar en nuestra medida de similitud algún mecanismo que pese las medidas en función de la altura en que los conceptos coincidan. Figura 11 Superclases comunes entre conceptos de dos conjuntos de depicts Con todo, planteamos la medida de similitud como la similitud del coseno entre dos vectores con pesos comprendidos en el rango [0,1] que construimos con el siguiente formato: Sea A conjunto de depicts del primer cuadro y B el conjunto de depicts del segundo cuadro. Consideremos los siguientes conjuntos para tratar por separado los conceptos presentes en ambos cuadros y los que en cambio son exclusivos de cada uno: 1. Intersección: definida como A ∩ B
23 2. Exclusivos de A: definido como A \ (A ∩ B) 3. Exclusivos de B: definido como B \ (A ∩ B) 4. Comunes de A y B: conjunto de antecesores comunes de los conceptos de Exclusivos de A y Exclusivos de B tomados de dos en dos 5. Descartes: conjunto de conceptos de A y B para los que se han encontrado antecesores comunes y se han incluido en el conjunto anterior Considerando los anteriores conjuntos, y, tal y como podemos observar en la Figura 12, construimos los vectores insertando para cada concepto de los siguientes conjuntos los siguientes pesos: - Para todos los conceptos del conjunto Intersección insertamos el valor máximo 1 en ambos vectores, indicando la presencia de cada concepto en ambas obras. - Para todos los conceptos del conjunto Exclusivos de A, exceptuando los incluidos en el conjunto Descartes, insertamos el valor máximo 1 en el vector de pesos de A y el valor mínimo 0 en el vector de pesos de B - Para todos los conceptos del conjunto Exclusivos de B, exceptuando los incluidos en el conjunto Descartes, insertamos el valor máximo 1 en el vector de pesos de B y el valor mínimo 0 en el vector de pesos de A - Para todos los conceptos del conjunto Comunes, insertamos en cada vector el valor inverso a la profundidad en que coincidieron los conceptos en cada caso. Figura 12 Construcción de los vectores de pesos de los conjuntos de depicts
24 Una vez construidos sendos vectores de pesos, definimos la similitud por contenido como la similitud del coseno entre ambos vectores, cuyo valor viene dado por la siguiente formula: 𝑠𝑖𝑚(𝑎,𝑏)= 𝐴 ∙ 𝐵 ||𝐴|| ||𝐵||= ∑𝐴𝑖𝐵𝑖 𝑛𝑖=1 √∑𝐴𝑖2 𝑛𝑖=1 √∑𝐵𝑖2 𝑛𝑖=1 Con este método conseguimos no solo tener en cuenta significados más abstractos de los conceptos de cada conjunto de depicts, si no poder pesar su aportación al índice de similitud en función de la altura en la que encontremos las coincidencias de conceptos. Un aspecto importante a tener en cuenta a la hora de llevar a cabo este proceso es la profundidad máxima en la jerarquía conceptual, es decir, la profundidad en que se buscan las coincidencias de los conceptos. El incremento de este valor puede conllevar que el número de coincidencias aumente considerablemente al abstraerse demasiado del concepto original, lo cual puede conllevar una perdida excesiva de semántica además de tener un gran coste computacional. Sin embargo, un valor muy bajo podría estar privándonos de encontrar coincidencias de mayor relevancia. Un valor con un coste asumible y que no peca de excesiva abstracción semántica es 3. 3.2.2.2 Similitud por color dominante El color en un cuadro es otro de los atributos que definen la similitud entre cuadros, que, dependiendo del caso de prueba y el criterio del individuo, es más o menos importante. Con esto damos por hecho que el color es una propiedad imprescindible para definir la similitud que hay entre dos obras. Dadas las infinitas tonalidades de colores, resulta imposible hacer una lista de los mismos que aparecen en un cuadro. Por ello, hemos concluido que la mejor forma de abordar este tema es obtener una paleta de los colores dominantes de cada obra de arte, partiendo de la imagen de la misma representada en el modelo RGB. Esto se consigue recabando una media de colores por píxel que contiene.
25 Para llegar a la información necesaria que nos permitirá realizar esta distinción y permitir comparar un cuadro con otros utilizamos k-means, de manera que el algoritmo, segmenta la imagen con k precisión. Esta solución permite que al establecer los k clusters que se elijan, a partir de una primera pasada agrupar ciertos colores inicialmente, de forma que con cada iteración los conjuntos se van moviendo y atrayendo las tonalidades que más tienden a la media, resultando finalmente en un resultado de los k colores principales medios que contiene la imagen. La paleta de colores que se logra puede ser variable dependiendo de la precisión de tonalidad que queremos obtener, siendo más precisa cuanto mayor índice k le demos al algoritmo, permitiendo de esta manera una mayor gama de colores, a costa de reducir finalmente el abanico de posibilidades similares en este aspecto, dada la comparación con un tono más específico. Esta decisión también implica que utilizar como color dominante el color medio general de una obra tampoco es suficientemente precisa, puesto que la combinación de muchos colores suele discurrir hacia un color generalmente oscuro y no muy representativo. En la siguiente imagen (Figura 13), podemos ver como partiendo de una imagen original, el algoritmo la segmenta en los k colores, tres en este caso, más dominantes que contiene. De esta forma, se generan tres tonos principales que más se asemejan a la mayoría de colores cercanos a esa tonalidad. Figura 13 Representación de una imagen segmentada con k-means A la pregunta ¿y cómo medimos de manera precisa cuán parecido es un cuadro a otro cuando se trata con este atributo?, la respuesta implica utilizar el modelo de color HSV.
26 HSV (Hue – Saturation – Value, o Matiz – Saturación – Valor en español) o HSB, que sustituye el Valor por Brightness (Brillo) está representado en un diagrama circular (Figura 14), estos valores se suelen comprender entre estas magnitudes: • H (Matiz): Comprende toda la gama cromática y se representa mediante la posición en un círculo completo, es decir, en un rango de 0 a 360º. Sabemos que los colores básicos se localizan de la siguiente forma: 0º/360º coincide con el color rojo (1,0,0), 120º es el verde (0,1,0) y finalmente el azul se corresponde con 240º (0,0,1). • S (Saturación): También denominado pureza, este parámetro representa la cantidad de color. Con un rango comprendido entre 0 y 100%, cuanto mayor es la cantidad, más coloración hay. • V (Valor): Este atributo representa la luminosidad, definido por la altura en el eje blanco-negro. Sus valores, al igual que la saturación van del 0 al 100%, siendo 0 el negro y 100 el blanco. Figura 14 Representación de HSV
33 tamaño, comunidades que cumplan alguna restricción demográfica o cualquier otro objetivo, hemos de proporcionar algún mecanismo capaz de satisfacer estas restricciones. Por ellos hemos implementado un algoritmo genético cuya función es poder utilizarlo para buscar los pesos más adecuados para cumplir un determinado objetivo. Utilizando el vector de pesos como el cromosoma de nuestro algoritmo e implementando una función de fitness adecuada, consiguiendo que premie los individuos que más se ajusten a las restricciones y que castigue a los individuos que más se alejen, podremos obtener el vector de pesos más adecuado para nuestro modelo de comunidades. Este algoritmo genético (Figura 16) sigue una estructura clásica de iterar a lo largo de múltiples generaciones procediendo al proceso de selección, el cruce de un cierto porcentaje de individuos, la mutación de parte de los alelos de cromosomas de la población y la reinserción de los mejores individuos de la generación anterior (elitismo). Esta diseñado como un algoritmo de minimización, por lo que la función de fitness a utilizar debe tenerlo en cuenta a la hora de evaluar cada cromosoma. Los cromosomas están implementados como vectores de números reales cuyo rango se define inicialmente para cada uno de los alelos (posiciones del vector) inicialmente. Entrando en detalle en algunos aspectos, se ha implementado el proceso de selección mediante un proceso de ruleta por fitness en el que se reparten las probabilidades en función de las puntuaciones de la función de fitness. Al inicio de cada iteración se aísla una pequeña elite que será reinsertada en la siguiente generación sin sufrir cruce ni mutaciones. Los cruces están implementados de tres formas: cruce de un punto, cruce de dos puntos (se parten los cromosomas por uno o dos puntos respectivamente y se intercambian los alelos de cada partición) y cruce uniforme (que intercambia los alelos de cada cromosoma con un 50% de probabilidad). Por último, la mutación se da según un porcentaje en el que para cada alelo se cambia su valor por uno elegido aleatoriamente dentro de su rango definido.
34 Figura 16 Esquema del algoritmo genético utilizado Como podemos ver, el proceso de modelado ofrece una cierta flexibilidad en este aspecto, pudiendo generar múltiples tipos de comunidades definidas en función de diferentes criterios. Con todo esto, decidimos ponerlo a funcionar con una función de fitness propia. En este caso uno de los directores nos proporcionó un conjunto de datos que contiene las respuestas de una serie de profesionales y amateurs en el campo del arte acerca de su percepción similitud de varios pares de obras. Con esta información definimos una función de fitness que midiera el error medio de nuestra similitud de obras pesada con el cromosoma dado con respecto a las respuestas de los profesionales y amateurs. De esta forma conseguiríamos unos pesos que se ajustasen con su percepción de similitud de obras y que podrían servir de punto de partida para modelar una serie de comunidades. 3.3.2 Formación de comunidades Una vez definidos los parámetros pendientes, podremos empezar a aplicar las ya anticipadas técnicas de clustering. Para poder aplicar las distintas técnicas necesitamos definir la medida distancia entre dos usuarios, que por supuesto estará fundamentada en las medidas de similitud. En este caso decidimos tener en cuenta tanto las opiniones en polaridad positiva como negativa a la hora de comparar usuarios. Una vez obtenidas ambos índices, definimos la similitud
35 de dos usuarios como la media de ambas y la distancia que los separa como la unidad menos la media obtenida. Así pues, cuanto más similares sean menor será la distancia y cuanto menos se asemejen mayor será esta. A la hora de formar las comunidades, finalmente hemos tenido en cuenta dos técnicas de clustering. Con sus diferencias, ofrecen resultados diferentes a la hora de tratar con los usuarios y sus similitudes. En el caso de DBSCAN, obtendremos clusters con un alto nivel de cohesión en lo que a gustos artísticos se refiere. Sin embargo, ofrece la desventaja de que en ocasiones puede etiquetar a un gran número de usuarios como ruido, no incluyéndolos en ninguna comunidad. En cambio, k-medoids incluye a todos los usuarios en algún cluster por muy lejanos que sean con respecto al resto de miembros del grupo, algo que puede causar que surjan comunidades más dispersas o con usuarios muy diferentes a los demás. 3.3.3 Visualización de las comunidades Para poder visualizar las comunidades obtenidas mediante las técnicas de clustering, podemos recurrir a diferentes datos de los usuarios que la forman. En este caso hemos querido considerar, no sólo los gustos artísticos de los usuarios que conforman cada grupo, sino algo más de información que pueda ser de utilidad a la hora de estudiarlos. En esta línea, decidimos incluir para cada cluster formado una serie de datos acerca de la distribución demográfica del mismo, los cuadros y artistas con mayor número de valoraciones positivas y negativas de cada cluster, el movimiento más popular y los sentimientos más expresados. 3.3.4 Discusión de los resultados obtenidos La flexibilidad que ofrece el mecanismo de modelado que hemos propuesto en este capítulo tiene como consecuencia que se puedan encontrar diversos resultados en función de cómo parametricemos la detección de comunidades. En este sentido, hemos decidido proponer una serie de comunidades que hemos detectado utilizando diferentes pesos para las similitudes de cuadros. En cuanto a la técnica de clustering elegida, consideramos utilizar DBSCAN por su capacidad de descartar individuos ruidosos a la hora de formar las comunidades, y, poder así obtenerlas con una mayor homogeneidad y similitud entre los individuos que las componen.
36 En la primera propuesta de detección de comunidades, utilizamos unos pesos propuestos por un profesional en arte tras experimentar con la herramienta de visualización de la similitud entre cuadros que desarrollamos. Nos comentó que, en su opinión, las similitudes parciales más determinantes son tanto la Similitud por artista y movimiento como la Similitud por contenido, mientras que, sin embargo, la Similitud por color dominante y la Similitud por tamaño debían ser las que menos influencia tuvieran en la medida final. Así pues, tras varias pruebas con la herramienta de visualización, decidió que los siguientes pesos son los más adecuados: Similitud por contenido 35% Similitud por color dominante 5% Similitud por tamaño 5% Similitud por artista y movimiento 35% Similitud por error cuadrático medio por píxel 20% Tabla 1 Pesos de las similitudes parciales entre cuadros propuestos por un profesional en arte En cuanto a los resultados de esta propuesta, se obtuvieron 5 comunidades. En general, cada cluster de individuos tiene un movimiento artístico claramente representativo, estando representado cada uno de los presentes en el caso de estudio por al menos una comunidad. En cada una de las comunidades es fácil identificar al menos un cuadro que estuviera valorado positivamente por la mayoría de los usuarios. En contra, no existe tanta consonancia a la hora de encontrar cuadros valorados negativamente por una parte significativa de las comunidades. En cuanto a los datos demográficos, al no haberse tenido en cuenta en la formación de clusters, existe una gran variedad en la presencia de usuarios de diferentes edades y nacionalidades, así como una tendencia a una presencia equitativa de ambos géneros. En la segunda propuesta de detección de comunidades, utilizamos el algoritmo genético que desarrollamos. Utilizando la función de fitness detallada anteriormente (Búsqueda de pesos), en la que mediamos la aptitud de cada cromosoma como el error medio entre la similitud determinada por los pesos del cromosoma y la similitud percibida por profesionales en arte entre diversos pares de cuadros, obtuvimos los siguientes pesos para las similitudes parciales entre obras:
37 Similitud por contenido 12% Similitud por color dominante 4% Similitud por tamaño 15% Similitud por artista y movimiento 34% Similitud por error cuadrático medio por píxel 35% Tabla 2 Pesos de las similitudes parciales entre cuadros encontrados con el algoritmo genético Como se puede observar en la Tabla 2 el resultado del algoritmo genético proporciona unos pesos en los que predominan la similitud por artista y movimiento y similitud por error cuadrático medio por píxel. Con estos pesos se obtuvieron 6 comunidades. Dos de ellas con más del doble de individuos que cualquiera del resto de clusters. Los artistas y movimientos están bastante repartidos de forma muy variable entre los cuadros, aunque vemos que, en cuanto a artistas, Goya y Zurbarán aparecen a menudo, y en cuanto a movimiento, lo hace Renacimiento del Norte. En la tercera propuesta de detección de comunidades, decidimos probar darle un valor máximo al peso de las Similitud por artista y movimiento con la intención de que en cada cluster se pudiera identificar un artista o movimiento especialmente popular. Así, los pesos utilizados serían los siguientes: Similitud por contenido 0% Similitud por color dominante 0% Similitud por tamaño 0% Similitud por artista y movimiento 100% Similitud por error cuadrático medio por píxel 0% Tabla 3 Pesos de las similitudes parciales entre cuadros con el peso de la Similitud por artista y movimiento al máximo
38 El número de clusters generados con esta combinación de pesos es de 5. El tamaño de cada cluster es diferente, aunque entre tres de ellos la diferencia de individuos es mínima. Mayoritariamente, se presentan varias obras de forma periódica, como por ejemplo The Surgeon o The Straw Manikin, de nuevo vemos que cuantas más obras tenga un autor más aparecen en los clusters. Se puede ver que dadas las opiniones que aparecen en cada cluster, un caso en el que haya más equidad numérica en artista y movimiento, seríamos capaces de detectar realmente clusters que giren en torno a ciertas obras, descartando las que, a pesar de tener muchas apariciones, no son relevantes en los clusters. Cabe destacar que en los tres resultados mencionados siempre se genera un cluster en el que la mayoría de los usuarios son extranjeros. Es curioso este comportamiento teniendo en cuenta que la mayoría de los individuos proporcionados son de origen español y que para la generación de comunidades se han utilizado pesos muy diferentes. Por lo tanto, se podría concretar que las personas con nacionalidad extranjera son afines a cuadros, autores y movimientos artísticos concretos. Mas concretamente los cuadros Apparition of the Apostle Peter to Saint Peter Nolasco, St. Rufina of Seville y Still Life with Pots, el movimiento artístico Barroco y los artistas Francisco de Zurbaran y Diego Velazquez. Una vez detallado el proceso de modelado y sus resultados, pasamos a explicar cómo hemos planteado el diseño y el desarrollo de la aplicación que lo implementa. En el siguiente capítulo veremos una explicación pormenorizada de la arquitectura y diseño de la aplicación, así como de las tecnologías y herramientas utilizadas durante la implementación.
39 Capítulo 4 - Implementación El objetivo principal de este trabajo es el desarrollo de una herramienta que permita detectar comunidades de usuarios, experimentar con técnicas de similitud y su visualización. Sin embargo, este proyecto ofrece otras funcionalidades secundarias dignas de mencionar. Para poder llevar a cabo la implementación se han usado diferentes técnicas y tecnologías de desarrollo software. Durante todo el desarrollo se han puesto en práctica conocimientos conocidos para desarrollo. Sin embargo, la naturaleza del proyecto ha obligado al estudio y familiarización de otras técnicas. Puesto que el desarrollo ha sido colaborativo, todos los participantes han afianzado e incrementado sus conocimientos en diferentes aspectos en el desarrollo software. Se hará mayor hincapié en este aspecto en los apéndices de la memoria. Durante la implementación del proyecto se han utilizado diversas aplicaciones para la comunicación y el control de versiones. El uso de estas herramientas ha sido de vital importancia no solo por el déficit de comunicación presencial que ha supuesto la situación de pandemia actual, sino porque gracias a estas aplicaciones se ha podido llevar un control absoluto sobre las distintas etapas de desarrollo del proyecto. El código del proyecto está alojado en un repositorio Github (https://github.com/iagger/Modelado-de-comunidades) que utilizamos para compartirlo a lo largo de su desarrollo con instrucciones acerca de su uso. En los siguientes apartados se explica de manera detallada el proceso de implementación de cada una de las partes. 4.1 Preprocesamiento de los datos y primeros resultados En una primera fase de desarrollo tratamos con los datos que se nos proporcionaron inicialmente con el objetivo de familiarizarnos con ellos y poder generar unas primeras comunidades a partir de los de los datos demográficos de los usuarios. Para llevar a cabo este proceso se utilizan cuadernos o notebooks de Jupyter. Estos cuadernos permiten la programación (Python) y a su vez la compilación y ejecución de parte del código. Estos cuadernos están alojados dentro del proyecto. Concretamente en una carpeta nombrada como “notebooks”.
40 Utilizando los datos demográficos de los usuarios se busca poder realizar y aplicar las distintas técnicas de clustering es crucial que se realicen ciertas tareas previas. Sin este proceso previo todo el trabajo a posterior podría verse perjudicado ya que es posible que dentro del conjunto de datos existan valores incongruentes o nulos. El preprocesamiento de datos está dividido en dos partes: 1. Visualización de los datos: se exploran cada uno de los archivos de datos proporcionados. El objetivo es visualizar los datos en crudo para conocer la naturaleza de los datos antes de su procesado. 2. Limpieza y resultados estadísticos descriptivos: para cada uno de los conjuntos de datos se realiza una exploración de los datos en profundidad. Para cada variable se comprueban si los datos son coherentes y si existen valores nulos o vacíos. Conjuntamente se muestran ciertos valores descriptivos de los conjuntos de datos. Tales como el número de individuos o la frecuencia. Para ello, se utilizan diferentes formas de visualización. Como los diagramas circulares ilustrados en las figuras Figura 17, Figura 19, Figura 18. Figura 17 Frecuencia edades usuarios Figura 18 Frecuencia movimientos artísticos Figura 19 Frecuencia polaridad sentimientos usuarios
41 Tras la visualizacion y limpieza de datos, tambien se han generado comunidades de usurios en una primera etapa del trabajo. Estas comunidades estan generadas con los datos de demograficos de los usuarios. Para poder aplicar las diferentes técnicas de clustering es necesario normalizar las variables que componen el dataset. La variable edad se normaliza usando rangos de edad. Para cada rango de edad se da un valor entre 1 y el número de rangos. Para el género se da el valor 0 para representar el femenino y 1 para el masculino. Por último, la variable pais se normaliza utilizando otro dataset. Este dataset contiene entre otra información el indice de alfabetismo, y la renta media de la población. Con esta información se calcula un valor para cada país. Una vez formalizados los datos, se aplican dos técnicas de clustering y una de etiquetado de clustering. Por un lado, se aplica el algoritmo de k-means y se estudia cual es el mejor número de clusters a través del índice de Davies-Bouldin que mide la compactación de los clusters [17]. Posteriormente, se aplica el etiquetado FCA para poder visualizar las características de cada uno de los clusters generados. Para visualizar los clusters generados se utiliza una gráfica de puntos donde cada punto representa a un individuo y cada color representa al cluster al que pertenece dicho individuo. Tal como se muestra en la Figura 20. Figura 20 k-means demográficos
42 De igual manera gracias al etiquetado FCA se puede ilustrar la caracterización de los cluster generados tal y como se muestra en la Figura 21. Figura 21 Etiquetado de los clusters mediante FCA Paralelamente se aplica el algoritmo jerárquico aglomerativo con distintas estrategias que minimizan o maximizan ciertos aspectos y obteniendo así distintos resultados. Para cada una de estas estrategias también se ha estudiado la calidad de los clusters a través del índice de DaviesBouldin. También se ilustran los clusters detectados a través del algoritmo jerárquico aglomerativo por medio de un dendrograma tal y como aparece en la Figura 22. Figura 22 Jerárquico aglomerativo demográficos
49 detectadas. Antes de exponer el proceso y técnicas de desarrollo utilizadas, es importante destacar las funcionalidades principales que ofrece la interfaz web: 1. Interfaz para la visualización de las similitudes entre las obras de arte: Esta funcionalidad tiene por objetivo ilustrar la comparación de cuadros bajo ciertos criterios. En concreto, se permite seleccionar una obra de arte y un peso para cada una de las similitudes parciales. Tras seleccionar el cuadro y determinar un peso concreto para cada similitud parcial, se muestran los cinco cuadros más similares. Esta herramienta permite ver la influencia de los pesos a la hora de decidir cuáles son los cuadros más similares a otro dado. 2. Interfaz para la visualización de comunidades usuarios: esta funcionalidad permite al usuario visualizar la información referente a las comunidades de usuarios detectadas. Para poder visualizar las comunidades de usuarios es necesario generarlas previamente. Esta tarea se lleva a cabo en el backend de la aplicación. Para generar comunidades de usuarios, previamente hay que definir unos pesos para las similitudes parciales entre cuadros. Tras definir unos pesos concretos, es necesario crear una matriz de distancias entre cuadros. Una vez generada la matriz de distancia entre cuadros, esta se utiliza para concretar la similitud entre usuarios. Una vez concretada la medida de similitud entre usuarios se usan diferentes algoritmos de detección de comunidades para la generación de comunidades de usuarios. Este proceso es muy costoso en cuanto al tiempo que necesita. Por esta razón las comunidades que se visualizan en la aplicación están generadas previamente. Estas comunidades fueron generadas tras fijar ciertos criterios en la elección de pesos, tal como se explica en el capítulo 3.2.2.5. En concreto, la interfaz solicitará al backend los datos referentes a la información de las comunidades detectadas. Como ya se adelantó al comienzo de la sección, para el desarrollo del frontend se utiliza un patrón de desarrollo web. Este hace uso de tres lenguajes de programación: HTML, hojas de estilo CSS y JavaScript. De igual manera se han utilizado librerías externas que proporcionan herramientas tanto para la comunicación con el servicio REST como para la visualización de los
50 elementos de la interfaz. En concreto se utilizan las librerías: Bootstrap (CSS y JavaScript), JQuery, Morris y Raphael (JavaScript). A continuación, se explican los rasgos más destacables de la implementación para las distintas opciones de visualización que se ofrecen: 1. Portada de la aplicación: el inicio de la aplicación cuenta con una interfaz en la permite al usuario elegir por medio de dos botones los dos servicios principales que ofrece la aplicación. Uno redirige al usuario a la interfaz para la visualización de las similitudes entre las obras de arte y el otro a interfaz para la visualización de comunidades usuarios respectivamente. Figura 26 Portada de la aplicación web Tal y como se muestra en la Figura 26, la interfaz hace uso de diferentes hojas de estilo para proporcionar una vista más agradable para el usuario. 2. Visionado de comunidades: esta interfaz del frontend permite al usuario visualizar de las distintas comunidades detectadas. En concreto, esta interfaz está dividida en tres grandes secciones. Por un lado, permite al usuario seleccionar uno de los resultados generados en el backend previamente. Cada uno de estos resultados han sido generados
51 con unos pesos distintos para las similitudes parciales entre cuadros. Para recuperar esta información es necesario que la interfaz haga uso del servicio REST. Particularmente el servicio que tiene como endpoint “/artworks/similarity/clustersHTML” y que devuelve un JSON que contiene la información de cada uno de los resultados generados. Por otro lado, muestra al usuario la información correspondiente al resultado seleccionado. Esta información está compuesta por el algoritmo utilizado para la generación de comunidades, los valores de los parámetros de ese algoritmo, una descripción del tipo de comunidades generadas y los pesos de cada una de las similitudes parciales entre cuadros tal y como se muestra en la Figura 27. Esta información permite al usuario conocer las características del método utilizado para la generación de las comunidades. Por último, la interfaz de visualización de comunidades permite al usuario explorar la información detallada de cada uno de los clusters. Para representar esta información se han caracterizado cada uno de los clusters de la siguiente manera: En un primer lugar se encuentra el número de individuos que componen el cluster así como un histograma por cada variable demográfica (edad, nacionalidad y género) como se muestra en la Figura 28. Figura 27 Interfaz para la visualización de la información de la técnica utilizada en el proceso de generación de comunidades
52 Figura 28 Información de los datos demográficos de un cluster En segundo lugar, se encuentran las obras más y menos populares dentro del cluster. Para cada una de las obras se muestra el título, el número de valoraciones positivas y negativas de los usuarios. Toda esta información reside en un carrusel de imágenes para proporcionar al usuario una vista cómoda de esta información como se ilustra en la Figura 29. Figura 29 Obras de arte más y menos populares dentro del cluster En tercer y último lugar, se visualizan los artistas valorados positiva y negativamente, movimiento artístico más gustado y los sentimientos más comunes dentro del cluster. Para representar la frecuencia de los sentimientos de los usuarios del cluster se utiliza un diagrama circular en el que cada color representa un sentimiento como se observa en la Figura 30.
53 Figura 30 Artistas mejor y peor valorados, movimiento artístico más gustado y emociones más comunes de un cluster 3. Visionado de similitud entre cuadros: esta interfaz permite al usuario seleccionar una obra de arte, unos pesos para las similitudes parciales y muestra los cinco cuadros más similares al elegido por el usuario utilizando los pesos introducidos por el usuario. Esta interfaz esta divida claramente en tres secciones tal y como se muestra en la Figura 31. En la primera sección el usuario puede seleccionar un cuadro del conjunto de obras de arte proporcionado por los directores. De igual manera, se muestra el título, autor y movimiento artístico del cuadro. Permitiendo de esta manera ver las características principales de la obra de arte seleccionada. Para poder mostrar esta información la interfaz usa el servicio REST con endpoint “/artworks” que retorna un JSON con la información de los cuadros. En la segunda sección, el usuario puede introducir el peso para cada una de las similitudes parciales entre cuadros. Estas a su vez deben sumar uno. En la última sección, aparecen los cuadros más parecidos al seleccionado por el usuario generados con los pesos introducidos. Estos cuadros se muestran tras pulsar el botón “Genera similares”. Cuando este es pulsado la interfaz hace uso del servicio REST con endpoint “/artworks/similarity/artworkID” pasándole la información introducida por el usuario. Es decir, el cuadro y los pesos seleccionados. Como respuesta se obtiene un JSON con los cinco cuadros más similares. Además de mostrar las imágenes correspondientes a las cinco obras más similares, también muestra el título, autor, movimiento artístico e índice de similitud. Todos estos elementos residen en un carrusel de imágenes facilitando así la visualización.
54 Figura 31 Visualización de la interfaz generadora de cuadros similares 4.3 Tecnologías y recursos externos utilizados A la hora de desarrollar el código del proyecto tuvimos que hacer uso de diversas herramientas. En ocasiones las habíamos usado antes y conocíamos detalladamente como hacer uso de ellas, en otros casos tuvimos que estudiarlas y aprender a utilizarlas. Al ser un proyecto grupal, se han usado diversos medios para la coordinación y comunicación. Estas herramientas han sido fundamentales para el buen desarrollo del proyecto. Ya que nos han permitido una comunicación directa y fácil entre los integrantes y un control sobre las versiones durante la etapa de implementación. A continuación, enumeraremos las herramientas más destacables usadas para el desarrollo y la coordinación. 4.3.1 Desarrollo Con respecto al apartado técnico es donde principalmente nos encontramos con nuevas tecnologías, lo cual nos ha supuesto un reto más en la implementación de nuestro proyecto, ya que no sólo nos limitamos a analizar y desarrollar lo relativo a las comunidades, sino también influye el proceso de adaptación que conlleva utilizar herramientas desconocidas.
55 4.3.1.1 Python Ha sido el lenguaje principal del proyecto, predominante tanto en la fase de modelado como en el desarrollo de la aplicación servidor (api-rest) con la que trabaja la interfaz. Presente desde los primeros notebooks que desarrollamos hasta el grueso de los scripts de la lógica de modelado de comunidades, Python ofrece una gran versatilidad a la hora de trabajar con datos, así como una gran comodidad para usuarios más novatos. Además, Python ofrece multitud de librerías que nos han sido de gran utilidad a la hora de implementar el proyecto. 4.3.1.2 Numpy Numpy es la librería de manejo de estructuras numéricas por excelencia de Python. Ofrece un gran soporte a la hora de tratar con vectores y matrices, así como una cómoda e intuitiva interfaz para manejarlos. Numpy ofrece además una gran cantidad de métodos para obtener información o modificar este tipo de estructuras de forma limpia y eficiente. 4.3.1.3 Pandas Pandas es una librería para la manipulación y análisis de datos en Python. Su principal estructura, los DataFrame, permiten cargar, estudiar, recorrer y modificar los datos de forma rápida y sencilla. 4.3.1.4 Scikit-Learn Scikit-Learn es una librería para Python de software libre que ofrece una rica selección de utilidades relacionadas con el aprendizaje automático. Muchos de sus métodos de clustering, de preprocesamiento o evaluación han sido utilizados a la hora de formar y evaluar las comunidades. 4.3.1.5 SPARQLWrapper Una librería Python que ofrece la posibilidad de realizar consultas SPARQL sobre diferentes motores de búsqueda. De gran utilidad a la hora de recuperar información en Wikidata acerca de las distintas obras. 4.3.1.6 Filecache FileCache es una librería Python que ofrece una cómoda interfaz para guardar información en memoria de manera consistente. El objeto FileCache se maneja igual que un diccionario, con
56 la salvedad de que la información va siendo salvada en la carpeta con la que se instancia. Muy a la hora de salvar el resultado de las consultas SPARQL (muy costosas en tiempo) o para evitar ejecutar cálculos costosos en exceso. 4.3.1.7 Colorsys Es una librería de Python que permite la conversión entre modelos de color. Su uso se limita a convertir las coordenadas de una expresión a otra (por ejemplo: Conversión de RGB a HSV pasando por parámetro los valores de Red, Green y Blue). 4.3.1.8 Sanic Sanic es un framework asíncrono enfocado a las tecnologías web y servidor. Está hecho para ser el intermedio perfecto entre complejidad de uso y gran amplitud de posibilidades a desarrollar en funcionalidad. La elección de este framework para representar nuestro trabajo de manera visual, en conjunción de la funcionalidad web que creamos con Sanic y el apartado gráfico que le dan las tecnologías que comentamos en el apartado siguiente (4.3.1.9), se ha visto afectada por el beneficio que ofrece la escalabilidad y velocidad de esta opción. 4.3.1.9 HTML, CSS y JavaScript HTML, CSS y JavaScript componen los tres lenguajes de programación web más usados en la actualidad. HTML es un lenguaje basado en etiquetas y estaría en la parte más alta conceptualmente. Es principalmente el código de los elementos presentes o no en la interfaz. Para una buena praxis el HTML debe ir acompañado de una o varias hojas de estilo CSS. CSS es un lenguaje de programación que permite de manera sencilla modificar los estilos de los componentes de la interfaz. Cabe destacar el uso de la librería Bootstrap que contiene entre otros ficheros, hojas de estilo encapsuladas en clases. Es muy útil ya que basta con añadir la clase al componente HTML para aplicar ese estilo. Por último, se necesita del uso de JavaScript para poder realizar ciertos procesos. JavaScript es un lenguaje de programación que permite entre otras cosas realizar pequeños procedimientos y la comunicación con servidores. Es importante destacar el uso de la librería JQuery.js para la comunicación con el servidor. Esta librería ofrece un servicio muy cómodo para hacer peticiones al servidor.
57 4.3.1.10 Jupyter notebook Jupyter Notebook es un entorno de desarrollo interactivo basado en web que permite crear documentos de código Python, permitiendo visualizar resultados de distintos bloques de código, así como incluir comentarios de texto en formato Markdown con toda la flexibilidad que este lenguaje ofrece. 4.3.1.11 PyCharm y Visual Studio Code Ambos son entornos de desarrollo que permiten trabajar con Python, que ofrecen una gran flexibilidad y comodidad a la hora de programar, depurar e identificar errores. Visual Studio Code además permite incluir diferentes plugins de utilidad para visualizar todo tipo de archivos de datos, trabajar con notebooks ofreciendo una interfaz limpia y sencilla. 4.3.1.12 Postman En conjunción con el servicio que creamos con Sanic, hemos utilizados Postman para poder enviar y recibir peticiones y así, poder trabajar en base a lo que nos trasmite la herramienta. 4.3.2 Coordinación Al tratarse de un proyecto colaborativo, se han usado diferentes tecnologías que permiten el control de versiones, el desarrollo conjunto de un documento y la comunicación entre los participantes. 4.3.2.1 Github A través de un repositorio en GitHub, pudimos compartir, coordinar y visualizar el progreso del proyecto tanto entre los componentes del equipo como con los directores del TFG. Así además será accesible para cualquiera que quiera acceder a él para consultarlo o para trabajo futuro. 4.3.2.2 Google Meet Es la herramienta de comunicación que más hemos utilizado, tanto para comunicarnos con los directores como para las reuniones semanales de los miembros del equipo. Con las dificultades para mantener reuniones presenciales, ha sido de gran utilidad contar con ella.
58 4.3.2.3 Microsoft Office Word A la hora de redactar la memoria utilizamos Microsoft Word. Se trata de una de las herramientas cómodas y con más funcionalidades en lo que a la escritura de documentos concierne. Además, ofrece la posibilidad de la edición colaborativa y simultánea del documento, por lo que es muy útil evitar tener que estar compartiendo el documento constantemente.
65 To be able to visualize and understand thoroughly similarity measure, we developed an interface that allows us to adjust weights in real time and see a chosen painting’s other most similar ones. This part is explained in chapter 4, both the backend and frontend. Seeking for a method or criteria to define which weights are the most relevant to compare artworks and create communities, either a developing a tool that searches for it or helps us with relevant information that could help us deciding. Once we established the similarities between paintings, we applied them to find users that rated the same way these artworks. Finally, we represent visually the most relevant data of these user’s communities.
67 Capítulo 7 - Conclusions and future work In this section we culminate by recapitulating around ideas and processes that have been appearing to us throughout the entire project, so that we can translate it into a general thought. Afterwards, we will comment on proposals we have in order to maintain and expand our work, in case we take it up again. 7.1 Conclusions This work allowed us creating a mechanism capable to detect and visualize user’s communities, experimenting and observing the existent relationship when defining a similarity metric, in this case, between users and its effect detecting communities. We proved that prioritizing art tastes is so useful to form groups with similar features, which in combination with the appropriate technologies and tools may have numerous applications as we explain in the next paragraph. At the time we found communities using our study case’s data, we found out that there are noisy communities, with very different individuals or not even included anywhere. This problem may be explained considering the data nature, as the number of users that we worked with is limited and they may have so varied art tastes. It’s important to note the detected relationship between found communities and the user’s similarity metric. In our work, it has been defined this similarity based on people’s artistic opinions. Therefore, an artwork similarity metric has been defined as well. This metric is compound by partial similarities that use some artworks features. Each partial similarity’s weight essential and has direct relationship with detecting various communities. Usage of different clustering techniques has influenced in the results. Although we experimented with different clustering techniques (k-means, hierarchical agglomerative), the nature of our problem has permitted us trying some different techniques. Specially, we used kmedoids and DBSCAN. These allowed checking on the different detected communities. We proved that k-medoids results on heterogeneous clusters, while DBSCAN has got clusters with more similar individuals. This was caused because k-medoids includes each user in a different
68 cluster and DBSCAN not. Thanks to this we could study the nature of each technique, allowing us to use them when needed. The detection tool we developed is highly parametrizable and that offers plenty of possible solutions finding different groups of users. For this reason, both the genetic algorithm and the visualization interface are the best component deciding when weights are the adequate. Focusing on our work, we considered that in general terms we mostly accomplished our objectives. We had the opportunity to work with various clustering techniques, which allowed us to deeply understand their differences. Also, we got familiarized with different work environments and tools, with help us learning. Concerning our development objectives we reached our goals with satisfactory results. 7.2 Future work Considering we reached our principal objectives, it is important to note different growing options and possible variants to enhance our project. Then, we will comment the most relevant tasks to do. Although it has been developed an application that visualizes communities and allows to experiment with different weights for the partial similarities, an important objective is to design and build and application to recommend contents to the users. The user has to ask short questions about artworks so the system can situate him in the most convenient set and recommend him custom contents from a museum. This functionality may be extended allowing the user changing his cluster freely. This functionality also could be extended naturally to offer the possibility to meet users with same art tastes than him to motivate socialization, share opinions and hobbies. On the other hand, would be interesting to improve the way users get classified, considering their profile, having professional and amateur as two examples of this feature. The system will assign specific weights to compare artworks and generate more precise communities. The previous paragraph leads us to the possibility of increasing the number of profiles and precision to create groups, so that would need to also increase the similarity variables to offer the most complete classification system possible.
69 It is necessary that if we want our work to be really useful and scalable, we will need to publish the project on an online server, so that anyone can access to it remotely and explore all the interface and development’s possibilities. This also implies to constantly maintain the backend and frontend, solving bugs, optimizing its performance and improving the interface to make it as accessible and graphically attractive to draw the attention of users. After interviewing an art professional we considered adding more partial similarities between artworks. Using texture, brightness and present techniques would enhance similarities. Finally, be able to determine concrete weights for every partial similarity. Obtain opinions of different groups of people to decide which weights to use to detect communities.
71 BIBLIOGRAFÍA [1] D. E. Holmes, Big Data: una breve introducción, Antoni Bosch editor, 2018. [2] J. B. y. P. V. D.B. Millán, Aprendizaje automático, 2006. [3] H. Chung, Clustering, Dimensionality reduction and Side Information, 2006. [4] T. Pang-Ning, M. Steinbach, A. Karpatne y V. Kumar, Introduction to Data Mining, 2006. [5] T. Hastie, R. Tibshirani y F. J.H., The elements of statistical learning : data mining, inference, and prediction, 2001. [6] «K-Medoids scikit-learn-extra,» scikit-learn-extra, [En línea]. Available: https://scikit-learnextra.readthedocs.io/en/latest/modules/cluster.html#k-medoids. [7] «DBSCAN scikit-learn,» scikit-learn, [En línea]. Available: https://scikitlearn.org/stable/modules/clustering.html#dbscan. [8] D. Allemang y J. Hendler, Semantic Web for the Working Ontologist : Effective Modeling in RDFS and OWL, Elsevier Science & Technology, 2011. [9] «W3C Semantic Web Standards,» W3C, [En línea]. Available: https://www.w3.org/standards/semanticweb/data. [Último acceso: Mayo 2021]. [10] «Wikidata:Introduction,» Wikimedia, [En línea]. Available: https://www.wikidata.org/wiki/Wikidata:Introduction. [Último acceso: 23 05 2021]. [11] S. P. Pages, Relación corporal en la obra escultórica, tamaño y proporción como elemento implicado en la percepción tridimensional, Universitat de Barcelona, 2005. [12] L. P. A. y. C. S. Vicente, «LOS VISITANTES DEL MUSEO DEL PRADO: NUEVA METODOLOGÍA DE MEDICIÓN DEL TURISMO CULTURAL,» Estudios Turísticos, nº 168 , pp. 85-98, 2006.
72 [13] D. J. G. Villar, EL ARTISTA, LA PINTURA Y EL ESPECTADOR, Universidad de Granada, 2012. [14] J. L. Muñoz, El Greco y Santa Olalla, 1993. [15] J. L. Porras, Impresionismo. [16] M. Á. G. Villegas, Inferencia estadística, Ediciones Díaz de Santos, 2005-01-01. [17] K. Sharma, Microarray Analysis, Momentum Press, 2015-06-19.
73 APÉNDICES Apéndice A - Reparto del trabajo A lo largo del desarrollo del proyecto, hemos procurado mantener un reparto equitativo de las cargas de trabajo. Para ello hemos concertado reuniones de equipo semanales para planificar y repartir las tareas equilibradamente. Además, hemos intentado que en todo momento cada uno de los miembros del equipo estuviera cómodo con el trabajo que se le asignaba, teniendo en cuenta los campos en los que más soltura y facilidad tenía, con el objetivo de alcanzar la mayor productividad y eficiencia posibles. La primera fase del trabajo consistió principalmente en la documentación acerca del ámbito en el que íbamos a trabajar. Esta fase se realizó de manera conjunta, ya que preferimos que esto fuera un esfuerzo grupal para que todos tuviéramos una visión lo más amplia y clara posible acerca de las técnicas y tecnologías con que íbamos a trabajar. A lo largo de esta fase, preparamos diversas presentaciones acerca de las técnicas de clustering que pudimos poner en común mediante reuniones telemáticas para discutir sobre ellas y resolver posibles dudas. En cuanto al proceso de estudio de datos, modelado de comunidades, desarrollo de las interfaces web y toda la fase de implementación que conllevó, sí realizamos una división más clara de las cargas de trabajo, como detallaremos a continuación. Vadym Batsula Bilenka En lo referido a la lógica de modelado de comunidades e implementación del trabajo participó en partes de ambas fases, en paralelo con la investigación y aprendizaje del lenguaje de programación que se utiliza y al aprendizaje automático. Respecto a la fase de modelado, aportó la parte que establece la similitud entre cuadros en base a los colores que este contiene, analizando cuál es la mejor manera y más precisa de realizar esto, y concluyendo finalmente en la decisión de utilizar el modelo de color HSV y la técnica de clustering k-means.
74 Se encargó a implementar de manera completa el servidor de microservicios que comunica la implementación del modelado de comunidades con el frontend que representa la información obtenida. Esto conllevó el análisis de los diferentes frameworks que permiten la cómoda realización de esta tarea, para seleccionar el que más se ajustara a nuestras necesidades. La elección terminó siendo Sanic, que le siguió el aprendizaje conveniente para la correcta utilización de esta herramienta. Implementó los servicios necesarios para recibir los datos que vienen de la lógica de modelado para tratarlos, si es necesario, y enviarlos posteriormente a la parte que se ocupa de hacer visible nuestro trabajo, el frontend, satisfaciendo sus necesidades a la hora de formatear la salida de los servicios para que éste, pudiera realizar su tarea de manera cómoda y eficaz. En cuanto a la aportación en la memoria, se encargó a todas las transcripciones al inglés íntegras. Los apartados que precisan esta tarea son: resumen, introducción y sus subsecciones motivación, objetivos y plan de trabajo, así como las conclusiones y los planes de trabajo futuro. Contribuyó en pequeñas aportaciones al Capítulo 1 (Introducción) y a las tecnologías de desarrollo del Capítulo 4 (Implementación). En el Capítulo 2 (Estado de la cuestión) realizó la recopilación y explicación de todas las tecnologías de aprendizaje automático, tanto las que se utilizan en este trabajo, como las que no. También es autor de la Similitud por color dominante en el Capítulo 3 y de la sección Servicios REST del Capítulo 4. Finalmente, escribió, dentro del Capítulo 5 (Conclusiones y trabajo futuro), la introducción al mismo y el apartado 2, que se refiere a los planes de trabajo futuro. Marcos Rafael Núñez En lo referente al desarrollo de la aplicación contribuyo tanto en la lógica del modelado, como en el frontend de la aplicación. Su participación ha estado presente en todas las fases de proyecto. Durante el desarrollo de la lógica del modelado investigó distintitas formas posibles para comparar dos cuadros. Desarrolló íntegramente las similitudes parciales por tamaño del cuadro, así como la similitud parcial basada en el error cuadrático medio por píxel. De igual manera, investigó, decidió e implementó la forma de utilizar los gustos de los usuarios por los cuadros para