Escolar Documentos
Profissional Documentos
Cultura Documentos
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.
306
V ENIA
307
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
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
V ENIA
309
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
V ENIA
311
V ENIA
312
V ENIA
313
V ENIA
314
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.
V ENIA
315
V ENIA
316
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
V ENIA
318
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
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
V ENIA
321
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
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
Alemanha
Inglaterra
rea
WebMining
Status
ML
Professor
rea
Agentes
Aluno
ML
V ENIA
323
V ENIA
324
Sementes
Sementes
V ENIA
325
326
327
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
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;
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:
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.
329
Sistema
Recomendao
Dados
Demogrficos
Contedo,
servios e ofertas
personalizadas
Requisies
Servidor
Web
Recomendaes
Dados
Transacionais
transaces
Sistema
Recomendao
Estratgias
Recomendao
Contedo,
servios e ofertas
personalizadas
Requisies
Recomendaes
Servidor
Web
transaces
Minerao
Dados
Demogrficos
Dados
Transacionais
V ENIA
330
V ENIA
331
Itens selecionados,
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
Strategyq
informaes que se
tm sobre cada
usurio
Finding List1
Strategy1
Session Controllerp
Userp
V ENIA
332
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()
V ENIA
334
Array()
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
TM
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.
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.
V ENIA
338
Alm disso, os assistentes virtuais podem tambm servir como interface para
encaminhar recomendaes ao usurio, como ilustra a figura abaixo.
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
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
V ENIA
343
344
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
V ENIA
347
V ENIA
348