ferramentas de recomendação - detalhe

66
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

Upload: joao-alqueres

Post on 20-Jul-2015

72 views

Category:

Documents


26 download

TRANSCRIPT

Page 1: Ferramentas de Recomendação - Detalhe

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

Page 2: Ferramentas de Recomendação - Detalhe

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

Page 3: Ferramentas de Recomendação - Detalhe

Aos meus mestres. Todos eles.

3

Page 4: Ferramentas de Recomendação - Detalhe

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

Page 5: Ferramentas de Recomendação - Detalhe

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

Page 6: Ferramentas de Recomendação - Detalhe

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

Page 7: Ferramentas de Recomendação - Detalhe

6 CONCLUSÃO......................................................................................................63

7 SUGESTÃO PARA TRABALHOS FUTUROS................................................64

8 BIBLIOGRAFIA..................................................................................................65

7

Page 8: Ferramentas de Recomendação - Detalhe

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

Page 9: Ferramentas de Recomendação - Detalhe

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

Page 10: Ferramentas de Recomendação - Detalhe

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

Page 11: Ferramentas de Recomendação - Detalhe

Lista de Siglas e Símbolos

11

Page 12: Ferramentas de Recomendação - Detalhe

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

Page 13: Ferramentas de Recomendação - Detalhe

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

Page 14: Ferramentas de Recomendação - Detalhe

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

Page 15: Ferramentas de Recomendação - Detalhe

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

Page 16: Ferramentas de Recomendação - Detalhe

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

Page 17: Ferramentas de Recomendação - Detalhe

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

Page 18: Ferramentas de Recomendação - Detalhe

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

Page 19: Ferramentas de Recomendação - Detalhe

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

Page 20: Ferramentas de Recomendação - Detalhe

Figura 4: O site de comércio eletrônico Amazon.com (www.amazon.com)

20

Page 21: Ferramentas de Recomendação - Detalhe

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

CoberturaMedir 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ânciaCorrelaçãoValor eficaz

Suporte a Decisão

Medir a eficiência do sistema em oferecer previsões úteis para o usuário.

Curvas ROCTaxa ReversaErro 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

Page 22: Ferramentas de Recomendação - Detalhe

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

Page 23: Ferramentas de Recomendação - Detalhe

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.

Ve

nd

asa

s

Número de Ítens do catálogo

1# Jorge Ben Jor

2# Orlandivo

3# Ed Lincoln4# Walter Wanderley

23

Page 24: Ferramentas de Recomendação - Detalhe

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

Page 25: Ferramentas de Recomendação - Detalhe

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

Page 26: Ferramentas de Recomendação - Detalhe

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

Page 27: Ferramentas de Recomendação - Detalhe

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

Page 28: Ferramentas de Recomendação - Detalhe

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

Page 29: Ferramentas de Recomendação - Detalhe

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

Page 30: Ferramentas de Recomendação - Detalhe

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

Page 31: Ferramentas de Recomendação - Detalhe

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

Page 32: Ferramentas de Recomendação - Detalhe

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

Page 33: Ferramentas de Recomendação - Detalhe

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=

+++++++++==

222

21

222

21

2

222

21

1

...,...,

...,

...'

n

n

nn bbb

b

bbb

b

bbb

b

a

aa

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

==

( ) ( ) ( ) ( )2222

211 ..., 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

Page 34: Ferramentas de Recomendação - Detalhe

Iteração Distâncias Médias

1º ( ) !2!*2

!2 −=n

nC

n0

2º ( ) !2!*3

)!1(1

2 −−=−

n

nC

n1

(...) (...)

k-ésima ( ) !2!*2)(

)!(2 −−

−=−

kn

knC

knk-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çãoNavegaçã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

Page 35: Ferramentas de Recomendação - Detalhe

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

Page 36: Ferramentas de Recomendação - Detalhe

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

Page 37: Ferramentas de Recomendação - Detalhe

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

Page 38: Ferramentas de Recomendação - Detalhe

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

Page 39: Ferramentas de Recomendação - Detalhe

4.2.3 Diagrama de Casos de Uso

Figura 13: Diagrama de Casos de Uso

39

Page 40: Ferramentas de Recomendação - Detalhe

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

Page 41: Ferramentas de Recomendação - Detalhe

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

Page 42: Ferramentas de Recomendação - Detalhe

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

Page 43: Ferramentas de Recomendação - Detalhe

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

Page 44: Ferramentas de Recomendação - Detalhe

44

Page 45: Ferramentas de Recomendação - Detalhe

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

Page 46: Ferramentas de Recomendação - Detalhe

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

Page 47: Ferramentas de Recomendação - Detalhe

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

Page 48: Ferramentas de Recomendação - Detalhe

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

Page 49: Ferramentas de Recomendação - Detalhe

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

Page 50: Ferramentas de Recomendação - Detalhe

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

Page 51: Ferramentas de Recomendação - Detalhe

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

Page 52: Ferramentas de Recomendação - Detalhe

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

Page 53: Ferramentas de Recomendação - Detalhe

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

Page 54: Ferramentas de Recomendação - Detalhe

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

Page 55: Ferramentas de Recomendação - Detalhe

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

Page 56: Ferramentas de Recomendação - Detalhe

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

Page 57: Ferramentas de Recomendação - Detalhe

U2.3 Comprar filmes

Figura 24: Diagrama de Sequência - Comprar filmes

57

Page 58: Ferramentas de Recomendação - Detalhe

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

Page 59: Ferramentas de Recomendação - Detalhe

5.2 Modelo Relacional

Figura 26: Modelo Relacional

59

Page 60: Ferramentas de Recomendação - Detalhe

5.3 Telas do Sistema

Figura 27: Tela do Sistema - Registro

Figura 28: Tela do Sistema - Principal

60

Page 61: Ferramentas de Recomendação - Detalhe

Figura 29: Tela do Sistema - Nuvens de Usuários

interações

Figura 30: Tela do Sistema - Atividades

61

Page 62: Ferramentas de Recomendação - Detalhe

cadastro

Figura 31: Tela do Sistema - Cadastro

preferências

Figura 32: Tela do Sistema - Configurações

62

Page 63: Ferramentas de Recomendação - Detalhe

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

Page 64: Ferramentas de Recomendação - Detalhe

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

Page 65: Ferramentas de Recomendação - Detalhe

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

Page 66: Ferramentas de Recomendação - Detalhe

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