SlideShare ist ein Scribd-Unternehmen logo
1 von 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
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
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 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
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
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
6 CONCLUSÃO......................................................................................................63
7 SUGESTÃO PARA TRABALHOS FUTUROS................................................64
8 BIBLIOGRAFIA..................................................................................................65
7
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
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
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
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 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
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
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
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
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
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
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
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
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 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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 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
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 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
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
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
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

Weitere ähnliche Inhalte

Was ist angesagt?

Gestão de crise: Desvendando o Poder do Consumidor nas Redes Sociais
Gestão de crise: Desvendando o Poder do Consumidor nas Redes SociaisGestão de crise: Desvendando o Poder do Consumidor nas Redes Sociais
Gestão de crise: Desvendando o Poder do Consumidor nas Redes Sociais
Bianca Alves
 

Was ist angesagt? (15)

Facebook como Plataforma de Relacionamento entre Cliente e Empresa - Facebook...
Facebook como Plataforma de Relacionamento entre Cliente e Empresa - Facebook...Facebook como Plataforma de Relacionamento entre Cliente e Empresa - Facebook...
Facebook como Plataforma de Relacionamento entre Cliente e Empresa - Facebook...
 
Marketing digital: Estudo de caso Zappos
Marketing digital: Estudo de caso Zappos Marketing digital: Estudo de caso Zappos
Marketing digital: Estudo de caso Zappos
 
Acessibilidade na internet
Acessibilidade na internetAcessibilidade na internet
Acessibilidade na internet
 
O IMPACTO DA ENGENHARIA SOCIAL NA SEGURANÇA DA INFORMAÇÃO
O IMPACTO DA ENGENHARIA SOCIAL NA SEGURANÇA DA INFORMAÇÃOO IMPACTO DA ENGENHARIA SOCIAL NA SEGURANÇA DA INFORMAÇÃO
O IMPACTO DA ENGENHARIA SOCIAL NA SEGURANÇA DA INFORMAÇÃO
 
TCC de marketing
TCC de marketingTCC de marketing
TCC de marketing
 
TCC Ana Ramos - FACEBOOK E O STATUS GERADOR DE PUBLICIDADE: O USUÁRIO COMO FO...
TCC Ana Ramos - FACEBOOK E O STATUS GERADOR DE PUBLICIDADE: O USUÁRIO COMO FO...TCC Ana Ramos - FACEBOOK E O STATUS GERADOR DE PUBLICIDADE: O USUÁRIO COMO FO...
TCC Ana Ramos - FACEBOOK E O STATUS GERADOR DE PUBLICIDADE: O USUÁRIO COMO FO...
 
Trabalho conclusão Final - curso sistemas de informação
Trabalho conclusão Final - curso sistemas de informaçãoTrabalho conclusão Final - curso sistemas de informação
Trabalho conclusão Final - curso sistemas de informação
 
Gestão de crise: Desvendando o Poder do Consumidor nas Redes Sociais
Gestão de crise: Desvendando o Poder do Consumidor nas Redes SociaisGestão de crise: Desvendando o Poder do Consumidor nas Redes Sociais
Gestão de crise: Desvendando o Poder do Consumidor nas Redes Sociais
 
Trabalho de diplomação I
Trabalho de diplomação ITrabalho de diplomação I
Trabalho de diplomação I
 
Projeto de graduação
Projeto de graduaçãoProjeto de graduação
Projeto de graduação
 
Condo master
Condo masterCondo master
Condo master
 
Monografia "Prospect. A realidade do mercado publicitário e a concorrência en...
Monografia "Prospect. A realidade do mercado publicitário e a concorrência en...Monografia "Prospect. A realidade do mercado publicitário e a concorrência en...
Monografia "Prospect. A realidade do mercado publicitário e a concorrência en...
 
Projeto Integrado - Gestão na Publicidade
Projeto Integrado - Gestão na PublicidadeProjeto Integrado - Gestão na Publicidade
Projeto Integrado - Gestão na Publicidade
 
REFORMULAÇÃO DA COMUNICAÇÃO DIGITAL DO PMI ES
REFORMULAÇÃO DA COMUNICAÇÃO DIGITAL DO PMI ESREFORMULAÇÃO DA COMUNICAÇÃO DIGITAL DO PMI ES
REFORMULAÇÃO DA COMUNICAÇÃO DIGITAL DO PMI ES
 
TCC Igor Menezes - Os benefícios da tecnologia como ferramenta de auxílio na ...
TCC Igor Menezes - Os benefícios da tecnologia como ferramenta de auxílio na ...TCC Igor Menezes - Os benefícios da tecnologia como ferramenta de auxílio na ...
TCC Igor Menezes - Os benefícios da tecnologia como ferramenta de auxílio na ...
 

Ähnlich wie Ferramentas de Recomendação - Detalhe

O impacto da engenharia social na segurança da informaçao
O impacto da engenharia social na segurança da informaçaoO impacto da engenharia social na segurança da informaçao
O impacto da engenharia social na segurança da informaçao
SoftD Abreu
 
Repositório do Parque Tecnológico da PMSP
Repositório do Parque Tecnológico da PMSPRepositório do Parque Tecnológico da PMSP
Repositório do Parque Tecnológico da PMSP
Mário Januário Filho
 
Tcc luizfernando final
Tcc luizfernando finalTcc luizfernando final
Tcc luizfernando final
luizfg56
 

Ähnlich wie Ferramentas de Recomendação - Detalhe (20)

O impacto da engenharia social na segurança da informaçao
O impacto da engenharia social na segurança da informaçaoO impacto da engenharia social na segurança da informaçao
O impacto da engenharia social na segurança da informaçao
 
Projeto de pesquisa - Automação Residencial
Projeto de pesquisa - Automação ResidencialProjeto de pesquisa - Automação Residencial
Projeto de pesquisa - Automação Residencial
 
Reestruturação da arquitetura de informação e a otimização do conteúdo para o...
Reestruturação da arquitetura de informação e a otimização do conteúdo para o...Reestruturação da arquitetura de informação e a otimização do conteúdo para o...
Reestruturação da arquitetura de informação e a otimização do conteúdo para o...
 
Comparativo de usabilidade nos websites do sistema ACAFE do oeste de Santa Ca...
Comparativo de usabilidade nos websites do sistema ACAFE do oeste de Santa Ca...Comparativo de usabilidade nos websites do sistema ACAFE do oeste de Santa Ca...
Comparativo de usabilidade nos websites do sistema ACAFE do oeste de Santa Ca...
 
E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...
E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...
E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...
 
E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...
E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...
E-OBRAS: Proposta de Desenvolvimento do Protótipo de Sistema para Secretarias...
 
Monografia Marcos Bezerra 2008
Monografia Marcos Bezerra   2008Monografia Marcos Bezerra   2008
Monografia Marcos Bezerra 2008
 
Monografia - Qualidade Afetiva de Elementos Visuais
Monografia - Qualidade Afetiva de Elementos VisuaisMonografia - Qualidade Afetiva de Elementos Visuais
Monografia - Qualidade Afetiva de Elementos Visuais
 
Monografia - Padrões Web
Monografia - Padrões WebMonografia - Padrões Web
Monografia - Padrões Web
 
BANCO DE DADOS MÓVEIS E COMPUTAÇÃO MÓVEL: UMA DISCUSSÃO DE SEUS RECURSOS E AP...
BANCO DE DADOS MÓVEIS E COMPUTAÇÃO MÓVEL: UMA DISCUSSÃO DE SEUS RECURSOS E AP...BANCO DE DADOS MÓVEIS E COMPUTAÇÃO MÓVEL: UMA DISCUSSÃO DE SEUS RECURSOS E AP...
BANCO DE DADOS MÓVEIS E COMPUTAÇÃO MÓVEL: UMA DISCUSSÃO DE SEUS RECURSOS E AP...
 
M-Commerce e a Plataforma Google Android
M-Commerce e a Plataforma Google AndroidM-Commerce e a Plataforma Google Android
M-Commerce e a Plataforma Google Android
 
76223807 analise-e-modelagem-de-uma-ferramenta-para-ensino-de-criptografia
76223807 analise-e-modelagem-de-uma-ferramenta-para-ensino-de-criptografia76223807 analise-e-modelagem-de-uma-ferramenta-para-ensino-de-criptografia
76223807 analise-e-modelagem-de-uma-ferramenta-para-ensino-de-criptografia
 
ANÁLISE DE PONTOS DE PROPAGAÇÃO DE INFORMAÇÃO EM REDES SOCIAIS COM O USO DO A...
ANÁLISE DE PONTOS DE PROPAGAÇÃO DE INFORMAÇÃO EM REDES SOCIAIS COM O USO DO A...ANÁLISE DE PONTOS DE PROPAGAÇÃO DE INFORMAÇÃO EM REDES SOCIAIS COM O USO DO A...
ANÁLISE DE PONTOS DE PROPAGAÇÃO DE INFORMAÇÃO EM REDES SOCIAIS COM O USO DO A...
 
Repositório do Parque Tecnológico da PMSP
Repositório do Parque Tecnológico da PMSPRepositório do Parque Tecnológico da PMSP
Repositório do Parque Tecnológico da PMSP
 
GESTÃO DE PROJETOS ÁGEIS: UMA ANÁLISE DOS PRINCIPAIS PORTAIS DE CONTEÚDO NA I...
GESTÃO DE PROJETOS ÁGEIS: UMA ANÁLISE DOS PRINCIPAIS PORTAIS DE CONTEÚDO NA I...GESTÃO DE PROJETOS ÁGEIS: UMA ANÁLISE DOS PRINCIPAIS PORTAIS DE CONTEÚDO NA I...
GESTÃO DE PROJETOS ÁGEIS: UMA ANÁLISE DOS PRINCIPAIS PORTAIS DE CONTEÚDO NA I...
 
Tcc luizfernando final
Tcc luizfernando finalTcc luizfernando final
Tcc luizfernando final
 
Trabalho de Graduação Faculdade de Tecnologia de Ourinhos (FATEC Ourinhos)
Trabalho de Graduação Faculdade de Tecnologia de Ourinhos (FATEC Ourinhos)Trabalho de Graduação Faculdade de Tecnologia de Ourinhos (FATEC Ourinhos)
Trabalho de Graduação Faculdade de Tecnologia de Ourinhos (FATEC Ourinhos)
 
1144
11441144
1144
 
PROTÓTIPO DE SISTEMA WEB PARA UNIFICAR AS INFORMAÇÕES DAS UNIDADES DE SAÚDE M...
PROTÓTIPO DE SISTEMA WEB PARA UNIFICAR AS INFORMAÇÕES DAS UNIDADES DE SAÚDE M...PROTÓTIPO DE SISTEMA WEB PARA UNIFICAR AS INFORMAÇÕES DAS UNIDADES DE SAÚDE M...
PROTÓTIPO DE SISTEMA WEB PARA UNIFICAR AS INFORMAÇÕES DAS UNIDADES DE SAÚDE M...
 
Aplicação de um modelo simplificado das metodologias do pentesting
Aplicação de um modelo simplificado das metodologias do pentestingAplicação de um modelo simplificado das metodologias do pentesting
Aplicação de um modelo simplificado das metodologias do pentesting
 

Ferramentas de Recomendação - Detalhe

  • 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. 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. Aos meus mestres. Todos eles. 3
  • 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. 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. 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. 6 CONCLUSÃO......................................................................................................63 7 SUGESTÃO PARA TRABALHOS FUTUROS................................................64 8 BIBLIOGRAFIA..................................................................................................65 7
  • 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. 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. 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. Lista de Siglas e Símbolos 11
  • 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. 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. 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. 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. 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. 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. 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. 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. Figura 4: O site de comércio eletrônico Amazon.com (www.amazon.com) 20
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 4.2.3 Diagrama de Casos de Uso Figura 13: Diagrama de Casos de Uso 39
  • 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. 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. 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. 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
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. U2.3 Comprar filmes Figura 24: Diagrama de Sequência - Comprar filmes 57
  • 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. 5.2 Modelo Relacional Figura 26: Modelo Relacional 59
  • 60. 5.3 Telas do Sistema Figura 27: Tela do Sistema - Registro Figura 28: Tela do Sistema - Principal 60
  • 61. Figura 29: Tela do Sistema - Nuvens de Usuários interações Figura 30: Tela do Sistema - Atividades 61
  • 62. cadastro Figura 31: Tela do Sistema - Cadastro preferências Figura 32: Tela do Sistema - Configurações 62
  • 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. 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. 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. 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