• No se han encontrado resultados

Precisión predictiva de algoritmos de aprendizaje automático en sistemas de recomendación

N/A
N/A
Protected

Academic year: 2020

Share "Precisión predictiva de algoritmos de aprendizaje automático en sistemas de recomendación"

Copied!
121
0
0

Texto completo

(1)

INSTITUTO TECNOLÓGICO DE BUENOS AIRES Escuela de Postgrado

Especialización en Ciencia de Datos

Precisión Predictiva de Algoritmos

de Aprendizaje Automático en

Sistemas de Recomendación

Trabajo presentado para optar al título de Especialista del Instituto Tecnológico de Buenos Aires

en el área Ciencia de Datos

Marcos Dumón

Tutora del TFI: Dra. Leticia Gómez

(2)
(3)
(4)
(5)

No es el conocimiento, sino el acto de aprendizaje, ni la posesión del mismo, sino el trayecto recorrido hasta obtenerlo, lo que proporciona la mayor satisfación.

(6)

Resumen

Los sistemas de recomendación en línea están omnipresentes en el mundo actual. És-tos utilizan algoritmos para proporcionar recomendaciones de servicios o producÉs-tos a los usuarios. Actualmente, dichos sistemas están utilizando algoritmos de Aprendizaje Au-tomático pertenecientes al campo de la Inteligencia Artificial. Sin embargo, el campo de Aprendizaje Automático no tiene un esquema de clasificación claro para sus algoritmos, principalmente por la numerosa cantidad de enfoques y las variaciones propuestas en la literatura. Como consecuencia, es difícil y confuso elegir un algoritmo que se adapte a las necesidades del usuario al desarrollar un sistema de recomendación. Este trabajo presenta una revisión sistemática de la literatura que analiza el uso de algoritmos de Aprendizaje Automático en sistemas de recomendación del tipo que son utilizados, por ejemplo, para la recomendación de películas en un sitio web comercial. Aquí el sistema tiene como objetivo predecir cuánto apreciaría un usuario una determinada película para luego recomendar a cada usuario aquellas que probablemente disfrutará. Haciendo uso de los métodos de evaluación y métricas disponibles en la literatura se evidenciará la pre-cisión y el rendimiento de cada uno de los algoritmos en conjuntos de datos de distinto tamaño.

(7)

Abstract

Online recommendation systems are ubiquitous in today’s world. These systems use algo-rithms to provide users with recommendations for services or products. Currently, they are using Machine Learning algorithms belonging to the field of Artificial Intelligence. However, the Machine Learning field does not have a clear classification scheme for its algorithms, mainly due to the number of approaches and variations proposed in the lit-erature. As a result, it is difficult and confusing to choose an algorithm that suits user’s needs when developing a recommendation system. This work presents a systematic review of the literature that analyzes the use of Machine Learning algorithms in recommenda-tion systems of the type that are used, for example, for the recommendarecommenda-tion of movies, where the system aims to predict how much a user would appreciate a certain movie, to then recommend to each of the users the movies that they will probably enjoy. By mak-ing use of the evaluation methods and metrics available in the literature, the accuracy and performance of each of the algorithms will be evidenced in data sets of different sizes.

(8)

Índice general

Lista de Símbolos IV

Lista de Figuras V

Lista de Cuadros VII

I Introducción y objetivos 1

1 Introducción 2

1.1 Descripción general de los sistemas de recomendación . . . 2

1.2 Objetivos . . . 4

1.2.1 Objetivo general . . . 4

1.2.2 Objetivos específicos . . . 4

1.3 Método de investigación . . . 4

1.4 Limitaciones . . . 5

II Sistemas de recomendación: una visión general 6 2 Estado del arte 7 2.1 Inteligencia Artificial y Aprendizaje Automático . . . 7

2.1.1 Aprendizaje automático en sistemas de recomendación . . . 10

2.2 Taxonomía de los sistemas de recomendación . . . 12

2.2.1 Predicción de la afinidad entre usuarios e ítems . . . 12

2.2.2 Predicción de la congruencia de los conjuntos de ítems . . . 14

2.3 Desafíos y limitaciones . . . 15

2.4 El problema de recomendación . . . 16

2.4.1 Formulación del problema . . . 16

2.4.2 Notación . . . 17

2.5 Predicción de calificaciones y métodos tradicionales . . . 20

(9)

3.2 Filtrado colaborativo basado en memoria . . . 26

3.2.1 Enfoque basado en usuarios:k-NNF Usuarios . . . 28

3.2.2 Enfoque basado en ítems:k-NNFPelículas . . . 33

3.3 Filtrado colaborativo basado en modelo . . . 36

3.3.1 SVD sin segos . . . 38

3.3.2 SVD con sesgos . . . 42

3.4 Evaluación de algoritmos de recomendación . . . 44

3.4.1 Métricas para la precisión de predicción . . . 45

3.4.2 Métricas para la precisión de clasificación . . . 45

3.4.3 Métricas basadas en clasificación (ranking) . . . 47

IV Optimización de hiperparámetros 49 4 Optimización de hiperparámetros 50 4.1 Definición del problema . . . 50

4.2 Selección de algoritmos y optimización de hiperparámetros . . . 52

4.3 Búsqueda manual y automática . . . 53

4.3.1 Búsqueda en cuadrícula . . . 54

4.3.2 Búsqueda aleatoria . . . 54

4.3.3 Optimización bayesiana . . . 54

V Configuración experimental y resultados 61 5 Experimento 62 5.1 Configuración del sistema . . . 63

5.1.1 Conjunto de datos . . . 63

5.2 Análisis exploratorio del conjunto de datos . . . 65

5.3 Partición del conjunto de datos y selección de modelo . . . 67

5.4 Experimento 1 . . . 69

5.4.1 Análisis del impacto de los hiperparámetros . . . 69

5.5 Experimento 2 . . . 78

5.5.1 Optimización de hiperparámetros . . . 78

5.6 Experimento 3 . . . 84

5.6.1 Investigación sobre los efectos de la escasez de datos . . . 84

VI Conclusión y perspectivas 86 6 Conclusiones 87 6.1 Resumen . . . 87

(10)

B Anexo del Capítulo 3 90 B.1 Predictor Base . . . 90 B.2 Ejemplo k-NNFPelículas . . . 92 B.3 Ejemplo k-NNF

Usuarios . . . 94 B.4 Ejemplo de cálculo de Precision, Recall y MAP . . . 96 B.5 Ejemplo del algoritmo SVD de Simon Funk . . . 99

C Anexo del Capítulo 8 102

(11)

Lista de Símbolos

¯

r Calificación promedio de todos los usuarios y películas

bu Sesgo del usuario u en comparación con el promedio ¯r

bi Sesgo de la películai en comparación con el promedio ¯r

rui Calificación del usuariou para la película i

ˆ

rui Calificación predicha del usuario u para la película i

D Conjunto de datos de calificaciones conocidas que contiene las triplas {(u, i, rui)}

D Matriz de similitud

duv Similitud entre usuarios

dij Similitud entre películas

L Cantidad de vecinos

Lu Vecindario compuesto por usuarios

Li Vecindario compuesto por películas

U Cantidad de usuarios

I Cantidad de películas

R Matriz de calificaciones

P Matriz de factores latentes de usuarios Q Matriz de factores latentes de películas pu Factores latentes para el usuariou

(12)

Lista de Figuras

1.1 Concepto de un sistema de recomendación. . . 3

2.1 Descripción general de cómo se usa el aprendizaje automático para abordar una tarea determinada. . . 9

2.2 Arquitectura de alto nivel de un sistema de recomendación. . . 11

2.3 Flujo principal de dos pasos. . . 11

2.4 Enfoques de sistemas de recomendación con énfasis en métodos de filtrado colaborativo. . . 14

2.5 Representación de las calificaciones de los usuarios para todos los ítems como una matriz de calificación R. . . 18

2.6 Un ejemplo de una matriz de calificación donde se deben estimar las cali-ficaciones faltantes, representadas por ?. . . 19

3.1 Los dos enfoques utilizados en el método basado en memoria. . . 27

3.2 Correlación usuario-usuario. . . 29

3.3 Correlación película-película. . . 33

3.4 DescomposiciónR en dos matrices de menor rangoQ yP. . . 39

3.5 Ilustración del procedimiento de validación cruzada k-fold. . . 45

3.6 Matriz de confusión para sistemas de recomendación. . . 46

4.1 Ejemplo de PG con función de adquisición de Mejora Esperada (EI). . . . 60

5.1 Ejemplo de PG con función de adquisición de Mejora Esperada (EI). . . . 65

5.2 Calificaciones en función del porcentaje. . . 66

5.3 Distribución acumulativa empírica. . . 66

5.4 RMSE bajo diferentes valores de Γ y n. . . 69

5.5 Comparación del rmse cuando se utiliza el enfoque basado en usuarios con diferentes métricas de similitud y tamaños de L . . . 70

5.6 Evolución de la precisión (rmse) para el conjunto de datos ML 100K, según la densidad de la matriz. . . 71

5.7 Comparación del rmse cuando se utiliza el enfoque basado en películas con diferentes métricas de similitud y tamaños de L . . . 72

5.8 Evolución de la precisión (rmse) para el conjunto de datos ML 100K, según la densidad de la matriz. . . 73

5.9 Tendencia del rmse bajo diferentes valores deF. . . 74

(13)

5.11 RMSE bajo diferentes valores de Λ y F. . . 75

5.12 Tendencia del rmse bajo diferentes valores de F. . . 76

5.13 RMSE para diferente número de épocas. . . 76

5.14 RMSE bajo diferentes valores de Λ y F. . . 77

5.15 Error de validación del predictor base con respecto al número de modelos entrenados (o iteraciones del ciclo de optimización bayesiano). . . 79

5.16 Error de validación de los enfoques basados en memoria y modelo con respecto al número de modelos entrenados en ML 100K. . . 79

5.17 Predictor Base. . . 81

5.18 Error de validación del predictor base con respecto al número de modelos entrenados (o iteraciones del ciclo de optimización bayesiano). . . 81

5.19 Error de validación de los enfoques basados en memoria y modelo con respecto al número de modelos entrenados en ML 1M. . . 81

5.20 Rendimiento de MAP@K de cada algoritmo de recomendación. . . 83

5.21 Evolución de la precisión (RMSE) para los conjuntos de datos MovieLens 100K y 1M según la densidad de la matriz. . . 84

A.1 Comparación del problema de clasificación tradicional (izquierda) con el filtrado colaborativo (derecha). . . 89

B.1 Matriz de calificaciones Usuario-Película. . . 91

B.2 Matriz de calificación estimada por el predictor base. . . 91

B.3 Matriz de calificaciones predichas centrada en los predictores base. . . . 92

B.4 Matriz de similitud Película-Película. . . 93

B.5 Matriz de calificaciones predichas por k-NN Películas. . . 94

B.6 Matriz de calificaciones predichas centrada en el predictor base. . . 94

B.7 Matriz de similitud Usuario-Usuario. . . 95

B.8 Matriz de calificaciones predichas por k-NN Usuarios. . . 95

(14)

Lista de Cuadros

5.1 Estadísticas de los conjuntos de datos. . . 64

5.2 Estructura de los tres archivos. . . 64

5.3 Espacio de hiperparámetros explorado por los dos métodos. . . 78

5.4 Valores óptimos de los hiperaparámetros para cada modelo. . . 80

5.5 Error de generalización imparcial en DP para ML 100K . . . 80

5.6 Valores de MAP@K para diferentesken DP para ML 100K. . . 80

5.7 Valores óptimos de los hiperaparámetros para cada modelo en ML 1M. . . 82

5.8 Error de generalización imparcial en DP para ML 1M . . . 82

5.9 Valores de MAP@K para diferentesken DP para ML 1M. . . 82

B.1 Ejemplo ilustrativo. . . 96

B.2 Ordenamiento de la lista Bu(k) en forma descendente. . . 97

B.3 Matriz usuario-película . . . 99

B.4 Matriz de factores latentes U . . . 99

(15)

Parte I

(16)

Capítulo

1

Introducción

1.1.

Descripción general de los sistemas de

reco-mendación

Cuando navegamos por Internet nos encontramos con frases como: “A las personas que les gustó este producto también les gustó...” - “Según su actual historial de nave-gación, puede que también le interese...” - “Porque viste esta película, también puedes disfrutar.”. Con la creciente cantidad de opciones en Internet, los sistemas de recomen-dación desempeñan un papel importante en ayudar a los usuarios a encontrar artículos relevantes de acuerdo con su gusto. El hecho de tener una gran cantidad de opciones crea un sentimiento positivo de libertad en los usuarios, pero también los abruma y los lleva a tomar malas decisiones. Muchas empresas utilizan con éxito estos sistemas todos los días, como los sitios web de comercio electrónico (Amazon, Wallmart), sitios web de noticias (por ejemplo, The New York Times), servicios de suscripción de video a pedido (por ejemplo, HBO Go, Netflix), cursos abiertos masivos en línea (por ejemplo, Cour-sera , edX), servicios de streaming de música (por ejemplo, SoundCloud, Spotify) para proporcionar contenido personalizado a cada usuario y mejorar su experiencia.

El campo de los sistemas de recomendación (SR) tiene sus orígenes a mediados de la década de 1990 con la introducción de Tapestry [Goldberg et al., 1992], el primer sistema de recomendación. Este fue un sistema de correo manual, de filtrado colaborativo, desarrollado en el Centro de Investigación Xerox Palo Alto1. Los SR tienen como objetivo filtrar información vital de grandes volúmenes de datos con respecto a las preferencias y el comportamiento del usuario, y al hacerlo, pueden predecir lo que éste está buscando y producir recomendaciones en consecuencia [Isinkaye et al., 2015a]. Para realizar dichas recomendaciones, los algoritmos de aprendizaje automático aprovechan el conocimiento de los datos históricos para inferir reglas, correlaciones, preferencias y usarlos para elegir

(17)

los ítems correctos para mostrar a cada usuario, donde un “ítem” es el término genérico para denotar lo que el sistema está tratando de recomendarles a éstos, como canciones, libros, noticias, películas, ropa o restaurantes, entre otros. Los datos históricos pueden ser muy heterogéneos, como información específica sobre el usuario (es decir, género, edad, ocupación), características del ítem (es decir, género, año, actores, color, textura, precio, descuento), comentarios explícitos de los usuarios en ítems (calificación, me gusta / no me gusta) que indican sus sentimientos, o comentarios implícitos, recopilados a través de las interacciones de los usuarios con los ítems (es decir, ver, hacer clic, agregar al carrito, comprar, hacer zoom) que pueden interpretarse como un signo de interés.

La Figura1.1ilustra el concepto general de un sistema de recomendación. La entrada es un flujo de grandes volúmenes de datos (calificaciones), que deben filtrarse para pro-porcionar a los usuarios datos que sean relevantes, es decir, las mejores recomendaciones. Las reglas de filtrado dependen de las calificaciones y cambiarán continuamente debido a la nueva entrada. Los usuarios que proporcionan las calificaciones pueden ser, aun-que no necesariamente, los mismos aun-que reciben las recomendaciones, ya aun-que los sistemas de filtrado colaborativo utilizan datos de distintos usuarios o ítems para proporcionar recomendaciones. El sistema utiliza estas calificaciones en conjunto con varias técnicas de aprendizaje automático para calcular un modelo que, al proporcionar un historial de calificación de los usuarios, efectúa las recomendaciones. Conforme los usuarios reciben recomendaciones, continúan proveyendo calificaciones adicionales a éstas. Esto provoca que el modelo se actualice todo el tiempo y vaya mejorando la precisión de las recomen-daciones en cuestión.

Sistema de recomendaci´on

Modelo Calificaciones

Recomendaciones

Figura 1.1: Concepto de un sistema de recomendación.

Para determinar el algoritmo óptimo para un conjunto de datos específico, se pueden realizar pruebas con diferentes métricas para obtener una aproximación de su rendi-miento. Un algoritmo que funcione de manera eficiente y precisa para un conjunto de datos en particular, puede funcionar de manera diferente en otros conjuntos de datos

(18)

1.2.

Objetivos

1.2.1.

Objetivo general

Este trabajo abordará el problema de la precisión de cómputo fuera de línea y cómo escalan ciertas predicciones de calificaciones arrojadas por los algoritmos según el tamaño del conjunto de datos que se esté usando. El objetivo central es comprender cuándo, un determinado algoritmo, es el más eficaz conforme va creciendo el volumen de datos. Los resultados no proporcionarán una respuesta definitiva sobre cuándo usar qué algoritmo, ya que existen factores externos como la estructura de los conjuntos de datos y el tipo de predicciones que se prefieren. Se espera que este trabajo proporcione algunas pautas para determinar qué algoritmo es el más adecuado para un conjunto de datos con propie-dades y tamaño específico. De este objetivo central se desprenden los siguientes objetivos específicos, que están asociados a las tareas requeridas para completar el objetivo central.

1.2.2.

Objetivos específicos

Hacemos una comparación entre los enfoques basados en memoria, denotados como vecinos más cercanos (k-NN) y enfoques basados en modelo, denotados como modelos de factor latente. Para llevar a cabo esta tarea utilizamos los siguientes conjuntos de datos: MovieLens 100K y MovieLens 1M. Para el filtrado colaborativo existen distintas métricas de error, la eficiencia de cada una depende del caso que esté siendo analizando. Dicho esto, nuestro trabajo no se restringe a una sola métrica de error. Por el contrario, hacemos uso de las siguientes: error cuadrático medio (RMSE), Precisión (Precision), exaustividad (Recall) y Puntaje-F. Para los enfoques basados en modelo evaluamos cómo influyen los hiperparámetros tales como la regularización, la cantidad de épocas, la tasa de apren-dizaje etc., mientras que para los enfoques basados en memoria evaluamos la cantidad de vecinos y las métricas de similitud. Además, analizamos la eficiencia de la optimiza-ción bayesiana para resolver el problema CASH. Por último, evaluamos la robustez de los algoritmos bajo diferentes niveles de escasez en la matriz de calificación. Asimismo, nos proponemos un objetivo adicional que trata de poner en evidencia que los métodos basados en modelo son superiores a los basados en memoria en los conjuntos de datos utilizados en el presente trabajo en función de las métricas de error antes mencionadas.

1.3.

Método de investigación

(19)

vez que pudimos ejecutar los algoritmos en los conjuntos de datos, utilizamos métricas para evaluar el rendimiento.

1.4.

Limitaciones

(20)

Parte II

Sistemas de recomendación: una

(21)

Capítulo

2

Estado del arte

Este capítulo está estructurado de la siguiente manera. Primero proporcionamos una breve introducción a la Inteligencia Artificial y Aprendizaje Automático y su relación con los SR en la sección2.1. Luego presentamos una taxonomía de la investigación actual en el área de SR en la sección2.2. La sección2.3describe los desafios y limitaciones, actuales, en los SR. En la sección2.4, definimos formalmente el problema de recomendación específico que abordaremos en este trabajo. Por último, mencionamos la diferencia entre el problema clásico de clasificación y el de predicción de calificaciones en la sección 2.5.

Contenido

2.1 Inteligencia Artificial y Aprendizaje Automático . . . 7

2.1.1 Aprendizaje automático en sistemas de recomendación . . . . 10

2.2 Taxonomía de los sistemas de recomendación . . . 12

2.2.1 Predicción de la afinidad entre usuarios e ítems . . . 12

2.2.2 Predicción de la congruencia de los conjuntos de ítems . . . . 14

2.3 Desafíos y limitaciones . . . 15

2.4 El problema de recomendación . . . 16

2.4.1 Formulación del problema . . . 16

2.4.2 Notación . . . 17

2.5 Predicción de calificaciones y métodos tradicionales . . . 20

2.1.

Inteligencia Artificial y Aprendizaje

Auto-mático

(22)

aprendizaje, la planificación, la resolución de problemas y la percepción. El campo recibió su nombre del científico informático John McCarty, quien, junto con Marvin Minsky, Nathan Rochester y Claude Shannon, organizó la Conferencia de Dartmouth en 1956

[McCarthy et al., 2006]. La finalidad de la conferencia era reunir a los principales expertos

para presentar un nuevo campo de ciencia que implica el estudio de máquinas inteligentes. Una premisa central discutida en la conferencia fue:

Cada aspecto del aprendizaje o cualquier otra característica de la inteligen-cia puede, en principio, ser descrito con tanta precisión que puede fabricarse una máquina para simularlo.

El término IA también es usado para describir el comportamiento inteligente de las máquinas, de modo que se puede decir que una máquina posee “IA” cuando realiza ta-reas que los humanos consideramos inteligentes. La IA puede contemplarse en forma de hardware o software, que puede ser independiente, distribuida a través de redes infor-máticas o incorporada en un robot. También puede ser en forma de agentes autónomos inteligentes (por ejemplo, virtuales o robóticos) que son capaces de interactuar con su entorno y tomar sus propias decisiones. Puede, asimismo, combinarse con procesos bio-lógicos (como en el caso de las interfaces de computadora del cerebro (BCI)), hechos de materiales biológicos (IA biológica), o ser tan pequeños como estructuras moleculares (nanotecnología) [Luxton, 2016].

Definimos al aprendizaje como el proceso de adquisición de conocimiento. Los seres hu-manos naturalmente aprendemos de la experiencia debido a nuestra capacidad de razonar. En contraste, las computadoras no aprenden por razonamiento sino que aprenden con al-goritmos. ElAprendizaje Automático(AA) es una rama central de la inteligencia artificial que tiene como objetivo dar a las computadoras la capacidad de aprender sin ser explíci-tamente programadas [Samuel, 1959]. Utiliza computadoras para simular el aprendizaje humano y les permite identificar y adquirir conocimientos del mundo real, y mejorar el rendimiento en algunas tareas basadas en este nuevo conocimiento [Portugal et al., 2015]. Más formalmente, [Mitchell, 1997] define el AA de la siguiente manera. Escribe:

Se dice que un programa de ordenador aprende por medio de la experiencia E con respecto a alguna clase de tareas T y medida de rendimiento P, si su desempeño en tareas en T, medida por P, mejora con la experiencia E.

De acuerdo con la definición dada por [Mitchell, 1997], hay una interpretación común del AA, según [Flach, 2012]:

El Aprendizaje Automático se trata de usar los atributos correctos para construir modelos correctos que logren tareas correctas.

(23)

1. Atributos correctos: Un atributo puede considerarse como un tipo de medición que se puede realizar fácilmente en cualquier instancia. La determinación de los atri-butos que se usarán depende de los modelos que se hayan elegido, porque éstos se definen en términos de atributos.

2. Modelos correctos: Se aprende un modelo de los datos de entrenamiento para re-solver una tarea determinada. El modelo en sí se produce como la salida de un algoritmo de aprendizaje automático aplicado a los datos de entrenamiento.

3. Tareas correctas: La tarea es una descripción del problema que debe resolverse en un determinado dominio. Las tareas se abordan mediante modelos, mientras que los problemas de aprendizaje se resuelven mediante algoritmos de aprendizaje que producen modelos [Flach, 2012].

La Figura2.1muestra una descripción general de cómo se usa el AA para abordar una tarea determinada. Una tarea (cuadro rojo) requiere un mapeo apropiado, un modelo, desde los datos descritos por los atributos hasta los resultados. Obtener ese modelo a partir de los datos de entrenamiento es lo que constituye un problema de aprendizaje (recuadro azul).

Problema de aprendizaje Tarea

Atributos Modelo

Algoritmo de Aprendizaje

Dominio objetos

Salida Datos

Datos de entrenamiento

Figura 2.1: Descripción general de cómo se usa el aprendizaje automático para abordar una tarea deter-minada.

(24)

su cuenta. Los algoritmos de aprendizaje no supervisados se centran principalmente en encontrar patrones ocultos y relaciones en los datos. Un sistema de recomendación, por ejemplo de películas, necesita aprender las preferencias de sus usuarios para poder, a tra-vés de su aprendizaje, realizar la tarea de recomendarles películas correctamente. Según

[Mitchell, 1997], para tener un problema de AA bien definido es necesario identificar tres

características: la tareaT, la medida de desempeño Py la experiencia de entrenamiento E. Podemos identificar estas tres características en el ejemplo antes mencionado:

T: Recomendar películas.

P: Error entre la calificación real otorgada por el usuario y la predicha por el

sistema.

E: Aprender de las calificaciones dadas por los usuarios existentes del sistema.

2.1.1.

Aprendizaje automático en sistemas de

recomenda-ción

En términos generales, el objetivo de los algoritmos de sistemas de recomendación es mostrarle a los usuarios ítems relevantes donde la relevancia puede tener dos significados diferentes. El primero se mide en términos deafinidad, por lo tanto, el objetivo es mos-trarles aquellos ítems que les gusten. El segundo se mide en términos de congruencia con otros ítems que los usuarios van a consumir juntos. La principal diferencia desde la perspectiva de los datos es que la afinidad se obtiene en función de todas las interac-ciones entre los usuarios y los ítems sin importar cuándo ocurrieron, mientras que, por congruencia, el algoritmo se centrará en la ocurrencia, por ejemplo, en la misma sesión para la aplicación web. Ambos objetivosrequieren de datos pasadospara conocer la relevancia que tienen los ítems en cada contexto a fin de presentar éstos a los usuarios. Por lo tanto, los datos futuros dependerán exclusivamente de las elecciones pasadas del sistema de recomendación, lo que puede sesgar el aprendizaje futuro. Para evitar este problema, los sistemas de recomendación deben equilibrar la exploración, que es probar diferentes posibilidades para recopilar nueva información, y laexplotación, que actúa de acuerdo con los datos recopilados previamente.

(25)

Base de datos Entrenamiento

del modelo Modelo Predictivo

Sistema de Recomendaci´on

Usuario

MD

Feedback del usuario (calificaciones, clicks, navegaci´on)

Nuevos ´ıtems ´Items

Recomendados

Historial del usuario

Figura 2.2: Arquitectura de alto nivel de un sistema de recomendación.

Para poder construir un modelo predictivo necesitamos entender, primero, en qué consis-te la fase de aprendizaje y de recomendación en estos sisconsis-temas. Para el caso del filtrado colaborativobasado en memoria consideremos una de las técnicas más destacadas, el enfoque basado en usuarios. La fase de aprendizaje, aquí, consiste en calcular los valores de similitudes entre los usuarios basándose en los valores de calificación conocidos. Sin embargo, no podemos decir que el modelo se construye durante la fase de aprendizaje, ya que es imposible dar recomendaciones basadas únicamente en las similitudes entre los usuarios. Por lo tanto, los cálculos finales se realizan durante la fase de recomendación en sí. La última fase consiste en estimar los valores de calificación para un usuario activo basándose en las calificaciones de otros usuarios y sus similitudes con un usuario activo. En el caso del filtrado colaborativo basado en modelo, las fases de entrenamiento y recomendación se distinguen claramente: el modelo se construye durante la fase de en-trenamiento. Luego, durante la fase de recomendación, el modelo se utiliza para generar recomendaciones. Como resultado, estas técnicas pertenecen a la clase de técnicas de aprendizaje entusiastas, cuando el sistema realiza la generalización durante la fase de aprendizaje. La Figura2.3ilustra estos conceptos. El modulo de entrenamiento optimiza sobre los parámetros del modelo usando los datos de entrenamiento y prueba. Luego, el módulo de predicción utiliza el modelo con los parámetros optimizados para hacer predicciones.

Entrenamiento Predicción

Parámeteros del modelo

Modelo

Datos de

entrada Predicción

Entradas de entrenamiento Entradas de prueba

(26)

2.2.

Taxonomía de los sistemas de

recomenda-ción

2.2.1.

Predicción de la afinidad entre usuarios e ítems

Para predecir futuras afinidades entre usuarios e ítems, los algoritmos se basan en cualquier información disponible sobre usuarios e ítems: esto podría ser cualquier ti-po de información contextual como la edad, género, fecha o interacción previa entre el usuario y el ítem en particular. Una vez que se aprende el modelo, el sistema genera la afinidad entre un usuario y todos los items posibles o solo aquellos que el usuario no conoce y elige los mejores, es decir, los que tienen la mayor afinidad. De hecho, para algunas aplicaciones, como la recomendación de películas, no tiene sentido recomendar una que el usuario ya haya visto y calificado en el pasado, por lo tanto, la recomenda-ción se centrará en seleccionar nuevas películas. Hay tres familias de sistemas de reco-mendación que dependen de cómo el algoritmo aprende las afinidades entre usuarios y ítems: filtrado colaborativo [Resnick, 1997,Kautz et al., 1997], filtrado basado en conte-nido [Balabanović and Shoham, 1997] y filtrado basado en conocimiento [Burke, 2000].

Filtrado basado en contenido

El filtrado basado en contenidointenta recomendar a un usuario objetivo algunos productos que son similares a los que le han gustado en el pasado. Esta técnica hace más énfasis en el análisis de los atributos descriptivos de los productos para hacer re-comendaciones. Mas específicamente, crea un perfil para cada usuario o producto para caracterizar su naturaleza. Aquí las calificaciones y el comportamiento de compra de los usuarios se combinan con la información de contenido disponible en los productos. Por ejemplo, el perfil de una película podría incluir atributos con respecto a su género, los actores participantes, país, lenguaje, director etc. Los perfiles de usuario pueden incluir información demográfica o respuestas proporcionadas en un cuestionario. Estos perfiles permiten a los sistemas basados en contenido asociar usuarios con películas coincidentes.

Filtrado colaborativo

(27)

haya gustado a B, entonces el sistema se la recomendará a A. El filtrado colaborativo tiene los beneficios de ser independiente del contenido porque no requiere ningún conocimiento sobre los ítems en sí mismos. Además, estas técnicas son naturalmente fortuitas porque sus recomendaciones no se basan en ninguna categorización de artículos, y no piden a los usuarios que expliquen explícitamente sus intereses. Sin embargo, esta técnica sufre el problema llamadoArranque en Frio (ver sección2.3).

Filtrado basado en conocimiento

Las dos familias que hemos descrito hasta ahora (métodos basados en contenido y colaborativos) solo son adecuadas para ciertos tipos de ítems. Si bien las películas, los libros, la música o las noticias pueden encajar bastante bien dentro de estos dos marcos, este no es el caso de algunos otros artículos, como automóviles, préstamos bancarios o bienes raíces. Tomemos, por ejemplo, el problema de la recomendación del automóvil. El enfoque basado en el contenido necesitaría saber qué tipo de automóviles ha tenido el usuario en el pasado, y recomendaría algunos nuevos que sean similares a los anteriores. Por supuesto, este método está destinado a fallar, no solo porque en la práctica dicha información sobre vehículos pasados nunca está disponible, sino también porque las re-comendaciones se basarían en preferencias de algunos años. En cuanto a los métodos de filtrado colaborativo, requerirían que el sistema tenga una gran cantidad de transacciones pasadas a su disposición, y las personas no compran tantos autos como ven películas: solo muy poca información estaría disponible, lo que llevaría a resultados desastrosos

[Hug, 2017].

En términos generales, nos referimos a los sistemas basados en el conocimiento como cualquier método que no sea basado en el contenido ni colaborativo. En general, estos sistemas se usan en entornos en los que el dominio y el conocimiento contextual (es decir, el conocimiento sobre los ítems disponibles en el sistema) prevalecen sobre cualquier otra fuente de información, como la información social, por ejemplo.

Según [Felfernig and Burke, 2008] existen dos tipos de sistemas basados en el cono-cimiento. El primero se denomina sistemas basados en casos. Los cuáles se basan en similitudes: el sistema intentará recomendar ítems que sean similares a un ítems ideal expresado por las necesidades del usuario. El segundo tipo son los sistemas basados en restricciones. Aquí los usuarios e ítems son descritos mediante un conjunto de pro-piedades, junto con un conjunto de restricciones. En el ejemplo de recomendación de automóvil, una restricción de ítem podría expresar, por ejemplo, que un automóvil con-vertible no debería tener un techo solar, y la restricción del usuario podría indicar que el color del automóvil no debería ser verde. El problema de recomendar un ítems a un usuario toma la forma de un problema clásico de satisfacción de restricciones.

(28)

Basado en modelo

Factor latente Factorizacion matricial

Clustering

Basado en memoria

Enfoque en ´ıtems Enfoque en usuarios

Basado en contenido

Basado en

conocimiento H´ıbrido

Filtrado Colaborativo H´ıbrido

H´ıbrido

H´ıbrido

Figura 2.4: Enfoques de sistemas de recomendación con énfasis en métodos de filtrado colaborativo.

2.2.2.

Predicción de la congruencia de los conjuntos de

ítems

(29)

Sistemas de recomendación basados en sesión

La recomendación basada en sesión es una aplicación típica de los sistemas de reco-mendación basados en retroalimentaciones implícitas, donde no hay preferencias explí-citas (por ejemplo, calificaciones) sino solo observaciones positivas (por ejemplo, clics). Estas observaciones positivas generalmente se presentan en forma de datos secuenciales obtenidos mediante el seguimiento pasivo del comportamiento de los usuarios durante una secuencia de tiempo [Li et al., 2017]. El término sesión hace referencia a ítems se-cuenciales o atributos seleccionados por un usuario dentro de un intervalo específico de tiempo máximo y mínimo. Para un estudio en profundidad, ver [Wang et al., 2019].

2.3.

Desafíos y limitaciones

El área de sistemas de recomendación ha tenido un progreso considerable a lo largo de los años junto con el avance tecnológico. Sin embargo, todavía hay muchos problemas y desafíos que deben abordarse. Las principales limitaciones que desafían los sistemas de recomendación basados en filtrado colaborativo se describen a continuación:

Problema de arranque en frío: Ocurre principalmente cuandoUi oIu está vació, lo

que significa que se ha agregado un nuevo usuario o un nuevo ítem al conjunto de datos [Griesner, 2018]. El problema se puede clasificar en dos categorías, arranque en frío de nuevos ítems y arranque en frío de nuevos usuarios. En el caso de nuevos usuarios, el sistema no tiene información sobre sus preferencias y, por lo tanto, no les recomienda nada. En el caso de ítems nuevos, el sistema no tiene calificaciones para estos ítems, por lo tanto, nunca serán recomendados por ningún sistema dado que no tenemos suficiente información al respecto.

Escasez de datos: En general, el orden de magnitud del número de ítems distintos

propuestos por los sistemas de recomendación a sus usuarios es de aproximada-mente 50 millones. Como consecuencia, incluso los usuarios más activos no podrán consumir más que una parte muy limitada de este número de opciones. Implica que la densidad de la matriz de calificación del usuario será extremadamente baja. Por lo general, la densidad se sitúa entre 0.005 % y 1.5 % [Griesner, 2018]. Este es un problema grave para el sistema ya que se espera que produzca recomendaciones precisas con un aporte tan deficiente.

Escalabilidad: La tasa de crecimiento de los algoritmos de vecinos más cercanos

(30)

ítems con atributos similares. Por lo tanto, es crucial aplicar técnicas de recomen-dación que sean capaces de ampliarse de manera exitosa a medida que aumenta el volumen de datos.

2.4.

El problema de recomendación

2.4.1.

Formulación del problema

En octubre de 2006, Netflix anunció el Netflix Prize 11 [Bennett et al., 2007], una competencia para predecir las calificaciones de películas en una escala de 5 estrellas. La compañía lanzó un conjunto de datos, de gran volumen, de calificaciones de películas y retó a los participantes a desarrollar un sistema de recomendación que superara la precisión de los suyos por un premio de $ 1 millón. Este evento destacó el valor de generar recomendaciones personalizadas y, debido a esto, el interés académico hacia el campo de los sistemas de recomendación ha aumentado dramáticamente desde entonces. El lanzamiento de la competencia requería formular un problema de recomendación que pudiera evaluarse y cuantificarse fácilmente. El problema formulado, conocido como el problema depredicción de calificación, se convirtió en el estándar adoptado al desarrollar y evaluar los enfoques de recomendación y ha sido ampliamente estudiado para varias aplicaciones.

Definición 1. Predicción de calificación. El problema de predicción de calificación establece que la tarea de un SR es estimar una función de utilidad que predice la cali-ficación que un usuario le dará a un ítem que no calificó, i.e., prediciendo la preferencia que un usuario tiene por un ítem.

El objetivo en la predicción de calificación es definir una función de utilidad que minimice el error entre las calificaciones predichas y las reales para todas las calificaciones existenes. Las calificaciones predichas se utilizan para ordenar la lista de ítems para cada usuario y realizar recomendaciones. Otros avances en el campo señalaron que en los SR del mundo real, los usuarios tienden a mirar las principales recomendaciones proporcionadas sin estar interesados en los ítems ubicados en el medio o al final de la lista. Por lo tanto, es mucho más valioso proporcionar recomendaciones principales relevantes en lugar de predecir con precisión las calificaciones de todos los ítems existentes, incluidos los que se encuentran al final de la lista que el usuario no alcanza [Al-Ghossein, 2019]. El problema de recomendación tomó entonces una formulación más adaptada que se conoce como el problema de recomendación top-N [Deshpande and Karypis, 2004].

Definición 2. Recomendación Top-N. El problema de recomendación top-N esta-blece que la tarea de un SR es estimar una función de utilidad que predice si el usuario elegirá un ítem o no, i.e., prediciendo la relevancia de éste para un usuario.

(31)

El algoritmo de recomendación predice la utilidad de cada ítem, i.e. la calificación en el problema depredicción de calificación y una puntuación de relevancia en el problema de recomendación top-N, para un usuario objetivo. Esta medida de utilidad revela la utilidad que tiene un ítem para un usuario.

2.4.2.

Notación

Definición 3. Sistema de recomendación (SR) [Adomavicius and Tuzhilin, 2005]. Su-pongamos que U e I son los conjuntos de usuarios e ítems respectivamente, y f es una función de utilidad que mide la utilidad de un ítem ipara un usuario u, i.e.

f :U×IR

donde Res un conjunto totalmente ordenado (por ejemplo, calificación de 5 estrellas, números reales dentro de un cierto rango, etc.). Luego, un sistema de recomendación (SR) se define como un sistema que extrae un conjunto de N ítems principales (top-N) i0I que maximizan la utilidad del usuario uU, i.e.

topN(u) ={i0|i0 =arg maxN

iI

f(u, i)}

En el caso más simple, U×I es una matriz, llamada matriz usuario-ítem (ver Figura

2.5), donde cada celda indica cómo un usuario en particular calificó un ítem en particular, y f predice el valor de las celdas donde el valor de calificación se desconoce. De esta manera, el valor situado en la intersección de una fila y una columna corresponde al valor de la calificación asignada por el usuario correspondiente al ítem.

Podemos definir los elementos básicos para un sistema de recomendación basado en filtrado colaborativo de la siguiente manera: el conjunto de usuarios U, el conjunto de ítems I y el conjunto de calificaciones R en el que los usuarios expresan, explícita o implícitamente, sus gustos sobre los ítems. El conjunto de calificaciones se representa como una matriz de calificaciónR ∈ Mm×n conm=|U|número de usuarios y n=|I|,

de ítems. Es importante mencionar que rui corresponde al elemento en la u-ésima fila y

la i-ésima columna en la matriz de calificacionesR. Llamamos Ru al vector que contiene

las calificaciones que han proporcionado los usuarios y Ri al vector que contiene las

calificaciones que han recibido las películas.

Nos referimos a un usuario en particular como uU, a un ítem en particular como iI, y a una calificación en particular del usuarioupara el ítemicomorui. El conjunto

M es el conjunto que contiene todos los valores posibles para los elementos rui de R.

Denominamos a este conjunto dominio de puntajes y puede contener diferentes tipos: calificaciones limitadas (e.g.M = [1,2,3,4,5]) donde 5 significa una fuerte preferencia

(32)

r11 r1i r1n

ru1 rui run

rm1 rmi rmn

1 i n

1

u

m

I

Ru

U Ri

´Items

Usuarios

Figura 2.5: Representación de las calificaciones de los usuarios para todos los ítems como una matriz de calificaciónR.

ordinal, donde sus elementos tienen un significado absoluto y solo son significativos en comparación con otros, e.g. [rechazo,indiferencia,acuerdo]. El subconjunto de ítems que el usuariou ha calificado conr6=∅se denominaIuI yIuv

def

=IuIv es el subconjunto

de ítems que han sido calificados por los usuariosuyv. El subconjunto de usuarios que ha calificado al ítemise denominaUiU yUij

def

=UiUj es el subconjunto de usuarios que

han calificado a los ítemsiyj. El usuario para el que calculamos las recomendaciones se denota como el usuario activoaU. Basándonos en la notación introducida, un sistema de recomendación se define como una función f que devuelve, para el usuario objetivo a, un vector a con la calificación predicha para el ítem i en la forma ruiI. Para el

cálculo, la funciónf considera al usuario activoa, así como a todos los demás usuarios en U, todos los ítems en I, un vector de calificación de ítemsRa, la matriz de calificaciones

R y un conjuntoC de calificaciones.

˜

Ra=f(a, U, I,Ra,R,C) (2.1)

con a como el vector de calificación predicho para el usuario activo a. Una vez

que se realizan estas estimaciones, una opción simple es recomendar los ítems con las calificaciones más altas entre todos los puntajes estimados para el usuario objetivo u (usando el supuesto implícito de que un usuario debería estar interesado en los ítems con puntajes altos). Más formalmente, un sistema de recomendación suele proceder de la siguiente manera:

Usando un algoritmo de predicción A, se calculan las calificaciones desconocidas rui (es decir,ruiR). Esta estimaciónA(u, i) la denominamos ˆruia.

Usando un umbral de recomendación T y tomando las calificaciones previamente

(33)

pero común es sugerirle al usuario los ítems iIu con la estimación más alta ˆrui.

Ahora podemos poner en términos formales lo mencionado en la sección 2.1 con respecto a las tres características necesarias para tener bien definido un problema de aprendizaje automático:

• TareaT: Para el usuario upredecir, para el ítem iI, una calificación dentro del rango deC

• Medida de rendimientoP: Porcentaje de predicciones de calificaciones correctas de

ítems iIu para un usuariou

• Experiencia de entrenamientoE: El vector de calificaciones de ítemsRu del usuario

u y el conjunto de ítemsIu

Denominamos al conjunto de tuplas de usuario-ítem con una calificación histórica existente rui como D={(u, i) |uUi, iI, el usuariou ha calificado el itemi}. D se

divide en dos conjuntos disjuntos DE ∩ DP = ∅, el conjunto de entrenamiento DE y el

conjunto de pruebaDP, de modo queDE∪DP =D. La forma en que se separa el conjunto

D se informa para cada conjunto de datos en la sección5.3.

Ilustramos los conceptos anteriores con este pequeño ejemplo de seis usuarios y ocho películas como se ilustra en la Figura 2.6. Hay dieciocho calificaciones conocidas que se usan como conjunto de entrenamiento y siete calificaciones desconocidas para predecir. Cada columna de esta matriz es una película (o un ítem en general), cada fila es un usuario y el número de cada entrada es la calificación, en una escala de 0 a 5 estrellas, de ese usuario para esa película. La mayoría de las entradas están vacías (-), ya que solo unos pocos usuarios calificaron una determinada película. Se nos da una matriz grande pero escasa como esta, y se nos pide predecir algunas entradas faltantes como las siete indicadas por signos de interrogación en las filas 1, 2, 4, 5 y 6 de esta matriz. El sistema de recomendación tiene como objetivo predecir éstas con la mayor precisión posible para poder construir un sistema de alta calidad.

R=

A B C D E F G H

                           

1 − 5 − 2 3 − ? 1

2 4 − 3 1 − ? 3 −

3 − 5 2 − 4 − 4 −

4 ? 5 − − − 1 1 2

5 3 − ? − ? 3 − −

6 − ? − 4 − − ? −

(34)

Los problemas reales son mucho más grandes (con miles de millones de celdas en la matriz) y mucho más escasos (solo alrededor del 1 % de las calificaciones son conoci-das). En este caso, la tarea de filtrado colaborativo puede considerarse como la tarea de completar los valores desconocidos de la matriz de calificación, también llamada la fina-lización la matriz. Después de completarla, la recomendación para un usuario objetivo se forma de aquellos ítems que tienen los valores o calificaciones más altos predichos. En el dominio de los sistemas de recomendación esto también se denomina tarea de predicción ya que, completar calificaciones desconocidas, es equivalente a predecir qué calificación le daría un usuario objetivo a un ítem [Kluver et al., 2018].

2.5.

Predicción de calificaciones y métodos

tra-dicionales

En su trabajo [Aggarwal, 2016], demostró que el problema de finalización de la ma-triz de calificación también se puede ver como un problema de clasificación. De hecho, los valores de calificación desconocidos pueden considerarse como etiquetas de clase. Por ejemplo, cuando trabajamos con calificaciones binarias, todos los ítems se dividen en 2 clases: aquellos que son de interés para el usuario objetivo y los que no lo son. Por lo tanto, la tarea de predecir el valor de las calificaciones, en este caso, será la tarea de predecir la etiqueta de clase de los ítems correspondientes. La relación entre problemas de clasificación y recomendación explica la implementación exitosa de los diversos algo-ritmos de clasificación en los sistemas de recomendación. El autor plantea dos diferencias importantes:

1. En el problema de predicción de calificación no existe la separación entre variable dependiente e independiente. Cada columna es una variable dependiente e inde-pendiente, dependiendo de qué entradas se están considerando para el modelado predictivo en un punto determinado.

2. No hay distinción entre filas de entrenamiento y de prueba porque cualquier fi-la puede contener entradas faltantes, por lo tanto, es mas significativo habfi-lar en términos deentradas de entrenamiento y prueba.

Entonces, podemos considerar nuestro problema de predicción como el de completar la matriz: el conjunto de datos D puede verse como una matriz escasa R ∈ M|I|×|U|

(35)

Parte III

Algoritmos de predicción y

(36)

Capítulo

3

Algoritmos de predicción

En este capítulo presentaremos el predictor base y dos familias de algoritmos de filtrado colaborativo: el método basado en memoria y método basado en modelo, en las secciones 3.1, 3.2 y 3.3, respectivamente. El predictor base nos servirá como punto de partida contra el cuál compararemos el desempeño de estas dos familias de filtrado colaborativo. Por último, en la sección 3.4 describimos las métricas empleadas para la evaluación de los SR.

Contenido

3.1 Predictor base . . . 22

3.2 Filtrado colaborativo basado en memoria . . . 26

3.2.1 Enfoque basado en usuarios:k-NNFUsuarios . . . 28

3.2.2 Enfoque basado en ítems:k-NNFPelículas . . . 33

3.3 Filtrado colaborativo basado en modelo . . . 36

3.3.1 SVD sin segos . . . 38

3.3.2 SVD con sesgos . . . 42

3.4 Evaluación de algoritmos de recomendación . . . 44

3.4.1 Métricas para la precisión de predicción . . . 45

3.4.2 Métricas para la precisión de clasificación . . . 45

3.4.3 Métricas basadas en clasificación (ranking) . . . 47

3.1.

Predictor base

(37)

recomendación extremadamente inexacto. Entonces, podemos incorporar dos parámetros; bi para modelar la calidad de cada película i en relación con el promedio ¯r y bu para

modelar el sesgo de cada usuariouen relación con ¯r. De esta manera, podemos representar la predicción de calificación de la películaipor el usuario objetivou como:

ˆ

rui= ¯r+bu+bi (3.1)

La ecuación (3.1) tiene tres variables: la calificación global promedio ¯r en el sistema, el sesgo del usuario bu ∈ RU×1 que representa si el usuario tiende a calificar alto o

bajo en promedio y el sesgo bi ∈RI×1 que representa si un película está, en promedio,

calificada mejor o peor que el promedio. Al combinar las tres variables nos podemos dar cuenta simultáneamente de las diferencias entre usuarios y películas, aunque de una manera muy ingenua. Por ejemplo, observando la Figura 2.6, la película C puede tener unbi= 1.2 pero el usuario 5 tiende a ser un crítico severo con unbu=−0.5. Por lo tanto,

si el promedio global es ¯r = 3.6 podríamos predecir que el usuario 5 calificaría a C con 3.6 + 1.2−0.5 = 4.3 estrellas. Por último, debemos encontrar los sesgosbu ybi de modo

tal que las predicciones arrojadas por el predictor base ˆrui estén lo más cerca posible de

las calificaciones conocidas. Los sesgos se calculan resolviendo un problema de mínimos cuadrados regularizado:

C= 1

|D|

X

∀(u,i)∈D

(ruirˆui)2 (3.2)

= 1

|D|

X

(u,i)∈D

[rui−(¯r+bu+bi)]2

que puede ser resuelto de manera eficiente mediante el Descenso de Gradiente Esto-cástico como discutiremos en la sección3.1. Aquí,C es nuestra función de costo y|D| es

la cantidad de entradas en el conjunto de entrenamiento. Para el conjunto de parámetros del modelo Θ = (bu, bi) obtenemos los valores Θ óptimos tal que:

ˆΘ = min

Θ C (3.3)

= min Θ

1

|D|

X

(u,i)∈D

[rui−(¯r+bu+bi)]2+λ(b2u+b2i)

El primer término en la ecuación (3.3) se encarga de encontrar losbus ybis y el segundo

términoλ(b2

u+b2i), conλrepresentando la tasa de regularización, evita el sobreajuste de

(38)

Optimización por Descenso Estocástico de Gradiente

Cuando necesitamos optimizar una función de costoC de la formaC(Θ) =P

kCk(Θ)

donde Θ es un parámetro (probablemente multidimensional), una técnica muy popular empleada es el Descenso Estocástico de Gradiente [Bottou and Bousquet, 2008]. Para hacerlo, podemos tomar la derivada ∂Ck

Θ e intentar encontrar un mínimo iterativamente usando la regla Θ ←Θ−γ∂Ck

Θ, donde γ es la tasa de aprendizaje (o tamaño del paso). Esta actualización se realiza en todos loskdurante un número determinado de veces. En nuestro caso, el objetivo del Descenso Estocástico de Gradiente es aproximar los sesgos de los usuarios y películasbu ybi, respectivamente. Esto lo hacemos usando un algoritmo

de aprendizaje que minimiza el error cuadrático medio en un conjunto de calificaciones conocidas. Nuestra función de costo nos queda:

C(bu, bi) =

X

∀(u,i)∈D

[rui−(¯r+bu+bi)]2+λ(b2u+b2i) (3.4)

SeaCui el costo asociado con una única predicción rui:

Cui= [rui−(¯r+bu+bi)]2+λ(b2u+b2i)

Denotando errui el error de predicción (errui

def=

ruirˆui

def=

ruir¯+bu +bi), la

derivada de Cuicon respecto a bu es:

∂Cui

∂bu =−errui+

λbu (3.5)

Del mismo modo, la derivada de Cui con respecto a bi es:

∂Cui

∂bi

=−errui+λbi (3.6)

Luego actualizamos los pesos en la dirección opuesta al gradiente:

bubu+γ(erruiλbu) (3.7)

bibi+γ(erruiλbi) (3.8)

Contemplando estas derivadas, el problema de optimización puede resolverse de mane-ra simple siguiendo el Algoritmo1. Los sesgosbu ybi son inicializados de forma aleatoria

y se recorre cada calificación un número fijo de veces cada vez que aplica la regla de aprendizaje. Eventualmente, debería converger a los vectoresbuybi. Luego podemos

cal-cular la calificación pronosticada para el usuarioude la películaicomo ˆrui= ¯r+bu+bi.

(39)

Algoritmo 1:Descenso de Gradiente Estocástico

Input: Un conjunto de entradasD, un promedio global ¯r, una penalización de

regularización λ, cantidad de épocas ny una tasa de aprendizaje γ. Output: bu ybi, los sesgos de los usuarios y las películas.

Inicialización:

Aleatoriamente inicializar bu ybi

for epoca∈[1, n]do

for each entrada (u, i) de D:

errui=rui−¯r+bu+bi

bu =bu+γ(erruiλbu)

bi =bi+γ(erruiλbi)

end end

Algoritmo 2:Predictor Base

Input: Un datasetD, un promedio global ¯r, una tasa de regularización λy una tasa de aprendizaje γ.

Output: bu ybi, los sesgos de los usuarios, las películas y el número óptimo de

épocas n∗.

Particionar Den dos conjuntos: DE yDP

Aleatoriamente inicializar bu ybi.

n= 0

loop hasta que se cumpla la condición terminal. Una época: n=n+ 1

for each entrada (u, i) de DE:

ˆ

rui= ¯r+bu+bi

errui=rui−ˆrui

/* Actualizar las variables de acuerdo a las ecuaciones (3.5) y (3.6) */

bu =bu+γ(erruiλbu)

bi =bi+γ(erruiλbi)

end

Calcular el RMSE en DP, usando la ecuación (3.44)

if el RMSE en D2 fue mejor que en cualquier época anterior: b

u =bu,bi =bi,n∗ =n;

end

condición terminal: RMSE en DP no disminuye.

(40)

3.2.

Filtrado colaborativo basado en memoria

Primero damos una visión general sobre las dos variantes del filtrado colaborativo basado en memoria, y luego, en la sección3.2.1y3.2.2, las describiremos en detalle.

Los métodos más populares basados en memoria son los basados en vecinos más cercanos. Estas técnicas utilizan datos como “me gusta”, votos, clics, etc., para establecer correlaciones entre usuarios o ítems para recomendar un ítem ique nunca ha sido visto por un usuariou. Las recomendaciones son generadas a partir de dos pasos principales: (1) encontrar los usuarios o ítems más similares, (2) seleccionar recomendaciones del conjunto de vecinos derivados de los usuarios o ítems más similares. Cada paso se implementa de manera ligeramente diferente dependiendo de si la técnica particular en uso está basada en el usuario o en el ítem. Elprimer pasoconsiste en encontrar los usuarios que son más similares al usuario objetivo. Esta es la búsqueda clásica de Vecinos Más Cercanos (k-NN), que consiste en encontrar losk1ítems más cercanos a un elemento dado (es decir, un usuario o un ítem) de acuerdo con una métrica de similitud, entre todos los elementos del sistema. Con respecto a la métrica de similitud, las discutimos en detalle en las secciones

3.2.1y3.2.2. Elsegundo paso consiste es seleccionar los ítems que son desconocidos y

más relevantes para el usuario objetivo, entre los vecinos más cercanos calculado en el paso anterior. Los ítems que califican como vecinos más cercanos dependen de si el sistema utiliza el enfoque basado en usuarios [Resnick et al., 1994] o enfoque basado en ítems

[Sarwar et al., 2001]. En el último caso, los vecinos más cercanos son los ítems vecinos

de cada ítem del perfil del usuario objetivo. En el primer caso, son los ítems del perfil de cada usuario vecino del usuario objetivo. Luego, la forma principal de seleccionar los ítems más relevantes es la recomendación top-N, es decir, clasificar los vecinos en forma descendente de similitud y luego recomendar losN mejor clasificados.

Para un mejor entendimiento, los dos enfoques son típicamente expresados como:

• Basado en usuarios: A los usuarios que son similares a usted también les gustó /

vieron / compraron...

• Basado en ítems: A los usuarios que les gustó / vieron / compraron esto también

les gustó / vieron / compraron...

Una ventaja de los enfoques basados en ítems es que pueden tener pre-calculadas las similitudes de los ítems para producir recomendaciones a nuevos usuarios que ingresen al sistema y, de la misma manera, los enfoques basados en usuarios pueden recomen-dar nuevos ítems teniendo pre-calculadas las similitudes de los usuarios. Para actualizar el sistema de recomendación solo necesitamos recalcular las similitudes que involucran nuevos datos (usuarios, ítems o interacciones usuario-ítem). Una desventaja del enfoque basado en memoria es que toda la base de datos (matriz de calificaciones) es cargada en memoria al momento de hacer las predicciones o recomendaciones. Esto tiene un cos-to computacional muy elevado conforme aumenta la cantidad de usuarios. Para algunos

(41)

sitios de streaming online de videos como Netflix con millones de usuarios registrados, calcular las similitudes entre éstos y elegir vecinos en tiempo real es difícil de implemen-tar. Como resultado, este enfoque es más adecuado cuando el número de ítems es mayor que el de los usuarios y el grupo existente en el sistema no cambia con frecuencia. En el enfoque basado en ítems sucede lo mismo, de modo que es mas adecuado implementarlo cuando el número de usuarios es mayor que el de ítems [Yang et al., 2016].

Carol

Alice

MD

Bob

Charlie

r

Titanic

r

Terminator

r

Avatar

r

Matrix

r

Star Wars

(a) Enfoque basado en Usuarios

Carol

MD

Bob

Alice

r

The Equalizer

r

Terminator

r

John Wick

r

Matrix

(b) Enfoque basado en Ítems

Figura 3.1: Los dos enfoques utilizados en el método basado en memoria.

(42)

3.2.1.

Enfoque basado en usuarios:

k

-NN

FUsuarios

En este método se predice la calificación rui de un usuarioupara una nueva película

iutilizando las calificaciones otorgadas aipor los Lusuarios más similares a u. Supon-gamos que tenemos, para cada usuario v 6= u un valor duv que representa la similitud

entreu yv. Más adelante, en la sección3.2.1discutiremos sobre cómo podemos calcular esta similitud. LosL vecinos más cercanos deu, denotado porL(u), son losLusuarios v con la mayor similitud duv a u. Sin embargo, solo los usuarios que han calificado el ítem

ipueden usarse en la predicción de rui, y en su lugar consideramos a los Lusuarios más

similares a u que han calificadoi. Es decir, las similitudes u yv se calculan en función del conjunto de películas que ambos usuarios han calificadoIuv=IuIv. Para calcular

la predicción de calificación rui del usuariou para la película i, debemos seleccionar los

Lusuarios más similaresLL

i (u) que calificaron la películai. Este conjunto de usuarios

si-milares es un subconjunto de todos los usuariosLL

i(u)⊂Uique han calificado la película

i.

ˆ

rui= 1 LLi (u)

X

v∈LL i(u)

rvi (3.9)

Un problema con la ecuación (3.9) es que no tiene en cuenta el hecho de que los vecinos pueden tener diferentes niveles de similitud. Una solución común a este problema es considerar la contribución de cada vecino por su similitud con el usuariou. Sin embargo, si estos pesos no suman 1, las calificaciones pronosticadas pueden estar muy fuera del rango de valores permitidos. En consecuencia, es habitual normalizar estos pesos de modo que la predicción de calificación nos queda:

ˆ rui=

P

v∈LL i(u)

duv·rvi

P

v∈LL i(u)

|duv|

(3.10)

Métricas para el cálculo de similitud entre usuarios

Los pesos de similitud tienen un rol doble en los métodos de recomendación basados en vecinos más cercanos: (i) permiten seleccionar vecinos confiables cuyas calificaciones se usan en la predicción y (ii), proporcionan los medios para dar más o menos importancia a estos vecinos en la predicción. El cálculo de los pesos de similitud es uno de los aspectos más críticos de la construcción de un sistema de recomendación basado en vecinos más cercanos, ya que puede tener un impacto significativo tanto en su precisión como en su rendimiento [Desrosiers and Karypis, 2011]. Calculamos las similitudes duv entre el

(43)

puede estimar como la calificación promedio dada a i por estos vecinos. A continuación definimos las métricas que son utilizadas comúnmente para este enfoque.

A B

1 r1A r1B

2 r2A r2B

Pel´ıculas

Usuarios

dAB

d12

Figura 3.2: Correlación usuario-usuario.

Definición 4. (Similitud del Coseno). La similitud del Coseno entre dos usuarios u yv se define como:

dCoseno

uv def

= P

iIuv

rui·rvi

r P

iIu

r2

ui·

P

iIv

r2

vi

(3.11)

donde Iuv es el conjunto de películas calificadas por los usuarios u y v, Iu es el

conjunto de todas las películas calificadas por el usuario u, y Iv es el conjunto de todas

las películas calificadas por el usuariov. Un problema con esta métrica es que no considera las diferencias en la media y la varianza de las calificaciones hechas por los usuarios u y v. Una métrica que compara las calificaciones donde los efectos de la media y la varianza han sido eliminados es la similitud de Pearson, la cuál puede ser vista como una versión centrada en la media de lasimilitud del Coseno.

Definición 5. (Similitud de Pearson). La similitud de Pearson entre dos usuariosu yv se define como:

duvP CC def=

P

iIuv

(ruir¯u)·(rvir¯v)

rP

iIu

(ruir¯u)2·

rP

iIv

(rvir¯v)2

(3.12)

donde ¯ru y ¯rv son la calificación promedio de los usuariosu yv respectivamente.

Una métrica de similitud más robusta fue propuesta por [Bell and Koren, 2007]. Es, simplemente, la similitud de Pearson excepto que en lugar de centrar las calificaciones con sus promedios, se centran con los predictores base (ver sección3.1).

Definición 6. (Similitud de Pearson centrada en el predictor base). La similitud de Pearson centrada en el predictor base entre dos usuariosu yv se define como:

ˆ βuv

def

=

P

iIuv

˜ rui·r˜vi

r P

iIu

˜ r2

ui·

r P

iIv

˜ r2

vi

=

P

iIuv

(ruibui)·(rvibvi)

rP

iIu

(ruibui)2·

rP

iIv

(rvibvi)2

(44)

con ˜rui y ˜rvi:

˜

rui=rui−(¯r+bu+bi)

˜

rvi=rvi−(¯r+bu+bi)

Considerando que la gran mayoría de las calificaciones son desconocidas, se espera que algunos usuarios compartan apenas una pequeña cantidad de películas en común. Como podemos ver, el cálculo de la similitud de Pearson se basa solo en películas comunes entre dos usuarios. En consecuencia, la fiabilidad de la métrica se vuelve más confiable cuando aumenta la cantidad de películas que u y v tienen en común. Un coeficiente de correlación reducido que ayuda a evitar el sobreajuste cuando hay pocas películas en común se integra en la ecuación (3.13) para crear una nueva métrica de similitud llamada PCCBaseline.

duvP CCBaseline = |Iuv| −1

|Iuv| −1 +ξ ·

ˆ

βuv (3.14)

donde|Iuv|es la cantidad de películas calificadas por los usuariosuyv. Denominamos

a ξ como el coeficiente de contracción [Koren and Bell, 2011]. El cálculo de esta métrica se detalla en el Algoritmo 3.

Después de elegir algunas de las métricas antes mencionadas, calculamos y recopilamos todas las similitudes{duv} en una matrizD deU×U que contenga todos los valores de

similitud de los usuarios. Luego, para un usuario dado u, clasificamos todos las demás usuarios, indexados por v, en orden descendente de similitud |duv| y seleccionamos los

mejores L usuarios. El parámetro L puede ser un número entero entre 1 y U −1. A

continuación resumimos el proceso de estimación del enfoque basado en usuarios en una secuencia de operaciones.

1. El usuario u se compara con todos los demás usuarios del conjunto de datos en función de una métrica de similitud para encontrar vecinos mas similares au.

2. Los vecinos se filtran según el umbral L.

3. Las películas calificadas por los vecinos del usuario u se agregan. La agregación puede ser simple o ponderada.

4. El conjunto agregado de películas final se procesa posteriormente para obtener el conjunto de predicción final. El procesamiento posterior puede ser una clasificación basada en la predicción top-N o un filtrado basado en el umbral.

Referencias

Documento similar

Para construir modelos de predicción se han empleado diferentes técnicas de inteligencia artificial como son los árboles de regresión, las máquinas de aprendizaje,

Para su respuesta es necesario el empleo de textos legales, manuales y monografías especializadas, éstas últimas siempre sugeridas por el profesor (bien de forma explícita, bien

Durante el desarrollo del PE los ayudantes (equipo docente) proveen a los responsables de datos sobre las empresas del polígono y les plantean problemas concretos que el

1.2.1 Discriminante de Bayes para distribuciones Gaussianas La solución de la Máquina de Probabilidad Minimax de Mínimo Error (Minimum Error Minimax Probability Machine, MEMPM)

Tambien como el diseño fue experimental, se proporcionó información del marco teórico de la presente investigación a los estudiantes de la muestra que pertenecían al grupo

 Se identificó la prueba no paramétrica de Friedman como las más utilizadas en el diseño de experimentos para validar algoritmos de aprendizaje

En lugar de utilizar un modelo para predecir que clasificador (entre un conjunto de clasificadores dado) va a obtener los mejores resultados para un determinado dataset, usaremos

Si comparamos los resultados se puede observar como los genes con un mayor n´ umero de SNPs en el conjunto de datos son claramente los que m´ as selecciona, pero cabe destacar una