• No results found

Para esta implementación en particular, previo a la ejecución del algoritmo de filtrado colaborativo y su posterior ejecución, se introdujeron algunas mejoras al conjunto de datos dado. La figura 4.11 muestra el funcionamiento general de este módulo y cuales son los pasos previos que se utilizan para mejorar la calidad de las recomendaciones.

Figura 4.11:

Funcionamiento de Ratings Inferidos

El primer paso que se realiza es la selección de candidatos basados en preferencias o PACS (del inglés, Preference Aware Candidate Selection

​ ), presente en la figura.

Este componente, selecciona un conjunto de expertos locales y lugares pertenecientes a un área específica utilizando el algoritmo de selección de candidatos, garantizando así que el número de lugares seleccionados no exceda el de un parámetro K y la distribución de los expertos locales seleccionados encajen con las preferencias del usuario.

Figura 4.12:

Algoritmo PACS [7].

Dado un punto P en el que el usuario se encuentra y un rango R especificado por el mismo, el algoritmo tomará los V’ lugares dentro del radio y los Uusuarios que hayan visitado lugares en V

​ ’ (Línea 1 y 2).

Luego inicia el proceso de selección de expertos locales recorriendo los nodos del árbol de preferencias del individuo (que representan categorías) desde sus hojas, moviéndose hacia arriba si la cantidad de lugares requerida aún no es cumplida.

Esta estrategia soluciona el problema del arranque en frío, ya que no depende tanto de del conocimiento del usuario en dicha región, sino que se basa en el conocimiento de los expertos locales y su similitud con ellos para recomendar.

Cuando se seleccionan lugares en un nivel del árbol, escogemos el nodo con menor valor wmin. Después, calculamos un valor K = | u.wc / wmin |, donde u.wc es la preferencia del

usuario u para una categoría c, para decidir el número de expertos locales que se seleccionarán de la categoría y se seleccionarán los top-k usuarios con mayor autoridad en dicha categoría, añadiendoles al conjunto E de candidatos expertos.

Los lugares visitados dentro de R por los usuarios en E serán añadidos a V.

El punto de corte del algoritmo será cuando se consiga la cantidad suficiente de lugares requerida en V

​ .

El algoritmo mejora significativamente la eficiencia, ya que no necesita computar la similitud entre el usuario y el resto de los usuarios dentro del área.

De esta forma, también son excluídos los usuarios que tienen poco conocimiento en dicha región.

Una vez ejecutado el algoritmo PACS, se aplica una segunda mejora que consiste en el cálculo de calificación de lugares. Esta parte del sistema infiere la calificación que un usuario le asignaría a un lugar si lo visitara.

Para esto, primero calculamos la función de similitud de usuario, vista en la sección 4.2.4.2, entre el individuo en cuestión y cada experto local (seleccionado por el algoritmo PACS).

Luego, ubicamos los expertos locales y lugares candidatos seleccionados por el Algoritmo en la matriz de preferencias, que será el modelo a utilizar por el algoritmo de filtrado colaborativo basado en usuario para inferir calificaciones del usuario a lugares candidatos.

La idea detrás del filtrado colaborativo es que los usuarios similares califican los ítems similarmente.

Como los usuarios normalmente no dejan calificaciones explícitas en los lugares, hasta ahora se ha utilizado el número de visitas a un determinado lugar como una calificación explícita. El feedback implícito favorece a solucionar el problema de la dispersidad de los datos, ya que cumple el rol de completar la matriz de calificaciones que le sirve como entrada al algoritmo.

La calificación de un usuario u a un lugar v es calculada como:

Ecuación 4.9:

Donde v(u′, v) hace referencia al número de visitas de un usuario (u’,v).

La función Sim(u,u’) es la comparación de los árboles de los usuarios u y u’, mencionada anteriormente en la sección 4.2.4.2. Así es como se generan recomendaciones para un usuario dado. Por último, el sistema deberá encargarse de retornar los N lugares con las clasificaciones calculadas de mayor valor.

4.2.4.4. Factorización de Matrices

Otra de las técnicas utilizadas para el recomendador fue la de factorización de matrices. Como mencionamos anteriormente, en el Capítulo 2, esta técnica está basada en feedback implícito, lo cual ayuda a resolver el problema de la dispersión de los datos.

Para implementar esta técnica, se utilizaron componentes existentes provistos por Apache Mahout. Los mismos se pueden utilizar implementando una interfaz para construir un recomendador basado en factorización de matrices. La idea detrás de esto es la de proyectar los usuarios e ítems dentro de un espacio de características de dimensión f

​ , e intentar

optimizar los vectores y , de modo tal que el resultado de sea lo más cercano posible a R como se ha descrito en el Capítulo 2, en la Ecuación 2.2.

Siguiendo con los detalles de implementación, para lograr tener esta técnica funcionando se realizaron dos implementaciones diferentes. La primera consiste en la Descomposición de Valores Singulares, de ahora en adelante SVD, y la segunda Descomposición de Valores Singulares utilizando feedback implícito (SVD++).

La primer solución, hace uso de la implementación básica de Mahout, donde lo único que debemos pasarle como parámetro es el modelo de datos a utilizar y el método calcula los valores de P y Q haciendo uso de la distribución normal de Gauss.

Si bien Apache Mahout cuenta además con una implementación del algoritmo SVD++, la misma no acepta como parámetros las características de los usuarios e ítems y se basa en el método de factorización del algoritmo del gradiente descendente (AGD), que utiliza valores aleatorios entre 0 y 1 para inicializar los vectores .

Debido a esto, la segunda implementación surge de la imposibilidad de utilizar las categorías dentro de la dimensión de características en el método de factorización SVD++. Por lo que esta nueva solución consta de una adaptación al método SVD++ para que los

vectores P y Q sean generados haciendo uso de la información de los usuarios y lugares respectivamente. Finalmente la dimensión f

​ estará dada por el listado de las categorías del

conjunto de datos.

Figura 4.13:

Elementos en la factorización de matrices

Como se aprecia en la figura, R es la matriz de preferencia de los usuarios y los lugares.

Dentro de P, están los valores que representan la preferencia de los usuarios por cada categoría, y dicho valor será extraído de la base de datos haciendo uso de la estructura de datos generada para calcular los expertos locales que era calculada mediante la realización de TF-IDF.

La matriz Q, estará dada por el listado de las categorías que poseen los distintos lugares. El valor ubicado en dicha posición contendrá un 0 si la categoría no se encuentra relacionada al lugar o un 1 si la categoría se haya presente.

Las matrices P y Q serán entregadas a una redefinición de la clase SVD++. La nueva definición de SVD++ será modificada para tomar los valores de dichas matrices en lugar de utilizar la distribución de Gauss para inferir los ratings y así utilizar los valores asociados a las características de los usuarios y lugares.

Con esta nueva implementación, se dispondrá de un recomendador que utilice las categorías de los lugares y el grado de asociación a cada usuario para generar recomendación con el método de factorización de matrices.

Related documents