Desarrollo de una aplicación web para visualizar e interactuar con resultados de evaluaciones de sistemas de recuperación de información 

Objetivos

  • Desarrollar una aplicación web con una interfaz sencilla y fácil de manejar.
  • Ofrecer visualizaciones que permitan a los usuarios entender mejor los conjuntos de datos y los métodos de recuperación de información.
  • El estudio de los métodos de recuperación de información se centrará en algoritmos de recomendación.

Motivación

  • El desarrollo de metodologías de recuperación de información es uno de los campos que más recursos está ocupando. 
  • Escasez de aplicaciones que permitan a los desarrolladores entender y trabajar con los algoritmos que implementan.

Concretando la aplicación

Proceso a través del cual se analizaron las funcionalidades que se quería incorporar a la aplicación con el fin de acotarlas para facilitar su desarrollo.

  • Visualización del conjunto de datos

Concretando la aplicación

  • Resultados de las recomendaciones

Concretando la aplicación

  • Resultados de las evaluaciones

Concretando la aplicación

Algoritmos de recomendación

Definición

Tecnología que implementa una funcionalidad mediante la cual se sugiera al usuario elementos en los que pudiera estar interesado basándose en el interés que él mismo ha mostrado en el pasado, bien en otros elementos o según el interés que han mostrado otros usuarios con características similares.

Tipos de algoritmos

  • Algoritmos basados en contenido

  • Algoritmos de filtrado colaborativo

  • Híbridos

Tipos de algoritmos

  • Algoritmos basados en contenido

Tipos de algoritmos

  • Algoritmos de filtrado colaborativo

Algunos algoritmos de recomendación

  • Item KNN

  • User KNN

  • Factorización de matrices

  • Baseline con usuarios e ítems

Métodos de evaluación

  • La evaluación se compone de dos fases:

    • ​Entrenamiento
    • Test
  • Los algoritmos pueden ser de dos tipos:

    • ​Métodos estadísticos (MAE, NMAE, RMSE)
    • Métricas de decisión 

Análisis de la aplicación

Ruby on Rails

  • Framework para el desarrollo web ágil
  • Modelo-Vista-Controlador
  • Proporciona muchas facilidades en la programación
  • Soporta multitud de motores de bases de datos

SQLite

  • Fácil migración de la base de datos
  • Utilizado en fase de desarrollo y pruebas
  • Se cambiará a MySQL cuando el proyecto se pase a fase de producción

MyMediaLite

  • Librería de sistemas de recomendación escrita en C#
  • Gran cantidad de algoritmos de recomendación
  • Implementa funciones de evaluación de los algoritmos
  • Por motivos de rendimiento, se ha decidido cargar las recomendaciones previamente en la base de datos

MovieLens

  • Se trata del dataset más popular en el desarrollo de sistemas de recomendación
  • Formato de los datos óptimo para trabajar con MyMediaLite
  • Ratings en escala numérica de 1 a 5

D3js

  • Librería de JavaScript para la visualización de datos
  • Proporciona métodos para relacionar datos con elementos HTML
  • Multitud de tipos de visualizaciones totalmente personalizables
  • Se han diseñado funciones de creación, actualización y destrucción de gráficas para cada visualización introducida en la aplicación

Demo

Conclusiones

  • Dificultad a la hora de querer limitar las opciones de visualización de la aplicación

  • Gran cantidad de posibilidades relativas a los algoritmos de recomendación

Trabajo futuro

  • Número de visualizaciones que se puede incluir prácticamente ilimitado

  • Adaptación de la aplicación para que funcione con distintos conjuntos de datos

  • Carga de datos de recomendadores propios

  • Posibilidad de llevar a cabo análisis de datos más exhaustivos.

Gracias

Back up

Diseño de la base de datos

Ejemplo carga de datos

Script de generación y carga de recomendaciones

Script de generación de recomendaciones