• No se han encontrado resultados

Se proceder´a a describir las herramientas que sirvieron para materializar el nuevo enfoque de recomendaci´on a grupos de usuarios. Algunas fueron consumidas direc- tamente, y otras recibieron adaptaciones inherentes al enfoque.

4.2.1 Sistemas de recomendaci´on individual

Como se viene comentando, los SRI son una pieza fundamental en la plataforma debido a que tienen su propio cometido, que es realizar recomendaciones de pel´ıculas a un usuario particular, y, adem´as, poseen la funci´on de ser el intermediario por el cual los SRG acceden a las valoraciones de los usuarios para conocer sus perfiles. Asimismo, los SRG utilizan al SRI con distintas finalidades que fueron detalladas en cap´ıtulos anteriores.

Existen dos implementaciones de los SRI que utilizan distintos frameworks:Dui- ne Framework y Apache Mahout. Ambos proveen bibliotecas para desarrollar algoritmos de predicci´on. En el caso de PUMAS, se aprovechan para predecir va- loraciones de pel´ıculas de acuerdo con un usuario. Luego, dichas predicciones, se emplean para realizar sugerencias al mismo sobre pel´ıculas que pueden ser de su inter´es.

El SRI que utiliza Duine Framework, tiene dos variantes para calcular la pre- dicci´on en esta plataforma: predicci´on y predicci´on con certeza. En el caso del SRI basado en Apache Mahout, se tienen dos enfoques para predecir las valoraciones de un usuario: similitud de ´ıtems (ItemSimilarity) y similitud de usuarios (User- Similarity). Cada uno de los enfoques posee propiedades matem´aticas que pueden combinarse con el fin de conseguir el mejor resultado posible para las sugerencias del SR que se quiera implementar.

4.2.2 Sistemas de recomendaci´on grupal

Cuando un usuario, dentro de PUMAS, conforma un perfil grupal sobre el que desea solicitar una recomendaci´on, el mismo puede optar por las recomendaciones del enfoque que utiliza t´ecnicas de agregaci´on (tradicional) o las del enfoque multi- agente (PUMAS-GR).

El enfoque tradicional cuenta con el soporte para elegir entre tres t´ecnicas de agregaci´on por la cual se va a establecer el perfil grupal: promedio, menor miseria, y maximizaci´on de placer.

PUMAS-GR implementa un SRG en el cual se obtiene la pel´ıcula recomendada por medio de una negociaci´on en un sistema multi-agente (detallado en el cap´ıtulo 3). Las propiedades del protocolo MCP son configurables y se puede escoger, por ejemplo, la estrategia de concesi´on multilateral (Nash, Desired Distance, Egocentric, etc) y la estrategia de negociaci´on (Willingness to risk conflict, Product Increasing, etc). Este SRG es particularmente necesario para el nuevo enfoque debido a que se utiliza, con algunas adaptaciones, para realizar las negociaciones de los perfiles grupales que demanda el enunciado de la propuesta.

El sistema de recomendaci´on grupal tradicional fue utilizado, tambi´en, en este trabajo para contrastar los resultados del SRG propuesto. Es decir que se corrie- ron ambos sistemas de recomendaci´on con los mismos grupos de usuarios y bajo las mismas condiciones para poder realizar las comparaciones. Estas evaluaciones corresponden al cap´ıtulo siguiente.

4.2.3 PUMAS Framework

Pumas framework es el proyecto que provee las herramientas necesarias para desarrollar un sistema multi-agente que modele negociaciones de ´ıtems entre usua- rios. Estas negociaciones se rigen por el protocolo de negociaci´on MCP en su versi´on multilateral. El framework se utiliza para implementar el enfoque multi-agente de PUMAS-GR, y tambi´en ser´a utilizado por el enfoque propuesto en este trabajo con algunas modificaciones. Dicho proyecto es configurable de acuerdo con las distintas estrategias de Zeuthen, distintos tipos de concesiones, las posibles funciones de uti- lidad con la que cada agente eval´ua sus propuestas y las de los dem´as, entre otros aspectos.

La figura 4.2 ilustra el diagrama de las clases fundamentales del framework.PU- MASCoordinatorAg es el encargado de efectuar las negociaciones entre los agentes de acuerdo con el protocolo MCP. Estos agentes son incluidos dentro de un conte- nedor,UserAgentContainer, que extiende funcionalidad de una HashMap en la cual el valor es un agente y la clave es el identificador del mismo.

La clase UserAg encapsula el comportamiento de un agente, y es posible imple- mentar subclases de esta con el fin de tener agentes espec´ıficos para cada sistema. Por ejemplo: en el sistema de recomendaci´on PUMAS-GR existen los UserAgRe- commenderBased que tienen la caracter´ıstica de poseer un SRI para mantener su conjunto de propuestas.

Las propuestas candidatas y la propuesta actual de cada agente, entre otros datos relevantes de la negociaci´on, son almacenados por la claseProposalsPool. La funci´on de administrar este contenedor de propuestas por cada agente es responsabilidad de losProposalsManager.

Figura 4.2: Diagrama de clases PUMAS Framework

Finalmente, cada agente cuenta con una funci´on de utilidad que sirve tanto para determinar un valor de satisfacci´on asociado a cada ´ıtem que integra su pool de propuestas, como para evaluar la satisfacci´on de las propuestas que recibe por parte de otros agentes al momento de negociar. La claseUtilityFunction es la interfaz por

la cual cada agente obtiene su utilidad para cada ´ıtem o conjunto de ´ıtems.

De la misma manera que sucede con los agentes del sistema, la funci´on de uti- lidad propiamente dicha (c´alculo matem´atico que determina la utilidad para cierto ´ıtem o conjunto de ´ıtems) delega su implementaci´on a las subclases que extienden de UtilityFunction. Por ejemplo: UtilityFunctionRecommenderBased determina la utilidad de un ´ıtem mediante un SRI, es decir que solicita la valoraci´on del usuario que representa el agente en cuesti´on. Si dicha valoraci´on fue provista por el usuario la retorna, en caso contrario la estima el SRI.

4.2.4 Ejecuci´on y exportaci´on de experimentos

Al comienzo del cap´ıtulo se indic´o que existen dos formas de interactuar con la plataforma de recomendaciones: usuarios reales por medio de la aplicaci´on WEB

PUMAS, o experimentaci´on autom´atica mediante el proyecto GroupRecommen- der Movies Experiments.

En dicho proyecto se ejecuta un proceso que genera una recomendaci´on para cada uno de los grupos de usuarios predefinidos. Para esto, es necesario configurar la eje- cuci´on de este proceso, el cual se denomina “experimento”, indicando: el repositorio de usuarios y pel´ıculas con el cual trabajar, el archivo de entrada que especifica los grupos de usuarios a los cuales realizar una recomendaci´on, y el SRG que se utilizar´a para esta.

El objetivo de los experimentos es generar gran cantidad de recomendaciones grupales de manera automatizada para poder evaluar los resultados de un SRG en la plataforma. Los resultados de un experimento son exportados en archivos de valores separados por coma (archivos .CSV) en los que cada uno de estos corresponde al resultado de la recomendaci´on efectuada para cada uno de los grupos predefinidos en el experimento.

Documento similar