Filtragem Colaborativa Ivan Romero Teixeira Agentes inteligentes 2000.2 Roteiro • Motivação • Filtragem de Informações – Técnicas • Filtragem Colaborativa – Estudo de caso • GroupLens • Abordagens híbridas – Estudo de caso • FAB • PTV Grande volume de informações... • Difícil encontrar informações importantes em tempo hábil • Como encontrar o que interessa? – Esforço próprio – Sorte – Recomendação de amigos Filtragem de informação • Compreende – Selecionar informações importantes (filtering in) – Eliminar informações irrelevantes (filtering out) – identificação e utilização do perfil do usuário. • Técnicas de filtragem – Econômica – Cognitiva – Social Agente de filtragem de informação - Arquitetura Cliente Informação Servidor Perfil Itens Indexados Perfil do usuário Indexing Engine Agente de Filtragem Informação Perfil do usuário • Representação da característica do usuário • Identificação: – Automática – Manual • Representação interna – Conjunto de exemplos – Esquema de perfil Filtragem econômica • Baseada na relação custo/benefício de produção e consumo de um item – Exemplo: Filtro econômico para e-mail • Uma mensagem postada para muitos destinatários tem um baixo custo de produção por endereço, então deve receber baixa prioridade. • Por outro lado, uma mensagem enviada exclusivamente para o endereço de um usuário tem alto custo de produção, então deve receber maior prioridade. Filtragem cognitiva • Baseada no conteúdo (content based) – Recomenda itens para o usuário baseado na correlação entre o conteúdo dos itens e as preferências do usuário. • Exemplo: relacionar a presença de palavras-chave num artigo com o perfil do usuário. – O perfil do usuário pode ser atualizado: • automaticamente de acordo com o feedback • manualmente Filtragem cognitiva - Problemas • Representação computacional dos itens analisados – Como extrair automaticamente atributos relevantes de música, imagens, filmes ? • Os itens recomendados são sempre parecidos com os já vistos – Como descobrir coisas novas e interessantes? • Impossível distinguir itens com base na qualidade, estilo e ponto de vista. Filtragem social • Baseia-se no relacionamento entre as pessoas e suas opiniões – Exemplo: Filtro social de email • Se o emissor da mensagem for [email protected], envie a mensagem para o lixo. • Filtragem colaborativa – Itens são recomendados a um usuário de acordo com suas avaliações por usuários de preferências similares. Filtragem Colaborativa Independência do item a ser filtrado – Os atributos dos itens não precisam ser determinados Podem ser recomendados itens que têm conteúdo bem diferente dos já conhecidos pelos usuários Baseado no julgamento de humanos – Não possuem dificuldade quanto a sinônimos, polisemia e contexto para avaliação. – Julgamento em outras dimensões: qualidade, reputação, renome. Estudo de Caso: GroupLens • Sistema de filtragem colaborativa para newsgroups • Sistema GroupLens – Prevê notas para artigos, baseando-se em filtragem colaborativa. GroupLens (cont.) • Sistema GroupLens (cont.) – Permite que os usuários dêem notas aos artigos que leram. GroupLens (cont.) • Sistema utiliza um protocolo para propagar as notas dos usuários entre todos os servidores GroupLens GroupLens (cont.) • Prevendo notas – Usuários que concordaram no passado, tendem a concordar novamente. – O problema é modelado como uma matriz, onde as colunas são as pessoas, as linhas são os artigos e as células contêm as notas dadas pelas pessoas. GroupLens (cont.) Problema como uma matriz GroupLens (cont.) • Prevendo notas (cont.) – Técnica • Computar os coeficientes de correlação entre os usuários baseando-se nas suas notas para artigos anteriores. • Fazer uma média ponderada entre as notas que o artigo em consideração recebeu dos outros usuários, utilizando-se o coeficiente de correlação como peso. GroupLens (cont.) Como prever essa nota? Outras correlações: Meg (+1); Nan (0) Calculando o coeficiente de correlação entre Ken e Lee Nota prevista. Coerente, pois Ken normalmente concorda com Meg e discorda de Lee Filtragem colaborativa Problemas Não recomenda itens novos Usuário incomum Número de usuários insuficiente Número insuficiente de itens avaliados pelo usuário Sistemas Híbridos Usando o que cada um tem de melhor Itens com atributos não triviais Recomendação de itens interessantes sem conteúdo diretamente relacionado ao histórico Julgamento em muitas dimensões Sem problemas de latência para itens novos Bons resultados mesmo para usuários incomuns Precisão independente do número de usuários Estudo de Caso: FAB • Sistema de recomendação híbrido de Páginas WEB. • Recomenda páginas Web baseado no perfil do usuário FAB: Background • O conteúdo de uma página é representado considerando apenas as palavras contidas no texto. FAB: Notação • w : representação de uma página WEB • m : representação dos interesses de um usuário • r(w,m) : função que determina a pertinência de uma página dados os interesses do usuário • u(w,m,s) : atualiza o profile m do usuário, dado seu feedback s sobre uma página w. • s : varia desde Excelente (+3) a péssimo (-3). FAB: Arquitetura • Modelo vetor-espaço de recuperação de informação. – Dicionário d = [d1, d2, ..., dn] – Cada vetor wW = [w1, w2, ..., wn] é associado a um documento W, onde wi é o peso de di Frequência de di em W Frequência máxima de uma palavra em W Número de documentos na coleção Nº de documentos na coleção que contém di FAB: Arquitetura (cont.) • Relevância da página w para um usuário • r(w,m) = w.m (produto interno) • Atualizando o perfil do usuário • u(w,m,s) = m + sw • Para simular a mudança de opinião dos usuários no decorrer do tempo, atualiza-se w para 0,97.w a cada fim de dia. FAB: Vantagens da Arquitetura Persistência nas informações de um usuário Reutilização do profile - Exemplo: filtragem de e-mail Benefícios para um novo usuário Comunidade de usuários “parasitas” - Profile compartilhado Especialização Recomendação de itens interessantes sem conteúdo diretamente relacionado ao histórico Estudo de Caso: PTV • Problema – TV com programação cada vez maior e mais diversificada. – Os mais diversos assuntos e gostos. • Solução – Guias de TV digitais: • Sky: 60 canais e 140 telas de programação por dia. – Guias de TV personalizados. Arquitetura PTV Feedback do usuário • Guias recebidos por e-mail ou celular (WAP) Para dar a nota no programa Representação do perfil • Profile schema – sumário da preferência de programação de um usuário baseado nos programas avaliados. ER Ivan Genre: Medical Genre: Comedia Drama Drama Country: USA Country: USA Language: English Language: Português Cast: Anthony Cast: Jim Carry Edwards Megg Ryan Similaridade • Filtro baseado em conteúdo (CBR) Schema (u ) p w sim f , f PrgSim(Schema(u),p)= i i i • Filtro colaborativo PrfSim(u,u’) = PrgRank(p,u) = u u r ( p ) r ( p i i ') p ( u ) p ( u ') 4 p (u ) p (u ' ) PrfSim(u,u’) uU Conclusões • Filtragem de informação – Utiliza perfil do usuário para selecionar informação mais interessante. • Filtragem baseada em: – Conteúdo dos itens – Opinião dos usuário • Abordagem híbrida aproveita vantagens das duas abordagens. Referências • • • • • • Balabanovic, M. An adaptive web page recommendation service. In Proceedings of the 1st International Conference on Autonomous Agents (Marina del Rey, Calif., Feb. 1997). Balabanovic, M. and Shoham, Y. FAB: Content-based collaborative recommender. Commun. ACM 40, 3 (Mar. 1997) 66-72. Resnick, P., Iacovou, N., Suchak, M., Bergstrom, P., and Riedl, J. GroupLens: An open architecture for collaborative filtering of netnews. In Proceedings of the ACM Conference on Computer-Supported Cooperative Work (Chapel Hill, NC) 1994. Shardanand, U. and Maes, P. Social information filtering: Algorithms for automating ‘word of mouth’. In Proceedings of the Conference on Human Factors in Computing Systems (CHI95). ACM Press, New York, N.Y., (1995): 210-217. Smyth, B., and Cotter, P. A personalized television listings service. Commun. ACM 43, 8 (Aug. 2000) 107-111. Smyth, B., and Cotter, P. Surfing the digital wave: Generating personalized TV listings using collaborative, case-based recommendation. In Proceedings of the International Conference on Case-Based Reasoning (Munich, 1999).