Document Details

Itan

Uploaded by Itan

Universidad Internacional de La Rioja

Tags

artificial intelligence recommendation systems filtration techniques computer science

Full Transcript

Tema 8 Técnicas de Inteligencia Artificial Sistemas de recomendación Índice Esquema 3...

Tema 8 Técnicas de Inteligencia Artificial Sistemas de recomendación Índice Esquema 3 Ideas clave 4 8.1. ¿Cómo estudiar este tema? 4 8.2. Introducción. Tipos de recomendadores y aplicaciones 4 8.3. Recomendación colaborativa. Filtrado colaborativo basado en usuarios. Filtrado colaborativo basado en ítems 9 8.4. Recomendación basada en contenido. Representación del contenido y similitud entre © Universidad Internacional de La Rioja (UNIR) elementos 15 8.5. Sistemas de recomendación híbridos 19 8.6. Ejemplos de implementación 22 8.7. Referencias 42 A fondo 46 Test 49 Esquema © Universidad Internacional de La Rioja (UNIR) Técnicas de Inteligencia Artificial 3 Tema 8. Esquema Ideas clave 8.1. ¿Cómo estudiar este tema? Para estudiar este tema deberás leer las Ideas clave que se presentan a continuación. Puedes completar el estudio visualizando la lección magistral, revisando referencias y bibliografía, así como accediendo a los recursos adicionales que se facilitan. Al finalizar el estudio de este tema serás capaz de:  Describir los tres tipos de sistemas de recomendación más significativos: basados en filtrado colaborativo, basados en contenido e híbridos.  Aplicar técnicas de filtrado e híbridas para la resolución de problemas de recomendación.  Identificar aplicaciones prácticas de recomendadores. 8.2. Introducción. Tipos de recomendadores y aplicaciones La gran cantidad de contenidos disponibles en Internet en la actualidad supone que los usuarios se encuentren frecuentemente en situaciones en las que han de elegir entre un gran número de opciones y llegan a sentirse abrumados o perdidos. Por lo tanto, cualquier técnica que permita clasificar, ordenar o filtrar la información © Universidad Internacional de La Rioja (UNIR) disponible es de gran interés en la actualidad. Estas técnicas se basan, por ejemplo, en modelar contenidos, así como preferencias y comportamientos de usuarios, creando estereotipos, y filtrando la información en función de los estereotipos (Alharthi et al., 2018; Bobadilla et al., 2013; Joshi, 2020; Kunaver y Požrl, 2017). Técnicas de Inteligencia Artificial 4 Tema 8. Ideas clave Montaner et al. (2003) describen los principales componentes y procesos de los sistemas recomendadores como los siguientes (ver también Figura 1): Representación del perfil Filtrado demográfico (recomendación demográfica) Recomendación de Filtrado colaborativo (recomendación productos o acciones colaborativa) Filtrado basado en contenidos (recomendación basada en contenido) Figura 1. Principales componentes y procesos de los sistemas recomendadores según Montaner et al. (2003). Cuando un usuario interactúa con el navegador, si se captura la información adecuada (por ejemplo, un historial de compras o de navegación) y se interpreta correctamente, se puede conseguir un gran éxito en las recomendaciones, ya que a partir de esta información se pueden deducir preferencias, gustos, hábitos y comportamientos de los usuarios. Habrá que utilizar, por tanto, técnicas para generar inicialmente los perfiles de los usuarios, y posteriormente actualizarlos y mantenerlos.  Recomendación de productos o acciones a los usuarios mediante una técnica de filtrado que definirá el tipo de recomendación: © Universidad Internacional de La Rioja (UNIR) Filtrado demográfico (recomendación demográfica): utiliza descripciones de personas para aprender la relación entre un ítem de información y el tipo de personas que les gusta ese ítem. Este tipo de técnicas requieren recopilación de datos personales sobre el usuario para clasificarlo demográficamente en un estereotipo. Técnicas de Inteligencia Artificial 5 Tema 8. Ideas clave Filtrado colaborativo (recomendación colaborativa): realiza recomendaciones usualmente en base a la retroalimentación o el feedback que los conjuntos de usuarios dan explícitamente sobre un ítem. También se pueden basar en información capturada implícitamente como, por ejemplo, el historial de compras de los usuarios. Filtrado basado en contenidos (recomendación basada en contenido): utiliza metainformación de los contenidos de los ítems para aprender la relación entre un usuario y esa metainformación. Filtrado basado en el conocimiento (KBF – Knowledge-Based Filtering): utiliza el conocimiento que se tiene sobre los usuarios (y sus preferencias) y los ítems para determinar qué elementos cumplen con los requisitos de los usuarios y generar recomendaciones en consecuencia. Existen tipos especiales de KBF, como aquellos basados en restricciones para recomendar elementos complejos que rara vez se compran (por ejemplo, una vivienda y un vehículo) y tienen en cuenta restricciones importantes para el usuario, como podría ser el precio (normalmente disponen de pocos datos de interacción entre el sistema y el usuario) (Çano & Morisio, 2017). Filtrado basado en la utilidad: al igual que los sistemas KBF, este tipo de filtrado no trata de generalizar a largo plazo las recomendaciones sobre sus usuarios, sino basar estas en una evaluación de la correspondencia entre las necesidades del usuario y el conjunto de ítems disponibles. Los recomendadores basados en la utilidad hacen sugerencias basadas en un cálculo de la utilidad de cada ítem para el usuario (Burke, 2002). © Universidad Internacional de La Rioja (UNIR) Por lo tanto, se ha de escoger una técnica de filtrado y una técnica de emparejamiento, bien entre estereotipo y contenidos (filtrado demográfico), bien entre el perfil de usuario y el contenido (filtrado basado en contenido), bien entre perfiles de usuarios (filtrado colaborativo) o bien mediante filtrado basado en el conocimiento. No obstante, existen también soluciones en las que se combinan Técnicas de Inteligencia Artificial 6 Tema 8. Ideas clave varias técnicas (sistemas híbridos), para así intentar extraer el máximo beneficio de cada una de ellas en diferentes pasos del proceso de recomendación (Burke, 2002; Jannach, 2011; Ricci et al., 2011). Para la representación del perfil se pueden utilizar técnicas de inteligencia artificial estudiadas en la asignatura, tales como árboles de decisión, reglas inducidas, redes neuronales o redes bayesianas (Lops et al., 2011; Najafabadi et al., 2019). Las reglas de asociación, por ejemplo, tal y como se comentó en el tema correspondiente, se utilizan precisamente en estos sistemas para la recomendación de productos a partir de otros productos que se han adquirido. En aplicaciones de comercio electrónico se suele utilizar un historial de las compras y las valoraciones que los usuarios dan sobre los productos comprados para generar reglas de asociación. Este tipo de información es también utilizada cuando se utilizan técnicas de filtrado. Algunos sistemas mantienen matrices de valoraciones usuario- ítem como representación del perfil, como típicamente hacen los sistemas de filtrado colaborativo (Kunaver & Požrl, 2017). Además, los sistemas recomendadores utilizan a veces técnicas de clustering para generar grupos y agregar el perfil del usuario que se está analizando a un © Universidad Internacional de La Rioja (UNIR) determinado clúster de perfiles similares (Singh & Solanki, 2019). Inicialmente, a la hora de generar los perfiles, algunos sistemas simplemente los generan vacíos y, según el usuario interacciona, los van completando; mientras que otros sistemas, en base a la información disponible del usuario (por ejemplo, la información Técnicas de Inteligencia Artificial 7 Tema 8. Ideas clave que el usuario aporta al darse de alta en un sistema), tratan de clasificarlo en un determinado estereotipo (como típicamente realizan los sistemas de filtrado demográfico). Dado que los intereses de los usuarios cambian y, según trascurre el tiempo e interactúan con los sistemas, se puede conseguir más información de los mismos, por lo que se han de actualizar los perfiles. Algunos de estos sistemas solicitan retroalimentación al usuario de manera explícita y suelen dar muy buenos resultados siempre que los usuarios se animen a realizar valoraciones de los productos. Otros sistemas capturan las interacciones de los usuarios y actualizan su perfil en base a estas. El tipo de información que implícitamente se puede obtener de estas interacciones es, por ejemplo, el historial de compras, el historial de navegación, el tiempo que un usuario está en cada página, etc. Hay sistemas que utilizan tanto información explícita como implícita. A la hora de utilizar esta información para tomar decisiones, dado que las últimas interacciones pueden reflejar en mayor medida los intereses del usuario actuales que las interacciones antiguas, hay sistemas que ponderan estas interacciones. El problema de los sistemas de filtrado demográfico es que suelen dar recomendaciones muy generales, no siendo suficientemente personalizadas. Además, no suelen adaptarse a los cambios en los intereses de los usuarios. Previamente a entrar en el detalle de cada tipo de técnica se enumeran algunos ejemplos de aplicación de los sistemas recomendadores:  Comercio electrónico. Amazon es un claro y popular ejemplo de comercio © Universidad Internacional de La Rioja (UNIR) electrónico que recomienda a los usuarios nuevos productos a adquirir. Cuando un usuario visita la página de un producto, Amazon le recomienda productos adquiridos por otros usuarios que han comprado el producto que el usuario está visitando (Linden et al., 2003). Técnicas de Inteligencia Artificial 8 Tema 8. Ideas clave  Webs de libros, música o vídeos: recomiendan a los usuarios música o vídeos en base a la similitud con contenidos ya visitados o en base a la similitud con otros usuarios que comparten gustos musicales (Alharthi et al., 2018; Augstein et al., 2019; Sánchez-Corcuera et al., 2020; Singhal et al., 2017).  Noticias: sistemas que recomiendan noticias de interés a un usuario en base a sus intereses, historial de noticias previamente visitadas, etc., (Karimi et al., 2018). Por otro lado, tal y como se adelantó en párrafos anteriores, los sistemas de recomendación hacen uso de diferentes técnicas de inteligencia artificial, como pueden ser los árboles de decisión (Linda & Bharadwaj, 2018), las reglas (Osadchiy et al., 2019; Yao et al., 2019), el clústering (Singh & Solanki, 2019), redes neuronales y deep learning (Mu, 2018) u otras técnicas de minería de datos (Najafabadi et al., 2019). En la actualidad, el gran auge de las redes sociales y de los sistemas colaborativos en red hace que los datos de conectividad entre usuarios resulten una base verdaderamente útil para llevar a cabo un eficaz filtrado de contenidos y mejora de la adaptabilidad de estos al usuario (Campana y Delmastro, 2017; Eirinaki et al., 2018). 8.3. Recomendación colaborativa. Filtrado colaborativo basado en usuarios. Filtrado colaborativo basado en ítems © Universidad Internacional de La Rioja (UNIR) Los sistemas de recomendación colaborativa recomiendan los ítems a un usuario basándose en las preferencias o historial de otros usuarios. Técnicas de Inteligencia Artificial 9 Tema 8. Ideas clave Estos sistemas utilizan técnicas de filtrado colaborativo y se pueden distinguir diversos tipos de técnicas como, por ejemplo:  Filtrado colaborativo basados en usuarios: estiman la valoración que un usuario daría a un determinado contenido para decidir su recomendación. La similitud entre usuarios la miden en base a las valoraciones de los ítems realizadas previamente, y las puntuaciones de ítems no visitados por un usuario se predicen en función de la valoración que otros usuarios, con un alto grado de similitud al usuario en cuestión, han otorgado al citado contenido.  Filtrado colaborativo basado en ítems: calculan la similitud entre ítems. Estos ítems son descritos en base a datos de los usuarios, por ejemplo, las valoraciones dadas por los diferentes usuarios al ítem, o las adquisiciones realizadas o no realizadas por los distintos usuarios. Por eso, sigue considerándose recomendación del tipo colaborativa. Al usuario se le recomiendan los ítems más similares a un ítem adquirido o a un ítem que se está visitando. De acuerdo a Montaner et al. (2003), se suelen aplicar las siguientes medidas para calcular la similitud entre usuarios, también utilizadas para medir similitud entre ítems:  Similitud coseno (Cosine similarity): mide la similitud entre dos vectores, calculando el coseno del ángulo entre ambos. Si vale 1, ambos vectores son similares totalmente y, si vale 0, son totalmente distintos. El vector estará formado de elementos del perfil del usuario o atributos del ítem.  Medidas de correlación: por ejemplo, los coeficientes de correlación de Pearson o de Spearman se pueden utilizar para comparar usuarios a partir de sus © Universidad Internacional de La Rioja (UNIR) valoraciones numéricas. Para llevar a cabo una recomendación de los contenidos a cada usuario es importante conocer en todo momento la valoración que este daría a cada contenido. En algunas ocasiones dicha valoración puede estar disponible en los datos almacenados en el Técnicas de Inteligencia Artificial 10 Tema 8. Ideas clave sistema, pero en otros casos se ha de predecir dicha valoración teniendo en cuenta el comportamiento del resto de los usuarios del sistema. Uno de los algoritmos de predicción más empleado y muy simple en los sistemas de Filtrado Colaborativo basado en usuario es Slope One. Dicho algoritmo cuenta con una formulación matemática muy sencilla, pero a la vez muy eficiente, tal y como lo definen Lemire et al. (2005). La idea que subyace de la aplicación de este algoritmo, en su versión más simple, es que dadas las valoraciones de dos ítems correspondientes al usuario A y la valoración de uno de estos ítems por parte del usuario B se pueda predecir la valoración correspondiente al ítem que falta de valorar por parte del usuario B. Este ejemplo se puede escalar a un mayor número de usuarios y existen distintas versiones del algoritmo para perfeccionar los resultados (como pueden ser Weighted Slope One y Bi-polar Slope One). Con un ejemplo muy sencillo se ilustra el algoritmo Slope One. Este ejemplo se basa en el expuesto por los creadores del algoritmo (Lemire et al, 2005). El algoritmo Slope One se basa en la siguiente función de predicción de la valoración de un ítem: Siendo b la diferencia media de valoraciones entre ítems. © Universidad Internacional de La Rioja (UNIR) Tabla 1. Valoraciones de cuatro usuarios para los dos artículos del ejemplo del algoritmo Slope One. Técnicas de Inteligencia Artificial 11 Tema 8. Ideas clave Se tiene un comercio en línea en el que los ítems reciben una valoración unidimensional, tal y como se muestra en la Tabla 1. El usuario María no ha adquirido el ítem 2 y el sistema recomendador ha de decidir si recomendar ese ítem a María o no. Como sí existe la valoración de María al ítem 1, para predecir su valoración desconocida al ítem 2, el sistema se va a basar en la diferencia media entre la valoración dada al ítem 2 y la valoración dada al ítem 1 por otros usuarios. Esta media es 3 luego el sistema predice que María valorará el ítem 2 con un 7/10. El algoritmo Weighted Slope One, como su propio nombre indica, utiliza pesos para tener en cuenta el hecho de que la información que se obtiene a partir de aquellos ítems que han recibido más valoraciones es más fiable. El algoritmo Slope One se basa en tener valoraciones sobre los ítems. Si no se tienen estas valoraciones se puede tener en cuenta otra información como, por ejemplo, si un ítem ha sido adquirido o no. Por tanto, la información sobre cada ítem en este caso es binaria. Se describe por ejemplo el algoritmo de filtrado colaborativo ítem- a-ítem utilizado por Amazon (Linden et al., 2003), que se puede considerar filtrado colaborativo basado en ítem. El algoritmo de filtrado colaborativo ítem-a-ítem se centra en encontrar ítems similares y, para ello, construye una tabla de ítems similares que incluye ítems que los usuarios tienden a comprar conjuntamente. La similitud la calcula con la medida de similitud coseno y la tabla se crea en base al algoritmo mostrado en la Figura 2. Para cada ítem I1 Para cada cliente C que compró I1 Por cada ítem I2 comprado por el cliente C Registra que el cliente C compró I1 e I2 © Universidad Internacional de La Rioja (UNIR) Por cada ítem I2 Calcula la similitud entre I1 e I2 Figura 2. Algoritmo de filtrado colaborativo ítem-a-ítem Técnicas de Inteligencia Artificial 12 Tema 8. Ideas clave Por ejemplo, en la Tabla 2 se muestra una tabla con los datos de compras de 3 usuarios para 3 ítems. Un valor 0 significa que el producto no ha sido adquirido y un valor 1 significa que sí ha sido adquirido. Tabla 2. Compras realizadas de los tres artículos por parte de los tres usuarios del ejemplo del algoritmo filtrado colaborativo basado en ítem. La medida de similitud del coseno tiene la siguiente expresión: Por tanto, para el ejemplo de la tabla 2, la similitud entre cada dos ítems en función de las compras realizadas por los diferentes usuarios de esos ítems se calcula como: © Universidad Internacional de La Rioja (UNIR) Técnicas de Inteligencia Artificial 13 Tema 8. Ideas clave En la Tabla 3 se muestra la matriz de similitud resultante. Por lo tanto, un usuario que visita la página del ítem 1, recibirá una recomendación del ítem 3, que es el más similar según la matriz de similitud. Un usuario que visite el ítem 2, recibirá una recomendación del ítem 3. Por último, un usuario que visite el ítem 3, recibirá una recomendación del ítem 1. Los ítems 1 y 2 guardan relación con el ítem 3, pero no entre sí. Es decir, o no guardan relación entre sí o son mutuamente excluyentes (si un usuario ha comprado un ítem 1 no comprará el ítem 2, y viceversa). Los sistemas de filtrado colaborativo basados en usuario presentan el problema de que puede haber ítems sin tener valoraciones, con lo cual no se tiene información a priori para recomendarlos. Para resolver este problema se podría combinar técnicas de filtrado colaborativo basado en usuario y basado en ítem. Se podría utilizar alguna técnica de recomendación basada en ítem hasta que el ítem es valorado por el necesario número de usuarios. Por otra parte, en aquellos sistemas con gran oferta de contenidos puede suceder que cada contenido presente pocas valoraciones y, por tanto, este tipo de sistemas en general requieren de un gran número de usuarios para © Universidad Internacional de La Rioja (UNIR) dar buenos resultados. Técnicas de Inteligencia Artificial 14 Tema 8. Ideas clave 8.4. Recomendación basada en contenido. Representación del contenido y similitud entre elementos Los sistemas de recomendación basada en contenidos recomiendan a los usuarios ítems que son similares a otros ítems que al usuario le han gustado previamente. Muchos de estos sistemas recomiendan ítems que contienen cierta información textual estructurada acompañando a los contenidos (metainformación o metadatos). Esto permite que, por ejemplo, si se conoce que a un usuario le gusta la música rock y que escucha muchos grupos de los años 70, se le podrán recomendar ítems del mismo estilo musical, de un grupo que el usuario ya ha escuchado previamente o de grupos de rock de los años 70, etc. Estos sistemas pueden utilizar tanto un perfil de preferencias explícitamente expuestas por el usuario (si existe), como la historia de contenidos visitados o las valoraciones a los contenidos explícitamente aportadas por el usuario. Los recomendadores basados en contenido proporcionan recomendaciones comparando representaciones que describen a un ítem con representaciones de contenido que al usuario le gusta. Se pueden distinguir tres componentes principales en los recomendadores de contenidos (Lops et al., 2011): © Universidad Internacional de La Rioja (UNIR) Técnicas de Inteligencia Artificial 15 Tema 8. Ideas clave Analizador de contenido Perfil del alumno Filtrado Recopila datos de las preferencias del usuario y generaliza para construir el Es necesario si los perfil del usuario. Sugiere ítems al usuario contenidos no están Habitualmente se utilizan comparando su perfil con acompañados de técnicas de aprendizaje las representaciones de los metadatos o información automático para realizar contenidos. estructurada. esa generalización y clasificar al usuario en un determinado perfil. Como se ha comentado, los ítems o contenidos requieren ir acompañados de metadatos o alguna información estructurada que los describa y clasifique para poder ser recomendados. Sucede en muchas ocasiones que esta información es extraída mediante un analizador de contenidos y no tiene un formato bien definido o estructurado (atributos con valores bien definidos) (Lops et al., 2011). Para estructurar esta información, muchos sistemas de recomendación representan el contenido mediante vectores de n dimensiones donde cada dimensión corresponde a un término del vocabulario empleado para describir los contenidos. Los contenidos se pueden representar con un vector de pesos, donde cada peso indica el grado de asociación entre el contenido y el término. Esto es una representación basada en el espacio de vectores (VSM – Vector Space Model). En estos casos se requiere entonces ponderar términos y medir la similitud entre los vectores. Un modelo muy utilizado en la recomendación de documentos es la ponderación TF-IDF (Term Frequency-Inverse Document Frequency). © Universidad Internacional de La Rioja (UNIR) El modelo TF-IDF establece que aquellos términos que ocurren frecuentemente en un documento pero que ocurren rara vez en otros documentos, serán más relevantes en el tema del documento en concreto. Técnicas de Inteligencia Artificial 16 Tema 8. Ideas clave La función TF-IDF que determina los pesos respecto a cada término tk de un documento dj siguiendo este método es la siguiente (Lops et al., 2011; Pazzani y Billsus, 2007): Siendo N el total de documentos y nk, el número de documentos de la colección en el que el término tk ocurre al menos una vez. Esto implica que los términos raros no sean menos relevantes que los frecuentes. La función TF (term frequency) se calcula como el cociente entre la frecuencia en que el término tk aparece en el documento dj y la máxima frecuencia de cualquiera de los términos en ese documento. La multiplicación por el logaritmo pretende que se tenga en cuenta que los términos raros no sean menos relevantes. Por otra parte, para normalizar, y no favorecer a los documentos largos, frente a los cortos, se utiliza la siguiente expresión: Siendo T el conjunto completo de términos. Para medir la similitud entre dos documentos se ha de utilizar una medida de similitud, y dado que el documento se está representando mediante un vector, podrá © Universidad Internacional de La Rioja (UNIR) hacerse uso de alguna de las diversas técnicas existentes para el cálculo de distancia entre vectores. Una de las medidas más utilizadas, y que se utiliza como referencia en este tema, es la similitud del coseno: Técnicas de Inteligencia Artificial 17 Tema 8. Ideas clave En sistemas de recomendación basados en VSM, los perfiles de usuario y los contenidos se representan como vectores de pesos calculados de forma análoga a lo que se ha explicado previamente. Una vez se tiene el vector del usuario esta medida de similitud de coseno puede ser utilizada para predecir el interés de un usuario en un ítem. La recomendación de contenidos se puede tratar como una tarea de clasificación. Con esta aproximación, los atributos de entrada de cada ejemplo corresponden a los metadatos o una representación de un contenido, y la clase corresponde a la valoración de ese contenido por el usuario. El problema de este tipo de sistemas es que basan la recomendación en la similitud de contenidos, con lo cual se está recomendando al usuario ítems similares y el usuario puede ya no estar interesado en ítems precisamente similares. Además, la similitud entre contenidos se basa en metadatos que no suelen contener información sobre aspectos subjetivos de los ítems. Por ejemplo, en un sistema que oferta cursos, si un usuario ha realizado un curso sobre Inteligencia Artificial básica, el sistema le puede ofrecer cursos sobre Inteligencia Artificial avanzada. Podría darse el caso de que los contenidos sugeridos tengan en común la temática con el curso ya realizado. Sin embargo, el primero es © Universidad Internacional de La Rioja (UNIR) un curso muy bien explicado mientras que alguno de los cursos ofertados puede ser complicados de seguir. Este tipo de información subjetiva no se capta en estos sistemas y, por lo tanto, no se puede tener en cuenta. Por ello, existen sistemas recomendadores que utilizan Técnicas de Inteligencia Artificial 18 Tema 8. Ideas clave una combinación de técnicas de filtrado colaborativo y técnicas de filtrado basado en contenidos, también conocidos como sistemas híbridos. En el ejemplo anterior, la información de similitud entre contenidos se podría complementar con información subjetiva extraída de valoraciones de usuarios. Además, si se utiliza información de usuarios similares para hacer recomendaciones, se podrá recomendar contenidos no necesariamente similares. Por otra parte, si un usuario es atípico, no es similar a otros usuarios, o no existe un suficiente número de usuarios en el sistema, la información basada en contenidos permitirá ofrecerle algún tipo de recomendación. De igual forma, si un ítem nuevo no ha sido valorado, los sistemas basados en contenido pueden recomendarlo. Además, este tipo de sistemas puede facilitar explicaciones más sencillas al usuario acerca de los motivos de las recomendaciones proporcionadas, las cuales, como se ha indicado, están basadas en las características de los contenidos. 8.5. Sistemas de recomendación híbridos Tal y como puede intuirse de lo expuesto en las secciones anteriores, los sistemas de recomendación que utilizan filtrados demográficos o colaborativos, así como los basados en contenidos, utilizan estrategias específicas que ayudarán a determinar una recomendación en base, también, a criterios específicos. La intuición o el sentido común indicarían que, para tratar de obtener un sistema más eficaz que tenga en cuenta múltiples criterios, podrían combinarse varias de estas estratégicas, formándose así los sistemas de recomendación híbridos. © Universidad Internacional de La Rioja (UNIR) Los sistemas de recomendación híbridos combinan dos o más estrategias de recomendación para, así, beneficiarse de sus ventajas complementarias (Çano & Morisio, 2017). El objetivo principal de los sistemas de recomendación híbridos es reforzar las ventajas de cada uno de ellos y reducir o eliminar desventajas y limitaciones independientes. Técnicas de Inteligencia Artificial 19 Tema 8. Ideas clave Una primera aproximación es la combinación entre el filtrado colaborativo, para buscar preferencias similares entre los usuarios, y el filtrado basado en contenidos, para así encontrar contenidos similares entre sí (Balabanović & Shoham, 1997). Son múltiples los métodos de hibridación que pueden formarse gracias a la combinación de técnicas. Este tema define los siguientes, basados en la clasificación hecha por Burke (2002):  Ponderados (Weighted): las puntuaciones obtenidas por varias técnicas se combinan para producir una sola recomendación.  Conmutados (Switching): el sistema cambia de técnica de recomendación elegida en función de una serie de criterios definidos en su implementación.  Mixtos (Mixed): se presentan recomendaciones de varios recomendadores diferentes al mismo tiempo.  Combinación de características (Feature combination): se utilizan múltiples salidas de múltiples recomendadores como entradas en un solo algoritmo de recomendación.  En cascada (Cascade): un recomendador refina las recomendaciones que otro ha hecho.  Características aumentadas (Features Augmentation): la salida de una técnica se utiliza como una característica de entrada en otro.  Meta-recomendador (Meta-level): el modelo aprendido por un recomendador se utiliza como entrada en otro. Tal y como se ha indicado anteriormente, el objetivo principal de la hibridación es aliviar algunos de los problemas y limitaciones asociados a la aplicación de las diferentes técnicas de forma autónoma. Los sistemas híbridos de filtrado de contenido o filtrado colaborativo, independientemente del tipo, siempre © Universidad Internacional de La Rioja (UNIR) presentarán la limitación en su escalado, pues ambas técnicas necesitan una base de datos de calificaciones preexistente que, en la mayoría de las ocasiones, requiere tiempo para completarse. Para solventar este problema se utilizan calificaciones ya existentes o deducidas de otros datos. Técnicas de Inteligencia Artificial 20 Tema 8. Ideas clave Por otro lado, las meta-técnicas evitan el problema de la falta de datos coincidentes entre usuarios o ítems (sparsity o escasez) al comprimir las evaluaciones obtenidas de muchos ejemplos en un modelo en el que será más fácil comparar entre los usuarios. Las técnicas basadas en el conocimiento y en la utilidad parecen ser buenas candidatas para la hibridación, ya que no están sujetas a problemas de escalado (Burke, 2002). A la hora de combinar las técnicas debe tenerse en cuenta el orden de aplicación. Existen combinaciones que serán insensibles al orden (ponderados, mixtos, conmutados y combinación de características). El resultado de combinar primero un filtrado colaborativo y después un filtrado basado en contenidos o viceversa sería el mismo. Por otro lado, las combinaciones en cascada de características aumentadas o los meta-recomendadores, sí serán sensibles al orden. Por ejemplo, un híbrido de aumento de características que utilice un recomendador basado en contenido para generar características, que sirvan como entrada a un segundo sistema de recomendación de filtrado colaborativo, sería muy diferente de otro que utilizara la colaboración en primer lugar. Sirva como ejemplo el filtrado de noticias: el resultado de filtrar, en primer lugar, el contenido y después restringir los usuarios a los que se le entrega será diferente del obtenido de filtrar primero a los usuarios y después decidor el contenido a recomendar. Por este motivo, en este sistema deben considerarse todas las permutaciones posibles (Burke, 2002; Çano & Morisio, 2017). Además de estas consideraciones teóricas y prácticas, en la actualidad los sistemas híbridos permiten la combinación de información de diferentes fuentes. Así, la información subjetiva generada en redes sociales puede considerarse como un factor para las recomendaciones, o bien podemos utilizar recomendaciones hechas con diferentes fuentes de datos (por ejemplo, en diferentes redes sociales) para obtener © Universidad Internacional de La Rioja (UNIR) una recomendación «más global». En definitiva, puede comprobarse que el ámbito de aplicación de los sistemas de recomendación se ve ampliamente ensanchado con la combinación de estos, pudiendo mejorar sus resultados si se diseñan de forma adecuada. Técnicas de Inteligencia Artificial 21 Tema 8. Ideas clave 8.6. Ejemplos de implementación En este tema vamos a seguir el ejemplo de Derrick Mwiti (ver Webgrafía al final del tema) para implementar un sistema recomendador en Python usando las librerías pandas, numpy y seaborn, todas ya instaladas en los ejemplos de temas anteriores. Para ello, vamos a partir del dataset de películas MovieLens, disponible en: https://grouplens.org/datasets/movielens/ Como el dataset completo tiene más de 25 millones de ratings de 280,000 usuarios sobre 58,000 películas (más de 250 MB de información comprimida), vamos a utilizar una versión reducida en el mismo portal, denominada Small. Este dataset reducido cuenta con 100,000 ratings y 3,600 tags aplicados a 9,000 películas por parte de 600 usuarios, ocupando solo 1 MB en su versión comprimida y suficiente para nuestros propósitos de prueba. Lo podemos descargar directamente de: http://files.grouplens.org/datasets/movielens/ml-latest-small.zip Una vez descargado, lo descomprimimos, resultando en cuatro datasets diferentes, de los cuales nos quedaremos con dos, con las siguientes columnas cada uno de ellos:  movies.csv: movie_id: identificador de la película (número entero). title: título de la misma con su año. genres: una combinación de géneros, por ejemplo:  Comedy | Romance © Universidad Internacional de La Rioja (UNIR)  ratings.csv: user_id: identificador del usuario (número entero). movie_id: identificador de la película (número entero). rating: puntuación, número real entre 0.0 y 5.0. Técnicas de Inteligencia Artificial 22 Tema 8. Ideas clave timestamp: marca de tiempo del momento en que se realizó el rating (en número de segundos desde 01/01/1970 UTC). Podemos echar un vistazo a los CSV con un editor (como Visual Studio Code) o con Excel. Por ejemplo, el archivo movies.csv contiene una cabecera como la siguiente: Mientras que el archive ratings.csv incluye información como: Carguemos con pandas el contenido de ratings.csv y mostremos la información: © Universidad Internacional de La Rioja (UNIR) Técnicas de Inteligencia Artificial 23 Tema 8. Ideas clave userId movieId rating timestamp 0 1 1 4.0 964982703 1 1 3 4.0 964981247 2 1 6 4.0 964982224 3 1 47 5.0 964983815 4 1 50 5.0 964982931 Nos interesa más el nombre de la película que el identificador, si cargamos los nombres de las películas con el siguiente código y lo mostramos: Dado que ambos datasets coinciden en la columna movieId, podemos unir ambos datasets mediante pd.merge() y veamos el contenido y sus características: © Universidad Internacional de La Rioja (UNIR) Técnicas de Inteligencia Artificial 24 Tema 8. Ideas clave © Universidad Internacional de La Rioja (UNIR) Podemos ver que el rating medio es 3.5, el mínimo 0.5 y el máximo 5.0. Además, contamos con 100,836 entradas o ratings de los usuarios a las películas. Técnicas de Inteligencia Artificial 25 Tema 8. Ideas clave Ahora vamos a crear un dataset con la calificación promedio de cada película y el número de calificaciones. Vamos a usar estas clasificaciones para calcular la correlación entre las películas más adelante. La correlación es una medida estadística que indica el grado en que dos o más variables fluctúan juntas. Las películas que tienen un alto coeficiente de correlación son las películas más similares entre sí. En nuestro caso utilizaremos el coeficiente de correlación de Pearson. Este número estará entre -1 y 1. 1 indica una correlación lineal positiva mientras que -1 indica una correlación negativa. 0 indica que no hay correlación lineal. Por lo tanto, las películas con una correlación cero no son para nada similares. Para crear este dataframe usamos la funcionalidad de pandas groupby(). Agrupamos el conjunto de datos por la columna del título y calculamos su media para obtener la clasificación media de cada película. © Universidad Internacional de La Rioja (UNIR) Técnicas de Inteligencia Artificial 26 Tema 8. Ideas clave Pero, además, queremos ver el número de «audiencias» de cada película. Lo hacemos creando una columna con el número de clasificaciones. Esto es importante para que podamos ver la relación entre la calificación promedio de una película y el número de calificaciones que obtuvo la película. Es muy posible que una película de 5 estrellas haya sido calificada por una sola persona. Por lo tanto, es estadísticamente incorrecto clasificar esa película como una película de 5 estrellas. Por lo tanto, necesitaremos establecer un umbral para el número mínimo de calificaciones mientras construimos el sistema de recomendación. Para crear esta nueva columna utilizamos la utilidad de pandas groupby(). Agrupamos por la columna del título y luego usamos la función de conteo para calcular el número de clasificaciones que cada película obtuvo. Luego vemos el nuevo cuadro de datos usando la función head(). © Universidad Internacional de La Rioja (UNIR) Técnicas de Inteligencia Artificial 27 Tema 8. Ideas clave Ahora vamos a trazar un histograma usando la funcionalidad de trazado de matplotlib y de seaborn para visualizar la distribución de las clasificaciones de las películas, la distribución del número de clasificaciones por película, así como la relación entre la clasificación de una película y el número de calificaciones recibidas usando diagramas de dispersión (con la función jointplot() de seaborn). Podemos ver que la mayoría de las películas están clasificadas entre 2.5 y 4: © Universidad Internacional de La Rioja (UNIR) Técnicas de Inteligencia Artificial 28 Tema 8. Ideas clave Del siguiente histograma se desprende claramente que la mayoría de las películas tienen pocos ratings. Las películas con más audiencia son las más famosas. © Universidad Internacional de La Rioja (UNIR) Comprobemos ahora la relación entre la clasificación de una película y el número de clasificaciones. Técnicas de Inteligencia Artificial 29 Tema 8. Ideas clave En el diagrama podemos ver que hay una relación positiva entre la calificación promedio de una película y el número de calificaciones. El gráfico indica que cuantas más calificaciones obtiene una película, más alta es la calificación promedio que obtiene. Esto es importante, sobre todo cuando se elige el umbral para el número de clasificaciones por película. Ahora vamos a avanzar rápidamente y a crear un sencillo sistema de recomendación basado en ítems. Para ello, necesitamos convertir nuestro conjunto de datos en una matriz con los títulos de las películas como columnas, el identificador de usuario como índice y las clasificaciones como valores. Haciendo esto, obtendremos un dataframe con las columnas como los títulos de la película y las filas como los identificadores de usuario. Cada columna representa © Universidad Internacional de La Rioja (UNIR) todas las clasificaciones de una película por todos los usuarios. La clasificación aparece como NAN cuando un usuario no ha clasificado una determinada película. Usaremos esta matriz para calcular la correlación entre las puntuaciones de una película y el resto de las películas de la matriz. Usamos la utilidad pandas pivot_tabletable() para crear la matriz de películas. Técnicas de Inteligencia Artificial 30 Tema 8. Ideas clave A continuación, veamos las películas más votadas y escojamos dos de ellas para trabajar con este sencillo sistema de recomendación. Usamos la utilidad de pandas © Universidad Internacional de La Rioja (UNIR) sort_values() y establecemos el orden descendente para ordenar las películas más valoradas de mayor a menor. Luego usamos la función head() para ver las 10 más votadas. Técnicas de Inteligencia Artificial 31 Tema 8. Ideas clave Supongamos que un usuario ha visto Air Force One (1997) y Contact (1997). © Universidad Internacional de La Rioja (UNIR) Queremos recomendar películas a este usuario basadas en su historial de visitas. El objetivo es buscar películas similares a Contact (1997) y Air Force One (1997) que recomendaremos a este usuario. Técnicas de Inteligencia Artificial 32 Tema 8. Ideas clave Podemos lograrlo calculando la correlación entre las clasificaciones de estas dos películas y las clasificaciones del resto de las películas del conjunto de datos. El primer paso es crear un dataframe con las clasificaciones de estas películas de nuestra movie_matrix. Así, tendremos los dataframes que muestran el userId y la calificación que le dieron a las dos películas. userId 1 NaN 2 NaN 3 NaN 4 NaN 5 NaN © Universidad Internacional de La Rioja (UNIR) Name: Air Force One (1997), dtype: float64 userId 1 NaN 2 NaN 3 NaN Técnicas de Inteligencia Artificial 33 Tema 8. Ideas clave 4 NaN 5 NaN Name: Contact (1997), dtype: float64 Veremos muchos NAN porque muchos usuarios no las han calificado, pero con head(50) podríamos ver ratings de determinados usuarios. Para calcular la correlación entre dos dataframes utilizamos la funcionalidad de los pandas corrwith().corrwith() calcula la correlación por pares de las filas o columnas de dos objetos del dataframe. Utilicemos esta funcionalidad para obtener la correlación entre la clasificación de cada película y la del Air Force One. © Universidad Internacional de La Rioja (UNIR) Técnicas de Inteligencia Artificial 34 Tema 8. Ideas clave Veamos las películas similares a Contact (1997): © Universidad Internacional de La Rioja (UNIR) Técnicas de Inteligencia Artificial 35 Tema 8. Ideas clave Como se ha notado anteriormente, nuestra matriz tenía muchos valores perdidos, ya que no todas las películas fueron clasificadas por todos los usuarios. Por lo tanto, dejamos caer esos valores nulos y transformamos los resultados de la correlación en cuadros de datos para que los resultados se vean más atractivos. © Universidad Internacional de La Rioja (UNIR) Técnicas de Inteligencia Artificial 36 Tema 8. Ideas clave Estos dos dataframes nos muestran las películas más parecidas a las de Contact (1997) y Air Force One (1997), respectivamente. Sin embargo, algunas de las películas tienen muy pocas clasificaciones y pueden terminar siendo recomendadas simplemente © Universidad Internacional de La Rioja (UNIR) porque una o dos personas les dieron una clasificación de 5 estrellas. Podemos arreglar esto estableciendo un umbral para el número de clasificaciones. En el histograma anterior vimos un fuerte descenso en el número de clasificaciones desde 100. Por lo tanto, fijaremos esto como el umbral. Sin embargo, este es un número con el que se puede jugar hasta que se consiga una opción adecuada. Para ello, Técnicas de Inteligencia Artificial 37 Tema 8. Ideas clave necesitamos unir los dos dataframes con la columna number_of_ratings en el dataframe ratings. © Universidad Internacional de La Rioja (UNIR) Técnicas de Inteligencia Artificial 38 Tema 8. Ideas clave Finalmente, nos quedamos con la similitud de las películas en base a su correlación con las dos con las que estamos probando, pero que tengan más de 100 ratings cada una de ellas, y las ordenamos de mayor a menor correlación: © Universidad Internacional de La Rioja (UNIR) Técnicas de Inteligencia Artificial 39 Tema 8. Ideas clave © Universidad Internacional de La Rioja (UNIR) Técnicas de Inteligencia Artificial 40 Tema 8. Ideas clave © Universidad Internacional de La Rioja (UNIR) Técnicas de Inteligencia Artificial 41 Tema 8. Ideas clave 8.7. Referencias Alharthi, H., Inkpen, D. & Szpakowicz, S. (2018). A survey of book recommender systems. Journal of Intelligent Information Systems, 51(1), 139-160. Disponible en https://doi.org/10.1007/s10844-017-0489-9 Augstein, M., Herder, E. & Wörndl, W. (2019). Personalized Human-Computer Interaction. Walter de Gruyter GmbH & Co KG. Balabanović, M. & Shoham, Y. (1997). Fab: Content-based, collaborative recommendation. Communications of the ACM, 40(3), 66–72. Bobadilla, J., Ortega, F., Hernando, A. & Gutiérrez, A. (2013). Recommender systems survey. Knowledge-Based Systems, 46, 109-132. Disponible en https://doi.org/10.1016/j.knosys.2013.03.012 Burke, R. (2002). Hybrid Recommender Systems: Survey and Experiments. User Modeling and User-Adapted Interaction, 12(4), 331-370. Disponible en https://doi.org/10.1023/A:1021240730564 Campana, M. G. & Delmastro, F. (2017). Recommender Systems for Online and Mobile Social Networks: A survey. Online Social Networks and Media, 3-4, 75-97. Disponible en https://doi.org/10.1016/j.osnem.2017.10.005 Çano, E. & Morisio, M. (2017). Hybrid Recommender Systems: A Systematic Literature Review. Intelligent Data Analysis, 21(6), 1487-1524. Disponible en © Universidad Internacional de La Rioja (UNIR) https://doi.org/10.3233/IDA-163209 Eirinaki, M., Gao, J., Varlamis, I. & Tserpes, K. (2018). Recommender Systems for Large-Scale Social Networks: A review of challenges and solutions. Future Generation Computer Systems, 78, 413-418. Disponible en Técnicas de Inteligencia Artificial 42 Tema 8. Ideas clave https://doi.org/10.1016/j.future.2017.09.015 Jannach, D. (Ed.). (2011). Recommender systems: An introduction. Cambridge University Press. Joshi, A. V. (2020). Recommendations Systems. En A. V. Joshi (Ed.), Machine Learning and Artificial Intelligence (pp. 199-204). Springer International Publishing. Disponible en https://doi.org/10.1007/978-3-030-26622-6_21 Karimi, M., Jannach, D. & Jugovac, M. (2018). News recommender systems – Survey and roads ahead. Information Processing & Management, 54(6), 1203-1227. Disponible en https://doi.org/10.1016/j.ipm.2018.04.008 Kunaver, M. & Požrl, T. (2017). Diversity in recommender systems – A survey. Knowledge-Based Systems, 123, 154-162. Disponible en https://doi.org/10.1016/j.knosys.2017.02.009 Lemire, D., Boley, H., McGrath, S. & Ball, M. (2005). Collaborative filtering and inference rules for context‐aware learning object recommendation. Interactive Technology and Smart Education, 2(3), 179-188. Disponible en https://doi.org/10.1108/17415650580000043 Linda, S. & Bharadwaj, K. K. (2018). A Decision Tree Based Context-Aware Recommender System. En U. S. Tiwary (Ed.), Intelligent Human Computer Interaction (pp. 293-305). Springer International Publishing. Disponible en https://doi.org/10.1007/978-3-030-04021-5_27 © Universidad Internacional de La Rioja (UNIR) Linden, G., Smith, B. & York, J. (2003). Amazon.com recommendations: Item-to-item collaborative filtering. IEEE Internet Computing, 7(1), 76-80. Disponible en https://doi.org/10.1109/MIC.2003.1167344 Técnicas de Inteligencia Artificial 43 Tema 8. Ideas clave Lops, P., de Gemmis, M. & Semeraro, G. (2011). Content-based Recommender Systems: State of the Art and Trends. En F. Ricci, L. Rokach, B. Shapira, & P. B. Kantor (Eds.), Recommender Systems Handbook (pp. 73-105). Springer US. Disponible en https://doi.org/10.1007/978-0-387-85820-3_3 Montaner, M., López, B. & de la Rosa, J. L. (2003). A Taxonomy of Recommender Agents on the Internet. Artificial Intelligence Review, 19(4), 285-330. Disponible en https://doi.org/10.1023/A:1022850703159 Mu, R. (2018). A Survey of Recommender Systems Based on Deep Learning. IEEE Access, 6, 69009-69022. Disponible en https://doi.org/10.1109/ACCESS.2018.2880197 Najafabadi, M. K., Mohamed, A. Hj. & Mahrin, M. N. (2019). A survey on data mining techniques in recommender systems. Soft Computing, 23(2), 627-654. Disponible en https://doi.org/10.1007/s00500-017-2918-7 Osadchiy, T., Poliakov, I., Olivier, P., Rowland, M. & Foster, E. (2019). Recommender system based on pairwise association rules. Expert Systems with Applications, 115, 535-542. https://doi.org/10.1016/j.eswa.2018.07.077 Pazzani, M. J. & Billsus, D. (2007). Content-Based Recommendation Systems. En P. Brusilovsky, A. Kobsa & W. Nejdl (Eds.), The Adaptive Web: Methods and Strategies of Web Personalization (pp. 325-341). Springer. Disponible en https://doi.org/10.1007/978-3-540-72079-9_10 Ricci, F., Rokach, L., Shapira, B. & Kantor, P. B. (Eds.). (2011). Recommender Systems © Universidad Internacional de La Rioja (UNIR) Handbook. Springer US. Disponible en https://doi.org/10.1007/978-0-387-85820-3 Sánchez-Corcuera, R., Casado-Mansilla, D., Borges, C. E. & López-de-Ipiña, D. (2020). Persuasion-based recommender system ensambling matrix factorisation and active learning models. Personal and Ubiquitous Computing. Disponible en Técnicas de Inteligencia Artificial 44 Tema 8. Ideas clave https://doi.org/10.1007/s00779-020-01382-7 Singh, S. P. & Solanki, S. (2019). Recommender System Survey: Clustering to Nature Inspired Algorithm. En C. R. Krishna, M. Dutta, & R. Kumar (Eds.), Proceedings of 2nd International Conference on Communication, Computing and Networking (pp. 757- 768). Springer. Disponible en https://doi.org/10.1007/978-981-13-1217-5_76 Singhal, A., Sinha, P. & Pant, R. (2017). Use of Deep Learning in Modern Recommendation System: A Summary of Recent Works. International Journal of Computer Applications, 180(7), 17-22. Disponible en https://doi.org/10.5120/ijca2017916055 Yao, L., Xu, Z., Zhou, X. & Lev, B. (2019). Synergies Between Association Rules and Collaborative Filtering in Recommender System: An Application to Auto Industry. En F. P. García Márquez & B. Lev (Eds.), Data Science and Digital Business (pp. 65-80). Springer International Publishing. Disponible en https://doi.org/10.1007/978-3-319- 95651-0_5 © Universidad Internacional de La Rioja (UNIR) Técnicas de Inteligencia Artificial 45 Tema 8. Ideas clave A fondo Introducción a los sistemas recomendadores Esta lección magistral consiste en mostrar ejemplos reales de aplicaciones en Internet, con las que el

Use Quizgecko on...
Browser
Browser