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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Se muestra a continuación el diagrama de actividades del proyecto:
FIGURA 1. DIAGRAMA DE ACTIVIDADES
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.