• No se han encontrado resultados

DESCRIPCIÓN DEL PROBLEMA

N/A
N/A
Protected

Academic year: 2023

Share "DESCRIPCIÓN DEL PROBLEMA"

Copied!
48
0
0

Texto completo

(1)

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

(2)

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

(3)

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

(4)

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

(5)

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

(6)

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.

(7)

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.

(8)

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).

(9)

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.

(10)

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.

(11)

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.

(12)

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

(13)

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.

(14)

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

(15)

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.

(16)

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).

(17)

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

(18)

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.

(19)

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

(20)

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.

(21)

21

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

FIGURA 1. DIAGRAMA DE ACTIVIDADES

(22)

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

(23)

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

(24)

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

(25)

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

(26)

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.

(27)

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

(28)

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.

(29)

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.

(30)

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.

(31)

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

(32)

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.

(33)

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

(34)

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

(35)

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

(36)

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

(37)

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

(38)

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

(39)

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

(40)

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

(41)

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

(42)

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

(43)

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.

(44)

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.

(45)

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.

(46)

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.

(47)

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.

(48)

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.

Referencias

Documento similar

"No porque las dos, que vinieron de Valencia, no merecieran ese favor, pues eran entrambas de tan grande espíritu […] La razón porque no vió Coronas para ellas, sería

¿Cómo se traduce la incorporación de ésta en la idea de museo?; ¿Es útil un museo si no puede concebirse como un proyecto cultural colectivo?; ¿Cómo puede ayudar el procomún

Se estima una distancia de más de 11 millones de años luz hablando de una cantidad de sistemas solares que no tendrían espacio en nuestra mente y esto solo hablando del grupo

Porcentaje de radiación solar interceptada (RSI; 0,35 - 2,5 µm) y de radiación fotosintéticamente activa interceptada (RFAI) a lo largo del ciclo de cultivo para las

“La unificación de la clasificación de empresas otorgada por las CC.AA.”, “La unificación de criterios en la acreditación de los servicios de prevención de riesgos

Debido a la calidad y el legado de nuestra compañía, los cuales se reflejan en nuestros pianos, elegir un instrumento hecho por Steinway & Sons tiende a ser una decisión

Sin embargo, esta interpretación ecomorfológica cuenta con una evidencia en contra, ya que en venta Micena está presente una especie de Praeovibos que exhibe también una gran

Pero cuando vio a Mar sacar el fuego de bajo su ala, voló de vuelta a su tribu a contarles lo que había visto.... Justo antes de que el sol saliera, Tatkanna se despertó y comenzó