DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

48
1 DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO EN FRECUENCIA DE CONSULTAS Y FILTRADO COLABORATIVO PARA CONVOCATORIAS Y BECAS DE PROYECTOS DE INVESTIGACIÓN SINDY TATIANA MONCADA PISSO UNIVERSIDAD DE SAN BUENAVENTURA CALI FACULTAD DE INGENIERÍA SANTIAGO DE CALI 2016

Transcript of DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

Page 1: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

1

DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO EN

FRECUENCIA DE CONSULTAS Y FILTRADO COLABORATIVO PARA

CONVOCATORIAS Y BECAS DE PROYECTOS DE INVESTIGACIÓN

SINDY TATIANA MONCADA PISSO

UNIVERSIDAD DE SAN BUENAVENTURA CALI

FACULTAD DE INGENIERÍA

SANTIAGO DE CALI

2016

Page 2: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

2

DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO EN

FRECUENCIA DE CONSULTAS Y FILTRADO COLABORATIVO PARA

CONVOCATORIAS Y BECAS DE PROYECTOS DE INVESTIGACIÓN

SINDY TATIANA MONCADA PISSO

TRABAJO DE TESIS PARA OPTAR POR EL TITULO DE:

INGENIERA DE SISTEMAS

Directora Trabajo de grado:

EMILIA ROCIO SEGOVIA

UNIVERSIDAD DE SAN BUENAVENTURA CALI

FACULTAD DE INGENIERÍA

SANTIAGO DE CALI

2016

Page 3: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

3

CONTENIDO

1. INTRODUCCIÓN ............................................................................................... 6

2. DESCRIPCIÓN DEL PROBLEMA ...................................................................... 7

3. JUSTIFICACIÓN ................................................................................................ 8

4. OBJETIVOS ....................................................................................................... 9

4.1. OBJETIVO GENERAL ..................................................................................... 9

4.2. OBJETIVOS ESPECÍFICOS ............................................................................ 9

5. MARCO TEÓRICO ........................................................................................... 10

5.1. SISTEMAS DE RECOMENDACIÓN ............................................................... 10

5.1.1.TÉCNICAS DE RECOMENDACIÓN ............................................................. 10

5.1.1.1.BASADA EN CONTENIDO ....................................................................... 10

5.1.1.1.1.PERFIL DE USUARIO ............................................................................ 11

5.1.1.1.2.INFERENCIA DEL CONOCIMIENTO ..................................................... 11

5.1.1.2. FILTRADO COLABORATIVO ................................................................... 12

5.1.1.2.1. CLASIFICACIÓN ................................................................................... 13

5.1.1.3. BASADA EN UTILIDAD ............................................................................ 14

5.1.1.4. DEMOGRÁFICA ....................................................................................... 14

5.1.1.5. HÍBRIDOS ................................................................................................ 14

5.2. RECOMENDACIONES BASADAS EN FRECUENCIA DE CONSULTAS Y FILTRADO COLABORATIVO .......................................................................... 16

5.2.1. RECOMENDACIONES BASADAS EN FRECUENCIA DE CONSULTA ....... 16

5.2.2. RECOMENDACIONES BASADAS EN FILTRADO COLABORATIVO ......... 17

6. ESTADO DEL ARTE ......................................................................................... 19

7. ACTIVIDADES DEL PROYECTO ...................................................................... 20

7.1. FASE EXPLORATORIA .................................................................................. 20

7.2. FASE DE DESARROLLO ............................................................................... 20

7.3. FASE DE MEDICIÓN ...................................................................................... 20

8. DESCRIPCIÓN DE LA SOLUCIÓN.................................................................... 22

8.1. ALCANCE FUNCIONAL .................................................................................. 22

8.2. REQUERIMIENTOS DEL SISTEMA ............................................................... 22

8.3. TECNOLOGÍAS Y HERRAMIENTAS DE DESARROLLO ............................... 24

8.4. DISEÑO .......................................................................................................... 25

8.4.1. ARQUITECTURA DE LA SOLUCIÓN .......................................................... 25

8.4.2.MODELO RELACIONAL DE LA BASE DE DATOS....................................... 27

Page 4: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

4

8.4.3. DIAGRAMA DE CASOS DE USO ................................................................ 30

8.4.4. DIAGRAMA DE SECUENCIA ...................................................................... 32

8.5. IMPLEMENTACIÓN DE SERVICIO WEB ....................................................... 33

9. PRUEBAS DE PROTOTIPOS DE RECOMENDACIÓN ................................... 34

9.1. CASOS DE EVALUACIÓN ............................................................................ 34

9.1.1. RECOMENDACIONES FP-GROWTH Y COLABORATIVO ....................... 34

9.1.2. RECOMENDACIONES COLABORATIVO + FP-GROWTH ........................ 35

9.1.3. RECOMENDACIONES FP-GROWTH + COLABORATIVO ........................ 35

9.2. DATOS DE PRUEBAS .................................................................................. 36

9.3. EJECUCIÓN DE PRUEBAS .......................................................................... 37

9.3.1. CASO DE EVALUACIÓN (RECOMENDACIONES FP-GROWTH

Y COLABORATIVO) ...................................................................................... 37

9.3.2. CASO DE EVALUACIÓN (RECOMENDACIONES COLABORATIVO

+ FP-GROWTH) .............................................................................................. 39

9.3.3. CASO DE EVALUACIÓN (RECOMENDACIONES FP-GROWTH

+ COLABORATIVO) ........................................................................................ 40

9.4. EVALUACIÓN DE RESULTADOS ................................................................. 41

9.5. SELECCIÓN DE CASO A IMPLEMENTAR ................................................... 43

10. SOLUCIÓN DE PROBLEMÁTICAS DE RECOMENDACIONES ...................... 44

11. TRABAJOS A FUTURO ................................................................................... 45

12. CONCLUSIONES ............................................................................................ 46

13. REFERENCIAS ................................................................................................ 47

Page 5: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

5

LISTA DE FIGURAS

1. DIAGRAMA DE ACTIVIDADES........................................................................ 21

2. ARQUITECTURA DEL SISTEMA ..................................................................... 25

3. CONVOCATORIAS PÁGINA COLCIENCIAS ................................................... 27

4. MODELO ENTIDAD RELACIÓN ...................................................................... 28

5. CASO DE USO GENERAR RECOMENDACIÓN ............................................. 30

6. DIAGRAMA DE SECUENCIA GENERAR RECOMENDACIÓN ....................... 32

7. SERVICIO WEB ............................................................................................... 33

8. RECOMENDACIONES FP-GROWTH Y COLABORATIVO ............................. 34

9. RECOMENDACIONES COLABORATIVO + FP-GROWTH .............................. 35

10. RECOMENDACIONES FP-GROWTH + COLABORATIVO .............................. 35

11. PRUEBA FP-GROWTH Y COLABORATIVO USUARIO 1 ............................... 37

12. PRUEBA FP-GROWTH Y COLABORATIVO USUARIO 2 ............................... 38

13. PRUEBA COLABORATIVO + FP-GROWTH USUARIO 1 ................................ 39

14. PRUEBA COLABORATIVO + FP-GROWTH USUARIO 2 ................................ 39

15. PRUEBA FP-GROWTH + COLABORATIVO USUARIO 1 ................................ 40

16. PRUEBA FP-GROWTH + COLABORATIVO USUARIO 2 ................................ 40

17. GRÁFICO RECOMENDACIONES FP-GROWTH Y COLABORATIVO ............ 41

18. GRÁFICO RECOMENDACIONES COLABORATIVO + FP-GROWTH ............. 41

19. GRÁFICO CASOS 1,2 Y 3 USUARIOS 1 Y 2 ................................................... 42

LISTA DE TABLAS

1. REQUERIMIENTO #1 ...................................................................................... 22

2. REQUERIMIENTO #2 ...................................................................................... 23

3. REQUERIMIENTO #3 ...................................................................................... 23

4. REQUERIMIENTO #4 ...................................................................................... 23

5. TECNOLOGÍAS Y HERRAMIENTAS ............................................................... 24

6. GUIÓN DE CASO DE USO .............................................................................. 31

7. DATOS DE PRUEBAS ..................................................................................... 36

8. PORCENTAJES DE RESULTADOS ............................................................... 43

Page 6: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

6

1. INTRODUCCIÓN

En la Universidad de San Buenaventura Cali actualmente se conforman grupos

de investigación, los cuales se componen de estudiantes, profesores y otros,

estos deben realizar búsquedas en diferentes páginas de internet para

encontrar información acerca de convocatorias y/o becas de su intereses,

haciendo que muchas veces se ignoren o no se encuentren convocatorias y/o

becas que podrían beneficiar algún proyecto de investigación.

El grupo de investigación del LIDIS se encuentra desarrollando un proyecto de

llamado “Plataforma E‐Science 3.0”, el cual se describe en el artículo escrito por (Barraza, Ordoñez, & Segovia, 2014), el cual se enfoca en el desarrollo un grupo de proyectos, herramientas entre las cuales se encuentra el observatorio de convocatorias, que busca dar solución al manejo de información de convocatorias y becas para los investigadores de la universidad, este proyecto a su vez se encuentra dividido en los siguientes tres sub proyectos: 1. Desarrollo de un portal web para optimizar la gestión de búsqueda de

información para convocatorias y becas. 2. Caracterización de información por algoritmos Information Retrieval (IR). 3. Desarrollo de un sistema de recomendaciones basado en frecuencia de

consultas y filtrado colaborativo para convocatorias y becas de proyectos de investigación.

El observatorio de convocatorias requiere desarrollar tres herramientas independientes, para recopilar, clasificar y filtrar información de convocatorias, estos sub proyectos se deben permitir integrar entre sí al final de su desarrollo para la implementación. El presente proyecto se enfoca en el tercer sub proyecto, basándose en las

tecnologías planteadas en el plataforma E-Science, desarrollar un sistema

hibrido de recomendaciones que permita a los investigadores acceder a

información filtrada de convocatorias y becas, utilizando datos recopilados de

valoraciones e historiales de consulta de usuarios.

Page 7: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

7

2. DESCRIPCIÓN DEL PROBLEMA

Los grupos de investigación de la universidad consultan en internet diferentes páginas, información de convocatorias y becas publicadas, en las que puedan participar y brinden beneficios a los proyectos que pretendan desarrollar; entre las consultas que realizan se pueden encontrar un conjunto grande de convocatorias y/o becas, dado este volumen puede tomar mucho tiempo para encontrar alguna que pueda asociarse a los proyectos que este manejando o que consulta frecuentemente. Las convocatorias y becas que son publicadas, tienen un tiempo determinado para acceder a ellas, si se quiere mantener al tanto de las convocatorias que se van publicando las consultas deben ser constantes. En el artículo Plataforma E-Science 3.0 (Barraza, Ordoñez, & Segovia, 2014),

donde se describe como: “Plataforma web con el propósito de apoyar a los

investigadores en la formulación de proyectos de investigación utilizando

conceptos de E-Science 3.0.”, se plantean herramientas con diversas tecnologías,

como minería de datos, sistemas de recomendación, computación en la nube y

otras; El observatorio de convocatorias, incluido en la plataforma E-Science 3.0,

con las tecnologías relacionadas, plantea la integración de tres sistemas para la

recolección, caracterización y filtrado de la información convocatorias y becas

ofrecidas en la web.

Para este proyecto el problema se centra en como filtrar información del

observatorio de convocatorias, dadas las herramientas contempladas dentro de la

plataforma E-Science 3.0., utilizando la información recopilada y caracterizada,

permita obtener una lista con información relevante o de interés para el usuario.

Page 8: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

8

3. JUSTIFICACIÓN

En diferentes entornos y especialmente en el entorno educativo el volumen de información es grande, cuando se habla de bibliotecas, proyectos, investigaciones entre otros, por eso entre las soluciones que surgen hoy en día se buscan sistemas de recomendaciones que permitan filtrar la información y brindar a los usuarios una información personalizada, como el trabajo de (Núñez Valdéz, 2012), donde “propone una arquitectura para la construcción de una plataforma de recomendación de contenidos basados en las acciones y comportamiento de los usuarios de libros electrónicos en una comunidad de lectores en la Web”. Los sistemas de recomendación tienen como objetivo generar sugerencias y predecir la utilidad de ítems para los usuarios (Abad, Kam, & Calva).

En el observatorio de convocatorias, al ser requerido una herramienta que permita

filtrar la información recolectada y clasificada, utilizando las tecnologías

propuestas en la plataforma E-Science 3.0., la propuesta de este proyecto es

ofrecer al investigador una solución desde la perspectiva de los sistemas de

recomendación, utilizando datos recolectados para permitir mostrar elementos de

manera filtrada y agilizar búsquedas.

El desarrollo de un sistema de recomendación, se plantea con un enfoque en dos

técnicas, con el fin de tener un sistema híbrido, que complemente entre sí los

ítems que recomienda, utilizando características como lo son: Elementos

frecuentes y asociación entre consultas de usuarios, las dos técnicas a desarrollar

son conocidas formalmente entre las técnicas de recomendación como: Filtrado

colaborativo y reglas de asociación (más adelante se especifica con detalle las

técnicas de recomendaciones), las cuales se desarrollaran basado en los

proyectos desarrollados por la profesora Roció Segovia (Segovia, 2009) y el

proyecto desarrollado por estudiantes de la universidad (Olaya Sandoval & Gómez

Peña, 2014).

Page 9: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

9

4. OBJETIVOS

Se describen los objetivos generales y específicos a cumplir dentro del desarrollo del proyecto.

4.1. OBJETIVO GENERAL

Diseñar y desarrollar un sistema de información de recomendaciones basadas en frecuencia de consultas y filtrado colaborativo para convocatorias y becas de investigación. 4.2. OBJETIVOS ESPECÍFICOS

Diseñar y desarrollar un componente de software para la generación de recomendaciones basada en frecuencia de consultas y filtrado colaborativo para convocatorias y becas.

Validar funcionalmente el componente desarrollado, con una simulación de datos de convocatorias y becas extraídos manualmente de la web.

Page 10: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

10

5. MARCO TEÓRICO

En este capítulo se describen los componentes teóricos en los que se base el desarrollo de este proyecto, sobre los sistemas de recomendación y la actualidad de estos.

5.1. SISTEMAS DE RECOMENDACIÓN

Los sistemas de recomendación son técnicas utilizadas dentro de los procesos de personalización de información. Son un tipo de herramientas que permiten conocer al usuario, aprender sus gustos, y recomendar un ítem que le pueda interesar como lo describe en el artículo del blog publicado (Doz, 2014). Este tipo de sistemas tienen su inicio en el filtrado de información, en páginas de noticias, o de comercio electrónico en los años 90 (Olaya Sandoval & Gómez Peña, 2014). Muchos de los sistemas de recomendación se centran en la web, por el gran volumen de datos que son utilizados. Los sistemas de recomendación ayudan a los usuarios a evaluar la pertinencia de ítems mostrados como en una página web, un libro una película entre otros (Jiménez, 2015). Existen varias técnicas dentro de los sistemas de recomendación las cuales se describen a continuación. 5.1.1. TÉCNICAS DE RECOMENDACIÓN

5.1.1.1. Basada en el contenido

En esta técnica se construyen las recomendaciones a partir de la recopilación de

la información recopilada sobre el comportamiento del usuario (BURKE, 2002)

(implícitamente o explícitamente), generan recomendaciones similares a las que

prefiere el usuario.

Implícitamente: El sistema de recomendación toma información del usuario sobre su comportamiento en el sistema.

Explícitamente: El sistema de recomendación obtiene información directamente del usuario por medio de formularios, encuestas, opiniones, etc.

Page 11: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

11

5.1.1.1.1. Perfil de usuario

En la técnica basa en contenido el perfil de usuario es utilizado para almacenar

información del usuario (Fernandez Ramirez, 1998), esta información puede

guardarse de manera explícita o implícita; implícita solicitando al usuario

valoraciones acerca de los ítems consultados y explicita toma datos sin solicitud

del usuario sobre sus consultas.

Preferencias del usuario: Contiene a información de los ítems que le interesan al usuario.

Historial del usuario: Contiene información relacionada con las interacciones que el usuario ha tenido con el sistema.

5.1.1.1.2. Inferencia sobre el conocimiento

Esta técnica se basa en recomendar elementos o productos de acuerdo al

conocimiento que se tenga de como satisface las preferencias y necesidades de

los usuarios. Establece una relación entre necesidad y recomendación.

o La recomendación de ítems que satisfagan ciertos requisitos de calidad para el usuario.

o El soporte a los usuarios cuando no se puede encontrar una solución o recomendación adecuada para el caso del usuario.

o Necesitan una retroalimentación de las necesidades del usuario.

Se pueden presentar diferentes formas de inferir en el conocimiento almacenado

del sistema de recomendación, como lo menciona en su trabajo (Font, 2009),

entre algunas formas hay casos en los que se utilizan algoritmos que modelan los

intereses de los usuarios y en la aparición de un ítem nuevo, el algoritmo predice

si el ítem será del agrado del usuario.

Clasificación de inferencia de conocimiento:

Personalización del usuario: Hace que el sistema requiera que el usuario ingrese a través de formularios, encuestas u otros, información, aportando así las preferencias de sus gustos. Con esta información el sistema puede realizar recomendaciones de elementos.

Basadas en reglas: El sistema contiene una regla para recomendar ítems basados en su historial. Por ejemplo: El usuario ha visualizado ítems que tienen continuidad es decir como libros por capítulos, el sistema recomendaría el siguiente capítulo del libro.

Page 12: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

12

Reglas de asociación: El sistema busca relaciones entre los ítems, para utilizarlas en las recomendaciones. Los ítems se comparan en base a la iteración de los usuarios. Por ejemplo: La compra de vehículos se relacionaría con accesorios o elementos para vehículos, las cuales se mostrarían como recomendaciones.

Árboles de decisión: Los árboles de decisión se basan en una estructura de un árbol la cual contiene información. Las partes del árbol son: nodos (contienen atributos), Arcos (contienen valores posibles del nodo padre) y Hojas (Nodos que clasifican). Los algoritmos de recomendación con árboles parten del nodo padre, evaluando los atributos de éste y seleccionan un arco. Repitiendo estos pasos hasta encontrar una hoja con las características individuales del usuario y recomendar de manera personalizada.

Método del vecino más cercano: Un nuevo ítem que aún no cuenta con una valoración por el usuario, pueden ser comparados sus atributos con los de otros ítems que ya han sido valorados. Así poder arrojar el vecino más cercano en cuanto a características.

Feedback relevante: Método que se basa en obtener información sobre los ítems recomendados cuando se ha realizado una búsqueda. Por ejemplo: Cuando el usuario realizo una búsqueda de información y posteriormente realiza una apreciación de acuerdo al servicio de búsqueda y recomendación, esta valoración es tenida en cuenta para posteriores búsquedas y recomendaciones para mostrar a otros usuarios.

Clústering: Es un método que basada para agrupar usuarios en categorías según comportamientos. Las recomendaciones son calculadas a nivel grupal.

Redes neuronales artificiales: Simulaciones de propiedades observadas en los sistemas neuronales de animales, modelos matemáticos recreados mediante mecanismos artificiales. Permitiendo que el sistema aprenda sus propias reglas y corrección de errores.

Bayesiano naive: Método de clasificación probabilístico. Se utiliza para clasificar un nuevo ítem dentro de las preferencias del usuario, utilizando la presencia o ausencia de una característica, determinando a partir de dichas características los elementos como por ejemplo un libro que en su título lleva las palabras en desarrollo de aplicaciones web, puede determinar probabilísticamente que el libro pertenece al área de sistemas.

5.1.1.2. Filtrado Colaborativo

Esta técnica se basa en realizar recomendaciones en términos de similitud entre

los gustos de los usuarios, predicción de nuevos ítems como se menciona el

Page 13: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

13

artículo escrito por (Melville, Mooney, & Nagarajan, 2002). También son conocidos

como sistemas de recomendación sociales, ya que construyendo grupos de

usuarios con gustos similares, los usuarios realizan valoraciones de ítems y con

estas poder construir recomendaciones para usuarios con los mismos gustos.

Por ejemplo: Un grupo de usuarios que indican una valoración para diferentes

ítems de un aplicativo, estos son guardados para la comparación de valores

posteriormente.

5.1.1.2.1. Clasificación

Para (Font, 2009) los sistemas de recomendación colaborativa se pueden

clasificar en dos grupos:

1. Basados en la memoria: Algoritmos que realizan sus predicciones utilizando toda la información de ítems valorados, es decir toda la información registrada.

Voto por defecto: Se aplica en el caso en donde existen pocos votos, el algoritmo valida los usuarios más activos y realiza predicciones dependiendo de este.

Frecuencia inversa del usuario: Reduce los pesos para las valoraciones de los ítems valorados más frecuentes para identificar los más relevantes.

Amplificación de casos: Recopila los pesos que están más cerca los unos de los otros y disminuye los menores pesos, aumentando proporcionalmente los pesos de las valoraciones cercanas y quitando valor a las valoraciones que se encuentran alejadas.

2. Basado en el modelo: Algoritmos que usa un conjunto de valoraciones en un modelo y con este modelo se realizan las recomendaciones.

Redes Bayesianas: Es basado en un grafo que relaciona diferentes nodos de éste de forma probabilística.

Clustering: Así como en la técnica basada en contenido, en esta técnica hay algoritmos que comparan el usuario activo con grupos de usuarios, los clústeres.

Redes neuronales artificiales: Al igual que en los sistemas de recomendación basados en el contenido, las redes neuronales, también tienen cabida en los sistemas de recomendación de filtrado colaborativo.

Page 14: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

14

Redes basadas en grafos: Un grafo dirigido cuyos nodos son los usuarios y las relaciones se les asigna un peso y dirección. Cuando un usuario predice a otro usuario, se crea una transformación lineal que es construida con las valoraciones de otro usuario.

Popularidad del impacto de proximidad: La popularidad se refiere a las similitudes que hay entre las valoraciones dadas por los usuarios, el impacto es la representación del agrado o desagrado de los ítems para los usuarios y la proximidad es la distancia entre las valoraciones.

5.1.1.3. Basada en utilidad

Esta técnica de recomendación se basa en el cálculo de la utilidad de cada uno de

los elementos para el usuario. Por Ejemplo en un sistema de recomendación de

productos se vería reflejado en la fiabilidad del proveedor o de disponibilidad del

producto. Puntos de esta técnica son:

Conocimiento del catálogo: El sistema conoce los ítems y sus características.

Conocimiento Funcional: El sistema tiene conocimiento de cómo los ítems pueden coincidir con las necesidades de los usuarios.

Conocimiento del usuario: El sistema tiene conocimiento de las necesidades, gustos y características de los usuarios.

5.1.1.4. Demográfica

Esta técnica de recomendación clasifica a los usuarios en grupos o con

características similares y en base a esto realiza las recomendaciones. Por

ejemplo: estudiantes universitarios, niños, mujeres, etc.

5.1.1.5. Híbridos

Es la técnica que combinan diversos tipos de sistemas de recomendación. Los

sistemas de recomendación híbridos pueden incluir dos o más técnicas, a

continuación se presentan características de combinaciones de técnicas

destacadas (Font, 2009):

Por pesos (weighted)

En los sistemas de recomendación colaborativo y basado en el contenido se

incluye la valoración de un ítem y este se puede ponderar, en ocasiones el

resultado de una recomendación no se puede ponderar ya el valor no expresa el

Page 15: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

15

grado de similitud o nivel de agrado del ítem. En estos casos, se realiza la unión

de los resultados obtenidos.

Conmutados (switching)

El sistema utiliza un criterio para establecer qué sistema de recomendación utilizar

en cada momento.

Mezclados (mixed)

Las recomendación de más de un método se realizan simultáneamente, es decir,

diferentes recomendaciones se presentan al mismo tiempo.

Combinación de propiedades (feature combination)

La combinación de las propiedades de un sistema de recomendación, mediante

una adaptación o unión a otro sistema de recomendación. La combinación de

propiedades no es un sistema hibrido de recomendación desde el punto de vista

de que sólo utiliza un sistema de recomendación.

En cascada (cascade)

Un método de recomendación que elabora una lista de posibles recomendaciones,

se aplica un segundo método de recomendación, este refina las recomendaciones

dadas por otro sistema de recomendación y así mostrar unas recomendaciones

más precisas, o doblemente filtradas.

Aumento de cualidades (feature augmentation)

El sistema de recomendación de aumento de cualidades, añade calidad a las

recomendaciones, al implementar dos o más técnicas aumentando las cualidades

de cada una.

Page 16: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

16

5.2. RECOMENDACIONES BASADO EN FRECUENCIA DE CONSULTAS Y

FILTRO COLABORATIVO

En los trabajos desarrollados por (Segovia, 2009) con su implementación de reglas asociación que se basa en la técnica basada en contenido y el trabajo de (Olaya Sandoval & Gómez Peña, 2014) con su implementación de un filtro colaborativo, dan como base estas dos implementaciones para el desarrollo de la solución planteada en este proyecto, ya que se adecuan al contexto del observatorio de convocatorias, un sistema hibrido de recomendaciones, donde se involucra el usuario ante sus interacciones (valoraciones) y el historial de consulta evaluar las ítems similares a los consultados por otros usuarios. El sistema permitirá encontrar a los usuarios información destacada, clasificada por valoraciones dadas o por las consultas realizadas y acceder a información de temas de preferencia de convocatorias y becas. A través de las recomendaciones se brindara un rápido acceso a información actualizada de convocatorias que podrían beneficiar proyectos en los que participa el usuario investigador. A continuación se detallan las dos técnicas a utilizar en el proyecto, para estas dos características valoraciones (filtrado colaborativo) e historial de usuario (frecuencia de consulta). 5.2.1. RECOMENDACIONES BASADAS EN FRECUENCIA DE CONSULTA

Dentro de los sistemas de recomendaciones podemos encontrar patrones frecuentes en la interacción de uno o varios usuarios en el sistema, estos elementos frecuentes son importantes a la hora de implementar recomendaciones bajo reglas de asociación, como se describe anteriormente las reglas de asociación nos permite determinar elementos (datos) relacionados con otros.

ALGORITMOS DE INDUCCIÓN DE REGLAS DE ASOCIACIÓN

Los sistemas de recomendaciones pueden ser basados en reglas de asociaciones que permiten referenciar ítems con otros, por relación de registros de datos, que se encuentran mayor número de veces, por ejemplo dados los elementos: A y B entonces C donde A o B tiene relación con el elemento C.

Existen diversos algoritmos que utilizan búsquedas de datos apoyado en reglas de asolación como lo son Apiori, FP-Growth, Partition, Eclat. El algoritmo Apriori, precursor algoritmos de inducción de reglas de asociación, la obtención de los conjuntos de ítems frecuentes, por el cual se puede decir que un subconjunto de un conjunto de ítems frecuentes también va a ser un conjunto de ítems frecuentes como lo define (Castro Gallardo, 2012).

Page 17: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

17

FP-Growth

Algoritmo de mayor rendimiento que el Apiori, complementado con la estructura de un árbol FP-Tree que brinda un árbol de patrones frecuentes que facilita la búsqueda de frecuencia entre los datos, el FP-Tree contiene una estructura de nodo raíz y subárboles que guardan la relación con elementos de frecuencia encontrados en el modelo de datos.

Este algoritmo se desarrolló para dar recomendaciones por frecuencia de consulta de los usuarios del observatorio convocatorias utilizando como guía la solución desarrollada “Modelo de reglas de asociación basada en restricciones para la generación de recomendaciones para la generación de recomendaciones en una biblioteca digital” (Segovia, 2009). SPARK MLLIB MLlib es la máquina de aprendizaje, práctico, escalable y fácil. Se compone de algoritmos de aprendizaje comunes, incluidas la clasificación, regresión, clustering, filtrado colaborativo, la reducción de dimensión (Frequent Pattern Mining - spark.mllib, Enero 2016). Spark.mllib proporciona una implementación paralela de FP-Growth.

5.2.2. RECOMENDACIONES BASADAS EN FILTRADO COLABORATIVO

Los sistemas de recomendación, pueden tomar información de valoraciones de un

usuario que interactúa con un sistema, implícitamente o explícitamente, para este

caso las recomendaciones serán basadas en información de las valoraciones

dada por el usuario tomada explícitamente. Esta técnica conocida como filtrado

colaborativo se apoya en la siguiente herramienta Apache Mahout.

APACHE MAHOUT

Apache Mahout un motor de filtrado colaborativo, se integra dentro de otros

proyectos Java como una librería y permite utilizar los elementos para filtrado y

clasificación de datos para encontrar recomendaciones.

Mahout utilizando preferencias de los usuarios (valoraciones), devuelve

preferencias estimadas para otros elementos que pueden interesar a los usuarios,

permite construir un sistema de recomendación personalizado con la utilización de

sus diferentes algoritmos.

Mahout anteriormente, era un proyecto independiente llamado "Taste" y ha

continuado el desarrollo dentro de Mahout, el desarrollo se centran en

Page 18: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

18

recomendadores distribuidas basadas en Hadoop (The Apache Software

Foundation, Enero de 2016).

Los siguientes paquetes trabajan el algoritmo colaborativo, utilizando las

valoraciones dadas por los usuarios, encontrando elementos, dadas las

semejanzas entre usuarios en sus preferencias:

DataModel: Define el modelo a utilizar, (conjunto de datos).

UserSimilarity: Evalúa la similitud entre usuarios.

ItemSimilarity: Evalúa ítems de similitud a usuarios.

UserNeighborhood: Evalúa los usuarios más cercanos.

Recommender: Construye la recomendación.

Page 19: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

19

6. ESTADO DEL ARTE

El mundo entero cada vez más encuentra una dependencia a la tecnología y estar

conectado de diversas maneras, en aplicaciones, redes sociales, motores de

búsqueda y otros, haciendo que la información recopilada de los usuarios cada

vez sea más grande y de los sistemas de recomendaciones alternativas para filtrar

la información. Un ejemplo específico es en páginas como Amazon.com,

implementan grandes sistemas de recomendaciones, que permiten a los usuarios

ver elementos de su interés dadas sus búsquedas o compras realizadas, estos

sistemas colaboran en el ofrecimiento de elementos al usuario que finalmente

pueden convertirse en compras.

Los sistemas de recomendación cada día se hacen más presentes en las

aplicaciones y páginas encontradas en internet, con cada interacción y búsqueda

que un usuario realice arroja información necesaria para mostrar en la próxima

iteración, recomendaciones de todo tipo, páginas de consumo se realizan

consultas, las recomendaciones de productos o ítems semejantes se muestran en

la siguiente interacción.

Un factor a considerar, es el dominio de la aplicación, y este tiene una efecto

importante en el enfoque algorítmico que se debe tomar como lo indica

(Francesco, Lior, & bracha, 2011). De esta manera los algoritmos utilizados dentro

de los sistemas de recomendaciones tienen gran decisión sobre el tipo de

recomendaciones o el cómo lo requiere la aplicación a que se le desea

implementar.

Las técnicas de recomendaciones expuestas que ofrecen una gran variedad de

características, pueden ajustarse dependiendo del tipo de sistema al que se le

requiera implementar, de acuerdo al entorno o las necesidades.

En la actualidad dentro de la web se pueden observar implementaciones de

sistemas de recomendaciones en páginas de tiendas on-line (Partiendo de un

producto, se recomiendan otros productos que han interesado a otros usuarios

que compraron dicho producto). También sistemas de recomendaciones de

noticias, musicales (spotify), libros, películas (netflix), entre otros.

Los sistemas de recomendación son utilizados en múltiples entornos; en el

entorno educativo se pueden encontrar sistemas de recomendaciones para casos

muy específicos, como filtrado de información en bibliotecas (Segovia, 2009),

dando a los usuarios la utilización más eficiente sobre búsquedas de libros de su

interés. El caso de la Escuela Superior Politécnica del Litoral que desarrolló un

sistema de recomendaciones para matricula de materias para estudiantes, utiliza

técnicas de filtrado colaborativo, este sistema se alimenta de las calificaciones de

los estudiantes, sistema de recomendación para realizar asociaciones con trabajos

Page 20: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

20

de investigación relacionados por medio de pablaras claves (Olaya Sandoval &

Gómez Peña, 2014).

7. ACTIVIDADES DEL PROYECTO

Dentro del desarrollo del proyecto es importante definir actividades, como se

desarrollaran cada una de ellas, para el presente proyecto se consideraron tres

fases para identificar las actividades a desarrollar entre las cueles se encuentran:

7.1. FASE EXPLORATORIA En esta fase los objetivos es conocer la problemática del proyecto, indagar sobre los trabajos antecesores en el campo universitario, investigar sobre diferentes sistemas de recomendaciones desarrollados, conocer las técnicas de recomendación y seleccionar las técnicas más adecuadas para su implementación. Estos objetivos se cumplen en las actividades desarrolladas en los capítulos anteriores 2, 3, 4 y 5.

7.2. FASE DE DESARROLLO En el desarrollo de software es importante definir los componentes del sistema, para que sea entendible su estructura y elementos. En esta fase se describe los componentes del software desarrollado, se define el alcance funcional, la arquitectura, el modelo de datos, las tecnologías involucradas, casos de uso y diagramas de secuencia. En el capítulo 8 se encuentra descrita esta fase. 7.3. FASE DE MEDICIÓN Se requiere validar funcionalmente, comprobar y medir las posibles mezclas para los algoritmos de recomendación desarrollados, esta fase como su nombre lo indica se miden los resultados de la herramienta al finalizar su desarrollo, se evalúan los prototipos de recomendación para la forma hibrida del sistema y así definir el prototipo a implementar. Esta fase se encuentra en el capítulo 9.

Page 21: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

21

Se muestra a continuación el diagrama de actividades del proyecto:

FIGURA 1. DIAGRAMA DE ACTIVIDADES

Page 22: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

22

8. DESCRIPCIÓN DE LA SOLUCIÓN

En este capítulo se especifica el sistema de recomendaciones, se describe el

funcionamiento, elementos de arquitectura, componentes y herramientas utilizadas

en el desarrollo.

8.1. ALCANCE FUNCIONAL

El alcance del sistema es básicamente generar recomendaciones a partir de una

información guardada en la base de datos, de acuerdo a las valoraciones dadas

por los usuarios y el historial de consultas, utilizando dos regalas de asociación y

recomendaciones colaborativas, más adelante se evidencia el detalle en el caso

de uso Generar Recomendaciones (Página 30).

8.2. REQUERIMIENTOS DEL SISTEMA

En las siguientes tablas se describen los requerimientos contemplados en la

solución:

N°: 1 Cargue de Datos

Descripción: Para el funcionamiento del sistema de recomendación debe cargar información externa a la base de datos (datos de convocatorias, becas, valoraciones e historial del usuario).

Pre condiciones: Ninguna

Flujo principal: Se debe cargar información en la base de datos del sistema, para pruebas funcionales, se debe realizar un cargue inicial con datos para la simulación.

Excepciones: Si no hay información de convocatorias, becas, valoraciones e historial no se podrán reflejar las recomendaciones.

TABLA 1. REQUERIMIENTO #1

Page 23: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

23

N°: 2 Algoritmos de recomendación

Descripción: Se deben implementar los dos algoritmos para la generación de las recomendaciones colaborativa y FP-Growth correspondientemente.

Pre condiciones: Para el funcionamiento de los algoritmos de recomendación debe haber información cargada en la base de datos.

Flujo principal: Se debe implementar los algoritmos de recomendación FP-Growth y colaborativo, para elementos frecuentes y valoraciones de usuarios. *Se deben implementar generación de recomendación personalizada para ítems nuevos, que no son tenidos en cuenta por los algoritmos de recomendaciones.

Excepciones: Si no hay información de convocatorias y becas no habrá generación de recomendaciones

TABLA 2. REQUERIMIENTO #2

N°: 3 Servicio Web

Descripción: Se debe exponer un servicio que permita recibir la identificación del usuario y que devuelva las recomendaciones generadas.

Pre condiciones: Debe existir los algoritmos de recomendación

Flujo principal: El servicio web se expondrá para conexión con otros sistemas, se permitirá enviar la identificación del usuario y este debe retornar las convocatorias y becas recomendadas.

Excepciones: TABLA 3. REQUERIMIENTO #3

N°: 4 Interfaz Gráfica de Prueba

Descripción: La interfaz gráfica que se creara para el sistema será de uso exclusivo para pruebas funcionales. Ya que el propósito del sistema es que las recomendaciones sean generadas por medio del servicio web expuesto y así pueda implementarse por otro sistema.

Pre condiciones: Tener expuesto servicio web

Flujo principal: Esta interfaz gráfica deberá realizarse en un proyecto independiente que muestre la conexión del sistema mediante del servicio web y que muestre las recomendaciones.

Excepciones: Si el servicio web no devuelve información no mostrara datos

TABLA 4. REQUERIMIENTO #4

Page 24: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

24

8.3. TECNOLOGÍAS Y HERRAMIENTAS DE DESARROLLO

En la siguiente tabla se describen las tecnologías utilizadas en el desarrollo del

proyecto (sistema de recomendación), se seleccionaron esas tecnologías porque

son acordes al tipo de proyecto y se basan en los conocimientos adquiridos.

Tecnología Descripción Versión

Apache Mahout

Librerías para filtrado colaborativo

0.9

Apache Tomcat

Contenedor de aplicaciones web, utilizado para el despliegue y funcionamientos del aplicativo

8

BD Oracle

Sistema de gestión de base de datos con soporte de transacciones, estabilidad, escalabilidad, y soporte multiplataforma, manejando los datos tipo objeto relacional

10g

Hibernate

ORM (Object Relational Mapping), se ocupa de realizar la persistencia de los datos entre el sistema y la base de datos

5.0.7

Java

Lenguaje de programación orientado a objetos seleccionado para el desarrollo

1.7

Maven

Herramienta de gestión para configuración atreves de XML, de dependencias de aplicaciones o librerías de proyectos de software

4.0.0

Spark mllib

Librerías para FP-Growth

2.10

Sprint Framework

Brinda un modelo de programación y configuración para aplicaciones empresariales, inyección de dependencias, gestión de transacciones, entre otras

4.2.4

TABLA 5. TECNOLOGÍAS Y HERRAMIENTAS

Page 25: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

25

8.4. DISEÑO

En esta sección se muestra el diseño del sistema, se detallan los componentes de

software y UML.

8.4.1. ARQUITECTURA DE LA SOLUCIÓN

Para el proyecto se plantea la arquitectura Cliente - Servidor, en la cual se

compone de la lógica del sistema (algoritmos de recomendación), el servicio web

expuesto y la base de datos donde se extrae la información de las convocatorias y

becas.

Se plantea esta arquitectura con la finalidad de conectar el sistema de recomendaciones con otro sistema externo que implemente y utilice las recomendaciones que se generan. La parte del cliente (interfaz de usuario), se planea solamente de prueba, y será totalmente independiente del sistema, que pruebe el funcionamiento del servicio web expuesto.

A continuación se muestra la arquitectura diseñada:

FIGURA 2. ARQUITECTURA DEL SISTEMA

Page 26: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

26

Se describen los elementos:

BD: En la base de datos del sistema se encuentra la información de las convocatorias y becas, historial de consulta de usuario y valoraciones por usuario.

Algoritmos FP-Growth y Colaborativo: Dos algoritmos de generación de recomendaciones, conforman la lógica del sistema.

Servicio Web para la generación de recomendaciones: Permite la comunicación libre para otros sistemas utilizando los algoritmos desarrollados FP-Growth y Colaborativo, recibiendo el usuario permite retornar las recomendaciones generadas.

Interfaz de usuario de prueba o externa: Permite mostrar el resultado de los algoritmos al generar las recomendaciones. Esta interfaz implementa el servicio web expuesto, esta interfaz puede ser de un sistema externo que implemente el servicio y a su vez maneje la información de las convocatorias.

Page 27: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

27

8.4.2. MODELO RELACIONAL DE LA BASE DE DATOS

El modelo relacional nos brinda el soporte de datos del aplicativo, se define el

modelo entidad relación basado en las convocatorias y becas encontradas en la

web, más los elementos necesarios para funcionamiento del sistema de

recomendaciones, como lo son los usuarios, el historial y valoraciones de

usuarios.

Como se puede observar en la siguiente imagen en la página de Colciencias los

datos que se muestran de las convocatorias:

FIGURA 3. CONVOCATORIAS PAGINA DE COLCIENCIAS

Page 28: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

28

A continuación se muestra el diagrama entidad relación diseñado.

FIGURA 4. MODELO ENTIDAD RELACIÓN

CONVOCATORIA_BECA: Es la entidad que identifica las convocatorias o becas

ofrecidas, para estas se manejan los campos como código, nombre, descripción,

fecha de apertura, fecha de cierre, valor, url de ubicación en la web y un estado,

estos campos son los principales contenidos para las convocatorias y becas, los

cuales permiten identificarla, obtener información inicial y finalmente consultar un

poco más en la url asociada a esta.

Las convocatorias y becas es la información principal para mostrar en las

recomendaciones a generar por los algoritmos, esta información es recolectada

por un sistema externo que clasifica y guarda la información para mostrar.

Las convocatorias y becas son ofrecidas por distintas entidades en la web, esta

información directa y detallada será accedida por medio de la url guardada para

más información.

USUARIO: Es la entidad que identifica el usuario en el sistema, para esta se

manejan los campos como identificación, nombres y apellidos, el sistema requiere

conocer la identificación del usuario ya que con esta permite conocer el usuario

sobre el cual se realizara las recomendación.

Page 29: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

29

Para el sistema externo que implemente el servicio de recomendación deberá

manejar los usuarios que interactúan con el sistema, permitiendo enviar

información del usuario para que se generen las recomendaciones.

VALORACION: Es la entidad que identifica las valoraciones dadas por el usuario

a cada convocatoria o beca consultada, para estas se manejan los campos

identificación del usuario, código de la convocatoria o beca y la valoración que

está dada de 1 a 5.

Se deben guardar valoraciones sobre las convocatorias y becas que los usuarios

consultan, que permita generar las recomendaciones de manera colaborativa, con

estas valoraciones el sistema puede definir qué recomendar a un usuario,

conociendo los elementos su que son de su preferencia, dados a las valoraciones

de mayor valor que el usuario brinda y así valida usuarios similares y brinda otros

ítems que no hayan sido consultados y/o valorados.

HISTORIAL: Es la entidad que identifica el historial del usuario en las consultas

realizadas sobre convocatorias y becas, para el historial se manejan los campos

código del historial, código de la convocatoria o beca, identificación del usuario y

fecha.

El historial de consulta, identifica los ítems consultados y permite que le algoritmo

FP-Growth pueda validar elementos frecuentes encontrados, para convertirlos en

recomendaciones al usuario.

*Cada entidad debe ser cargada y actualizada con información externa al sistema.

Page 30: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

30

8.4.3. DIAGRAMA DE CASOS DE USO

CASO DE USO GENERAR RECOMENDACIONES

Se muestra en la siguiente figura el caso de uso generar recomendaciones, es

caso general el cual contempla todo el funcionamiento del sistema, en cual se

muestra la iteración del usuario como el sistema externo, este puede ser cualquier

otro sistema que utilice el servicio expuesto para consultar las recomendaciones.

FIGURA 5. CASO DE USO GENERAR RECOMENDACIÓN

En el caso de uso se puede observar la implementación de dos algoritmos para la

construcción de la recomendación, el algoritmo FP-Growth y el algoritmo

Colaborativo, los cuales utilizan el historial de consulta, las valoraciones de los

usuarios y datos de convocatorias y becas.

Al consultar convocatorias también se implementa el generar de manera

aleatoria convocatorias y becas para los casos donde la convocatoria y/o

beca no ha sido consultada o el usuario no tiene historial y pueda

devolverse dentro de las recomendaciones.

Page 31: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

31

Guion del caso de uso

Se describe en la siguiente figura el guion del caso de uso expuesto.

Identificador CU -1

Nombre Caso de Uso: Generar recomendaciones

Descripción: Se generan recomendaciones basadas en frecuencia de consulta y filtro colaborativo

Actor(es) Sistema externo

Precondiciones: La base de datos del sistema debe contener datos

Guion 1. El actor consulta por número de identificación de usuario a través del servicio web generarRecomendaciones.

2. El Sistema al generar recomendaciones, utiliza dos algoritmos (FP-Growth y Colaborativo).

3. El sistema consulta el historial de los usuarios para

generar recomendaciones por historial de consulta, con elementos frecuentes identificados por el algoritmo FP-Growth.

4. El sistema consulta las valoraciones de usuarios

para generar recomendaciones por usuario de manera colaborativa.

Excepciones Si no hay información de historial de consultas o valoraciones de usuarios no se generan recomendaciones

Post condiciones: El servicio devuelve las recomendaciones generadas TABLA 6. GUIÓN DE CASO DE USO

Page 32: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

32

8.4.4. DIAGRAMA DE SECUENCIA GENERAR RECOMENDACIÓN

En el diagrama de secuencia que se muestra a continuación se muestra el

funcionamiento del aplicativo para generar las recomendaciones, se puede

observar la iteración del sistema externo, los datos que envía através del servicio,

la generación de las recomendaciones, las consultas realizadas a la base de datos

sobre las valoraciones de usuarios, historial de consulta y datos de convocatorias

y becas.

FIGURA 6. DIAGRAMA DE SECUENCIA GENERAR RECOMENDACIÓN

1. Se envía identificación del usuario por medio de la solicitud del servicio

web.

2. En la lógica de recomendación se recibe el dato de identificación de

usuario.

3. Se hace la consulta de valoraciones, historial, convocatorias y becas.

4. Se genera las recomendaciones con los datos consultados del historial y

valoraciones con los algoritmos FP-Growth (utilizando la librería

implementada Apache Mahout) y Colaborativo (utilizando la librería

implementada Spark Mllib).

5. Se generan recomendaciones aleatorias con elementos sin historial de

consulta.

6. Se envían como respuesta las recomendaciones generadas a través del

servicio.

Page 33: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

33

8.5. IMPLEMENTACIÓN SERVICIO WEB

Dentro del desarrollo del sistema se realiza un servicio web que será expuesto

para obtener las recomendaciones generadas por los algoritmos, este servicio

enviara una respuesta la información de las convocatorias y becas recomendadas

dentro del formato JSON, el cual es un formato de texto para el intercambio de

datos.

Para mostrar un ejemplo del funcionamiento del servicio

generarRecomendaciones se muestran los siguientes puntos:

1. Se hace la petición a través de un navegador o una herramienta que

permita llamar dicho servicio.

localhost:8182/Recomendaciones/generarRecomendaciones

2. Se debe enviar el código de usuario a consultar. Para enviar el parámetro

identificación de usuario se debe completar la ruta de con la siguiente

variable, con el dato a enviar ?codeUser=117823121

A continuación se muestra en la imagen, la respuesta del servicio al realizar la

petición, en la imagen se puede observar la estructura JSON devuelta por el

servicio, con los datos de convocatorias y becas:

FIGURA 7. SERVICIO WEB

Page 34: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

34

9. PRUEBAS DE PROTOTIPOS DE RECOMENDACIÓN

Los casos de pruebas surgen de la necesidad de evaluar las formas de integrar

los dos algoritmos de recomendación desarrollados (Colaborativo y FP-Growth),

ya que son dos algoritmos con técnicas distintas, se realizan pruebas para

encontrar su mejor rendimiento e integración.

9.1. CASOS DE EVALUACIÓN

Dentro del desarrollo del proyecto se contempla 3 prototipos de evaluación para la

implementación de la forma hibrida de los dos algoritmos de recomendación FP-

Growth y Colaborativo.

9.1.1. RECOMENDACIONES FP-GROWTH Y COLABORATIVO

En este prototipo se pretende evaluar el desempeño de los dos algoritmos de

manera independiente. Se generan recomendaciones dadas por el historial de

usuario con el algoritmo FP-Growth y recomendaciones dadas por las

valoraciones de los usuarios, con el algoritmo Colaborativo y se envían como

respuesta a través del servicio web. La siguiente imagen muestra de manera

independiente el funcionamiento de los algoritmos.

FIGURA 8.RECOMENDACIONES FP-GROWTH Y COLABORATIVO

Page 35: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

35

9.1.2. RECOMENDACIONES COLABORATIVO + FP-GROWTH

En este prototipo se pretende evaluar el desempeño aplicado en primer lugar el

algoritmo colaborativo y sobre este aplicar FP-Growth. Se generan

recomendaciones dadas por las valoraciones de los usuarios con el algoritmo

colaborativo y sobre lo arrojado se aplica el algoritmo FP-Growth. La siguiente

imagen muestra de manera en que el algoritmo colaborativo se aplica primero y

luego FP-Growth.

FIGURA 9.RECOMENDACIONES COLABORATIVO + FP-GROWTH

9.1.3. RECOMENDACIONES FP-GROWTH + COLABORATIVO

En este prototipo se pretende evaluar el desempeño aplicando en primer lugar el

algoritmo FP- Growth y sobre este el colaborativo. Se generan recomendaciones

dadas por el historial de usuario con el algoritmo FP-Growth y sobre lo arrojado se

aplica el algoritmo colaborativo. La siguiente imagen muestra de manera en que el

algoritmo FP-Growth se aplica primero y luego el colaborativo.

FIGURA 10. RECOMENDACIONES FP-GROWTH + COLABORATIVO

Page 36: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

36

9.2. DATOS DE PRUEBAS

En este punto se describen los datos que se usaran en las pruebas, según el

modelo expuesto se presentan los siguientes datos los cuales se encuentran

relacionados de la forma:

Convocatorias y becas tiene historiales y valoraciones.

Lo que indica que en la tabla de historial se encuentran datos relacionados con

consultas realizadas sobre convocatorias y becas y en la tabla de valoraciones se

encuentran datos relacionados con valoraciones sobre convocatorias y becas.

Usuarios tienen historiales de consulta.

Lo que indica que en la tabla de historial se encuentran datos relacionados con

consultas realizadas por usuarios.

Usuarios valoran las convocatorias y becas que consultan.

Lo que indica que en la tabla de valoraciones se encuentran datos relacionados

con valoraciones de usuarios a convocatorias y becas.

En la base de datos de pruebas se crearon los siguientes datos:

Datos de entrada Registros Fuente

Usuarios 8 Creados en suposición

Convocatorias y becas

32

Tomadas de la página de Colciencias, con el detalle correspondiente.

Valoraciones de usuarios 100 Creados a suposición para valoraciones entre 1 y 5.

Historial de usuarios

100

Creados a suposición para diferentes usuarios y diferentes convocatorias, con diferentes fechas.

TABLA 7. DATOS DE PRUEBAS

Page 37: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

37

9.3. EJECUCIÓN DE PRUEBAS

Se realizan pruebas funcionales del servicio web generarRecomendaciones

utilizando una interfaz de pruebas creada en un sistema externo para la validación

del servicio expuesto, se realiza para evaluar los casos expuestos y seleccionar el

más eficiente.

9.3.1. CASO DE EVALUACIÓN (RECOMENDACIONES FP-GROWTH Y

COLABORATIVO)

Resultados generados con el usuario: 117823121.

El algoritmo Colaborativo arroja 6% de las convocatorias y becas existentes.

El algoritmo FP-Growth arroja el 3% de las convocatorias y becas existentes.

Se evidencia que para el usuario 117823121 el algoritmo colaborativo permite

generar mayor porcentaje de opciones de recomendación.

Se toma como evidencia de la prueba la siguiente imagen.

FIGURA 11. PRUEBA FP-GROWTH Y COLABORATIVO USUARIO 1

Page 38: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

38

Resultados generados con el usuario: 110981828.

El algoritmo Colaborativo arroja 1% de las convocatorias y becas

existentes.

El algoritmo FP-Growth arroja el 1% de las convocatorias y becas

existentes.

Se evidencia que para el usuario 110981828 los dos algoritmos se

comportan de la misma manera, dando el mismo porcentaje opciones de

recomendación.

La recomendación dada por el algoritmo colaborativo es diferente a la del

primer usuario.

Se toma como evidencia de la prueba la siguiente imagen.

FIGURA 12. PRUEBA FP-GROWTH Y COLABORATIVO USUARIO 2

Page 39: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

39

9.3.2. CASO DE EVALUACIÓN (RECOMENDACIONES COLABORATIVO + FP-

GROWTH)

Resultados generados con el usuario: 117823121.

El algoritmo Colaborativo sobre el FP-Growth arroja 1% de las

convocatorias y becas existentes.

Se evidencia que las recomendaciones son menores a las del caso de

evaluación anterior.

Se toma como evidencia de la prueba la siguiente imagen.

FIGURA 13. PRUEBA COLABORATIVO + FP-GROWTH USUARIO 1

Resultados generados con el usuario 110981828.

El algoritmo Colaborativo sobre el FP-Growth arroja 1% de las

convocatorias y becas existentes.

La recomendación dada es diferente a la del primer usuario.

Se toma como evidencia de la prueba la siguiente imagen.

FIGURA 14. PRUEBA COLABORATIVO + FP-GROWTH USUARIO 2

Page 40: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

40

9.3.3. CASO DE EVALUACIÓN (RECOMENDACIONES FP-GROWTH +

COLABORATIVO)

Resultados generados con el usuario: 117823121

El algoritmo FP-Growth sobre Colaborativo arroja 1% de las convocatorias y

becas existentes.

Se toma como evidencia de la prueba la siguiente imagen.

FIGURA 15. PRUEBA FP-GROWTH + COLABORATIVO USUARIO 1

Resultados generados con el usuario: 110981828.

El algoritmo FP-Growth sobre Colaborativo arroja 1% de las convocatorias y

becas existentes.

La recomendación es igual a la del primer usuario.

Se toma como evidencia de la prueba la siguiente imagen.

FIGURA 16. PRUEBA FP-GROWTH + COLABORATIVO USUARIO 2

Page 41: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

41

9.4. EVALUACIÓN DE RESULTADOS

Las pruebas realizadas evidencian la manera en la que se comportan cada

uno de los casos expuestos y de cómo cada el algoritmo FP-Growth y

Colaborativo se complementan entre sí, generando recomendaciones

variadas.

El porcentaje de las recomendaciones generadas es mayor para el

Colaborativo que para el FP-Growth en el primer caso y el usuario uno,

como se puede observar en la siguiente gráfica.

FIGURA 17. GRÁFICO RECOMENDACIONES FP-GROWTH Y COLABORATIVO

Para los dos casos donde se implementa un algoritmo sobre el otro, se

puede observar que los registros arrojados son similares y el filtrado es

reducido, es decir pocos ítems recomendados, como se ve en el siguiente

gráfico.

FIGURA 18. GRÁFICO RECOMENDACIONES COLABORATIVO + FP-GROWTH

3%6%

91%

Recomendaciones

FP-growth Colaborativo Convocatorias y becas restantes

1% 1%

98%

Recomendaciones

Caso Fp-Growth + Colaborativo Caso Colaborativo + Fp-Growth

Convocatorias y becas restantes

Page 42: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

42

El primer caso muestra mayor número de resultados en comparación con

los casos dos y tres que presentaron los mismos resultados.

Las recomendaciones arrojadas varían de acuerdo al usuario, ya que las

valoraciones pueden indicar que ítems son de preferencia en uno u otro

usuario como se puede ver en la siguiente gráfica.

FIGURA 19. GRÁFICO CASOS 1,2 Y 3 USUARIOS 1 Y 2

0

5

10

15

20

Usuario 1 Usuario 2

Recomendaciones

Caso uno Caso dos Caso tres

Page 43: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

43

9.5. SELECCIÓN DE CASO A IMPLEMENTAR

Observando los porcentajes arrojados en cada uno de los casos en las pruebas,

se puede definir que el caso de mayor rendimiento es el número 1, donde se

evalúa los dos algoritmos de manera independiente (Recomendaciones FP-

Growth y Colaborativo), también se puede observar la variedad de los ítems

arrojados. Se muestra en la siguiente tabla los valores en porcentaje obtenidos en

la prueba:

Caso Usuario 1 Usuario 2 Total Prueba

1 9% 2% 11%

2 1% 1% 2%

3 1% 1% 2% TABLA 8. PORCENTAJES DE RESULTADOS

Como lo nombra en su artículo (CHAVARRÍA BÁEZ, PALMA OROZCO, & RUIZ

LEDESMA, 2013) “una decisión adecuada, significa que se cuenta con la

información relevante y necesaria acerca del entorno y las opciones sobre las

cuales se basa la elección que se haga”, lo que nos dice que dentro del sistema,

se enviaría la información para que finalmente el usuario pueda seleccionar o

tomar decisión sobre cual consultar. El caso numero 1 el cual nos brinda opciones

más variantes permitiendo obtener por usuario de consulta un mayor número de

recomendaciones asociadas al historial y por separado recomendaciones por

valoraciones de otros usuarios el número 2 y 3 que mostró en la evaluación

realizada que sus resultados no varían tanto y suelen ser muy pequeños, por esta

razón se elige a implementar el caso número 1, la variación de ítems permitirá

finalmente al usuario seleccionar descuerdo a su criterio la recomendación del

grupo que se arroja.

Page 44: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

44

10. SOLUCIÓN DE PROBLEMÁTICAS DE RECOMENDACIONES

Dadas las pruebas realizadas se identifican las problemáticas y se agregan las

siguientes condiciones que no son especificadas en el momento de generar

recomendaciones por los algoritmos FP-Growth y Colaborativo, dejan de lado

ítems que podrían ser ignorados por las siguientes características:

Elementos que son nuevos y no se encuentran entre el historial y no tienen

alguna valoración de usuario Para dar solución a esto se implementa la

opción de mostrar aleatoriamente un ítem que no se encuentre entre el

historial de consulta.

El usuario no tiene historial de consulta Para dar solución es esto se

implementa el generar ítems de forma aleatoria.

Page 45: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

45

11. TRABAJOS A FUTURO

Se requiere que el sistema de recomendaciones se alimente

constantemente de la información de las convocatorias y becas, al igual que

la información de historial de consultas y las valoraciones de los usuarios.

Integración de los sistemas desarrollados para el observatorio de

convocatorias, que permita consumir el servicio de recomendaciones

desarrollado.

Sería importante que se pueda complementar las recomendaciones con

alguna otra técnica de recomendación como el perfil del usuario.

Page 46: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

46

12. CONCLUSIONES

El desarrollo de esta aplicación permitió el filtrado colaborativo y las reglas

de asociación, complementando una con la otra, encontrando las ventajas

del filtrado colaborativo para encontrar ítems cercanos del usuario e ítems

frecuentes de historial de con ayuda de reglas de asociación con el

algoritmo FP-Growth.

Este proyecto permitirá ser integrado con otros sistemas, por medio del

servicio web expuesto, teniendo un cargue de datos, podrá devolver las

recomendaciones generadas.

Este sistema permite filtrar de un grupo de elementos de convocatorias y

becas ítems relevantes a nivel de usuario, dando solución a la problemática

del observatorio de convocatorias, la necesidad de filtrar dicha información

del observatorio.

Al implementar un sistema híbrido de recomendación requiere una previa

evaluación y revisión del comportamiento y rendimiento adecuado.

Page 47: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

47

13. REFERENCIAS

Abad, C., Kam, A., & Calva, L. (s.f.). Sistema de recomendaciòn de pelìculas.

Guayaquil Ecuador: Escuela Superior Politécnica de Litoral - Facultad de

Ingniería de Electricidad y Computación.

Barraza, F., Ordoñez, H., & Segovia, R. E. (2014). Diseño de una plataforma de

colaboración para investigación científica aplicando conceptos de E-

Science 3.0. Proceedings V jornadas internacionales de campus virtuales,

págs. pp. 295 – 303.

BURKE, R. (2002). Hybridrecommendersystems: survey and experiments.

UserModeling and User- AdaptedInteraction. Volume 12 Issue.

Castro Gallardo, J. (2012). Un nuevo modelo ponderado para Sistemas de

Recomendación Basados en Contenido con medidas de contingencia y

entropía. Universidad de Jaén.

CHAVARRÍA BÁEZ, L., PALMA OROZCO, R., & RUIZ LEDESMA, E. (2013). Los

Sistemas de Recomendación en la Toma de Decisiones. México D.F:

Departamento de Posgrado, Escuela Superior de Cómputo del IPN -

VOLUMEN 10 - NÚMERO 2 .

Doz, C. (2014). Sistemas de recomendación: El mejor producto para cada cliente.

http://www.eleconomista.es/blogs/expande-tu-negocio-en-internet/sistemas-

de-recomendacion-el-mejor-producto-para-cada-cliente/.

Fernandez Ramirez, M. (1998). Creación de grupos virtuales en bibliotecas

digitales. Tesis Licenciatura. Ingeniería en Sistemas Computacionales.

Universidad de las Américas-Puebla.

Font, M. (2009). Sistemas de recomendación para webs de información de la

salud. Barcelona España: Universidad Politècnica de Catalunya.

Francesco, R., Lior, R., & bracha, S. (2011). Introduction to Recommender

Systems Handbook. Recommender Systems Handbook, Springer PP 1-35.

(Enero 2016). Frequent Pattern Mining - spark.mllib.

https://spark.apache.org/docs/1.6.0/mllib-frequent-pattern-mining.html.

Jiménez, C. (2015). Definición del curso de Sistemas de Recomendación. Bogotá:

Universidad de los Andes Colombia.

Melville, P., Mooney, R., & Nagarajan, R. (2002). Content-Boosted Collaborative

Filtering for Improved Recommendations. Canada: pp. 187–192, Edmonton.

Núñez Valdéz, E. R. (2012). TESIS DOCTORAL (Sistemas de Recomendación de

Contenidos para Libros Inteligentes). Oviedo - España: UNIVERSIDAD DE

OVIEDO.

Page 48: DESARROLLO DE UN SISTEMA DE RECOMENDACIONES BASADO …

48

Olaya Sandoval, C. A., & Gómez Peña, S. A. (2014). Diseño eimplementación de

un sistema de recomendación para la elaboración de proyectos de

inestigación . Cali: Universidad de San Buenaventura.

Segovia, R. E. (2009). Modelo de reglas de asociación basada en restricciones

para la generación de recomendaciones para la generación de

recomendaciones en una biblioteca digital. Cali: Universidad del valle.

(Enero de 2016). The Apache Software Foundation. Overview -Recommender-

documentation:

https://mahout.apache.org/users/recommender/recommender-

documentation.html.