• Nenhum resultado encontrado

Qnt. LM Average Fairness Equilibrium

3 µ 3.43 3.78 3.60 3.57 σ .57 .61 .61 .60 Sig. .01 .00 .00 .04 5 µ 2.99 3.25 3.11 3.09 σ .44 .48 .46 .45 Sig. .00 .00 .11 7 µ 2.78 3.03 2.92 2.91 σ .38 .37 .34 .36 Sig. .00 .00 .43

Tabela 4.7: Previsão de satisfação média para os grupos homogêneos no cenário de experi- mentação 2.

Qnt. LM Average Fairness Equilibrium

3 µ 3.24 3.57 3.45 3.38 σ .43 .23 .26 .26 Sig. .02 .00 .00 5 µ 2.84 3.14 3.05 3.04 σ .24 .23 .26 .26 Sig. .13 .00 .11 7 µ 2.63 2.82 2.79 2.78 σ .20 .25 .24 .24 Sig. .82 .00 .05

Tabela 4.8: Previsão de satisfação média para os grupos heterogêneos no cenário de experi- mentação 2.

4.6 Aplicativo Desenvolvido

O aplicativo desenvolvido para a avaliação da aplicabilidade da proposta chama-se MyPop- Corn2 e possui o formato de aplicação social para o Facebook 3. Este ambiente foi sele-

4.6 Aplicativo Desenvolvido 51

Tipo LM Average Fairness Equilibrium

Ho. µ 3.06 3.35 3.21 3.19 σ .54 .58 .56 .55 Sig. .00 .00 .00 He. µ 2.90 3.18 3.10 3.07 σ .39 .39 .37 .35 Sig. .00 .00 .00

Tabela 4.9: Previsão de satisfação média para os grupos homogêneos e heterogêneos no cenário de experimentação 2.

Tipo LM Average Fairness Equilibrium

Ho. Corr. -.50 -.53 -.55 -.49 Sig. .00 .00 .00 N 84 84 84 84 He. Corr. -.63 -.80 -.73 -.70 Sig. .00 .00 .00 N 84 84 84 84

Tabela 4.10: Correlação do número de membros do grupo e o resultado das estratégias para o cenário de experimentação 2.

cionado por possuir uma arquitetura social, abranger milhões de pessoas como potenciais usuários do aplicativo e disponibilizar uma API (Application Programming Interface) de comunicação com a base de dados do Facebook que permite a obtenção automática de in- formações pessoais para criação do perfil dos usuários no aplicativo. Esta arquitetura social facilitou a formação de grupos no aplicativo entre usuários que são amigos no Facebook e provavelmente também na vida real, como também formar grupos com pessoas que não se conhecem no Facebook.

As ferramentas utilizadas para o desenvolvimento deste aplicativo foram a linguagem

4.6 Aplicativo Desenvolvido 52 Python4 na versão 2.7, o sistema operacional Linux no sabor Ubuntu5, o banco de dados

MySQL versão 5.4 6, o servidor web Apache 2 7 com suporte ao modulo da linguagem

Python chamado mod_wsgi, a SDK (software development kit) em Python da plataforma do Facebook8para desenvolvimento e comunicação com API do Facebook, o framework de de-

senvolvimento web Django9em Python e a biblioteca IMDbPY10em Python para comunica-

ção com API do IMDb (International Movie Database)11, um respositório com informações

sobre dezena de milhares de filmes.

Uma base do MovieLens foi utilizada neste estudo de caso para minimizar o problema do cold-start12. Esta base é composta de 10 milhões de avaliações de filmes realizadas por

usuários na escala de 1 a 5, possuindo 10.681 filmes e 71.567 usuários no total. Cada usuário possui no mínimo 20 avaliações de filmes realizadas, número considerado satisfatório para poder receber recomendações com os dados de avaliações disponíveis na base. As avali- ções realizadas pelos usuários do aplicativo seriam adicionadas às avaliações pré-existentes importadas da base do MovieLens.

A primeira fase do desenvolvimento do aplicativo concentrou-se apenas nas recomenda- ção para usuários individuais, com o objetivo de realizar a coleta de informações dos usuários como a avaliação de filmes e a relação de amizades no Facebook, além de melhoria continua de usabilidade do aplicativo até a criação da funcionalidade de recomendação para grupos.

O aplicativo utilizou o algoritmo colaborativo baseado no KNN (K-Nearest Neighbor) (DASARATHY, 1991) e implementado na ferramenta Mahout para gerar as previsões de

4http://www.python.com 5http://www.ubuntu.com 6http://www.mysql.com 7http://www.apache.org 8http://github.com/pythonforfacebook/facebook-sdk 9http://www.djangoproject.com 10http://imdbpy.sourceforge.net/ 11http://www.imdb.com

12O problema do cold-start (SCHEIN et al., 2002) ocorre quando um novo usuário entra no sistema e precisa- se coletar (implicitamente ou explicitamente) uma quantidade suficiente de avaliações para comparar a sua similaridade com a de outros usuários. Da mesma maneira ocorre com itens: quando um novo item é adicionado ao sistema, uma quantidade suficiente de avaliações para este item devem ser obtidas entre todos os usuários da base. Genericamente falando, o cold-start está relacionado a esparsidade das avaliações entre usuários e itens da base.

4.6 Aplicativo Desenvolvido 53 preferência dos usuários para itens não avaliados pelos mesmos. As recomendações de filmes são geradas automaticamente para todos os usuários e iniciam a medida que o usuário atinge o mínimo de 20 avaliações de filmes e com isso minimiza o efeito da esparsidade da base de dados.

Esta fase do aplicativo foi desenvolvida em conjunto com Wolney Mello Neto que de- senvolveu seu mestrado em Ciência da Computação com foco em sistema de recomendação na Bélgica na universidade VUB (NETO, 2012). Esta parceria visou auxiliar no desenvol- vimento do aplicativo quanto a funcionalidade de recomendação de filmes para indivíduos, escopo em comum para os dois trabalhos.

Na segunda fase, a aplicação teve disponibilizada a funcionalidade de recomendação para grupos que permite aos próprios usuários criarem grupos e o sistema obter o feedback dos usuários sobre a satisfação individual para cada item recomendado, o que consequen- temente permite o cálculo da satisfação média do grupo para a recomendação. O uso da biblioteca de teoria dos jogos chamada Gambit13que implementa o cálculo do equilíbrio de

Nash também foi utilizada.

A Tabela 4.11 apresenta os números relacionados ao uso do aplicativo como: número de usuários, número de avaliações, número de recomendações, quantidade de grupos criados e número de recomendações geradas para os grupos.

Tabela 4.11: Números relacionadas a base do aplicativo MyPopCorn. N. Usuários N. Avaliações N. Recomendações N. Grupos N. Rec. Grupos

168 15.900 2.906 5 10

As telas a seguir foram retiradas a partir da navegação pelo aplicativo de um usuário que possui o MyPopCorn instalado no seu perfil do Facebook.

A página “Avaliar Filmes” permite ao usuário corrente avaliar os filmes disponíveis na base do MyPopCorn. Também é possível adicionar o filme à “lista para Assistir”, que per- mite salvar em uma lista que ele deseja lembrar dos filmes para assistir futuramente. Também

4.6 Aplicativo Desenvolvido 54

Figura 4.4: Página “Avaliar Filmes” do MyPopCorn.

é possível adicionar o filme à lista “Não me interessa”, que salva os filmes que não interes- sam ao usuário e não devem ser recomendados e também não devem ser mais listados para avaliação pelo usuário na página “Avaliar Filmes”.

A página “Minhas Avaliações” apresenta tanto os filmes avaliados quanto a avaliação realizada pelo usuário corrente.

A página “Avaliações dos Amigos” lista os filmes avaliados por amigo do usuário cor- rente, e que também possui o MyPopCorn instalado no seu perfil do Facebook. Além de visualizar a avaliação do seu amigo para um filme, o usuário corrente pode também avaliar o mesmo filme ou visualizar a avaliação já atribuida por ele próprio a este filme.

A página “Recomendação de Filmes” lista os filmes recomendados para o usuário cor- rente. Esses filmes são gerados automaticamente em intervalos de 30 minutos. Quando um usuário realiza uma nova avaliação, a base de dados é atualizada e uma nova recomendação de itens é gerada. A lista é ordenada pela data da recomendação em ordem decrescente.

A página “Meu Grupo” lista os membros de um dos grupos que o usuário corrente faz parte, assim como informações como quando e quem criou o grupo.

4.7 Considerações Finais do Capítulo 55

Figura 4.5: Página de “Minhas Avaliações” do MyPopCorn.

A página “Recomendação para o Grupo” lista os filmes recomendados para o grupo. Cada membro do grupo pode avaliar individualmente cada um dos filmes recomendados para que o sistema possa calcular ao final a média de satisfação do grupo para a recomendação.

O aplicativo originalmente tinha o objetivo de validar a abordagem com usuários reais, porém o domínio (filmes) escolhido neste trabalho não facilita a validação em um curto espaço de tempo, pois é necessário que os membros do grupo assistam ao filme para poderem realizar a avaliação da recomendação para o grupo.

4.7 Considerações Finais do Capítulo

Este capítulo apresentou a modelagem do problema de recomendação para grupo como um jogo não-cooperativo na forma normal. A recomendação é obtida a partir dos itens perten- centes às estratégias em equilíbrio de Nash. Sendo possível haver em um jogo mais de uma estratégia em equilíbrio de Nash, uma função de média harmônica é utilizada para selecionar uma das estratégias em equilíbrio de Nash e consequentemente os itens que serão utilizados na recomendação para o grupo. Além da abordagem ser diferente das técnicas utilizadas no estado-da-arte para geração da recomendação, sempre haverá uma solução para o problema

4.7 Considerações Finais do Capítulo 56

Figura 4.6: Página “Avaliações dos Amigos” do MyPopCorn.

da recomendação, o que pode não ser verdadeiro em estratégias cooperativas. Os resulta- dos do experimento mostram resultados promissores comparado a estratégias de agregação de preferência individual da literatura. Um aplicativo desenvolvido chamado MyPopCorn demonstra a aplicabilidade da abordagem neste capítulo, apesar de não ter sido realizado experimentos com usuários reais.

4.7 Considerações Finais do Capítulo 57

Figura 4.7: Página “Recomendação de Filmes” do MyPopCorn.

4.7 Considerações Finais do Capítulo 58

Capítulo 5

O problema da Formação de Grupos

como um Jogo Cooperativo

Este capítulo apresenta uma nova abordagem para formação de grupos baseada na Teoria dos Jogos Cooperativos. Esta abordagem objetiva maximizar o bem-estar social total (Social Welfare) dos grupos com base no conceito de formação de uma estrutura de aliança ótima.

5.1 Formalização do Problema

Seja I = {i1, i2, ..., in} e U = {u1, u2, ..., uk} o conjunto de todos os itens e todos os usuários

respectivamente. Considere G o conjunto de todos os grupos que podem ser formados por U com pelo menos 2 membros e, portanto, |G| = 2k− k − 1. Considere, finalmente, g ∈ G,

sendo |g| definido como o número m de membros do grupo g. Se, por exemplo, um grupo é composto pelos usuários u1, u2 e u3, então este pode ser expresso como g = {u1, u2, u3} e

|g| = 3.

Assuma p(u, i) como a avaliação para o item i fornecida pelo usuário u, e p(u, i) = 0, se o usuário u não avaliou o item i. Considere ˆp(u, i) como a previsão de avaliação do item i para o usuário u. A previsão de avaliação ˆp(u, i) é obtida de uma função de previsão ˆp que utiliza uma função de similaridade entre usuários s : U × U → R.

Para encontrar todas as possíveis combinações de usuários para formação dos grupos utilizou-se a técnica de exploração conhecida como backtracking com ordem de complexi- dade O(2n), sendo n o número de usuário.

5.1 Formalização do Problema 60 Para formação da estrutura de aliança ótima, primeiramente, faz-se necessário calcular o payoff para cada grupo a partir da Equação 5.1:

f = nα + P (eadp)n2−n

2

!

, (5.1)

onde n é o número de membros do grupo.

A primeira parte da equação consiste no número de membros do grupo elevado a um valor α que define o peso para o tamanho dos grupos. A depender do objetivo da formação do grupo e este necessitar que os grupos tenham entre [2, n] membros, onde 2 é o menor quantidade de membros de um grupo que pode ser formado, enquanto que n é a maior quantidade de membros de um grupo que pode ser formado, possuindo consequentemente todo os usuários disponíveis neste grupo. Para a formação de grupos para recursos escarsos, por exemplo onde há poucos canais de transmissão para emissoras de rádio, este parâmetro α pode ser utilizado para atingir o objetivo de um menor número de grupos, sendo estes grupos maiores. Valores menores de α privilegiam a formação de mais grupos e com uma quantidade de membros menor, enquanto valores maiores de α privilegiam a formação de menos grupos e com uma quantidade de membros maior.

A segunda parte da equação consiste no somatório dos elementos acima ou abaixo da diagonal principal da matriz visto que matriz de similaridade é simétrica. A divisão do somatório pelo valor n2−n

2 cria uma média aritimética deste somatório, que privilegia grupos

com maior similaridade entre os membros do grupo.

A similaridade entre os usuários é calculada através da similaridade do cosseno. Dados dois vetores de atributos, ui e uj, a similaridade do cosseno, θ, é representada usando-se um

produto escalar (Equação 5.2):

similaridade = cos(θ) = ui· uj kuik kujk

(5.2) O resultado da similaridade encontra-se no intervalo [−1, 1], sendo que −1 significa exatamente o oposto, 1 significa exatamente o mesmo, e 0 indicando independência ou orto- gonalidade. Valores intermediários indicam similaridade intermediária ou dissimilaridade.

5.1 Formalização do Problema 61 Dado o exemplo da Tabela 5.1 com três usuários e suas avaliações para três itens:

Tabela 5.1: Preferências individuais dos usuários para os itens. A B C

Peter 5 3 5

Jane 5 2 5

Mary 1 5 1

e a matriz de similaridade abaixo, onde cada célula representa a similaridade entre dois usuários:      1.000 0.992 0.626 0.992 1.000 0.524 0.626 0.524 1.000     

Os itens que podem ser utilizados para a recomendação para o grupo são obtidos da intersecção das listas de previsão de avaliação individual de cada membro do grupo (Equação 5.3): H = n \ u=1 {i | ˆp(u, i) 6= ∅, i ∈ I} (5.3)

Nesta abordagem, o jogo deve se preocupar apenas em responder quais coalizões podem ser formadas. Portanto, o sistema assume a característica de single designer e não se preo- cupa com a outra pergunta que os jogos cooperativos podem responder: “como a utilidade deveria ser distribuída entre os membros da coalizão”.

Para encontrar as possíveis estruturas de aliança e calcular o valor da função payoff para cada uma, é utilizado novamente o método de exploração conhecido como backtracking que tem ordem de complexidade O(2k), sendo k o número de grupos possíveis. Um exemplo de

estrutura de aliança encontra-se abaixo:

5.2 Experimento 62 O payoff final de cada estrutura de grupo é simplesmente a soma dos payoff dos grupos presentes naquela estrutura.

5.2 Experimento

A base de dados do MovieLens escolhida para validação da abordagem contêm 943 usuários, 1.682 filmes e 100.000 avaliações no intervalo de 1 a 5. Utilizando como base as avaliações individuais p(u, i) dos usuários, gerou-se uma lista de previsão de avaliação de todos os filmes ainda não assistidos por cada usuário. As previsões de avaliação foram geradas a partir de um algoritmo de filtragem colaborativa baseado em KNN (K-Nearest Neighbor) (DASARATHY, 1991).

Na etapa seguinte, iniciou-se a formação dos grupos com a geração da estrutura de ali- ança ótima. Foram escolhidos 10 conjuntos e cada conjunto com 12 usuários da base do MovieLens para realizar as iterações do experimento. Cada conjunto possuia apenas 12 usuários, pois era o maior número de usuários que poderia ser escolhido e realizar o com- puto de todas as iterações do método em um tempo razoável, pois o computo para cada iteração possui uma complexidade de O(2n), sendo n o número de usuários escolhidos para

o experimento. No cálculo da função payoff, variou-se o α entre 0.999 e 1.010 para cada iteração.

Na última etapa, apenas para efeitos de comparação, realizou-se também um agrupa- mento com os mesmo 10 conjuntos da etapa anterior, e cada conjunto com 12 usuários da base do MovieLens com o algoritmo K-Means (MACQUEEN, 1967) considerando o ve- tor de previsão de preferência de cada usuário. Os centróides foram escolhidos de forma aleatória e com o k variando de 2 a 6 em cada uma das iterações do experimento.

Uma métrica de avaliação de cluster conhecida como índice de Davies-Bouldin (DA- VIES; BOULDIN, 1979) foi utilizada no experimento (Equação 5.4):

DB = 1 n n X i=1 max i6=j  σi+ σj d(ci, cj)  (5.4)

5.2 Experimento 63 Na equação, n é o número de clusters, cx é o centróide do cluster x, σx é a média da

distância de todos os elementos no cluster x para o centróide cx, e d(ci, ji) é a distância

entre os centróides ci e cj. Sabendo-se que algoritmos que produzem clusters com baixa

distância intra-cluster (alta similaridade interna ao cluster) e grande distância inter-cluster (baixa similaridade entre clusters) terão um baixo índice de Davies-Bouldin, o algoritmo de clusteringque produzir uma coleção de clusters com o menor índice de Davies-Bouldin será considerado o melhor algoritmo baseado neste critério.

Tabela 5.2: Resultado das estruturas de aliança na formação dos grupos.

α Grupos Formados Satisfação DB Index 0.999 6.0 4.5761 1.0755 1.000 5.9 4.5733 1.0904 1.001 5.8 4.5651 1.1077 1.002 5.2 4.5242 1.1977 1.003 4.7 4.4853 1.2315 1.004 3.7 4.3622 1.3108 1.005 3.1 4.2390 1.3971 1.006 2.8 4.1791 1.4306 1.007 2.5 4.1198 1.4601 1.008 2.4 4.0738 1.4587 1.009 2.3 4.0522 1.4479 1.010 2.1 4.0082 1.4370

As Tabelas 5.2 e 5.3 apresentam uma média dos valores obtidos nas iterações realizadas nos 10 conjuntos de usuários. As Tabelas 5.4 e 5.5 apresentam as correlações entre as mé- tricas utilizadas no experimento e o número de grupos formados em cada abordagem. Na experimentação com o método baseado nas estruturas de aliança, o α e a quantidade de gru- pos formados nas estruturas de aliança apresentaram uma correlação negativa forte de 0.97, observada na Tabela 5.4, e consequentemente, comprova-se que quanto maior o α, menor a quantidade de grupos nas estruturas de aliança, e maior a quantidade de usuários em cada grupo. É possível observar na Tabela 5.2 que valores menores de α, resultam em uma maior

5.3 Considerações Finais do Capítulo 64 satisfação dos grupos com a recomendação e um menor índice Davies-Bouldin, o que garante uma maior similaridade entre os membros do grupo em grupos menores.

Comparando o resultado das tabelas 5.2 e 5.3, observa-se um desempenho melhor da abordagem cooperativa a partir de k ≤ 4 e α ≥ 1.004, onde arredonda-se o número de grupos formados na abordagem cooperativa para o inteiro mais próximo para comparação com o número de k da abordagem de cluster.

Tabela 5.3: Resultado do algoritmo K-Means na formação de grupos.

k Satisfação DB Index 2 4.0031 1.5648 3 4.2154 1.4273 4 4.3282 1.3287 5 4.5793 1.1288 6 4.6311 0.9965

5.3 Considerações Finais do Capítulo

Este capítulo apresentou uma abordagem baseada na teoria dos jogos cooperativos que obje- tiva maximizar o bem-estar social total (Social Welfare) na formação de grupos para posterior geração da recomendação para estes grupos formados. Um experimento compara os resul- tados desta nova abordagem com uma abordagem baseada em um método de agrupamento com uso do algoritmo K-Means. Os resultados demonstraram a viabilidade da abordagem com resultados de similaridade interna do grupo maiores na nova abordagem do que utili- zando o algoritmo K-Means. A vantagem desta abordagem frente ao algoritmo K-Means é não necessitar determinar previamente a quantidade de grupos, e não depender da aleatorie- dade com possíveis soluções sub-ótimas como ocorre no K-Means na escolha dos centróides que influenciam a solução final deste algoritmo de agrupamento.

5.3 Considerações Finais do Capítulo 65 Tabela 5.4: Correlação na abordagem baseada em cooperação.

groups alpha utility db index

groups Corr. 1.00 -.97 .98 -.99 Sig. .00 .00 .00 N 12 12 12 12 alpha Corr. -.97 1.00 -.98 .95 Sig. .00 .00 .00 N 12 12 12 12 utility Corr. .98 -.98 1.00 -.96 Sig. .00 .00 .00 N 12 12 12 12 db index Corr. -.99 .95 -.96 1.00 Sig. .00 .00 .00 N 12 12 12 12

Tabela 5.5: Correlação na abordagem baseada no K-Means. k utility db index k Corr. 1.00 .97 -1.00 Sig. .01 .00 N 5 5 5 utility Corr. .97 1.00 -0.95 Sig. .01 .01 N 5 5 5 db index Corr. -1.00 -.95 1.00 Sig. .00 .01 N 5 5 5

Capítulo 6

Conclusões

Esta dissertação elaborou uma abordagem baseada na teoria dos jogos não-cooperativos para a recomendação de itens para grupos. A recomendação para o grupo foi tratada como um problema de encontrar os itens selecionados de forma racional pelas estratégias em equilí- brio de Nash. Um experimento realizado compara a satisfação média do grupo da abordagem proposta nesta dissertação com a satisfação média do grupo para a recomendação baseadas nas estratégias de agregação de preferência individual conhecidas como Average, Least Mi- serye Fairness. Os grupos considerados no trabalho foram modelados como jogadores com interesses próprios em um jogo não-cooperativo na forma normal.

Os resultados do experimento mostraram resultados promissores para a abordagem não cooperativa comparada com a estratégia Average. Em grupos maiores e mais heterogêneos, a nova abordagem obteve uma menor correlação de diminuição da satisfação média do grupo em relação com as demais estratégias comparadas. Uma vantagem desta nova abordagem, em relação a trabalhos relacionados, é que ela sempre terá ao menos uma solução de reco- mendação para grupos com indivíduos com interesses próprios, ao contrário das abordagens relacionadas que utilizam método de negociação que podem não ter uma solução para a recomendação.

Para mostrar a aplicabilidade da proposta, foi desenvolvido um sistema de recomendação para grupo segundo a abordagem demonstrada nesta dissertação e este sistema chamado MyPopCorn se encontra disponível na Internet em endereço público como aplicativo para o Facebook.

Para resolver o problema de formação de grupos que é relevante em algumas situações 66

6.1 Contribuições 67 onde o sistema suporta apenas uma quantidade limitada de grupos ou deseja-se formar os grupos de forma a maximizar a satisfação da recomendação a partir de grupos mais homo- gêneos, este trabalho levantou a hipótese da geração de estruturas de aliança em um jogo cooperativo de forma a maximizar o bem-estar social total (Social Welfare) dos grupos for- mados. Experimentos foram realizados com a base MovieLens e compararam a abordagem proposta com o método de agrupamento usando o algoritmo K-Means. A abordagem de for- mação de grupo apresentou valores para o índice Davies-Bouldin melhores ao obtido pelo algoritmo K-Means.

6.1 Contribuições

Com o desenvolvimento deste trabalho pretende-se obter as seguintes contribuições:

• Visibilidade da Teoria dos Jogos como uma ferramenta para resolução de conflitos de interesse e formação de grupos em sistemas de recomendação para grupos;

• Construção de uma base de dados de recomendação para grupos que possam ser utili-

Documentos relacionados