Você está na página 1de 43

Chapter

1
Sistemas de Recomendao
Eliseo Berni Reategui e Slvio Csar Cazella

Abstract
Recommending products, items of information to an Internet user is one of the biggest
challenges of the virtual world. The appropriate recommendation of a book, for
example, can make the difference between getting or loosing a customer. Because of
this need to "conquer" the users, personalization has become a very important factor.
This chapter gives an overview of recommender systems used in personalization tasks. It
describes the most popular recommendation techniques, details the systems architecture
and brings examples of their use both in the industry and academia. The chapter also
discusses the privacy problem and presents future trends.
Resumo
Recomendar produtos, itens ou informaes para um usurio da Internet apresenta-se
como um dos maiores desafios no mundo virtual. A recomendao adequada de um
livro, por exemplo, pode fazer a diferena entre conquistar o usurio ou perd-lo.
Devido a esta necessidade de conquista, a personalizao tem se apresentado como um
fator facilitador no momento de "cativar" o usurio. Este captulo d uma viso geral
sobre os sistemas de recomendao utilizados nas tarefas de personalizao. Descreve
as tcnicas e estratgias de recomendao mais utilizadas, detalha a arquitetura dos
sistemas e traz exemplos de utilizao destes tanto no meio acadmico quanto na
indstria. Discute ainda o problema da privacidade e aborda tpicos que apontam para
novas tendncias na rea.

1. Introduo aos Sistemas de recomendao


Com a quantidade de informaes e com a disponibilidade facilitada das mesmas pelo
uso da Internet, as pessoas se deparam com uma diversidade muito grande de opes.
Muitas vezes um indivduo possui muito pouca ou quase nenhuma experincia pessoal
para realizar escolhas entre as vrias alternativas que lhe so apresentadas. A questo
relevante neste momento refere-se a como proceder nestes casos? Para minimizar as
V ENIA

306

dvidas e necessidades que temos frente escolha entre alternativas, geralmente


confiamos nas recomendaes que so passadas por outras pessoas, as quais podem
chegar de forma direta (word of mouth) [Maes and Shardanand 1995], cartas de
recomendao, opinies de revisores de filmes e livros, impressos de jornais, entre
outros.
Os sistemas de recomendao auxiliam no aumento da capacidade e eficcia
deste processo de indicao j bastante conhecida na relao social entre seres humanos
[Resnick e Varian 1997]. Em um sistema tpico as pessoas fornecem recomendaes
como entradas e o sistema agrega e direciona para os indivduos considerados potenciais
interessados neste tipo de recomendao. Um dos grandes desafios deste tipo de sistema
realizar o casamento correto entre os que esto recomendando e aqueles que esto
recebendo a recomendao, ou seja, definir e descobrir este relacionamento de
interesses.
Os proponentes do primeiro sistema de recomendao denominado Tapestry
[Goldberg et al. 1992][Resnick e Varian 1997], criaram a expresso filtragem
colaborativa, visando designar um tipo de sistema especfico no qual a filtragem de
informao era realizada com o auxilio humano, ou seja, pela colaborao entre os
grupos de interessados. Os autores preferem utilizar a expresso sistemas de
recomendao, por ser um termo genrico e defendem este posicionamento por dois
motivos: primeiro porque os recomendadores podem no explicitar colaborao com os
que as recebem, pois um pode no conhecer o outro, e por ltimo os recomendadores
podem sugerir itens de interesse particular, incluindo aqueles que poderiam ser
desconsiderados. A questo aqui como verificar o real interesse em colaborar, pois na
realidade as recomendaes esboadas pelos recomendadores esto concentradas em
seus interesses prprios. Na verdade o grupo a ser formado para receber as
recomendaes deveria pelo menos apresentar indivduos com interesses comuns
(explcitos) ou comportamento comum (implcito). Neste trabalho assume-se que
sistemas de filtragem colaborativa e sistemas de filtragem baseada em contedo so tipos
de sistemas de recomendao que aplicam abordagens distintas, mas possuem como
finalidade nica a recomendao.
Alguns autores, como Montaner [Montaner et al. 2003], destacam que existe um
terceiro tipo de filtragem de informao denominada de filtragem demogrfica. A
filtragem demogrfica utiliza a descrio de um indivduo para aprender o
relacionamento entre um item em particular e o tipo de indivduo que poderia vir a se
interessar. Este tipo de abordagem utiliza as descries das pessoas para conseguir
aprender o relacionamento entre um item e o tipo de pessoa que gostaria deste. O perfil
do usurio criado pela classificao dos usurios em esteretipos que representam as
caractersticas de uma classe de usurios. Dados pessoais so requisitados ao usurio,
geralmente em formulrios de registro, e usados como caracterizao dos usurios e seus
interesses. Como exemplo, Montaner cita o mtodo implantado por Krulwich (Krulwich
apud [Montaner et al. 2003]) em LifeStyle Finder onde utilizado um sistema
demogrfico denominado PRIZM da Claritas Corporation. Este sistema tem o objetivo
de dividir a populao americana em 62 agrupamentos demogrficos de acordo com seus
histricos de compra, caractersticas referentes ao tipo de vida e respostas a pesquisas.

V ENIA

307

Os websites de comrcio eletrnico so atualmente o maior foco de utilizao


dos sistemas de recomendao, empregando diferentes tcnicas para encontrar os
produtos mais adequados para seus clientes e aumentar deste modo sua lucratividade.
Introduzido em julho de 1996 o My Yahoo foi o primeiro web site a utilizar os sistemas
de recomendao em grandes propores, utilizando a estratgia de customizao
[Manber et al. 2000] (ver seo 3). Hoje em dia, um grande nmero de websites
emprega os sistemas de recomendao para levar aos usurios diferentes tipos de
sugestes, como ofertas casadas ("clientes que compraram item X tambm compraram
item Y"), itens de sua preferncia, itens mais vendidos nas suas categorias favoritas, etc.
Este captulo apresenta os sistemas de recomendao, descreve as tcnicas mais
utilizadas e mostra como podem ser aplicados em exemplos prticos. Iniciaremos pelos
mecanismos de coleta de informaes geralmente utilizados (Seo 2), apresentando a
seguir, na Seo 3, questes relativas a estratgias, e na Seo 4 questes relativas s
tcnicas. Na Seo 5 e 6, sero discutidas questes relativas a arquitetura de Sistemas de
Recomendaes e privacidade, respectivamente. No final do captulo apresentada uma
concluso que visa destacar a relevncia do tema Sistemas de Recomendao.

2. Coleta de Informaes
Para que se possa recomendar itens a um usurio, necessrio se ter conhecimento sobre
quem este usurio. necessrio capturar e armazenar seus dados pessoais e
comportamentais relativos. Portanto, essencial que se possa identificar o usurio no
momento em que ele acessa o sistema onde foram implantadas as rotinas de
recomendao.
Atualmente a identificao dos usurios bastante comum no mundo dos
negcios. Ao abrir uma conta bancria, adquirir um imvel ou fazer compras pela
internet o cliente obrigado fornecer diversos dados, desde dados pessoais (nome,
endereo, etc.), at nmeros de documentos. Duas das formas mais habituais de
identificao de usurio so:
Identificao no servidor: normalmente disponibiliza ao usurio uma rea de
cadastro com informaes pessoais, tais como: nome, data de nascimento, sexo,
endereo e outros. Alm disso, solicita obrigatoriamente um login e senha. Estas
informaes ficam armazenadas em um banco de dados no servidor. Sempre que
o usurio acessar o sistema, ele poder fazer sua identificao/autenticao
informando seu login anteriormente cadastrado. Este mecanismo permite que o
web site identifique com mais preciso o usurio que nele se conecta.
Identificao no cliente: utiliza normalmente cookies, um mecanismo pelo qual
um website consegue identificar que determinado computador est se conectando
mais uma vez a ele. Este mtodo assume que a mquina conectada utilizada
sempre pela mesma pessoa. Logo, ao identificar a mquina, o website est na
realidade identificando seu usurio. Trata-se de um mecanismo mais simples do
que a identificao atravs do servidor porm menos confivel, principalmente se
o computador identificado for utilizado por mais de uma pessoa.
Depois de identificado o usurio, possvel coletar dados sobre este de forma
implcita ou explcita. Na modalidade de coleta explcita (tambm conhecida como
V ENIA

308

customizao), o usurio indica espontaneamente o que lhe importante. Por exemplo, o


usurio pode indicar que suas sees favoritas em uma livraria virtual so Design e
Msica, como ilustra a figura 2.1.

Figura 2.1. Seleo de sees favoritas

Estas informaes ficam ento armazenadas em uma tabela, como ilustrado a seguir.
Tabela 2.1. Dados sobre sees favoritas
Usurio

Seo favorita

paulo@livros.com.br

Msica

paulo@livros.com.br

Design

Na modalidade implcita, atravs de aes do usurio infere-se informaes sobre


suas necessidades e preferncias. Por exemplo, armazenando-se dados de navegao do
usurio (pginas consultadas, produtos visualizados, etc) possvel detectar que ele se
interessa por Design e Turismo. A tabela 2.2 mostra o tipo de informao que pode ser
armazenada como conseqncia do acesso s pginas descrevendo os livros A001, B023
e D005.

V ENIA

309

Tabela 2.2. Dados cadastrais de clientes de uma empresa.


Usurio

Item

Categoria

Data Acesso

paulo@livros.com.br

A001

Design

5/4/2005

fabio@livros.com.br

B023

Design

5/4/2005

fabio@ livros.com.br

D005

Turismo

8/4/2005

Atravs desta tcnica, possvel conhecer melhor a preferncia dos usurios sem
que eles tenham que fornecer informaes explicitamente, e em seguida utilizar estes
dados para fazer recomendaes. A prxima seo descreve as principais estratgias de
recomendao e como estas so empregadas.

3. Estratgias de Recomendao
Os principais objetivos dos sistemas de recomendao so a fidelidade e o conseqente
aumento da lucratividade das empresas. Diferentes estratgias podem ser para
personalizar ofertas para um usurio, cada uma exigindo um grau de complexidade
distinto no tratamento de informaes coletadas. As estratgias mais utilizadas so
descritas nas subsees a seguir.
3.1. Listas de recomendao
Esta estratgia consiste em manter listas de itens organizados por tipos de interesses.
No h necessidade de anlise mais profunda de dados do usurio para criao destas
listas, apenas a observao dos tipos de itens mais populares, e ordenao destes em
grupos tais como: "Itens mais vendidos", "Idias para presentes", entre outros. A figura
3.1 apresenta um exemplo de lista de recomendaes da loja Amazon.com, a maior
livraria virtual do planeta. No exemplo apresentada uma lista de presentes incluindo
itens de msica e cozinha. Na poro direita da tela so apresentadas outras listas, todas
relacionadas a presentes para bebs.

V ENIA

310

FIGURA 3.1. Lista de recomendaes de presentes

A principal vantagem neste tipo de estratgia est na facilidade de


implementao. Basta manter-se listas de acordo com as necessidades de marketing, de
aumento de lucratividade, de disseminao de informaes (no caso de recomendao de
contedo), etc. A desvantagem que as recomendaes no so dirigidas a cada usurio
independentemente, mas sim a todos os usurios sem distino.
3.2. Avaliaes de usurios
Uma das estratgias mais utilizadas em sistemas de recomendao so as avaliaes dos
usurios. Ou seja, alm de comprar um produto o usurio tambm deixa um comentrio
sobre o item adquirido. muito comum vermos opinio de usurios na forma de cones
dispostos ao lado do item visualizado, como ilustrado nas figuras a seguir.

FIGURA 3.2. Avaliaes de usurios (estrelas)

V ENIA

311

FIGURA 3.3. Avaliaes de usurios (submarinos)

Avaliaes de clientes so muito teis para assegurar outros consumidores da


qualidade e utilidade dos produtos comercializados. No entanto, para que um sistema
possa funcionar corretamente com base nos comentrios do usurio, preciso que haja
veracidade das opinies fornecidas. Alguns sistemas propem mecanismos para
incentivar os usurios a contribuir com opinies verdicas, atravs de brindes, bnus, etc.
Do ponto de vista de implementao, este tambm um mecanismo fcil de
implementar, na medida em que no exige nenhum tipo de dispositivo inteligente. Basta
armazenar e disponibilizar as avaliaes de usurios sobre os itens tratados, e apresentar
estas opinies no momento apropriado.
3.3. Suas Recomendaes
Este tipo de recomendao oferecido em uma seo inteiramente dedicada a sugestes
feitas especificamente para o usurio. Dois tipos de recomendao so possveis nestas
sees: aquelas feitas a partir de preferncias implcitas ou explcitas. A figura a seguir
apresenta um exemplo de pgina de recomendao onde so trazidas sugestes a partir
de dados coletados de maneira implcita.

V ENIA

312

FIGURA 3.4. Pgina de recomendaes

No exemplo apresentado, h uma lista de itens recomendados, entre livros e cds.


Na figura, vemos dois deles (um livro de minerao de dados e um CD do msico
Caetano Veloso). O sistema salienta, ao alto da pgina, que as recomendaes feitas
foram baseadas em 13 elementos adquiridos pelo usurio. Ou seja, o usurio no disse
explicitamente que se interessava por CDs de msica brasileira ou por livros de
minerao de dados, mas estas informaes foram inferidas a partir de seus dados de
compra.
3.4. "Usurios que se interessaram por X tambm se interessaram por Y"
Este tipo de recomendao obtido atravs de tcnicas capazes de encontrar em uma
base de dados associaes entre itens avaliados por usurios (comprados, lidos,...).
outro tipo de recomendao muito comum em websites de comrcio eletrnico, como
mostra a figura a seguir.

V ENIA

313

FIGURA 3.5. Recomendao por associao

No exemplo ilustrado na figura 3.5, a partir da seleo de um livro de


personalizao outros livros similares so apresentados. Este tipo de recomendao,
chamado aqui de recomendao por associao, a forma mais complexa de
recomendao. Ela exige uma anlise mais profunda dos hbitos do usurio para a
identificao de padres e recomendao de itens com base nestes padres. As sees
4.1.2 e 4.2 mostram como se pode chegar a estas recomendaes a partir dos dados
coletados.
3.5. Associao por contedo
Tambm possvel fazer recomendaes com base no contedo de determinado item,
por exemplo um autor, um compositor, um editor, etc. Para possibilitar este tipo de
recomendao, necessrio que se encontrem associaes num escopo mais restrito. Por
exemplo: Os livros A e B de determinado autor so freqentemente vendidos em
conjunto. A figura abaixo mostra este tipo de recomendao em uma livraria virtual.

V ENIA

314

FIGURA 3.6. Recomendao por associao

No exemplo, o sistema recomenda o autor Soumen Chakrabarti para um usurio


que selecionou uma obra do autor John Riedl. Diferentes tcnicas podem ser utilizadas
para se obter este tipo de recomendao, apresentadas no prximo captulo.

4. Tcnicas
Vrias tecnologias tm surgido visando a identificao de padres de comportamento
(consumo, pesquisa, etc.) e utilizao destes padres na personalizao do
relacionamento com os usurios. Estas tcnicas fundamentam o funcionamento dos
sistemas de recomendao e so apresentadas nas subsees a seguir.

4.1. Filtragem de informaes


A demanda por tecnologias de filtragem de informao no algo novo [Loeb e Terry
1992]. Peter Denning j escrevia em um volume da Communications of ACM do ano de
1982 (Peter Denning apud [Loeb e Terry 1992]) sobre a preocupao no que se refere
quantidade de informao que estava sendo gerada pelos diversos tipos de sistema e
recebidas pelos usurios. Ele destacava que toda a ateno estava concentrada na
gerao da informao para suprir as necessidades do usurio. Destacava tambm que
era importante se preocupar com o recebimento da informao, com o controle de
processo, de recuperao e filtragem da informao para que esta alcanasse a pessoa
que deveria utiliz-la.
A questo portanto : Como deve ser entendida a expresso filtragem de
informao? Para Belvin [Belvin e Croft 1992] filtragem de informao o nome
utilizado para descrever uma variedade de processos que envolvem a entrega de
informao para as pessoas que realmente necessitam delas. Com o tempo este termo
tornou-se muito popular e artigos tcnicos foram escritos descrevendo o emprego de
filtragem em diversas aplicaes, como e-mail, documentos eletrnicos em escritrios,
entre outros. No entanto, a distino entre filtragem e processos relacionados com
recuperao de informaes no era sempre clara. As expresses recuperao de
informao e filtragem de informao descrevem solues que procuram auxiliar na

V ENIA

315

soluo de problemas referentes a sobrecarga de informaes. A expresso recuperao


de informao tradicionalmente envolve armazenamento, ndices, e tecnologia para
recuperao de documentos textuais. Para que a recuperao realmente ocorra o usurio
deve descrever sua necessidade de informao em um formulrio, com a consulta (query)
do que necessita. A partir deste momento, o sistema busca casar a necessidade
explicitada com os documentos armazenados. Este tipo de abordagem tende a manter
uma base com caracterstica mais esttica no armazenamento das informaes, e a incio
da interao provocada pelo usurio.
Diferentemente da recuperao [Foltz e Dumais 1992] a filtragem prope uma
abordagem distinta. Esta abordagem geralmente mantm um perfil dos interesses do
usurio. A idia que esta abordagem tenha como caracterstica um maior tempo de
durao no que tange ao casamento de interesses. Ou seja, a filtragem no se refere ao
momento, mas sim a preferncias, enquanto a recuperao baseia-se na percepo de
uma necessidade do momento. Esta filtragem deve ser aplicada a cada novo item
adicionado procurando verificar se este atende ao usurio. A seguir so descritas
tcnicas de filtragem aplicveis a sistemas de recomendao.
4.1.1. Filtragem Baseada em Contedo
Segundo Herlocker [Herlocker 2000], por muitos anos os cientistas tm direcionado
seus esforos para aliviar o problema ocasionado com a sobrecarga de informaes
atravs de projetos que integram tecnologias que automaticamente reconhecem e
categorizam as informaes. Alguns softwares tm como objetivo gerar de forma
automtica descries dos contedos dos itens e comparar estas descries com os
interesses dos usurios visando verificar se o item ou no relevante para cada um
[Balabanovic e Shoham 1997]. Esta tcnica chamada de filtragem baseada em
contedo [Herlocker 2000][Ansari et al. 2000] por realizar uma seleo baseada na
anlise de contedo do itens e no perfil do usurio.
A descrio de interesses do usurio obtida atravs de informaes fornecidas
por ele prprio ou atravs de aes, como seleo e aquisio de itens. Muitas
ferramentas que esta abordagem aplicam tcnicas como indexao de freqncia de
termos (Salton apud [Herlocker 2000]). Neste tipo de indexao, informaes dos
documentos e necessidades dos usurios so descritas por vetores com uma dimenso
para cada palavra que ocorre na base de dados. Cada componente do vetor a
freqncia que uma respectiva palavra ocorre em um documento ou na consulta do
usurio. Claramente, os vetores dos documentos que esto prximos aos vetores da
consulta do usurio so considerados os mais relevantes para ele.
Outros exemplos de tecnologias aplicadas para filtragem baseada em contedo
so ndices de busca booleana, onde a consulta constitui-se em um conjunto de palavraschave unidas por operadores booleanos (Cleverdon apud [Herlocker 2000]); sistemas de
filtragem probabilstica, onde raciocnio probabilstico aplicado para determinar a
probabilidade que um documento possui de atender as necessidades de informao de
um usurio (Fuhr, Robertson, Wong apud [Herlocker 2000]); e interfaces de consultas
com linguagem natural, onde segundo o autor as consultas so colocadas em sentenas
naturais (Jacobs,Lewis, Strzalkowski apud [Herlocker 2000]).

V ENIA

316

Uma maneira de trabalhar com a filtragem baseada em contedo atravs de uma


solicitao de anlise de itens feita ao prprio usurio, onde este deve avaliar alguns itens
indicando se estes so de interesse ou no. Uma vez realizada a avaliao, o sistema
busca itens que "casam" em contedo com o que foi classificado como de interesse, e
desconsidera os que "casam" em contedo como o que foi classificado de no interesse.
Sistemas deste tipo apresentam limitaes como: o contedo de dados pouco
estruturados difcil de ser analisado (e.g. vdeo e som); o entendimento do contedo do
texto pode ser prejudicado devido a uso de sinnimos; pode ocorrer a super
especializao, pois o sistema procura se basear em avaliaes positivas e negativas
feitas pelo usurio, no apresentando contedos que no fechem com o perfil.
4.1.2. Filtragem Colaborativa
A abordagem da filtragem colaborativa foi desenvolvida para atender pontos que
estavam em aberto na filtragem baseada em contedo [Herlocker 2000][Ansari et al.
2000]. A Filtragem Colaborativa se diferencia da filtragem baseada em contedo
exatamente por no exigir a compreenso ou reconhecimento do contedo dos itens.
Nos sistemas colaborativos a essncia est na troca de experincias entre as
pessoas que possuem interesses comuns. Nestes sistemas, os itens so filtrados baseado
nas avaliaes feitas pelos usurios. Por exemplo, o primeiro sistema criado com esta
abordagem foi o Tapestry [Goldberg et al. 1992] que permitia ao usurio especificar um
consulta como: mostre-me todos os memorandos que uma determinada pessoa
considera como importante. Membros de determinada comunidade podiam deste modo
ser beneficiados pela experincia de outros.
Segundo Herlocker [Herlocker 2000] os primeiros sistemas de filtragem
colaborativa requeriam usurios para especificar o relacionamento de predio entre suas
opinies, ou de modo explcito indicar os itens de interesse. Porm, em seguida estes
sistemas automatizaram todo o procedimento atravs da coleo das pontuaes dos
itens pelos usurios. Um usurio de um sistema de filtragem colaborativa deve portanto
pontuar cada item experimentado, indicando o quanto este item casa com sua
necessidade de informao. Estas pontuaes so coletadas para grupos de pessoas,
permitindo que cada usurio se beneficie das pontuaes (experincias) apresentadas por
outros usurios na comunidade.
Sistemas de filtragem colaborativa simples apresentam para o usurio uma mdia
de pontuaes para cada item com potencial de interesse. Esta pontuao permite ao
usurio descobrir itens que so considerados de interesse pelo grupo e evitar os itens que
so considerados de pouco interesse. Sistemas mais avanados descobrem de maneira
automtica relaes entre usurios (vizinhos mais prximos), baseado na descoberta de
padres comuns de comportamento. Um exemplo de ambiente baseado em filtragem
colaborativa o sistema de recomendao de filmes MovieLens [Riedl et al. 1999]. Nele
o usurio insere pontuaes para filmes que tenha visto e o sistema utiliza estas
pontuaes para encontrar pessoas com gostos similares. Desta forma o sistema pode
recomendar filmes nos quais indivduos com gostos semelhantes se interessariam, mas
no assistiram ainda.

V ENIA

317

A tabela 4.1 mostra na prtica como a filtragem colaborativa pode funcionar. Por
exemplo, se quisermos recomendar um produto ao usurio Mauro, procuraremos outros
usurios com hbitos de consumo semelhantes. No caso, Paulo e Joo j compraram
produtos que Mauro tambm comprou (Prod2). Em seguida, recomendamos a Mauro
produtos que estes dois outros usurios possuem mas que Mauro ainda no possui,
como Prod1 e Prod5.
Tabela 4.1. Recomendao baseada em filtragem colaborativa
Usurio

Prod1

Prod3

Prod6

x
x

Carlos

Mauro

Prod5
x

Mrcia

Ana

Prod4

Paulo
Joo

Prod2

x
x

A filtragem colaborativa apresenta algumas vantagens, como por exemplo a


possibilidade apresentar aos usurios recomendaes inesperadas. O usurio poderia
receber recomendaes de itens que no estavam sendo pesquisados de forma ativa.
Outra contribuio importante dos sistemas de filtragem colaborativa se refere
possibilidade de formao de comunidades de usurios pela identificao de seus gostos
e interesses similares.
Uma questo importante em sistemas colaborativos refere-se coleta de
informaes dos usurios, que pode apresentar alguns problemas:
1) Problema do primeiro avaliador: quando um novo item aparece no banco de
dados no existe maneira deste ser recomendado para o usurio at que mais
informaes sejam obtidas atravs de outro usurio.
2) Problema de pontuaes esparsas: o objetivo dos sistemas de filtragem
colaborativa ajudar pessoas, focando em documentos lidos ou itens
adquiridos. Caso o nmero de usurios seja pequeno em relao ao volume de
informaes no sistema existe um grande risco das pontuaes tornarem-se
muito esparsas.
3) Similaridade: caso um usurio tenha gostos que variam do normal este ter
dificuldades para encontrar outros usurios com gostos similares, sendo assim
suas recomendaes podem se tornar pobres.
A tcnica de Filtragem Colaborativa pode ser separada em trs passos:
a. Calcular o peso de cada usurio em relao similaridade ao usurio
ativo (mtrica de similaridade).
b. Selecionar um subconjunto de usurios com maiores similaridades
(vizinhos) para considerar na predio.

V ENIA

318

c. Normalizar as avaliaes e computar as predies ponderando as


avaliaes dos vizinhos com seus pesos.
Esta tcnica tambm chamada de k-nearest-neighbor ou user-based. No
primeiro passo, a definio da similaridade pode ser realizada atravs de diversas
tcnicas, sendo mais comumente usada a correlao de Pearson.
(1)
Dado o conjunto de avaliaes ra,i do usurio ativo a, e o conjunto de avaliaes
ru,i do vizinho u, wa,u o ndice de similaridade entre os dois usurios. Note que
preciso mais de uma avaliao em comum para que o ndice seja til, e os resultados
variam entre 1 para similaridade total, e -1 para total dissimilaridade.
No passo trs, o clculo da predio efetuado atravs da equao (2).
(2)

O valor da predio pa,i do item i para o usurio ativo a a mdia ponderada das
avaliaes dadas ao item i pelos n vizinhos u do usurio ativo a. A quantidade n de
melhores vizinhos - com maiores correlaes - uma escolha de cada sistema que utiliza
a filtragem colaborativa.
4.1.3. Filtragem Hbrida
A abordagem da filtragem hbrida procura combinar os pontos fortes da filtragem
colaborativa e filtragem baseada em contedo visando criar um sistema que possa melhor
atender as necessidades do usurio [Herlocker 2000] [Ansari et al. 2000].
Essa abordagem constituda de vantagens proporcionadas pela filtragem
baseada em contedo e pela filtragem colaborativa, unindo o melhor das duas tcnicas e
eliminando as fraquezas de cada uma, conforme expressado pela figura 4.1.

V ENIA

319

Figura 4.1. Filtragem hbrida

4.2. Descoberta de Conhecimento em Base de Dados (DCBD)


Uma forma de realizar a extrao de conhecimento dos bancos de dados dos usurios
constitui-se na aplicao de tcnicas e ferramentas de minerao de dados. Uma das
definies de DCBD encontrada na bibliografia a que segue:
...um processo de extrao no trivial de informaes potencialmente teis, as
quais no so previamente conhecidas e encontram-se implcitas em grandes colees
de dados [Zaiane 2000].
Quando se trabalha com sistemas de recomendao na Web, a minerao de
dados torna-se um recurso importante para a descoberta de relaes entre itens, entre
usurios e entre itens e usurios. Atravs da minerao dos arquivos de log [Yang et al.
2002], por exemplo, pode-se obter conhecimentos aprofundados a respeito dos usurios
que se conectaram a um website [Spiliopoulou 2000]. Este conhecimento pode ser
utilizado para a personalizao da oferta de produtos [Rucker e Polanco 1997], na
estruturao de sites de acordo com o perfil de cada internauta e personalizao
[Nulvenna et al. 2000] do contedo das pginas.
As prximas sees apresentam diferentes tipos de descoberta de conhecimento
aplicveis nos sistemas de recomendao.
4.2.1. Tipos de descoberta
O desenvolvimento de sistemas de DCBD est relacionado com diversos domnios de
aplicaes, como por exemplo: anlises corporativas, medicina, biologia, mercado, etc
[Apte et al. 2002] [Smyth 2002] [Mccarthy 2000]. De acordo com a aplicao algumas
tcnicas de minerao podem ser mais eficientes do que outras.
a) Regra de associao [Cabena 1997] [Plastino 2001] [Agrawal 1993]
Neste tipo de funo cada tupla da base de dados consiste em um conjunto de atributos
denominados itens. Cada tupla corresponde a uma transao, e um item pode assumir um
valor verdadeiro ou falso (binrio). Uma regra de associao constitui-se em um
V ENIA

320

relacionamento X
Y, onde X e Y so conjuntos de itens e a interseco entre os
mesmos constitui-se em um conjunto vazio. Cada regra de associao associada a um
fator de suporte (FSup), e a um fator de confiana (FConf).
O FSup constitui-se na razo do nmero de tuplas que satisfazem X e Y, sobre o
nmero total de tuplas (FSup = | X Y | /N).
O FConf constitui-se na razo do nmero de tuplas que satizfazem X e Y sobre o
nmero de tuplas que satisfazem X (FConf = | X Y | /|X|).
A funo de extrao de regras a partir de um banco de dados consiste em
encontrar todas as regras possveis com FSup e FConf maiores ou iguais a um FSup e
FConf especificada pelo usurio. A tabela 4.2 apresenta um exemplo de conjunto de
dados que pode ser minerado para identificar se determinado item tem ou no
probabilidade de ser adquirido. A primeira coluna apresenta um identificador (ID) da
transao, e as outras colunas indicam se um determinado item foi ou no adquirido na
transao correspondente. Suponha que o usurio especificou os parmetros FSup = 0.3
e FConf = 0.8.
Tabela 4.2. Entrada de dados para a descoberta de regras de associao
ID

Artigo1

Artigo2

Artigo3

Artigo4

Artigo5

Artigo6

Artigo7

No

Sim

No

Sim

Sim

No

No

Sim

No

Sim

Sim

Sim

No

No

No

Sim

No

Sim

Sim

No

No

Sim

Sim

No

Sim

Sim

No

No

No

No

Sim

No

No

No

No

No

No

No

No

Sim

No

No

No

No

No

Sim

No

No

No

No

No

No

No

No

No

Sim

No

No

No

No

No

Sim

Sim

10

No

No

No

No

No

Sim

No

As regras de associao descobertas a partir dos dados da tabela 4.2 so


apresentadas a seguir, aplicando-se os valores de FSup e FConf maiores ou iguais aos
especificados pelo usurio.

Conjunto de itens freqentes: Artigo2, Artigo4. FSup = 0.3


Regra: Se (Arigo2) ento (Artigo4). FConf = 1.

V ENIA

321

Conjunto de itens freqentes: Artigo2, Artigo5. FSup = 0.3


Regra: Se (Artigo2) ento (Artigo5). FConf = 1.

Conjunto de itens freqentes: Artigo4, Artigo5. FSup = 0.4


Regra: Se (Artigo4) ento (Artigo5). FConf = 0.8.
Regra: Se (Artigo5) ento (Artigo4). FConf = 0.8.

Conjunto de itens freqentes: Artigo2, Artigo4, Artigo5. FSup = 0.3


Regra: Se (Artigo2 e Artigo4) ento (Artigo5). FConf = 1.
Regra: Se (Artigo2 e Artigo5) ento (Artigo4). FConf = 1.
Regra: Se (Artigo2) ento (Artigo4 e Artigo5). FConf = 1.

Estas regras descobertas poderiam servir como indicativo de artigos que devam
ser oferecidos de forma casada, uma vez que so acessados ou adquiridos juntamente
(segundo o que revelou a amostra da base de transaes).
Atravs das regras de associao torna-se possvel identificar associaes entre
diferentes itens que participaram ou no de um conjunto significativo de transaes.
Entre algoritmos aplicados neste tipo de funo destacam-se o Apriori e o Partition
[Plastino 2001].
b) Classificao [Cabena 1997] [Quinlan 93]
Nessa funo cada uma das tuplas pertence a uma das classes entre um conjunto prdefinido de classes. A classe de uma tupla indicada por um valor especificado pelo
usurio em um atributo meta, ou atributo objetivo.
As tuplas consistem de atributos preditivos e um atributo objetivo, o ltimo
indicando a qual classe a tupla pertence. O princpio maior da classificao consiste em
descobrir algum relacionamento entre os atributos preditivos e o atributo objetivo, para
revelar um conhecimento que possa ser utilizado para prever classes de uma tupla
desconhecida, ou seja, que no possui uma classificao.
Um exemplo possvel para explicar o uso de classificao o que segue: supondo
que um sistema de recomendao guarde algumas informaes sobre os seus usurios
(por exemplo, status na Universidade, pas e rea de interesse), seria interessante utilizar
esses dados para prever que tipo de usurio estaria mais interessado em qual rea de
pesquisa.
O sistema poderia ento concentrar os esforos de recomendao para classificar
os usurios. Para prever se o usurio estar ou no interessado em determinada rea
pode ser feito o uso de uma rvore de deciso [Holte e Yan 1996].
V ENIA

322

Considerando apenas os atributos status, pas e rea de interesse dos usurios


como relevantes para a previso, so apresentados na tabela 4.3 os valores dos atributos
selecionados, junto com o valor do atributo objetivo e rea de interesse.
Tabela 4.3. Entrada de dados para a tarefa de classificao
Status

Pas

rea de Interesse

Professor

Frana

Agentes

Pesquisador

Inglaterra

ML

Aluno

Frana

ML

Pesquisador

Inglaterra

ML

Professor

Frana

Agentes

Aluno

Alemanha

WebMining

Aluno

Alemanha

WebMining

Pesquisador

Inglaterra

ML

Professor

Frana

WebMining

Professor

Frana

ML

Aluno

Frana

ML

A rvore de deciso gerada com a aplicao de classificao para o exemplo


acima poderia apresentar o formato apresentado na figura 4.2.
Pas
Frana

Alemanha
Inglaterra

rea

WebMining

Status

ML
Professor

rea

Agentes

Aluno

ML

FIGURA 4.2. rvore de Deciso

O conhecimento descoberto freqentemente representado na forma de regras do tipo


SE-ENTO. Abaixo so descritas as regras obtidas atravs da classificao:
Se (PAS = Alemanha) ento rea = WebMining

Se (PAS = Inglaterra) ento rea = ML

Se (PAS = Frana e Status = Professor) ento rea = Agentes

V ENIA

323

Se (PAS = Frana e Status = Aluno) ento rea = ML


Observa-se atravs destes resultados que fica mais fcil para um sistema de
recomendao decidir o que recomendar no caso de um novo usurio cadastrado.
A classificao um tipo de mtodo classificado como aprendizado
supervisionado, uma vez que definimos qual o atributo objetivo e os atributos
preditivos [Cabena 1997]. Em um sistema de recomendao poderamos utilizar a
classificao para identificar a classe de itens novos em categorias pr-definidas ou
mesmo para classificar usurios pelos seus perfis.
c) Agrupamento [Cabena 1997]
De uma forma natural as pessoas procuram visualizar os dados segmentados em grupos
discretos, onde o que permite a unio destes objetos em um mesmo grupo a
similaridade existente entre os mesmos.
Nesta funo de DCBD, o algoritmo de agrupamento automaticamente deve criar
grupos atravs de parties de um banco de dados em conjunto de tuplas similares. A
partio acontece de forma que as tuplas de valores e atributos semelhantes sejam
reunidas nos mesmos grupos. Um agrupamento de qualidade surge onde a similaridade
intra-classe alta e a inter-classe baixa. O agrupamento um tipo de aprendizado nosupervisionado uma vez que fica a cargo do algoritmo a definio de quais atributos e
seus valores sero utilizados para montar agrupamentos de dados similares.
Um dos mtodos de agrupamento mais utilizado o k-means. O primeiro passo
no processo encontrar k casos para servirem de semente para o processo, por
exemplo os k primeiros casos de um banco de dados.
O segundo passo no processo encontrar no banco de dados, para cada um dos
registros armazenados, a semente mais prxima dele. A figura a seguir ilustra este
processo, onde os pontos escuros representam as sementes, os pequenos crculos
transparentes representam os outros registros do banco de dados, e os grandes crculos
tracejados representam os grupos.

V ENIA

324

Sementes

Figura 4.3. Formao inicial de grupos.

Neste momento, todos os registros j foram associados a cada um dos grupos. O


prximo passo do algoritmo determinar os novos centrides a partir de todos os
elementos existentes em cada cluster, como exemplifica a figura a seguir.

Sementes

Figura 4.4. Reclculo dos centrides

Este passo ento repetido at que os centrides no precisem ser recalculados.


Uma utilidade para agrupamentos poderia ser a reunio de usurios por caractersticas
comuns ou similares. Um sistema de recomendao pode empregar estes agrupamentos
para oferecer itens apropriados de acordo com as caractersticas de cada grupo.

4.3. Exemplos de Sistemas de Recomendao


Nesta seo, alguns sistemas de recomendao so descritos, enfatizando suas
principais caractersticas.

V ENIA

325

4.3.1. Referral Web [Kautz et al. 1997]


O projeto Referral Web procura identificar e visualizar redes sociais, que de acordo com
o autor seriam grupos de pessoas ligadas por atividades profissionais.
Para criar esta rede o sistema utiliza-se de textos j existentes na Web. Uma vez
que o usurio entra com seus dados feita uma busca de documentos que o mencionem.
A partir dos documentos recuperados, so extrados nomes de outros indivduos citados.
No final construda uma rede global de citaes representada na forma de um
grafo. Neste sistema a formao da rede est baseada somente na relao entre usurio,
documento e citaes, a importncia e relevncias dos trabalhos ou indivduos no
considerada.
4. 3.2. RINGO [Maes e Shardanand 1995]
RINGO um sistema desenvolvido para recomendao personalizada de msica e foi
desenvolvido no Massachussets Institute of Technology. O trabalho explora
similaridades entre os gostos de diferentes usurios para recomendar itens, baseado no
fato de que os gostos das pessoas apresentam tendncias gerais e padres entre gostos, e
entre grupos de pessoas. Neste sistema as pessoas descrevem suas preferncias musicais
atravs da avaliao de algumas canes. Estas avaliaes constituem o perfil dos
indivduos. O sistema usa ento estes perfis para gerar recomendaes para usurios
individuais. Para o seu funcionamento, primeiramente usurios similares so
identificados. A partir desta identificao e comparao de perfis o sistema pode predizer
o quanto o usurio gostaria de um lbum/artista que ainda no foi avaliado pelo mesmo.
Quando o usurio acessa o Ringo pela primeira vez, apresentado a ele uma lista
de 125 artistas. O usurio avalia estes de acordo com o quanto gosta de ouvi-los. Caso o
usurio no esteja familiarizado com o artista ou no possua uma forte opinio sobre o
mesmo, solicitado que no avalie o artista para no gerar distores. Para a pontuao
aplicada uma escala Likert de 7 pontos, sendo o 1 (no gosta), 4 (indiferente) e 7
(adora).
A lista de artistas enviada para os usurios dividida em duas partes. A primeira
parte da lista gerada a partir dos artistas mais pontuados (ranking), o que assegura que
um novo usurio tenha a oportunidade de pontuar artistas que outros j tenham
pontuado. A outra parte da lista gerada atravs de uma seleo randmica a partir de
um banco de dados sobre os artistas. Uma vez que o perfil inicial da pessoa tenha sido
submetido, o usurio pode solicitar ao Ringo algumas predies:
1) sugerir novos artistas/lbuns que o usurio gostaria de obter ou ouvir;
2) listar artistas/lbuns que o usurio no gostaria;
3) realizar uma predio sobre um artista/bum especfico.
O retorno dado pelo Ringo aos usurio no inclui nenhuma informao em
particular sobre a identidade dos outros usurios que contriburam com as
V ENIA

326

recomendaes. Deve-se enfatizar esta caracterstica em sistemas colaborativos ou de


informao social (muitas vezes usados como sinnimo): a identidade de quem avaliou
deve ser mantida em segredo.
O sistema Ringo tambm permite a insero de comentrios (como feedback
explcito) sobre o produto recomendado. Os prprios usurios podem incluir novos
artistas e lbuns no banco de dados.
4. 3.3. GroupLens [Riedl et al. 1997]
O GroupLens constituiu-se em um projeto de pesquisa desenvolvido pela Universidade
de Minnesota, aplicado filtragem colaborativa de notcias, auxiliando pessoas a
encontrar artigos de interesse entre um grande volume de artigos ofertados.
O Sistema coleta a avaliao dos usurios referente aos artigos lidos (escala de 15 pontos) e utiliza esta avaliao para identificar os vizinhos mais prximos com
avaliaes semelhantes. Desta forma o sistema capaz de predizer se um usurio pode se
interessar por um novo artigo baseando-se nas avaliaes dos usurios vizinhos.
4. 3.4. Fab [Balabanovic e Shoham 1997]
O Fab um sistema que procura combinar sistemas de filtragem colaborativa e filtragem
baseada em contedo (abordagem hbrida), procurando eliminar muitas das fraquezas
encontradas em cada uma das abordagens. Foi desenvolvido pela Universidade de
Stanford em um projeto para recomendao de pginas Web (documentos) para
usurios.
Objetivando a construo de uma arquitetura hbrida, perfis de usurios so
gerados a partir da anlise de contedo e comparados para identificar usurios similares
para recomendao colaborativa.
O sistema tem uma implementao distribuda e foi construdo como parte do
projeto da biblioteca digital da Universidade de Stanford. O sistema foi implementado
atravs de dois agentes, um responsvel pela coleta dos documentos na Web (Collection
Agent) e outro responsvel pela seleo de pginas (Selection Agent) que seriam
apresentadas aos usurios como recomendao, conforme a figura 4.5.

FIGURA 4.5. Viso geral da arquitetura do Fab

Aps a recomendao o usurio tem a possibilidade de avaliar o item aplicando


uma escala Likert de 1-7 pontos.
V ENIA

327

4. 3.5. Collaborative Recommender Agent CORA [Lueg 1998]


O sistema Collaborative Recommender Agent CORA (Christoph apud [Lueg 1998])
um sistema distribudo assncrono para filtragem colaborativa ativa de documentos da
Web, desenvolvido na Universidade de Zurique. O CORA habilita os usurios a
recomendar URLs atravs de uma simples clicagem de mouse.
Os usurios eram providos com um agente pessoal de recomendao que
monitorava o comportamento no uso do browser pelo usurio. O agente reconhecia a
pgina Web que o usurio estava visualizando e apresentava a mesma em uma janela de
recomendao especial. Caso o usurio decidisse recomendar a URL para um grupo de
usurios pr-definido, a URL poderia ser enviada pela clicagem de um cone especfico.
Assim como o agente monitorava o envio de URLs este tambm monitorava a chegada
de URLs enviadas por outros usurios.

FIGURA 4.6. Interface da ferramenta CORA

Na interface apresentada na Figura 4.6 pode-se observar trs letras L,T e R. Cada
uma, de acordo com o seu tamanho, procura simbolizar: o montante de Links seguidos
tendo as pginas recomendadas como ponto de partida; o Tempo utilizado no acesso da
pgina; e um fator especial de Recomendao, o qual computado com base no uso
passado das recomendaes. Lueg destaca que sempre que algum est querendo buscar
uma informao de valor, este possui um tempo determinado para aplicar nesta busca,
mas este esforo apresenta um limite pequeno [Lueg 1998].
4.3.6. Amazon.comTM
O site de comrcio eletrnico da Amazon.comTM, disponvel em
www.amazon.com, possui algumas variaes de estratgias de recomendao. Em [Riedl
et al. 2000] estas variaes so apresentadas, destacando as caractersticas de cada uma
delas:


V ENIA

clientes que compraram: so dois tipos de listas de recomendao separadas. A


primeira, recomenda livros freqentemente comprados pelos clientes que
adquiriram o livro selecionado; a segunda, recomenda autores cujos livros so
328

freqentemente comprados por clientes que adquiriram trabalhos de acordo com


o autor do livro selecionado;


suas recomendaes: os clientes qualificam os livros lidos em uma escala de 1 a


5, variando de eu odeio isto a eu adoro isto. Aps a avaliao de um
conjunto de livros, os clientes podem requisitar recomendaes de livros que lhe
agradem;

olhos: permite aos clientes receberem e-mails sobre novos itens que foram
adicionados no catlogo. Os clientes selecionam as informaes, como autor,
ttulo, assunto, entre outros, ou utilizam o formato avanado com operadores
boleanos (and / or) para filtragem de notificaes;

amazon.com entrega: os clientes selecionam, em caixas de seleo (checkbox), os


itens de uma lista de categorias e gneros especfica. Periodicamente, os editores
da Amazon.comTM enviam as suas ltimas recomendaes, por e-mail, para os
inscritos em cada categoria;

idias de presentes da livraria: permite aos clientes receber recomendaes dos


editores. Os clientes escolhem uma categoria de livros para as quais gostariam de
receber algumas sugestes;

comentrios dos clientes: permite aos clientes receberem recomendaes, em


formato textual, baseadas em opinies de outros clientes que, por sua vez,
tambm podem ser qualificadas em uma escala de 1 a 5.

4.3.7. eBayTM
Assim como no site da Amazon.comTM, o site de leiles on-line eBay.comTM,
acessvel no endereo www.ebay.com, possui mais de uma variao de estratgias de
recomendao, tambm apresentado por [Riedl et al. 2000]. So elas:


direito de resposta: permite aos compradores e vendedores avaliar o seu parceiro


de negcio de acordo com o grau de satisfao da transao de compra. Isto gera
uma pontuao que demonstra a confiabilidade de cada negociante. Quanto mais
positiva a pontuao, mais confivel o negociante, e quanto mais negativa a
pontuao, menos confivel o negociante;

comprador pessoal: permite aos clientes indicar os itens que eles tm interesse em
comprar, para que, em uma periodicidade definida, o site possa enviar os
resultados da busca por esses itens.

5. Arquitetura e aspectos de implementao


Um sistema de recomendao deve funcionar como um servidor capaz de recuperar, para
determinado usurio, suas preferncias explcitas, implcitas, contedo e ofertas
relacionados a itens nos quais j mostrou interesse. Tal sistema deve ficar em
comunicao com o servidor que apresenta as recomendaes ao usurio (e.g. um
servidor web).
So dois os principais tipos de arquitetura possveis em sistemas de
recomendao. No primeiro deles, baseado em tcnicas de filtragem de informao, no
h componente de minerao de dados j que o sistema opera atravs da anlise direta
V ENIA

329

dos dados dos usurios, sem a construo de um modelo de recomendaes


generalizado. Diferentes estratgias de recomendao so armazenadas e permitem que
sejam feitas diferentes tipos de sugestes (recomendaes de presentes, de itens mais
populares, etc). Um servidor web faz requisies ao sistema de recomendao, que
retorna recomendaes contedo, servios e ofertas personalizados.
A figura abaixo mostra a comunicao entre os principais mdulos deste tipo de
configurao.
Estratgias
Recomendao

Sistema
Recomendao

Dados
Demogrficos

Contedo,
servios e ofertas
personalizadas

Requisies

Servidor
Web

Recomendaes

Dados
Transacionais

transaces

Figura 5.1. Estrutura de Sistema de Recomendao baseado em tcnicas de


filtragem de informao

No segundo tipo de arquitetura, h um mdulo de minerao de dados


responsvel por encontrar padres nos dados demogrficos e transacionais do usurio,
como ilustra a figura abaixo.
Conhecimento
Minerado

Sistema
Recomendao

Estratgias
Recomendao

Contedo,
servios e ofertas
personalizadas

Requisies

Recomendaes

Servidor
Web
transaces

Minerao

Dados
Demogrficos

Dados
Transacionais

Figura 5.2. Estrutura de Sistema de Recomendao empregando minerao


de dados

V ENIA

330

Os padres identificados pelo sistema de minerao so armazenados em uma


base de conhecimento. Diferentes estratgias de recomendao tambm so guardadas
nesta modalidade de arquitetura e regem o tipo de sugesto que se pode fazer ao
usurio. Um servidor web faz requisies ao sistema de recomendao, que retorna
recomendaes sem interferncia direta do sistema de minerao.
As prximas subsees apresentam a arquitetura de um sistema de recomendao
fictcio baseado em filtragem colaborativa chamado Recommender, capaz de identificar
clientes, analisar informaes e elaborar ofertas precisas de produtos e servios em
diferentes pontos de contato.
5.1. O Sistema Recommender
Esta seo apresenta a modelagem de um sistema de recomendao chamado aqui de
Recommender, cujo objetivo permitir que clientes e visitantes do website de uma
empresa possam receber, no momento exato, recomendaes de produtos e servios
adequados aos seus interesses. Estas recomendaes so obtidas atravs de indicaes
explcitas de preferncias ou atravs da tcnica de filtragem colaborativa.
O sistema Recommender utiliza uma srie de estruturas para:

armazenar informaes sobre preferncias dos usurios;

armazenar informaes sobre itens consultados ou adquiridos pelos usurios;

registrar dados sobre a interao com o usurio durante a sesso;

representar estratgias de recomendao.

A figura a seguir apresenta um esquema no qual possvel visualizar todas as


estruturas utilizadas pelo Recommender bem como seus relacionamentos. As prximas
sees apresentam cada uma delas.

V ENIA

331

Sees do site, categorias de

Itens selecionados,

Dados sobre interao com

interesse de cada usurio

comprados por cada usurio

usurios em cada sesso

Finding Listm

Interest Listn
Interest List1
Interest List1

Finding List1
Finding List1

. .

Session Controller1

User1

Session Controller 2
Objeto central do
sistema

User2

Recommender Server

Session Controller3

Conhecimento sobre

Strategy List

User2

como recomendar

itens de acordo com as

Strategyq

informaes que se
tm sobre cada
usurio

Finding List1
Strategy1

Session Controllerp

Userp

Figura 5.3. Estruturas utilizadas pelo sistema Recommender

5.1.1. Recommender Server


O principal objeto do sistema Recommender chamado de RecommenderSever, sendo
utilizado principalmente para dar acesso aos SessionControllers (controladores de
sesso) e s rotinas de busca de recomendaes.
5.1.2. Session Controller
Quando um usurio se conecta a um website, uma sesso inicializada para ele, durante
a qual vrias informaes so armazenadas sobre sua interao. Por exemplo os itens
visualizados, as pginas navegadas, etc. Estas informaes so armazenadas no objeto de
nome SessionController, ou controlador de sesso. No entanto, alm de registrar dados
sobre a interao com o usurio numa nova sesso, o SessionController tambm
carregado com todas as informaes que se coletou no passado sobre um usurio. Por
exemplo os itens que foram adquiridos por ele, reas de preferncia no site, entre outros.
5.1.3. Strategy List
Uma estratgia de recomendao contm um conjunto de modelos que definem a forma
com que o sistema far a recomendao de contedo, produtos, servios ou outros.
Podemos ter estratgias baseadas em filtragem colaborativa, baseadas em listas
armazenadas pelo sistema (mais vendidos, lista de presentes, etc), ou ainda baseadas em
preferncias explcitas ou implcitas dos usurios.

V ENIA

332

Portanto, a lista de estratgias guarda vrios modelos de recomendao, cada um


orientado a um tipo de recomendao especfica. Diferentes estratgias podem ser
criadas e utilizadas em paralelo em um mesmo website, cada uma estabelecendo como
sero feitas as recomendaes em determinada seo do sistema. Na pgina inicial de um
website de comrcio eletrnico, por exemplo, podemos utilizar uma estratgia para
recomendao de livros baseada nas preferncias explcitas do usurio. Na mesma
pgina, outra estratgia pode ser empregada para recomendar CDs a partir de uma
comparao feita nos dados de compra deste usurio com outros usurios (filtragem
colaborativa). Na figura abaixo, podemos ver em uma mesma pgina uma estratgia de
recomendao de livros (1) ao lado de uma estratgia de recomendao de novidades
(2).

FIGURA 5.4. Estratgias de recomendao

5.1.4. Interest List


Uma InterestList (lista de interesses) mantm as preferncias de um usurio, que podem
ser coletadas implicitamente ou explicitamente. No caso da coleta implcita, na medida
em que o usurio navega, seleciona e adquire itens, suas preferncias so armazenadas na
InterestList. J na coleta explcita, o usurio indica espontaneamente suas preferncias e
estas so armazenadas em outra InterestList. Mais tarde, todas estas preferncias podem
ser utilizados para se fazer a seleo de contedo, de produtos, ofertas ou outros.
5.1.5. Finding List
As FindingLists (listas de achados) complementam as informaes que se tem sobre os
usurios, sendo utilizadas para armazenar caractersticas demogrficas sobre eles (e.g.
faixa etria, sexo, ocupao, ...) ou hbitos de consumo (e.g. itens adquiridos ou
colocados num carrinho de compras), ou outro. atravs das listas de achados criadas

V ENIA

333

para um usurio que se pode encontrar recomendaes precisas para ele, com base em
padres encontrados em outros usurios similares.
5.2. Personalizando um website
Esta sesso traz um exemplo de como construir uma pgina personalizada utilizando os
objetos e mtodos definidos para o sistema Recommender.
Suponha que um usurio qualquer se conecta ao website de uma loja de comrcio
eletrnico, informando seu usurio e login. O website reconhece o usurio e ento monta
uma pgina personalizada para ele, com alguma contedo padro (apresentado para
todos os usurios), e duas pores com contedo personalizado, como ilustrado na
figura 5.4.
Para produzir as recomendao apresentadas na poro (1) da imagem
(recomendaes a partir dos itens comprados pelo usurio), podemos utilizar os mtodos
do sistema de recomendao do seguinte modo:
// tendo-se o identificador do usurio (userID) e o principal objeto do
sistema (RecommenderServer), recuperar inicialmente o controlador da
sesso
Set recommenderSessionController =
recommenderServer.getRecommenderSessionController(userID)
// Cria uma lista vazia para a lista de interesses
interestLists = Array()
// recuperar todas as listas de achados do usurio (e.g. itens comprados,
itens visitados, etc.)
findingLists =

recommenderSessionController.getFindingListsNames()

// fazer a chamada da busca de recomendao, passando o identificador da


estratgia, das listas de achado e de interesse, bem como do nmero de
recomendaes desejadas
recommendations = recommenderServer.getRecommendation
("filtragem_colaborativa",findingLists, interestLists, 4)

V ENIA

334

J as recomendaes da poro (2) da imagem (recomendaes de


novidades), podem ser obtidas do seguinte modo:
// tendo-se o identificador do usurio (userID) e o principal objeto do
sistema (RecommenderServer), recuperar inicialmente o controlador da
sesso
Set recommenderSessionController =
recommenderServer.getRecommenderSessionController(userID)
// monta a lista de interesses que vai utilizar
interestLists = Array()
interestLists[1] = "FavoriteBooks"
// Cria uma lista vazia para a lista de achados
findingLists =

Array()

// fazer a chamada da busca de recomendao, passando o identificador da


estratgia, das listas de achado e de interesse, bem como do nmero de
recomendaes desejadas
recommendations = recommenderServer.getRecommendation
("rec_novidades",findingLists, interestLists, 2)

6. Privacidade
Para que possamos recomendar itens apropriadamente para usurios de um sistema,
devemos constantemente coletar dados sobre eles. Dados comportamentais (navegao,
compra,...) e possivelmente demogrficos. Esta coleta, como vimos anteriormente,
feita muitas vezes de forma implcita, i.e. sem que o usurio necessariamente perceba que
informaes sobre ele esto sendo armazenadas na medida em que utiliza o sistema. Esta
prtica traz algumas questes relacionadas privacidade.
Pesquisas mostram que a maior parte dos usurios est disposta a fornecer
informaes suas para que possam receber ofertas personalizadas. No entanto, o censo
americano mostra que 75% dos usurios daquele pas se preocupam com a possvel
divulgao de dados que fornecem s empresas [Torres 2004]. Os usurios buscam
sempre conhecer os objetivos da coleta de dados e se estes sero fornecidos a terceiros.
A figura abaixo mostra uma coleta de dados incentivando a participao do usurio para
que as recomendaes feitas sejam mais eficientes.

V ENIA

335

FIGURA 6.1. Coleta de dados para melhoria das recomendaes

Portanto, a utilizao de sistemas de recomendao no teria problema algum se


as empresas que os empregam tivessem uma coleta de dados associada a uma poltica de
privacidade adequada. No entanto, no incomum encontrar empresas que, alm de
coletar dados para personalizar o relacionamento com seus clientes, vendam estes dados
para outras empresas, uma prtica que alimenta o aumento de spam. Atitudes como esta,
ao invs de estreitar o relacionamento com os clientes, apenas aumentam a distncia
entre estes e a empresa.
Como atualmente no h leis de privacidade on-line muito claras, importante
que as polticas de privacidade das empresas sejam precisas. A figura abaixo mostra um
trecho da pgina contendo a poltica de privacidade da loja Amazon.comTM.

TM

FIGURA 6.2. Poltica de privacidade da loja Amazon.com

Uma poltica de privacidade no apenas uma exigncia legal, mas tambm a


nica forma de garantir que uma empresa agir com honestidade e proteger as
V ENIA

336

informaes dos seus clientes. No momento em que existir um padro e uma forma
simples de identificao dos clientes, as polticas de privacidade sero mais eficientes.
Um problema que tem sido levantado com freqncia no caso de dados de
clientes que so repassados no momento de compras ou fuses entre empresas. Esta
prtica vista como incorreta, e algumas empresas fortes no mundo online (como
Amazon e CDNow) tm protegido os dados de seus clientes nestas situaes. Outro
problema similar ocorreu em 2003 com a companhia americana JetBlue, que forneceu
dados de seus clientes ao Departamento de Defesa dos Estados Unidos para que estes
pudessem identificar passageiros de alto risco [Torres 2004].
Uma nova alternativa est sendo desenvolvida pela World Wide Web Consortium
(W3C) e chamada de Platform for Privacity Preferences (PP3). A PP3 um protocolo
que tem como objetivo principal implementar mtodos para definir polticas de
privacidade padronizadas, os quais podem ser compreendidas e processadas por
computadores. Quando um cliente visita um website a P3P executada e a mesma
pergunta ao cliente quais as informaes ele deseja compartilhar com o site, criando
assim a poltica de privacidade. Por exemplo, um cliente talvez deseje informar o seu
email e nmero do telefone com a promessa de que o site somente utilizar essas
informaes em suas iteraes e com a devida permisso.
Algumas empresas esto propondo selos que garantem que a poltica de
privacidade de um website adequada e cumprida com rigor. A figura 6.3 apresenta um
destes selos, fornecidos pela empresa TRUSTe.

FIGURA 6.3. Selo da empresa TRUSTe no website da empresa NetRaker

Outra soluo ao problema trazida pelo pesquisador Seth Godin [Godin 1999],
autor do livro "Marketing de Permisso". A proposta do autor que jamais se envie
mensagens para uma pessoa sem que esta tenha dado permisso explcita para o envio.
Alm disso, mesmo que a pessoa d permisso para o envio de material, ela deve poder

V ENIA

337

interromper este envio com facilidade, a qualquer momento. Atravs desta abordagem
busca-se construir um relacionamento duradouro com os clientes, ao invs de empregar
os sistemas de recomendao apenas para alcanar lucratividade rpida.

7. Concluses e comentrios finais


Vimos neste captulo como os sistemas de recomendao podem ser utilizados para que
se possa conhecer melhor os hbitos de consumo e interesses dos clientes, e como este
tipo de conhecimento pode ser empregado para personalizar o relacionamento entre a
empresa e seus consumidores.
A maior parte dos exemplos apresentados neste curso se referiam
personalizao de websites. No entanto, outras aplicaes dos sistemas de recomendao
so possveis e encontram cada vez mais mercado. Uma destas aplicaes a de callcenters. A maior parte das empresas que lida diretamente com os clientes possui hoje em
dia um servio de call-center. Alm da infra-estrutura pesada, grande parte do custo de
um call-center est associado ao pessoal que nele trabalha. Portanto, otimizar este
servio e rentabiliz-lo algo muito importante. Os sistemas de recomendao permitem,
por exemplo, que se possa recomendar a um usurio que est comprando por telefone,
produtos que ele provavelmente estar interessado de acordo com as mercadorias j
escolhidas.
De posse do perfil do cliente, o atendente tem maior facilidade de estabelecer a
comunicao com ele e de efetuar, por exemplo, alguma venda de produto em oferta.
Em [Peppers et al. 1999] so apontadas outras vantagens na utilizao de servios de
atendimento personalizados:

Reduo do tempo de atendimento em 7%


Aumento na satisfao do cliente em 8%
Reduo no abandono de comunicaes em 19%

A personificao associada personalizao tambm se mostra uma nova


tendncia. O conceito de personificao diz respeito ao uso da figura humana na
interface do sistema, normalmente na forma de um personagem cujo objetivo
acompanhar o usurio na sua navegao e lhe apresentar recomendaes. A utilizao da
figura humana para melhorar a comunicao com o usurio baseada na premissa de que
a interao com um assistente personificado torna a interface do sistema mais amigvel e
centraliza a ateno do usurio em torno deste personagem. Vrias empresas tm
oferecido este tipo de recurso na estruturao de servios de atendimento online
automatizado.
As principais funes s quais um assistente virtual se prope:

V ENIA

Responder perguntas de forma sistemtica;


Auxiliar a navegao do usurio, reconhecendo-o, enfatizando sesses e
novidades de interesse;
Coletar dados, solicitando informaes de forma gradual;
Capturar a ateno do usurio, tornando a comunicao com ele mais
eficiente.

338

Alm disso, os assistentes virtuais podem tambm servir como interface para
encaminhar recomendaes ao usurio, como ilustra a figura abaixo.

Figura 7.1. Recomendaes encaminhadas por um assistente virtual

Em [Reategui and Lorenzatti 2005] apresentada uma aplicao de sistemas de


recomendao para ambientes educativos em que um assistente tem a funo de
responder perguntas dos alunos e recomendar contedos a estes, como mostra a figura a
seguir.

Figura 7.2. Assistente virtual em ambiente de aprendizagem

A utilizao da figura humana em interfaces um tpico que ainda apresenta


controvrsias [Kaasinen 1998]. No entanto, alguns resultados cientficos comeam a ser
apresentados indicando que a personificao associada personalizao aumenta o
envolvimento do usurio e facilita sua interao com o sistema [Blom e Monk 2001].
Resultados comerciais igualmente promissores tambm j so apontados. Em um artigo
do New York Times, publicado em setembro do ano passado [Wallace 2000], relatado
o caso de uma assistente virtual que auxilia o usurio a comprar arranjos de uma loja de
flores pela internet, recomendando-lhe diversos tipos de arranjo de acordo com certas
preferncias apontadas. A loja de flores registrou um aumento nas vendas de at trs
V ENIA

339

vezes quando usurios consultam a assistente de vendas. Uma das razes apontadas para
o sucesso do site que pessoas querem comprar de pessoas, e no de mquinas.
A necessidade de personalizar o relacionamento com os clientes cada vez mais
crescente nos dias de hoje. Ela na verdade uma forma de volta ao passado, onde o
vendedor de um pequeno mercado conhecia cada um de seus clientes e conseguia, de
forma bastante eficiente, lembrar-se das preferncias de cada um para fazer
recomendaes que aumentavam a lucratividade do negcio e promoviam a fidelizao.
Hoje em dia, para o vendedor de uma grande corporao, no possvel lembrar
dos principais interesses dos clientes bem como dos itens por eles adquiridos nas ltimas
compras. Por isso, os bancos de dados, as ferramentas de minerao e recomendao
servem como memria da empresa, provendo informaes valiosas relacionadas aos
hbitos de consumo e preferncias dos consumidores. A utilizao destas informaes na
comercializao de produtos no implica na substituio do homem por computadores
com maior capacidade de armazenamento de informaes, mas sim na adaptao de um
tipo de servio que era prestado por comerciantes e que, hoje em dia, no mais possvel
dado o crescente tamanho da populao e, consequentemente, o nmero de
consumidores.

References
Agrawal, R. et al. (1993) Mining Association Rules between sets of items in large
databases, In: International Conference Management of Data (SIGMOD-93).
Proceedings..., p.207-216.
Ansari, A. et al. (2000). Internet Recommendation Systems. Journal of Marketing
Research, v.37, n.3, p. 363-375, Aug.
Apte, C. et al. (2002). Business Application of Data Mining. Communications of the
ACM, New York, v.45, n.8, p. 49-53, Aug.
Balabanovic, M.; Shoham, Y. (1997). Fab: Content-Based, Collaborative
Recommendation. Communications of the ACM, New York, v.40, n.3, p. 66-72,
Mar.
Belvin, N. J.; Croft, W. B.(1992). Information Filtering and Information Retrieval: two
sides of the same coin?. Communications of the ACM, New York, v.35, n.12, p. 29,
Dec.
Blom, J. e Monk, A. (2001). "One-to-one e-commerce. whos the one?". Proceedings of
CHI 2001: Conference on Human Factors in Computing Systems. Seattle,
Washington, 31 March - 5 April.

V ENIA

340

Cabena, P. et al. (1997). Discovering data mining: from concept to implementation,


Prentice-Hall.
Foltz, P. W. ; Dumais, S. T. (1992). Personalized Information Delivery: An Analysis of
Information Filtering Methods. Communications of the ACM, New York, v.35,
n.12, p. 51-60, Dec.
Godin, S. (1999) Permission Marketing: Turning Strangers Into Friends And Friends
Into Customers. Simon & Schuster.
Goldberg, D. et al. (1992). Using collaborative filtering to weave an information
Tapestry. Communications of the ACM, New York, v.35, n.12, p. 61-70, Dec.
Herlocker, J. L. (2000) Understanding and Improving Automated Collaborative
Filtering Systems, Tese de Doutorado (Doutorado em Cincia da Computao),
University of Minnesota, Minnesota.
Holte, R. C. ; Yan, J. Y. (1996). Inferring What a User is Not Interested, In: Advances
in Artificial Intelligence, Proceedings..., p. 159-171.
Kaasinen, E. (1998). "Usability Issues in Agent Applications: What Should the Designer
be Aware of". USINACTS 01.06.98, VTT Information Technology, Finland.
Kautz, H. et al. (1997). Referral Web: combining social networks and Collaborative
filtering. Communications of the ACM, New York, v.40, n.3, p. 63-65, Mar.
Loeb, S.; Terry, D. (1992). Information Filtering. Comumunications of ACM, New
York, v.35, n.12, p.26, Dec.
Lueg, C. (1998) Considering Collaborative Filtering as Groupware: Experiences and
Lessons Learned, In: 2nd. International Conference on Practical Aspects of
Knowledge Management, Proceedings..., Basel, Switzerland, p. 29-30.
Maes, P.; Shardanand, U. (1995) Social information filtering: Algorithms for
automating "word of mouth, In: Human Factors in Computing Systems.
Proceedings, 1995, p. 210-217.
Manber, Udi et al. (2000). Experience with Personalization on Yahoo! Communication
of the ACM, New York.

V ENIA

341

Mccarthy, J. (2000). Phenomenal Data Mining. Communications of the ACM, v.43, n.8,
p. 75-79, Aug.
Montaner, M et al. (2003). A Taxonomy of Recommender Agents on the Internet.
Artificial Intelligence Review. Netherlands : Kluwer Academic Publishers, pp. 285330, Aug.
Nulvenna, M. et al. (2000). Personalization on the Net Using Web Mining.
Communications of the ACM, v.43, n.8, pp. 122-125, Aug.
Peppers, D. et al. (1999). The One to One Fieldbook : The Complete Toolkit for
Implementing a 1 To 1 Marketing Program, Bantam Books.
Plastino, A. (2001) Regras de Associao e Algoritmos de Minerao de Dados,
Mini-Curso 2, SBBD, 2001. Instituto Militar de Engenharia. Rio de Janeiro: Rio de
Janeiro.
Quinlan, J. R. (1993). C4.5: programs for machine learning, San Mateo: Morgan
Kaufmann.
Reategui, E. e Lorenzatti, A. (2005). "Um Assistente Virtual para Resoluo de Dvidas
e Recomendao de Contedo". Proceedings V Encontro Nacional de Inteligncia
Artificial (ENIA 2005). So Leopoldo, RS, Julho.
Resnick, P. e Varian, H. R. (1997). Recommender Systems. Communications of the
ACM, New York, v.40, n.3, pp. 55-58, Mar.
Riedl, J. et al. (1997). Grouplens: Applying Collaborative Filtering to Usenet News.
Communications of the ACM, New York, v.40, n.3, pp. 77-87, Mar.
Riedl, J. et al. (1999) Combining Collaborative Filtering with Personal Agents for
Better Recommendations, In: Proceedings of AAAI, Proceedings..., vol. 35,
pp.439-446. Press.
Riedl, J. et al. (2000). Electronic Commerce Recommender Applications. Journal of
Data Mining and Knowledge Discovery, vol. 5 nos. 1/2, pp. 115-152, Aug.
Rucker, J. ; Polanco, M. J. (1997). Siteseer: Personalized Navigation for the Web.
Communications of the ACM, New York, v.40, n.3, pp. 73-75, Mar.

V ENIA

342

Smyth, P. (2002). Business Applications of Data Mining. Communications of the ACM,


v.45, n.45, p. 49-53, Aug.
Spiliopoulou, M. (2000). Web Usage Mining for WebSite Evaluation. Communications
of the ACM, New York, v.43, n.8, pp. 127-134, Aug.
Torres, R. Personalizao na Internet. Editora Novatec, 2004.
Wallace, D. J. (2000). "She's Only Code and Pixels, but She Can Help You Shop". The
New York Times, September 20.
Yang, H. et al. (2002) On the use of constrained association for Web log mining, In:
Web Mining for Usage Patterns & User Profiles, WebKDD, 4., 2002, Edmonton.
Proceedings... Alberta, Canad: ACM SIGKDD, pp. 100-114.
Zaiane, O. R. (2000) Web Mining: Concepts, Practices and Research, In: Simpsio
Brasileiro de Banco de Dados, SBBD, 15., Joo Pessoa. Tutorial... Joo Pessoa:
CEFET-PB; Porto Alegre: PUCRS, v.43, n.8., pp. 410-474.

V ENIA

343

Apndice I - Mtodos da API do Sistema Recommender


A interface do sistema Recommender utiliza apenas dois objetos, dando acesso a todas
as funcionalidades do sistema. So eles:
RecommenderServer
RecommenderSessionController
Esta seo descreve os mtodos da API para cada um destes objetos.
RecommenderServer
Init
public void init (Configurator configurator)
configurator: arquivo .rpr contendo o caminho do arquivo de configurao
do sistema
Mtodo que inicializa o servidor de recomendao e define o caminho do
arquivo de configuracao do sistema, arquivo criado atravs do GP Explorer.
getRecommenderSessionController
public RecommenderSessionController
getRecommenderSessionController (int userId)
userId: identificador do usurio
Mtodo que retorna um objeto controlador de sesso e o associa ao usurio
com identificador userId. Se o usurio j possuir um controlador de sesso
ativo, nenhum objeto criado e o objeto ativo retornado.
RecommenderSessionController
getRecommendation
public int[ ] getRecommendation(int strategyId, String[ ]
findingListName, String[ ] interestListName, int size)
strategyId: Identificador da estratgia a ser utilizada na busca de
recomendaes
findingListName: Array com identificadores das listas de achados a serem
utilizada
interestListName: Array com identificadores das listas de interesses a serem
utilizadas
size: Nmero de recomendaes a serem retornadas
Esta funo retorna um array com os identificadores dos itens a serem
recomendados a um usurio. As informaes sobre o usurio que devem ser
utilizadas na seleo de itens para recomendao so definidas pelo parmetro
findingListName, que determina as listas de achados a serem utilizadas
V ENIA

344

(compras, sees visitadas, dados demogrficos, etc). O parmetro


interestListName permite que se restrinja as recomendaes a itens que se
encontram dentro de certas categorias (as que se encontrarem dentro das listas
de interesses especificadas, e.g. CDs, livros, etc). O nmero de recomendaes
retornado definido pelo parmetro size. Caso o sistema no encontre nenhum
item para ser recomendado, ento a lista de itens default do sistema utilizada,
lista definida na fase de criao do projeto do Recommender, utilizando a
ferramenta GP Explorer.
clearFindings
public void clearFindings (String findingListName)
findingListName: Nome da lista de achados a ser zerada
Remove da lista com nome de findingListName todos os achados.
clearFindings
public void clearFindings (String findingListName)
findingListName: Nome da lista de achados a ser zerada
Remove todos os achados da lista com nome de findingListName.
public void clearFindings ( )
Remove todos os achados de todas as listas de achados.
clearInterests
public void clearInterests (String interestListName)
interestListName: Nome da lista de interesses a ser zerada
Remove todos os interesses da lista com nome de interestListName.
public void clearInterests ( )
Remove todos os interesses de todas as listas de interesses.
clearTemporaryConstraints
public void clearTemporaryConstraints( )
Remove todas as restries da lista de restries temporrias, lista que tem
como funo impedir que determinados itens sejam recomendados a um
usurio.
getFindingListsNames
public String[ ] getFindingListNames( )
Retorna um array com os nomes de todas as listas de achados presentes no
sistema.

V ENIA

345

getFindings
public int[ ] getFindings(String findingListName)
findingListName: Nome da lista de achados
Funo que retorna um array com os identificadores de todos os achados da
lista especificada por findingListName. Se a lista no existir ou for nula (=
null), ento o array retornado tem tamanho zero.
public int[ ] getFindings( )
Retorna um array com os identificadores de todos os achados de todas as listas
de achados do sistema. Se no houver nenhuma lista de achado, ento o array
retornado tem tamanho zero.
getInterestListsNames
public String[ ] getInterestListNames( )
Retorna um array com os nomes de todas as listas de interesses presentes no
sistema.
getInterests
public int[ ] getInterests(String InterestListName)
InterestListName: Nome da lista de achados
Funo que retorna um array com os identificadores de todos os interesses da
lista especificada por InterestListName. Se a lista no existir ou for nula (=
null), ento o array retornado tem tamanho zero.
public int[ ] getInterests( )
Retorna um array com os identificadores de todos os iteresses de todas as listas
de interesse do sistema. Se no houver nenhuma lista de iteresse, ento o array
retornado tem tamanho zero.
putFinding
public void putFinding(int idFinding, String findingListName)
idFinding: Identificador do achado a ser inserido na lista
findingListName: Nome da lista de achados
Mtodo que adiciona o achado cujo identificador passado como parmetro
(idFinding) lista de achados com o nome especificado por findingListName.
public void putFinding (String attrName, String value, String
findingListName)
attrName: nome do atributo que permite identificar achado a ser inserido na
lista
value: valor do achado a ser inserido na lista
findingListName: Nome da lista de achados

V ENIA

346

Mtodo que adiciona o achado, cujo nome e valor so passados como


parmetro, lista de achados especificada por findingListName. Se nenhum
achado for encontrado para os parmetros especificados, nenhuma ao
executada.
putIterest
public void putInterest (int idInterest, String interestListName)
idInterest: Identificador do iteresse a ser inserido na lista
InterestListName: Nome da lista de interesses
Mtodo que adiciona o interesse cujo identificador passado como parmetro
(idInterest) lista de interesses com o nome especificado por InterestListName.
putTemporaryConstraint
public void putTemporaryConstraint (int idFinding)
idFinding: Identificador do achado a ser colocado na lista de restries
Mtodo que adiciona o achado identificado por idFinding lista de restries
temporrias do sistema associada ao controlador de sesso (SessionController).
Quando colocado nesta lista, um item no recomendado ao usurio.
public void putTemporaryConstraint(String attrName, String value)
attrName: nome do atributo que permite identificar achado a ser inserido na
lista
value: valor do achado a ser inserido na lista
Mtodo que adiciona o achado identificado pelo nome do atributo e valor
(attrName/value) lista de restries temporrias associada ao controlador de
sesso (SessionController). Quando colocado nesta lista, um item no
recomendado ao usurio.
removeFinding
public void removeFinding(int idFinding, String findingListName)
idFinding: Identificador do achado a ser removido da lista
findingListName: Nome da lista da qual o achado deve ser removido
Remove o achado identificado por idFinding da lista espedificada por
findingListName. Se o achado no existe ou for igual a null, ento nenhuma
ao executada.
public void removeFinding (String attrName, String value, String
findingListName)
attrName: nome do atributo que permite identificar achado a ser removido da
lista
value: valor do achado a ser inserido na lista
findingListName: Nome da lista de achados

V ENIA

347

Mtodo que remove o achado identificado pelo nome do atributo e valor


(attrName/value) da lista identificada por findingListName. Se o achado no
existe ou for igual a null, ento nenhuma ao executada.
removeIterest
public void remove (int idInterest, String interestListName)
idInterest: Identificador do interesse a ser inserido na lista
InterestListName: Nome da lista de interesses
Mtodo que remove o interesse cujo identificador passado como parmetro
(idInterest) da lista de interesses com o nome especificado por
InterestListName.
removeTemporaryConstraint
public void removeTemporaryConstraint(int idFinding)
idFinding: Identificador do achado a ser removido da lista
Remove o achado identificado por idFinding da lista de restries associada ao
controlador de sesso (SessionController).
public void removeTemporaryConstraint (String attrName, String value)
attrName: nome do atributo que permite identificar achado a ser removido das
restries
value: valor do achado a ser removido da lista
Mtodo que remove o achado identificado pelo nome do atributo e valor
(attrName/value) da lista de restries associada ao controlador de sesso
(SessionController).

V ENIA

348

Você também pode gostar