Universidade do Estado do Rio de Janeiro
Instituto de Matemática e Estatística
Departamento de Informática e Ciência da
Co...
FERRAMENTAS DE RECOMENDAÇÃO
João Paulo Alquéres
Monografia submetida ao corpo docente do Instituto de Matemática e
Estatís...
Aos meus mestres. Todos eles.
3
AGRADECIMENTOS
Nos últimos 11 anos estive envolvido com minhas responsabilidades acadêmicas na
UERJ. Foram 5 anos que se t...
RESUMO
Ferramentas de Recomendação vêm sendo utilizadas por mais de duas décadas
para endereçar o problema da sobrecarga d...
SUMÁRIO
1 INTODUÇÃO..........................................................................................................
6 CONCLUSÃO......................................................................................................63
7 SUGE...
Lista de Figuras
FIGURA 1: A COMUNIDADE VIRTUAL MOVIELENS
(WWW.MOVIELENS.UMN.EDU)
FIGURA 2: A FERRAMENTA PANDORA (WWW.PAND...
FIGURA 24: DIAGRAMA DE SEQUÊNCIA - COMPRAR FILMES
FIGURA 25: MAPA DO SITE
FIGURA 26: MODELO RELACIONAL
FIGURA 27: TELA DO ...
Lista de Tabelas
TABELA 1: TIPOS DE MÉTRICAS
TABELA 2: COMPLEXIDADE DO TEMPO DE EXECUÇÃO DO
ALGORITMO
TABELA 3: TIPOS DE I...
Lista de Siglas e Símbolos
11
1 Intodução
Nos últimos anos, os usuários de Internet têm sido expostos a uma crescente
torrente de informações em suas bu...
da modelagem construída para o sistema, tema do capítulo 4. Por fim, será descrito
o método de implementação do algoritmo ...
2 Ferramentas de Recomendação
2.1 Conceitos
Segundo Montaner et al. (2003), sistemas de recomendação auxiliam usuários a
p...
de deficiências e aproveitamento de vantagens de cada um dos métodos quando
empregados isolados.
Outras sugestões de model...
Sistemas de recomendação vêm sendo usados desde o início da década de 90 para
uma diversidade de domínios bem variados de ...
Figura 1: A Comunidade Virtual MovieLens (www.movielens.umn.edu)
A Ferramenta de recomendação Pandora (www.pandora.com), u...
Figura 2: A Ferramenta Pandora (www.pandora.com)
O site Last.fm (www.last.fm) é uma comunidade virtual de música que
estim...
Figura 3: A comunidade Last.fm (www.last.fm)
O site de comérico eletrônico Amazon (www.amazon.com) é o melhor
exemplo do u...
Figura 4: O site de comércio eletrônico Amazon.com (www.amazon.com)
20
2.5 Métricas
Em geral, diferentes métricas têm sido utilizadas para a avaliação de cada sistema
de recomendação, devido as...
consumo (em detrimento ao antigo sistema local) e a base de consumidores mais
especializada (em detrimento ao perfil de co...
fazendo-os navegar pelos catálogos de produtos até que chegassem aos produtos
mais especializados, aqueles que realmente s...
Por isso, é importante que todo sistema de recomendação deixe claro e
explícito que a coleta de informações para recomenda...
Figura 7: O site de e-commerce Submarino (www.submarino.com.br)
Na loja da Americanas on-line, como mostra a Figura 8, as ...
Figura 8: O site de e-commerce Americanas (www.americanas.com.br)
No domínio de recomendações de filmes não foi encontrada...
3 Um algoritmo para recomendação no domínio de
Filmes
Neste capítulo será apresentado o sistema Indica, criado com o propó...
c) Mede a distância entre todos os elementos de todos os clusters;
d) Funde os dois clusters onde a distância entre seus e...
tenham sido vistos pelo usuário “a1”, mas que sejam conhecidos
de “a2”, sejam interessantes à “a1”.
Esta hipótese pode ser...
Para definir o escopo de existência do algoritmo primeiramente define-se
um conjunto A n-dimensional que conterá elementos...
Para os conjuntos acima estão definidas as seguintes relações:
1
21
21
CC
BBB
AAA
⊃
⊃⊃
⊃⊃
Da onde conclui-se facilmente qu...
de A corresponderá zero ou mais elementos em B através de uma função de
interação g representando a utilização do sistema ...
entre os usuários precisamos antes normalizá-los a fim de se neutralizar o peso da
participação mais ou menos intensa dos ...
Iteração Distâncias Médias
1º
( ) !2!*2
!
2
−
=
n
n
C
n
0
2º
( ) !2!*3
)!1(1
2
−
−
=
−
n
n
C
n
1
(...) (...)
k-ésima
( ) !...
interação do usuário com o sistema e t2 o momento imediatamente posterior a esta
interação.
),...,,(
),...,,(
),...,,(
221...
4 Implementação
O sistema foi desenvolvido usando a linguagem Visual Basic na
plataforma Active Server Pages (ASP) da Micr...
4.1.2 IIS – Internet Information Services
O IIS é um servidor web criado pela Microsoft para seus sistemas operacionais pa...
4.2.1 Diagrama de Classes
Figura 11: Diagrama de Classes (alto-nível)
4.2.2 Lista de Casos de Uso
Listagem dos possíveis c...
4.2.3 Diagrama de Casos de Uso
Figura 13: Diagrama de Casos de Uso
39
4.2.4 Descrição dos Casos de uso
U0.1 Autorizar Usuário
Descrição Breve
O sistema mostrará ao usuário uma saudação inicial...
U0.2 Cadastrar Novo Usuário
Descrição Breve
Um novo usuário deseja se cadastrar no sistema.
Fluxo de Eventos
Fluxo Básico:...
U1.1 Visualizar lista de filmes
Descrição Breve
O sistema mostra ao usuário previamente registrado uma tela contendo todos...
U1.2. Buscar filmes
Descrição Breve
O sistema irá buscar filmes de acordo com o gênero ou título selecionado pelo
usuário....
44
U1.3 Visualizar nuvens de usuários próximos
Descrição Breve
O sistema irá mostrar os interesses dos usuários mais similare...
U1.4 Visualizar atividades no sistema
Descrição Breve
O sistema irá mostrar as compras, alugueis e visualizações de filmes...
U1.5 Editar Cadastro
Descrição Breve
O usuário poderá fazer alterações no cadastro, podendo posteriormente, recuperar
os d...
U1.6 Refinar Configurações
Descrição Breve
Os usuários poderão modificar variáveis do sistema para obter resultados mais o...
U2.1 Visualizar ficha de filmes
Descrição Breve
O usuário, a partir da lista de filmes apresentada pelo sistema, escolherá...
U2.2 Alugar filmes
Descrição Breve
O usuário, a partir da ficha de filmes apresentada pelo sistema, selecionará a opção
de...
U2.3 Comprar filmes
Descrição Breve
O usuário, a partir da ficha de filmes apresentada pelo sistema, selecionará a opção
d...
4.2.5 Diagramas de Sequência
U0.1 Autorizar Usuário
Figura 14: Diagrama de Sequência - Autorizar Usuário
U0.2 Cadastrar No...
U1.1 Visualizar lista de filmes
Figura 16: Diagrama de Sequência - Visualizar lista de filmes
U1.2. Buscar filmes
Figura 1...
U1.3 Visualizar nuves de usuários próximos
Figura 18: Diagrama de Sequência - Visualizar nuvens de usuários próximos
U1.4 ...
U1.5 Editar Cadastro
Figura 20: Diagrama de Sequência - Editar Cadastro
U1.6 Refinar Configurações
Figura 21: Diagrama de ...
U2.1 Visualizar ficha de filmes
Figura 22: Diagrama de Sequência - Visualizar ficha de filmes
U2.2 Alugar filmes
Figura 23...
U2.3 Comprar filmes
Figura 24: Diagrama de Sequência - Comprar filmes
57
5 O Sistema
Nesta seção será apresentada a estrutura sobre a qual se apoia a ferramenta. O
sistema foi implementado no for...
5.2 Modelo Relacional
Figura 26: Modelo Relacional
59
5.3 Telas do Sistema
Figura 27: Tela do Sistema - Registro
Figura 28: Tela do Sistema - Principal
60
Figura 29: Tela do Sistema - Nuvens de Usuários
interações
Figura 30: Tela do Sistema - Atividades
61
cadastro
Figura 31: Tela do Sistema - Cadastro
preferências
Figura 32: Tela do Sistema - Configurações
62
6 Conclusão
Este trabalho apresentou uma revisão da área de Recomendação de produtos e
apresentou um algoritmo e sua imple...
7 Sugestão para trabalhos futuros
Com o aperfeiçoamento de técnicas de inteligência artificial, o aumento do número
de ter...
8 Bibliografia
1. Montaner, M et al. (2003) “A Taxonomy of Recommender Agents on the Internet”,
In: Artificial Intelligenc...
10. Melville, P. et al. (2002) “Content-Boosted Collaborative Filtering for Improved
Recommendations” In: Proceedings of t...
Próximos SlideShares
Carregando em…5
×

Ferramentas de Recomendação - Detalhe

206 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
206
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
5
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Ferramentas de Recomendação - Detalhe

  1. 1. Universidade do Estado do Rio de Janeiro Instituto de Matemática e Estatística Departamento de Informática e Ciência da Computação FERRAMENTAS DE RECOMENDAÇÃO Autor:João Paulo Alquéres RIO DE JANEIRO SETEMBRO / 2007
  2. 2. FERRAMENTAS DE RECOMENDAÇÃO João Paulo Alquéres Monografia submetida ao corpo docente do Instituto de Matemática e Estatística da Universidade do Estado do Rio de Janeiro - UERJ, como parte dos requisitos necessários à obtenção do grau de Bacharel em Informática e Tecnologia da Informação. Banca Examinadora: Profo : ____________________________________ Rosa Maria Esteves Moreira da Costa IME/UERJ Profa : ______________________________________ Neide Santos IME/UERJ Profa : ______________________________________ Vera Maria Benjamim Werneck IME/UERJ Rio de Janeiro, 04 de stembro de 2007. 2
  3. 3. Aos meus mestres. Todos eles. 3
  4. 4. AGRADECIMENTOS Nos últimos 11 anos estive envolvido com minhas responsabilidades acadêmicas na UERJ. Foram 5 anos que se transformaram em 6, em 7 e logo em 11. De todo este trajeto, não faltam aprendizados e lições de vida que carregarei comigo para sempre. Muitos dos profissionais com os quais pude ter contato sempre procuraram agir com extrema cordialidade e paciência, mesmo encontrando em mim um aluno muitas vezes relapso e questionador. Nestes últimos 12 meses eu comecei a minha jornada para vencer esta batalha que se tornou conseguir o grau de Bacharel em Ciência de Computação. Não teria triunfado sem o apoio moral de alguns professores que eu gostaria aqui de agradecer: Professor Gilberto Menezes Moraes (Engenharia), por ter aberto os meus olhos e me ajudado a tomar a decisão mais difícil da faculdade, e pelo apoio incondicional. Professora Neide Santos pelos conselhos e conversas, pela co-orientação, pela confiança, e por ter estado por perto nestes 7 anos de amizade. Professora Rosa Maria, por ter aceitado o desafio de me orientar, mesmo sabendo do meu histórico atribulado na Faculdade, e por ter triunfado junto comigo materializando neste trabalho a maior conquista da minha vida. Professora Vera Werneck, por ter me mantido inquieto e feito cada conquista ser merecida, por ter despertado em mim o sentido de confiança e gana para concluir meus estudos. A todos os profissionais que estiveram envolvidos com esta vitória, a vocês eu dedico este projeto final. Por fim, gostaria de agradecer também a minha família e principalmente a mulher que me fez enxergar o que havia do outro lado do muro. 4
  5. 5. RESUMO Ferramentas de Recomendação vêm sendo utilizadas por mais de duas décadas para endereçar o problema da sobrecarga de informação que afeta diretamente os usuários da Internet. O desafio de levar informação relevante para os usuários que necessitam e filtrar o lixo eletrônico é a missão de cada uma das dezenas de aplicações que já foram apresentadas para este propósito. Este trabalho tem como objetivo fazer uma revisão do estudo das ferramentas de recomendação e apresentar um algoritmo para recomendação no domínio de filmes. 5
  6. 6. SUMÁRIO 1 INTODUÇÃO.......................................................................................................12 2 FERRAMENTAS DE RECOMENDAÇÃO......................................................14 2.1 CONCEITOS.....................................................................................................14 2.2 TIPOS DE ABORDAGEM PARA FERRAMENTAS DE RECOMENDAÇÃO...............................................................................................14 2.3 METODOLOGIA PARA A CRIAÇÃO DE FERRAMENTAS DE COLABORAÇÃO...................................................................................................15 2.4 DOMÍNIOS DE APLICAÇÃO........................................................................15 2.5 MÉTRICAS.......................................................................................................21 2.6 IMPLICAÇÕES SÓCIO-ECONÔMICAS.....................................................21 2.7 FERRAMENTAS DE RECOMENDAÇÃO NO BRASIL............................24 3 UM ALGORITMO PARA RECOMENDAÇÃO NO DOMÍNIO DE FILMES 27 3.1 CONCEITOS UTILIZADOS NA ESTRUTURAÇÃO DO ALGORITMO27 3.1.1 ANÁLISE DE CLUSTERS..........................................................................27 3.1.2 REPRESENTAÇÃO VETORIAL ..............................................................28 3.2 CONSIDERAÇÕES SOBRE O ALGORITMO DE RECOMENDAÇÃO. 28 4 IMPLEMENTAÇÃO...........................................................................................36 4.1 INTRODUÇÃO ÀS TECNOLOGIAS ENVOLVIDAS................................36 4.1.1 ASP – ACTIVE SERVER PAGES...............................................................36 4.1.2 IIS – INTERNET INFORMATION SERVICES........................................37 4.1.3 MS ACCESS...................................................................................................37 4.2 MODELAGEM.................................................................................................37 4.2.1 DIAGRAMA DE CLASSES..........................................................................38 4.2.2 LISTA DE CASOS DE USO.........................................................................38 4.2.3 DIAGRAMA DE CASOS DE USO..............................................................39 4.2.4 DESCRIÇÃO DOS CASOS DE USO..........................................................40 4.2.5 DIAGRAMAS DE SEQUÊNCIA.................................................................52 5 O SISTEMA..........................................................................................................58 5.1 MAPA DO SITE................................................................................................58 5.2 MODELO RELACIONAL...............................................................................59 5.3 TELAS DO SISTEMA......................................................................................60 6
  7. 7. 6 CONCLUSÃO......................................................................................................63 7 SUGESTÃO PARA TRABALHOS FUTUROS................................................64 8 BIBLIOGRAFIA..................................................................................................65 7
  8. 8. Lista de Figuras FIGURA 1: A COMUNIDADE VIRTUAL MOVIELENS (WWW.MOVIELENS.UMN.EDU) FIGURA 2: A FERRAMENTA PANDORA (WWW.PANDORA.COM) FIGURA 3: A COMUNIDADE LAST.FM (WWW.LAST.FM) FIGURA 4: O SITE DE COMÉRCIO ELETRÔNICO AMAZON.COM (WWW.AMAZON.COM) FIGURA 5: A CURVA "LONG TAIL" (ANDERSON, 2006) FIGURA 6: CAMINHO PERCORRIDO POR UM USUÁRIO EM UM SISTEMA DE RECOMENDAÇÃO. FIGURA 7: O SITE DE E-COMMERCE SUBMARINO (WWW.SUBMARINO.COM.BR) FIGURA 8: O SITE DE E-COMMERCE AMERICANAS (WWW.AMERICANAS.COM.BR) FIGURA 9: REPRESENTAÇÃO DO ESCOPO DO ALGORÍTMO EM NOTAÇÃO DE CONJUNTOS FIGURA 10: O FUNCIONAMENTO DA RECOMENDAÇÃO FIGURA 11: DIAGRAMA DE CLASSES (ALTO-NÍVEL) FIGURA 12: LISTA DE CASOS DE USO FIGURA 13: DIAGRAMA DE CASOS DE USO FIGURA 14: DIAGRAMA DE SEQUÊNCIA - AUTORIZAR USUÁRIO FIGURA 15: DIAGRAMA DE SEQUÊNCIA - CADASTRAR NOVO USUÁRIO FIGURA 16: DIAGRAMA DE SEQUÊNCIA - VISUALIZAR LISTA DE FILMES FIGURA 17: DIAGRAMA DE SEQUÊNCIA - BUSCAR FILMES FIGURA 18: DIAGRAMA DE SEQUÊNCIA - VISUALIZAR NUVENS DE USUÁRIOS PRÓXIMOS FIGURA 19: DIAGRAMA DE SEQUÊNCIA - VISUALIZAR ATIVIDADES NO SISTEMA FIGURA 20: DIAGRAMA DE SEQUÊNCIA - EDITAR CADASTRO FIGURA 21: DIAGRAMA DE SEQUÊNCIA - REFINAR CONFIGURAÇÕES FIGURA 22: DIAGRAMA DE SEQUÊNCIA - VISUALIZAR FICHA DE FILMES FIGURA 23: DIAGRAMA DE SEQUÊNCIA - ALUGAR FILMES 8
  9. 9. FIGURA 24: DIAGRAMA DE SEQUÊNCIA - COMPRAR FILMES FIGURA 25: MAPA DO SITE FIGURA 26: MODELO RELACIONAL FIGURA 27: TELA DO SISTEMA - REGISTRO FIGURA 28: TELA DO SISTEMA - PRINCIPAL FIGURA 29: TELA DO SISTEMA - NUVENS DE USUÁRIOS FIGURA 30: TELA DO SISTEMA - ATIVIDADES FIGURA 31: TELA DO SISTEMA - CADASTRO FIGURA 32: TELA DO SISTEMA - CONFIGURAÇÕES 9
  10. 10. Lista de Tabelas TABELA 1: TIPOS DE MÉTRICAS TABELA 2: COMPLEXIDADE DO TEMPO DE EXECUÇÃO DO ALGORITMO TABELA 3: TIPOS DE INTERAÇÃO 10
  11. 11. Lista de Siglas e Símbolos 11
  12. 12. 1 Intodução Nos últimos anos, os usuários de Internet têm sido expostos a uma crescente torrente de informações em suas buscas na rede. A disposição destas informações – úteis ou não – apresenta-se de forma desordenada, o que resulta em custos de tempo e dinheiro para o usuário. Neste contexto, a filtragem e distribuição de dados de acordo com as necessidade e perfis de cada pessoa, papel desempenhado pelas ferramentas de recomendação, torna-se fundamental. O surgimento das ferramentas de recomendação ocorreu no início de 1990, quando a internet se popularizou nos EUA. Entretanto, dez anos antes, em 1982, um artigo do Communications of ACM já discorria sobre os riscos do fluxo crescente de informações (Denning, 1982). Os primeiros sistemas de filtragem foram direcionados a aplicações em envio de e-mails ou seleção de notícias em newsgroups (ferramentas mais utilizadas na época). Atualmente, as ferramentas de recomendação são utilizadas em recomendações e filtragem de notícias, recomendações de produtos, de páginas na Internet e filtragem de emails (spams) em todo o mundo. A aplicação deste tipo de ferramenta no setor varejista on-line permite o direcionamento do merchandising exposto a um usuário, adequando a propaganda aos gostos e preferências daquele consumidor. Desta forma, o cliente não é exposto a informações que não lhe interessam, entrando em contato apenas com itens e serviços com maior probabilidade de serem adquiridos por ele. O surgimento da Web 2.0, que tem seu foco totalmente direcionado para a criação de conteúdo pelo usuário e para a descentralização de informações (O’reilly, 2003), abriu portas para uma possível especialização dos sistemas de recomendação, gerando sugestões mais apropriadas para cada perfil de usuário. O atual momento de amadurecimento da rede é muito favorável para o surgimento de novas técnicas de recomendação e aprimoramento das técnicas existentes. O objetivo deste trabalho é o de apresentar uma introdução ao assunto de filtragem de informação e ferramentas de recomendação, propondo uma análise das principais ferramentas de recomendação em uso no Brasil e no Mundo. No capítulo 3, será apresentando um algoritmo para geração de recomendações no domínio de filmes, com a aplicação dos conceitos apresentados e a introdução de outros, além 12
  13. 13. da modelagem construída para o sistema, tema do capítulo 4. Por fim, será descrito o método de implementação do algoritmo e as sugestões para novos trabalhos. 13
  14. 14. 2 Ferramentas de Recomendação 2.1 Conceitos Segundo Montaner et al. (2003), sistemas de recomendação auxiliam usuários a pesquisar, ordenar, classificar, filtrar e compartilhar a vasta quantidade de informações disponíveis na Web. Herlocker et al. (1999), descreve que sistemas de recomendação auxiliam indivíduos e comunidades a endereçarem os desafios de sobrecargas de informação. Melville et al. (2002), por sua vez, indica que os sistemas de recomendação ajudam a lidar com a sobrecarga de informação através da construção de sugestões personalizadas baseadas em um histórico de afinidades e não- afinidades dos usuários. Os três autores ressaltam a capacidade das ferramentas de recomendação de lidarem com a imensa quantidade de informação existente atualmente. Melville et al. (2002) vai além em sua definição e explica a forma como os sistemas realizam este trabalho. 2.2 Tipos de Abordagem para ferramentas de Recomendação Existem predominantemente dois modelos de geração de recomendações: o modelo baseado em conteúdo e o baseado em filtragem colaborativa. No modelo baseado em conteúdo (content-based recomendation), os itens em uma base de dados são comparados a outros itens de acordo com suas características cadastradas (descrição, gênero, público e faixa-etária, por exemplo). Na filtragem colaborativa (collaborative filtering), os usuários são agrupados de acordo com suas preferências, perfis de consumo dos produtos e dados de interação com a base de dados (compras realizadas, adições à lista de favoritos, postagem de comentários a respeito de um produto específico e navegação por itens, por exemplo). Cada um dos dois modelos possui aspectos positivos e negativos. Herlocker (1999) foi pioneiro na sugestão de que estes dois modelos poderiam ser combinados, gerando um terceiro modelo híbrido, o que possibilitaria a eliminação 14
  15. 15. de deficiências e aproveitamento de vantagens de cada um dos métodos quando empregados isolados. Outras sugestões de modelos para os sistemas de recomendação foram propostas por Bezerra (2002), que propôs a filtragem baseada em meta-protótipos, e Melvilee (2002), que sugeriu a filtragem colaborativa potencializada pelo conteúdo. 2.3 Metodologia para a criação de Ferramentas de Colaboração Segundo Montaner et al. (2003), existem basicamente cinco passos para a criação de um sistema de recomendação: • Representação do perfil do usuário: as escolhas de quais informações serão representadas no perfil do usuário e como serão computadas no modelo. • Criação do perfil do usuário: o fluxo de procedimentos para a criação dos novos usuários. • Metodologia de aprendizado do perfil do usuário: como ele processará as informações do usuário na forma de modelos matemáticos que expressem as suas preferências. • Feedback: a forma de captura das informações sobre as interações do usuário no sistema (as informações podem ser capturadas de formas implícitas, explícitas, ou ambas). • Adaptação do perfil: como o perfil do usuário irá acompanhar as mudanças no modo como este interage com o sistema. Uma vez estando codificado, o sistema precisa ser avaliado em termos de seu desempenho nas recomendações que esta gerando. Para isso, existem métricas que possuem o objetivo de aferir a qualidade destas recomendações. 2.4 Domínios de Aplicação 15
  16. 16. Sistemas de recomendação vêm sendo usados desde o início da década de 90 para uma diversidade de domínios bem variados de acordo com as necessidades de seus usuários. Normalmente, domínios onde usuários têm a possibilidade de interagir são os que tiram melhor proveito dos benefícios de algumas das técnicas de filtragem baseada em ações colaborativas, como atribuição de notas, inserção de comentários, entre outros. Na taxonomia de Sistemas de Recomendação proposta por Montaner et al. (2003), os domínios de aplicação mais comuns são em notícias, sites, e-mail e e- commerce. Outras aplicações menos comuns, porém, vêm conquistando espaço entre fãs de música e cinema por permitir que se descubram filmes, atores e cantores com estilos comuns aos gostos dos usuários. O projeto MovieLens (www.movielens.umn.edu), da universidade de Minnesota, é uma das aplicações de maior reputação no meio acadêmico (está ilustrada na Figura 1). Na esfera comercial, empresas como Amazon, NetFlix e Imdb também utilizam algoritmos de recomendação para auxiliarem seus usuários a comprar, alugar e pesquisar sobre novos filmes. A comunidade virtual MovieLens usa a filtragem colaborativa para gerar recomendações para seus usuários de acordo com seus gostos, os quais são modelados pela ferramenta através de um sistema de atrubuição de notas de 5 pontos. Estas notas são utilizadas para se fazer uma comparação com usuários com o mesmo gosto e assim gerar as recomendações. 16
  17. 17. Figura 1: A Comunidade Virtual MovieLens (www.movielens.umn.edu) A Ferramenta de recomendação Pandora (www.pandora.com), uma rádio on-line de música (como mostra a Figura 2), é baseada no projeto Music Genome que mapeia mais de quatrocentos atributos, que combinados integralizam mais de duas mil combinações em grupos maiores (chamados de agrupamentos baseados por foco). As recomendações são geradas através de um algoritmo de filtragem baseado em conteúdo, com algumas técnicas de recuperação de feedback utilizadas na filtragem do conteúdo e na geração da recomendação através da atribuição dos conceitos “Positivo”, “Negativo”, “Sem resposta” e “Suspensão”. 17
  18. 18. Figura 2: A Ferramenta Pandora (www.pandora.com) O site Last.fm (www.last.fm) é uma comunidade virtual de música que estimula seus usuários a se engajarem socialmente. Seu site está ilustrado na Figura 3. O perfil do usuário é construído através de plugins instalados no computador, no tocador de música pessoal (como Ipod ou MP3 Player) ou pelo uso do serviço de rádio on-line. Todas as músicas são adicionadas a um registro, de onde são geradas as recomendações. O método de geração de recomendações utilizado é a filtragem colaborativa e um sistema binário de coleta de feedback através dos botões “ban” e “love” (o que demonstra que para se construir um sistema sólido de recomendação não é necessário fazer uso do sistema de rating quantitativo discreto). 18
  19. 19. Figura 3: A comunidade Last.fm (www.last.fm) O site de comérico eletrônico Amazon (www.amazon.com) é o melhor exemplo do uso de ferramentas de recomendação de ponta. No ar há mais de dez anos, a empresa aprendeu como seus usuários se comportam e criou um algoritmo que direciona suas vendas e responde por mais da metade de suas vendas. 19
  20. 20. Figura 4: O site de comércio eletrônico Amazon.com (www.amazon.com) 20
  21. 21. 2.5 Métricas Em geral, diferentes métricas têm sido utilizadas para a avaliação de cada sistema de recomendação, devido as suas particularidades serem, em geral, de restrita aplicação ao sistema em uso. A maioria das métricas existentes baseia-se em notas. As métricas podem ser divididas em Cobertura ou Precisão (que se divide em Estatística ou Suporte à decisão), como cita Herlocker (1999). Métricas de Cobertura têm por objetivo aferir o número de itens que podem ser recomendados dentro do conjunto de itens cadastrados no banco de dados (Riedl et al., 1999). Métricas de Precisão estatística determinam a capacidade do sistema de prever valores que seriam atribuídos pelos usuários a itens ainda não ranqueados. Exemplos deste tipo de métrica incluem: Erro médio Absoluto, Precisão e Relevância e Correlação entre notas e predição. Métricas de suporte à decisão, por sua vez, têm por objetivo verificar o quanto previsões ajudam os usuários a escolherem itens que serão úteis a eles. Exemplos de métricas nesta categoria incluem: Curvas ROC e Erro Ponderado. A Tabela 1 resume as informações sobre os métodos e principais métricas. Tabela 1: Tipos de Métricas Método Tipo Objetivo Métricas Cobertura Medir a quantidade de itens para os quais podem ser geradas recomendações no sistema. Precisão Estatística Comparar valores obtidos pela interação do usuário com valores inferidos pelo sistema Variância (MAE) Precisão e Relevância Correlação Valor eficaz Suporte a Decisão Medir a eficiência do sistema em oferecer previsões úteis para o usuário. Curvas ROC Taxa Reversa Erro ponderado 2.6 Implicações Sócio-Econômicas Ferramentas de Recomendação podem também ser vistas como um importante habilitador econômico para as práticas de comércio que estão emergindo na nova economia global. O modelo de comercialização global dos itens de 21
  22. 22. consumo (em detrimento ao antigo sistema local) e a base de consumidores mais especializada (em detrimento ao perfil de consumo mais genérico de outros tempos) faz com que tais ferramentas seja importantes agentes de busca no trabalho de procura e apresentação dos itens aos usuários potenciais compradores. No estudo feito por Anderson (2006), é relatado que um aumento na diversidade de ítens no catálogo de uma base de dados, proporciona um retorno maior do que um investimento em quantidades dos ítens mais populares. O objetivo seria manter na base de dados, menos produtos em detrimento de uma variedade maior, ao contrário do investimento do varejo tradicional que é em mais produtos de menor variedade. Figura 5: A curva "Long Tail" (Anderson, 2006) No mesmo estudo, Anderson mostra que do total de itens comercializados em um grande varejista on-line americano, 57% não podem ser encontrados em lojas do varejo tradicional (offline); e dos filmes alugados em uma grande rede de aluguel de filmes por correio, 20% não são encontrados nas locadoras convencionais. Como foi provado pelo estudo acima comentado, existe um problema emergente na criação destes mercados especializados, que é o da geração da demanda para compra dos itens de catálogos focados em nichos de mercado. Uma possível forma de abordagem para este problema, seria através do uso de ferramentas de recomendação, que poderiam surgir como guias para os usuários, Vendas Catálogo 22
  23. 23. fazendo-os navegar pelos catálogos de produtos até que chegassem aos produtos mais especializados, aqueles que realmente são o diferencial do varejista on-line. Um exemplo do caminho percorrido pelo usuário dentro de um sistema poderia ser o iliustrado na Figura 6. Figura 6: Caminho percorrido por um usuário em um sistema de recomendação. Um usuário possivelmente não chegaria ao nome do item assinalado (4) se não fosse a ajuda de uma ferramenta de recomendação. O principal objetivo de ferramentas deste tipo é direcionar o usuário no processo de descobrimento da base de dados do sistema, assim um usuário que conhece um ítem de maior popularidade (no exemplo, Jorge Ben Jor) é encorajado a descobrir ítens de menos popularidade (no exemplo, em ordem de refinamento – Orlandivo, Ed Lincoln, Walter Wanderley), mas que são relacionados aos ítens que ele já demonstrou interese (neste exemplo, todos são artistas originários do movimento samba-rock e seu precursor, o sambalanço). Em uma esfera menos econômica e mais social, o fato de ferramentas de recomendações direcionarem o consumo faz com que sejam vistas por um aspecto negativo, já que fazem (através de recomendações positivas) com que o cliente acabe voltando para casa com produtos que não sabia que precisava, ou que nem gostava a princípio. Vend asas Número de Ítens do catálogo 1# Jorge Ben Jor 2# Orlandivo 3# Ed Lincoln 4# Walter Wanderley 23
  24. 24. Por isso, é importante que todo sistema de recomendação deixe claro e explícito que a coleta de informações para recomendações está sendo feita e qual técnica está sendo utilizada, já que a coleta de dados envolve a captura de dados e opiniões do usuário, o que pode ferir a privacidade dos mesmos. 2.7 Ferramentas de Recomendação no Brasil As ferramentas de recomendação, em geral, ainda são uma aplicação muito incipiente no setor varejista on-line brasileiro. Em um escopo mais restrito, o de recomendação de filmes cinematográficos - o foco deste trabalho - não foi encontrada nenhuma ferramenta técnica ou algoritmo em uso nos sites pesquisados. Em outros sites, no setor de comércio eletrônico, como o www.submarino.com.br e www.americanas.com.br, foram encontradas apenas técnicas primitivas de filtragem de informação, mas nenhuma técnica de filtragem baseada em conteúdo ou filtragem colaborativa. Na loja virtual do Submarino, ilustrada na Figura 7, não foi encontrada nenhuma ferramenta de recomendação em uso, que direcionasse o usuário a possíveis itens de seu interesse de acordo com a sua interação com o sistema. As seções “Produtos vistos”, “Termos pesquisados”, “Adicionados ao carrinho” e “Seções visitadas” são apresentadas sem que seja feita nenhuma utilização das informações no sentido de gerar recomendações para os usuários baseadas em alguma lógica. Na seção “Resenhas dos Clientes”, os usuários e possíveis compradores do item são convidados a escreverem um texto sobre sua experiência de compra e também a dar uma nota para o item. Esta técnica não pode ser considerada por si só uma recomendação, pois o sistema não utiliza as notas para direcionar os produtos para seus possíveis compradores. 24
  25. 25. Figura 7: O site de e-commerce Submarino (www.submarino.com.br) Na loja da Americanas on-line, como mostra a Figura 8, as ferramentas de recomendação são ainda mais escassas. A possibilidade de se incluir comentários nos produtos comprados esta presente na área “O que você achou deste produto?”, porém novamente sem que esta informação seja utilizada para qualquer tipo de geração de recomendações baseada no perfil do usuário. Outra seção presente no site das lojas Americanas é a de itens em “Recomendados”. Mas ao contrário do que se espera nestes casos (quando a loja deve apresentar a forma de recomendação dos itens), o usuário fica sem nenhuma informação de como foram geradas tais recomendações e também não sabem se estas são exclusivas. 25
  26. 26. Figura 8: O site de e-commerce Americanas (www.americanas.com.br) No domínio de recomendações de filmes não foi encontrada nenhuma referência a técnicas de recomendação, nem mesmo as mais básicas, presentes nos sistemas de comércio eletrônico anteriormente citados. Os sites pesquisados foram NetVideo (www.netvideo.com.br), DVD Clube Online (www.dvdclubeonline.com.br), Portal do Vídeo (www..portaldovideo.com.br), O Cinéfilo (www.onecinefilo.com.br), AdoroCinema (www.adorocinema.com.br) e e- Pipoca (www.epipoca.com.br). . 26
  27. 27. 3 Um algoritmo para recomendação no domínio de Filmes Neste capítulo será apresentado o sistema Indica, criado com o propósito de prototipar o algoritmo de recomendação de filmes a ser descrito no trabalho. O sistema é uma representação simples do algoritmo; não objetivando, portanto, a implementação exaustiva de todas as funcionalidades que são pré-requisitos para uma ferramenta de recomendação. 3.1 Conceitos utilizados na estruturação do algoritmo A construção do algoritmo utilizou conceitos matemáticos e estatísticos, como álgebra linear e análise de clusters. As próximas seções descrevem como estes conceitos foram aplicados à ferramenta. 3.1.1 Análise de Clusters O sistema Indica utiliza o conceito de análise de Clusters. Clusterização é a classificação de objetos em diferentes grupos de modo que os dados dentro dos grupos compartilhem as mesmas características. É uma técnica para análise estatística que é usada em muitas aplicações incluindo data mining, reconhecimento de padrões, análise gráfica entre outras. Existem dois tipos de clusterização, a hierárquica e a particional. Na clusterização hierárquica, o algoritmo encontra clusters sucessivos de forma aglomerativa ou divisiva (bottom-up ou top-down). Na clusterização particional, todos os grupos são encontrados de uma só vez. Para o sistema será utilizada a clusterização hierárquica bottom-up, que é a geração dos grupos a partir de um número de clusters igual ao número de usuários, por sucessivas aglomerações. O algoritmo de procura de clusters funciona da seguinte forma: a) Indentifica todos os usuários; b) Aloca cada usuário a um cluster; 27
  28. 28. c) Mede a distância entre todos os elementos de todos os clusters; d) Funde os dois clusters onde a distância entre seus elementos é a menor; e) Repete o passo “c” até que se tenha chegado à “condição de parada”. A condição de parada para uma análise de cluster é uma aglomeração que une elementos suficientemente distintos para descaracterizar um grupo ou a chegada a um número suficiente de clusters. 3.1.2 Representação Vetorial No modelo de representação espaço-vetorial, os usuários são apresentados como um vetor de elementos que representam a tolerância do usuário a cada um dos gêneros de filmes previamente incluídos no modelo. O valor de cada componente do vetor deve ser um número inteiro incremental que será acrescido de uma unidade e multiplicado por um peso de acordo com as interações do usuário com o sistema. Usuários representados por vetores próximos são considerados usuários com gostos afins; de forma contrária usuários com representações de vetores distantes expressam a ausência de afinidade. A normalização de vetores também é um conceito especialmente útil para a ferramenta. Para que usuários com maior participação na ferramenta não sejam penalizados por usuários com menor participação, foi necessário modelar um vetor de forma relativa entre os gêneros, e não de forma absoluta. Com isso, dois usuários que tenham visto filmes de um mesmo gênero, porém em quantidades substancialmente diferentes, poderiam ainda assim contribuir com recomendações um para o outro. 3.2 Considerações sobre o Algoritmo de Recomendação Para construção do algoritmo de recomendação será considerada a seguinte hipótese: Se um usuário “a1” se interessa por gêneros de filmes na mesma proporção que um usuário ” a2”, é possível que filmes que não 28
  29. 29. tenham sido vistos pelo usuário “a1”, mas que sejam conhecidos de “a2”, sejam interessantes à “a1”. Esta hipótese pode ser estendida para um grupo de usuários que tenham o mesmo gosto. Desta forma, se um grupo de usuários tem um gosto comum, é possível que todos os filmes vistos por todos os usuários deste grupo sejam interessantes aos usuários que possam não ter visto algum dos filmes. Sendo assim, é possível representar também usuários que tenham visto mais ou menos filmes de forma similar, em uma base comum, para que não haja dificuldades na geração de recomendações para usuários recém-chegados. A diferenciação de usuários é feita pelo seu histórico de colaboração na ferramenta, através da atribuição de pesos de acordo com o tipo de interações do mesmo na base de dados. Além disso, serão consideradas principalmente as interações passivas do usuário com o sistema. Optou-se por não implementar o mecanismo de notas para filmes para não onerar o usuário com a responsabilidade de geração explícita de seu perfil. Os usuários tendem a não preencher este tipo de pesquisa de opinião se não há um forte incentivo; e quando o fazem, geralmente há um viés de alta na recomendação, isto é, usuários tendem a emitir suas opiniões sobre itens que têm preferências (Adomavicius, 2005). A modelagem baseada em comportamento do usuário parece, portanto, mais eficaz que aquela que se baseia na interação explicita (através da atribuição de uma nota, por exemplo). 29
  30. 30. Para definir o escopo de existência do algoritmo primeiramente define-se um conjunto A n-dimensional que conterá elementos an que serão os usuários. Fazendo por B o conjunto dos filmes disponíveis para interação dos usuários, temos bn elementos que serão a representação dos filmes. O conjunto C será definido conjunto dos gêneros existentes para os filmes do conjunto B. Exemplificando: A: conjunto dos usuários do sistema eg. A={João, Cristiano, Felipe, Camila, Fernanda, Pedro,...} A1: subconjunto dos usuários do sistema que possuem perfis semelhantes eg. A1={João, Felipe, Camila} A2: subconjunto unitário contendo o usuário que está registrado no sistema eg. A2={João} B: conjunto dos filmes eg. B={“E o Vento Levou”, “Robocop”, “Laranja Mecânica”,...} B1: subconjunto dos filmes interagidos por usuários com perfil semelhante B2: subconjunto dos filmes interagidos pelo usuários registrado no sistema C: conjunto de gêneros possíveis nos quais um filme se enquadra eg. C={Ação, Drama, Aventura, Comédia, Romance,Guerra, Noir, Épico...} C1: subconjunto dos gêneros de um grupo de filmes 30
  31. 31. Para os conjuntos acima estão definidas as seguintes relações: 1 21 21 CC BBB AAA ⊃ ⊃⊃ ⊃⊃ Da onde conclui-se facilmente que a recomendação pode ser definida como o conjunto dos filmes que pode ser recomendado a um usuários registrado no sistema, formalmente: { }21 21 BbBbR BBR nn ∉∈∀= −= A figura abaixo ilustra o texto: A B C A1 A2 B1 B2 C1 R=B1-B2 Figura 9: Representação do escopo do algorítmo em notação de conjuntos Para cada elemento a do conjunto A, teremos através de uma função de associação f, n-elementos em A1 formando o sub-conjunto dos usuários que possuem as mesmas preferências por filmes (isto é, o seu cluster). A cada elemento 31
  32. 32. de A corresponderá zero ou mais elementos em B através de uma função de interação g representando a utilização do sistema pelo usuário. A cada elemento de B corresponderá um ou mais elementos em C representando a classificação dos filmes em gêneros. A função de recomendação h será definida de A sobre B e irá associar a um usuário (registrado no sistema) os filmes que poderão ser recomendados. A figura abaixo ilustra o funcionamento de todas as funções responsáveis pela recomendação. u1=(g11,g12,...,g1n) u2=(g21,g22,...,g2n) um=(g1m,g1m,...,gmn) Normalização Representação Espacial Cluster 1 2 3 Figura 10: O funcionamento da recomendação Cada uma dessas funções pode ser exprimida como demonstrado a seguir: 1. Função de Aglomeração (f): Para encontrar os usuários que são integrantes do grupo ao qual se associará o usuário ativo, iremos primeiramente modelar os usuários como um vetor a=(b1,b2,...,bn). Estes vetores serão então dispostos em um plano π, n-dimensional. Para poder computar as distâncias como sendo uma representação da afinidade 32
  33. 33. entre os usuários precisamos antes normalizá-los a fim de se neutralizar o peso da participação mais ou menos intensa dos usuários no sistema. ( )nbbba ,..., 21=         +++++++++ == 22 2 2 1 22 2 2 1 2 22 2 2 1 1 ... ,..., ... , ... ' n n nn bbb b bbb b bbb b a a a Da onde podemos facilmente concluir que para calcular a distância entre dois usuários d(ai,aj) normalizados, bastaria efetuar o cálculo da distância entre 2 pontos no plano cartesiano: ( ) ( )jnjjj iniii bbba bbba ,...,, ,...,, 21 21 = = ( ) ( ) ( ) ( )22 22 2 11 ..., jninjijiji bbbbbbaad −++−+−= Com este método podemos automatizar a função computando as distâncias entre todos os usuários. A cada iteração do método de clusterização hierárquica por aglomeração, o conjunto de dados diminui em um e o número de médias que é necessário para se calcular o centróide de um cluster é acrescido de um. Portanto temos. 33
  34. 34. Iteração Distâncias Médias 1º ( ) !2!*2 ! 2 − = n n C n 0 2º ( ) !2!*3 )!1(1 2 − − = − n n C n 1 (...) (...) k-ésima ( ) !2!*2)( )!( 2 −− − = − kn kn C kn k-1 Tabela 2: Complexidade do tempo de execução do algoritmo 2. Função de Associação (g): Esta função será disparada cada vez que um usuário entrar no sistema e executar alguma ação. Cada um dos tipos de interação do usuário com sistema foram modelados e o peso de significância atribuído de acordo com a importância da ação. Ação Descrição Peso Navegação Navegação pelas fichas descritivas dos filmes. 1 Aluguel Aluguel do filme 2 Compra Compra do filme 3 Tabela 3: Tipos de Interação Para associar um filme a um usuário é necessário efetuar um cálculo de atualização do vetor representação do gosto do usuário. Sendo c o vetor representativo da ficha do filme e a um usuário que acabou de navegar, alugar ou comprar um filme, a atualização que deverá ser feita no vetor do usuário pode ser expressa pela equação abaixo, considerando t1 o momento imediatamente anterior a 34
  35. 35. interação do usuário com o sistema e t2 o momento imediatamente posterior a esta interação. ),...,,( ),...,,( ),...,,( 22112 21 211 nnt n nt xbxbxba xxxc bbba +++= = = 3. Função de Recomendação (h): A função de recomendação associa a cada usuário, um vetor de itens (filmes) ordenado pela ordem de relevância. O conjunto de elementos que representam a recomendação é um subconjunto do conjunto de itens (filmes), formalmente são válidas as seguintes relações: BBB BB = ⊂ 11 1  Para se encontrar um conjunto de recomendações para um usuário a de A dos elementos de B, deve-se selecionar aqueles elementos que forem associados aos usuários que fazem parte do cluster do usuário ativo. Uma vez encontrados os filmes, através da verificação da frequência de gêneros vistos por um grupo de usuários em comum, será necessário ordenar a recomendação pela relavância que esta representa para o usuário ativo. Esta relevância será determinada através da ordem direta da frequência verificada para os gêneros e sua aderência à classificação do filme, constante da recomendação. 35
  36. 36. 4 Implementação O sistema foi desenvolvido usando a linguagem Visual Basic na plataforma Active Server Pages (ASP) da Microsoft e o banco de dados Access, também da Microsoft. A escolha desta tecnologia se deve ao fato de sua fácil prototipagem e rápido suporte à depuração dos códigos gerados. A publicação da ferramenta será feita através do programa Internet Information Server, também da Microsoft, que será o servidor de arquivos HTML e ASP. Estas tecnologias serão descritas na seção 4.1. A modelagem do sistema Indic@ será apresentada na seção 4.2, abordando os casos de uso, os principais diagramas de colaboração, diagramas de classes, lista e descrição dos casos de uso e o modelo entidade-relacionamento. 4.1 Introdução às tecnologias envolvidas 4.1.1 ASP – Active Server Pages O ASP é uma estrutura de programação em Script que se utiliza de VBScript, JScript, PerlScript ou Python processadas pelo lado servidor para geração de conteúdo dinâmico na Web. Ele roda nativamente em servidores Windows, através do serviço chamado de IIS (Internet Information Service) - o servidor web da Microsoft, ou do PWS (Personal Web Server) em ambientes com Windows 98. O script é interpretado no lado do servidor e o que é enviado ao lado do usuário (navegador, por exemplo) é apenas a saída. que normalmente é uma linguagem de marcação como HTML, XHTML ou XML. 36
  37. 37. 4.1.2 IIS – Internet Information Services O IIS é um servidor web criado pela Microsoft para seus sistemas operacionais para servidores. Uma de suas características mais utilizadas é a geração de páginas HTML dinâmicas, que diferentemente de outros servidores web, usa tecnologia proprietária, o ASP (Active Server Pages), mas também pode usar outras tecnologias com adição de módulos de terceiros. 4.1.3 MS Access O Microsoft Access é um sistema relacional de administração de banco de dados da Microsoft, incluído no pacote do Microsoft Office Professional, que combina o Microsoft Jet Database Engine com uma interface de usuário gráfica. Ele permite o desenvolvimento rápido de aplicações que envolvem tanto a modelagem e estrutura de dados como também a interface a ser utilizada pelos usuários. 4.2 Modelagem Iremos nesta seção definir as principais estruturas de dados que farão parte do protótipo do sistema Indica de recomendações de filmes baseadas em gêneros. Para a documentação da modelagem do sistema, optou-se por apresentar um diagrama de cada tipo: Estrutural – Diagrama de Classes, Comportamental – Lista e Descrição dos Casos de uso, Interação – Diagrama de sequência. Os diagramas são detalhas a seguir: 37
  38. 38. 4.2.1 Diagrama de Classes Figura 11: Diagrama de Classes (alto-nível) 4.2.2 Lista de Casos de Uso Listagem dos possíveis casos de uso para os usuários do sistema Indica: U0.1 Autorizar Usuário U0.2 Cadastrar Novo Usuário U1.1 Visualizar lista de filmes U1.2 Buscar filmes U1.3 Visualizar nuves de usuários próximos U1.4 Visualizar atividades no sistema U1.5 Editar Cadastro U1.6 Refinar Configurações U2.1 Visualizar ficha de filmes U2.2 Alugar filmes U2.3 Comprar filmes Figura 12: Lista de Casos de Uso 38
  39. 39. 4.2.3 Diagrama de Casos de Uso Figura 13: Diagrama de Casos de Uso 39
  40. 40. 4.2.4 Descrição dos Casos de uso U0.1 Autorizar Usuário Descrição Breve O sistema mostrará ao usuário uma saudação inicial solicitando que o mesmo faça o login através do fornecimento de seu nome de identificação e senha. Fluxo de Eventos Fluxo Básico: o O usuário insere os dados de cadastro no sistema. • O sistema redireciona o usuário a tela principal. Fluxo Alternativo: o O usuário insere os dados de cadastro incorretos no sistema. • O sistema exibe uma mensagem de erro. Requisitos Especiais Não possui. Pré-Condições O usuário deve estar cadastrado no sistema. Pós-Condições O sistema deve executar o caso de uso U1.1 (Exibir filmes). 40
  41. 41. U0.2 Cadastrar Novo Usuário Descrição Breve Um novo usuário deseja se cadastrar no sistema. Fluxo de Eventos Fluxo Básico: o O usuário seleciona a opção “Novo Usuário” a partir do menu principal da ferramenta. • O sistema apresenta para o usuário uma tela de cadastro. Fluxo Alternativo: o Não possui. Requisitos Especiais Não possui. Pré-Condições O usuário deve estar cadastrado no sistema. Pós-Condições O sistema deve executar o caso de uso U0.1 (Autorizar Usuário). 41
  42. 42. U1.1 Visualizar lista de filmes Descrição Breve O sistema mostra ao usuário previamente registrado uma tela contendo todos os filmes disponíveis na base de dados categorizados por gênero. Fluxo de Eventos Fluxo Básico o O sistema exibe a lista de filmes cadastrados no sistema. Requisitos Especiais Não possui. Pré-Condições O usuário deve estar cadastrado no sistema. Pós-Condições O sistema deve executar o caso de uso U2.1 (Visualizar ficha de filmes). 42
  43. 43. U1.2. Buscar filmes Descrição Breve O sistema irá buscar filmes de acordo com o gênero ou título selecionado pelo usuário. Fluxo de Eventos Fluxo Básico: o O usuário seleciona o gênero para o qual deseja visualizar uma lista de filmes. • O sistema retorna uma lista de filmes do gênero escolhido. o O usuário seleciona o título para o qual deseja visualizar uma lista de filmes. • O sistema retorna uma lista de filmes contendo no campo título a cadeia de caracteres de busca informada pelo usuário. Fluxo Alternativo: o O usuário seleciona o gênero para o qual deseja visualizar uma lista de filmes. • O sistema não encontra nenhum filme com o filtro especificado o O sistema exibe mensagem de alerta: “Nenhum filme encontrado”. o O usuário não faz escolha de nenhum gênero e não preenche o campo de busca por título e ativa o botão de busca. • O sistema exibe mensagem de alerta: “É preciso especificar um filtro”. Requisitos Especiais Não possui. Pré-Condições o O usuário deve estar cadastrado no sistema. o Deve ser informado um gênero ou título para efetuar a busca de filmes. Pós-Condições O sistema deve executar o caso de uso U1.1 (Visualizar lista de filmes) filtrando pelo gênero ou título de acordo com a seleção de busca escolhida pelo usuário. 43
  44. 44. 44
  45. 45. U1.3 Visualizar nuvens de usuários próximos Descrição Breve O sistema irá mostrar os interesses dos usuários mais similares ao usuário registrado no sistema através da visualização tag cloud. Fluxo de Eventos Fluxo Básico: o O usuário seleciona a opção “Visualizar nuvens” • O sistema exibe as nuvens de interação dos usuários Fluxo Alternativo: o Não possui. Requisitos Especiais Não possui. Pré-Condições O usuário deve estar cadastrado no sistema. Pós-Condições Não possui. 45
  46. 46. U1.4 Visualizar atividades no sistema Descrição Breve O sistema irá mostrar as compras, alugueis e visualizações de filmes do usuário registrado no sistema. Será possível ao usuário ver somente as suas interações. Fluxo de Eventos Fluxo Básico: o O usuário seleciona opção “Visualizar interações” • O sistema exibe as interações do usuário. Fluxo Alternativo: o O usuário não possui interações no sistema. • O sistema exibe a mensagem “Não existem interações registradas no momento” Requisitos Especiais Não possui. Pré-Condições o O usuário deve estar cadastrado no sistema. o Devem existir interações para o usuário registrado no sistema. Pós-Condições Não possui. 46
  47. 47. U1.5 Editar Cadastro Descrição Breve O usuário poderá fazer alterações no cadastro, podendo posteriormente, recuperar os dados para edição. Fluxo de Eventos Fluxo Básico: o O usuário seleciona opção “Editar Cadastro” • O sistema exibe uma tela com as informações inseridas pelo usuário no momento do cadastro. Fluxo Alternativo: o Não possui. Requisitos Especiais Não possui. Pré-Condições O usuário deve estar cadastrado no sistema. Pós-Condições Não possui. 47
  48. 48. U1.6 Refinar Configurações Descrição Breve Os usuários poderão modificar variáveis do sistema para obter resultados mais ou menos apurados em detrimento da velocidade de execução do algoritmo de recomendação. Fluxo de Eventos Fluxo Básico: o O usuário seleciona opção “Editar Configurações” • O sistema exibe as configurações. Fluxo Alternativo: o Não possui. Requisitos Especiais Não possui. Pré-Condições O usuário deve estar cadastrado no sistema. Pós-Condições O sistema deve executar o caso de uso U1.1 (Visualizar lista de filmes) exibindo os filmes de acordo com a nova configuração registrada. 48
  49. 49. U2.1 Visualizar ficha de filmes Descrição Breve O usuário, a partir da lista de filmes apresentada pelo sistema, escolherá um filme para o qual deseja visualizar mais informações. Fluxo de Eventos Fluxo Básico: o O usuário seleciona algum filme da lista de filmes exibida pelo sistema. • O sistema exibe informações detalhas do filme. Requisitos Especiais Não possui. Pré-Condições O usuário deve estar cadastrado no sistema. Pós-Condições Não possui. 49
  50. 50. U2.2 Alugar filmes Descrição Breve O usuário, a partir da ficha de filmes apresentada pelo sistema, selecionará a opção de aluguel do filme. Fluxo de Eventos Fluxo Básico: o O sistema exibe informações detalhadas do filme. • O usuário seleciona a opção “aluguel”. Requisitos Especiais Não possui. Pré-Condições O usuário deve estar cadastrado no sistema. Pós-Condições Não possui. 50
  51. 51. U2.3 Comprar filmes Descrição Breve O usuário, a partir da ficha de filmes apresentada pelo sistema, selecionará a opção de compra do filme. Fluxo de Eventos Fluxo Básico: o O sistema exibe informações detalhadas do filme. • O usuário seleciona a opção “compra” Requisitos Especiais Não possui. Pré-Condições O usuário deve estar cadastrado no sistema. Pós-Condições Não possui. 51
  52. 52. 4.2.5 Diagramas de Sequência U0.1 Autorizar Usuário Figura 14: Diagrama de Sequência - Autorizar Usuário U0.2 Cadastrar Novo Usuário Figura 15: Diagrama de Sequência - Cadastrar Novo Usuário 52
  53. 53. U1.1 Visualizar lista de filmes Figura 16: Diagrama de Sequência - Visualizar lista de filmes U1.2. Buscar filmes Figura 17: Diagrama de Sequência - Buscar filmes 53
  54. 54. U1.3 Visualizar nuves de usuários próximos Figura 18: Diagrama de Sequência - Visualizar nuvens de usuários próximos U1.4 Visualizar atividades no sistema Figura 19: Diagrama de Sequência - Visualizar atividades no sistema 54
  55. 55. U1.5 Editar Cadastro Figura 20: Diagrama de Sequência - Editar Cadastro U1.6 Refinar Configurações Figura 21: Diagrama de Sequência - Refinar Configurações 55
  56. 56. U2.1 Visualizar ficha de filmes Figura 22: Diagrama de Sequência - Visualizar ficha de filmes U2.2 Alugar filmes Figura 23: Diagrama de Sequência - Alugar filmes 56
  57. 57. U2.3 Comprar filmes Figura 24: Diagrama de Sequência - Comprar filmes 57
  58. 58. 5 O Sistema Nesta seção será apresentada a estrutura sobre a qual se apoia a ferramenta. O sistema foi implementado no formato de um site, e teve como objetivo central a prototipação do algoritmo desenvolvido neste trabalho. Apresentamos no próximo capítulo, sugestões para trabalhos futuros onde serão discutidas alternativas mais robustas para implementação de um projeto de uma ferramenta de recomendação. 5.1 Mapa do Site Registro Cadastro Incluir Entrada Configura ções Interações Ficha do Filme Cadastro Editar Figura 25: Mapa do Site 58
  59. 59. 5.2 Modelo Relacional Figura 26: Modelo Relacional 59
  60. 60. 5.3 Telas do Sistema Figura 27: Tela do Sistema - Registro Figura 28: Tela do Sistema - Principal 60
  61. 61. Figura 29: Tela do Sistema - Nuvens de Usuários interações Figura 30: Tela do Sistema - Atividades 61
  62. 62. cadastro Figura 31: Tela do Sistema - Cadastro preferências Figura 32: Tela do Sistema - Configurações 62
  63. 63. 6 Conclusão Este trabalho apresentou uma revisão da área de Recomendação de produtos e apresentou um algoritmo e sua implementação, voltado para apoiar a recomendação de filmes em um site especializado. As ferramentas de recomendação agregam valor à forma de abordagem de usuários em sistemas de publicação de notícias, gerenciadores de email, sistemas de entretenimento e varejo on-line. Sua utilização está sendo cada vez mais difundida e necessária em razão da explosão de volume de dados expostos aos usuários de Internet. No Brasil, a utilização de ferramentas de recomendação não está bastante difundida em razão de não haver uma política de incentivo a feedbacks de usuários com o sistema. O usuário não é estimulado o bastante a colocar sua opinião e permitir, assim, a geração de recomendações. É preciso ressaltar que os usuários desempenham um papel central nos sistemas de recomendação. Entender ferramentas de recomendação é, antes de tudo, entender como objetos em um grupo se inter-relacionam, e como estes se relacionam com seus portadores. Com 20 anos de existência, a pesquisa acadêmica na área ainda tem muitos desafios que ultrapassam os limites da ciência da computação e sugerem uma abordagem multidisciplinar envolvendo estatística, economia, ciências sociais e até psicologia. 63
  64. 64. 7 Sugestão para trabalhos futuros Com o aperfeiçoamento de técnicas de inteligência artificial, o aumento do número de terminais de computadores e celulares com acesso a internet e o crescimento da comunicação ubiqua farão com que seja mais fácil registrar o feedback do usuário à experiência de interação com produtos, em tempo real virtualmente em qualquer lugar e de forma transparente para o usuário. O desafio para os trabalhos na área reside na modelagem de sistemas cada vez mais seguros, onde os dados dos usuários possam estar salvaguardados com segurança e a garantia de anonimato. A grande oferta de algorítmos para recomendação existente hoje no meio acadêmico ainda não garante que as recomendações sejam feitas de forma efetiva e ampliada para outros domínios de aplicação (Adomavicius 2005). Reside aí outra oportunidade para o desenvolvimento de ferramentas de recomendação. Outra extensão proposta para este trabalho seria a investigação de abordagens alternativas para geração de recomendações no domínio de filmes. Atualmente existem basicamente 2 tipos de abordagem, por conteúdo ou colaboração. Dentro dos algorítmos propostos para abordagem por conteúdo, o material utilizado para classificação dos filmes é constantemente a sinpose ou descritores pré-definidos. Com o avanço da pesquisa na área de reconhecimento de som e vídeo, será possível também desenvolver abordagens baseadas no conteúdo não só escrito, mas também o conteúdo de aúdio e vídeo. 64
  65. 65. 8 Bibliografia 1. Montaner, M et al. (2003) “A Taxonomy of Recommender Agents on the Internet”, In: Artificial Intelligence Review, p.285-330 2. Reategui, E B; Cazella, S C (2005) “Sistemas de Recomendação”, In: XXC Congresso da Sociedade Brasileira de Computação, p.306-340 3. Adomavicius, G; Tuzhilin, A (2005) “Towards the Next Generation of Recommender Systems: A Survey of the State-of-the-Art and Possible Extensions, In: IEEE Transactions on Knowledge and Data Engineering, Vol.17, No.6, June 2005 p.734-749 4. O’Reilly, T (2006) “Web 2.0 Principles and Best Practices” 5. Belkin, N; Croft, W (1992) “Information Filtering and information Retrieval: Two Sides of the Same Coin?” In: Communications of the ACM December 1992 Vol. 35, No.12 p.29-38 6. Goldberg, D et al. (1992) “Using Collaborative Filtering to Weave na Information Tapestry” In: Communications of the ACM December 1992 Vol. 35, No.12 p.61- 70 7. Foltz, P; Dumais, S (1992) “Personalized Information Delivery: An Analysis of Information Filtering Methods” In: Communications of the ACM December 1992 Vol. 35, No.12 p.51-60 8. Riedl et. al. (1999) “Combining Collaborative Filtering with Personal Agents for Better Recommendations” GroupLens Research Project – University of Minnesota. 9. Anderson, Cris (2006) “The Long Tail” In: Wired Magazine p.X-Y 65
  66. 66. 10. Melville, P. et al. (2002) “Content-Boosted Collaborative Filtering for Improved Recommendations” In: Proceedings of the Eighteenth National Conference on Artificial Intelligence (AAAI-2002) p.187-192 July 2002 11.Bezerra, B.(2002) “Estudo de Algoritmos de Filtragem de Informação Baseados em Conteúdo” 12. MovieLens: Disponível em <http://movielens.umn.edu/> Acessado em 1 jun 2007. 13. Pandora: Disponível em <http://pandora.com/> Acessado em 5 jun 2007. 14. Last.FM: Disponível em <http://lastfm.com/> Acessado em 7 jun 2007. 15. Amazon.com: Disponível em <http://amazon.com/> Acessado em 3 ago 2007. 16. Submarino: Disponível em <http://submarino.com.br/> Acessado em 22 jun 2007. 17.Americanas.com: Disponível em <http://americanas.com.br/> Acessado em 14 jun 2007. 66

×