SlideShare uma empresa Scribd logo
1 de 35
Filtragem Colaborativa
João Carlos
Jobert Sá
• Introdução;
• Desafios da Filtragem Colaborativa;
• Técnicas
o Model-based;
o Memory-based;
• Casos de estudo;
Introdução
• Quantidade crescente quantidade de informação disponível;
Introdução
• Pessoas confiam em recomendações como forma de
filtragem;
Introdução
• Se usuário X e Y avaliam os itens de forma similar, ou têm
comportamentos semelhantes, então eles devem avaliar ou
agir em outros itens de forma similar;
Introdução
• Em uma base típica de preferências "Itens por Usuário"
temos:
Características e Desafios
•
•
•
•
•

Dispersão dos dados;
Escalabilidade;
Sinonímias;
Problema da "ovelha cinza";
Shilling Attacks;
Dispersão dos dados
•
•
•
•

Matriz Item-Usuário pode ficar extremamente dispersa;
Partida fria;
Cobertura reduzida;
Transitividade com o vizinho;
Escalabilidade
• Algoritmos tradicionais de CF podem sofrer problemas
sérios de escalabilidade;

10 million users
X
1 million items
Sinonímias
Problemas gerados:
• Itens com nomes diferentes, porém significados iguais ou
similares;
• Leva a recomendar itens já adquiridos;
Problema da "ovelha cinza"
• O usuário não se encaixa em nenhum grupo;
• Só é possível fazer recomendações baseadas em
conteúdo;
Shilling Attacks
• Usuário propositalmente positiva determinados de forma
para provocar recomendações artificiais;
• Memory-based são menos afetados;
O prêmio para o desafio do Netflix
CF Baseados em Memória
• Usa os dados brutos da matriz de avaliações;

• Encontra os vizinhos mais próximos para fazer as previsões
e recomendações;
Computando as Similaridades
• Correlação de Pearson;
• Similaridade baseada no cálculo do cosseno;
Top-N Recomendações
User-based:
• Encontra os usuários com o padrão mais parecidos;
• Encontra o conjunto de itens avaliados/comprados pelos
usuários encontrados;
• As top-N recomendações serão os itens mais
avaliados/comprados pelo grupo pré-selecionado;
Items-based:
• Encontra os itens C com padrão de compra mais parecidos;
• Remove de C o conjunto U de itens já comprados pelo
usuário;
• Calcula a similaridade entre cada elemento de C com os
elementos de U;
Técnicas de CF Baseados em Memória
Vantagens:
• Fácil implementação;
• Novos dados podem ser adicionados facilmente;
• Não precisa se preocupar com o conteúdo dos itens
recomendados;
• Bem escalável para itens co-avaliados;
Técnicas de CF baseados em memória
Desvantagens:
• Dependente das avaliações dos usuários;
• Perde performance com a dispersão dos dados;
• Não consegue recomendar com poucos itens/usuários;
• Tem escalabilidade limitada;
Técnicas de CF baseados em modelo
• Gera modelos que representam a matriz de avaliações;
• Permite o sistema reconhecer padrões complexos;
• Utiliza protipagem e redução de dimensionalidade;
Técnicas de CF baseados em modelo
Vantagens:
• Lida melhor com dispersão dos dados e escalabilidade;
• Melhora performance de previsão;
• Dá uma justificativa intuitiva para as recomendações;
Técnicas de CF baseados em modelo
Desvantagens:
• Construção do modelo pode ser custosa;
• Possui trade-offs entre performance de previsão e
escalabilidade;
• Perde informações úteis com o uso de técnicas de redução
de dimensionalidade;
Casos de Estudo: Tapestry
• Motivação: Aumento do
uso de correio eletrônico
Casos de Estudo: Tapestry
• Filtragem baseada em conteúdo e Filtragem Colaborativa
• Anotações
• Listas moderadas
o emails filtrados segundo anotações criadas pelos
"moderadores"
o Feedback dos usuários
• Relacionamento entre dois ou mais emails
Casos de Estudo: Tapestry

Fluxo de mensagens
Casos de Estudo: Tapestry
O Sistema é realmente eficiente?
Catherine cria um filtro de consulta a fim de receber
mensagens que Amy, Annie ou Allison consideraram
engraçadas.
Priority Inbox
Casos de Estudo:
Algoritmos de recomendação para e-commerce encontram
ambientes desafiadores:
• Uma grande loja pode ter enormes quantidades de dados
• Resultados em tempo real, ao mesmo tempo em que gera
boas recomendações
• Novos clientes tem informações extremamente limitadas
• Clientes mais velhos tem excesso de informações
• Dados dos clientes são voláteis
Item-to-Item Collaborative Filtering
Casos de Estudo:
Algoritmo da amazon.com X outros métodos
• Filtragem Colaborativa Tradicional
o Cliente = vetor de itens N-dimensional
o Componentes do vetor podem ser positivos ou negativos
o

Computacionalmente muito caro: O(MN), O(M+N)
Casos de Estudo:
Algoritmo da amazon.com X outros métodos
• Modelos de Clusters
o Divide o banco de clientes em vários segmentos
o Problema de classificação
 Agrupar clientes mais similares para formar clusters
o Melhor performance do que o método anterior
o Recomendações menos relevantes
 Melhorar as recomendações aumentando a
granularidade dos segmentos o torna quase tão caro
quanto Filtragem Colaborativa
Casos de Estudo:
Algoritmo da amazon.com X outros métodos
• Métodos baseados em conteúdo (ou busca)
o Tratam o problema de recomendação como uma busca
o Recomenda itens com atributos similares
o Boa performance e escalabilidade se o usuário fez
poucas compras e classificações
o Baixa qualidade nas recomendações para usuários que
fizeram poucas compras
Casos de Estudo:
Algoritmo da amazon.com X outros métodos
• Filtragem Colaborativa Item-a-Item
o Combina cada item comprado e classificado pelo usuário
com itens similares
o Tabela de itens comprados em conjunto
Casos de Estudo:
Algoritmo da amazon.com X outros métodos
• Filtragem Colaborativa Item-a-Item
o Similaridade é calculada pela fórmula do cosseno
 Item = Vetor de consumidores M-dimensional
o Cálculo de similaridade e construção da tabela é offline
o O(N²M) no pior caso. Aproximadamente O(NM)
o Dada uma tabela de itens similares, o algoritmo agrupa
os itens similares ao item que o usuário está comprando.
E então recomenda os itens mais populares ou
correlacionados
o Geração das recomendações é rápida, dependendo do
número de itens que o usuário comprou ou classificou
Casos de Estudo:
Resumo comparativo:
• Filtragem colaborativa tradicional: computação online
aumenta de acordo com o número de clientes e itens
o Bons resultados para bancos de dados pequenos
o Baixa qualidade em grandes bancos de dados, pois é
preciso utilizar um subconjunto de dados
• Modelos de clusters: Maior parte da computação offline,
mas qualidade da recomendação é baixa. Aumentar o
número de clusters torna mais caro
• Modelos baseados em conteúdo: Falham em fornecer
recomendações relevantes e não são bem escaláveis para
clientes com muitas compras ou classificações
Casos de Estudo:
Resumo comparativo:
• Filtragem Colaborativa Item-a-Item
o Parte computacional mais cara (tabela de similaridade) é
feita offline
o A parte online possui um algoritmo que é escalável
independente do tamanho do catálogo de itens ou
número de clientes
o Depende somente da quantidade de itens que o usuário
comprou ou classificou
o Rápido, mesmo para grandes conjuntos de dados
o Boa qualidade das recomendações, mesmo com
informações limitadas
Referências
• A Survey of Collaborative Filtering Techniques (Su e
Khoshgoftar - 2009)
• Using Collaborative Filtering to weave an information
Tapestry (Goldberg - 1992)
• From Tapestry to SVD: A Survey of the Algorithms That
Power Recommender Systems (Huttner - 2009)
• Amazon Recommendations: Item-to-Item Collaborative
Filtering (Linden, Smith, York - 2003)
Dúvidas?

Mais conteúdo relacionado

Semelhante a Collaborative filtering

Poc1 apresentacao parcial_henriquechevreux
Poc1 apresentacao parcial_henriquechevreuxPoc1 apresentacao parcial_henriquechevreux
Poc1 apresentacao parcial_henriquechevreuxchevreux
 
Sistemas de recomendação
Sistemas de recomendaçãoSistemas de recomendação
Sistemas de recomendaçãoLeonardo Zanette
 
Case Recommender: Fazendo recomendação em Python
Case Recommender: Fazendo recomendação em PythonCase Recommender: Fazendo recomendação em Python
Case Recommender: Fazendo recomendação em PythonArthur Fortes
 
Sistemas de Recomendação com Neo4j + Surprise
Sistemas de Recomendação com Neo4j + SurpriseSistemas de Recomendação com Neo4j + Surprise
Sistemas de Recomendação com Neo4j + SurpriseMorvana Bonin
 
Hierarquia de modelos e Aprendizagem de Máquina - Pós Graduação em Big Data
Hierarquia de modelos e Aprendizagem de Máquina - Pós Graduação em Big DataHierarquia de modelos e Aprendizagem de Máquina - Pós Graduação em Big Data
Hierarquia de modelos e Aprendizagem de Máquina - Pós Graduação em Big DataFabrício Barth
 
Introducão à Ciência de Dados
Introducão à Ciência de DadosIntroducão à Ciência de Dados
Introducão à Ciência de DadosJoão Pedro Albino
 
Transformational Design Thinking - Aula 8
Transformational Design Thinking - Aula 8Transformational Design Thinking - Aula 8
Transformational Design Thinking - Aula 8Lu Terceiro
 
Poc2 apresentacao parcial_henriquechevreux
Poc2 apresentacao parcial_henriquechevreuxPoc2 apresentacao parcial_henriquechevreux
Poc2 apresentacao parcial_henriquechevreuxchevreux
 
Choose your weapon - TDC Floripa 2019
Choose your weapon - TDC Floripa 2019Choose your weapon - TDC Floripa 2019
Choose your weapon - TDC Floripa 2019Alex Lattaro
 
Mapa Empreendedorismo.docx
Mapa Empreendedorismo.docxMapa Empreendedorismo.docx
Mapa Empreendedorismo.docxtrabsacad5
 
Mapa Empreendedorismo.docx
Mapa Empreendedorismo.docxMapa Empreendedorismo.docx
Mapa Empreendedorismo.docxtrabsacad4
 
Mapa Empreendedorismo.docx
Mapa Empreendedorismo.docxMapa Empreendedorismo.docx
Mapa Empreendedorismo.docxIsabelaBuriola
 

Semelhante a Collaborative filtering (20)

Poc1 apresentacao parcial_henriquechevreux
Poc1 apresentacao parcial_henriquechevreuxPoc1 apresentacao parcial_henriquechevreux
Poc1 apresentacao parcial_henriquechevreux
 
Personalização: O que é?
Personalização: O que é?Personalização: O que é?
Personalização: O que é?
 
Sistemas de recomendação
Sistemas de recomendaçãoSistemas de recomendação
Sistemas de recomendação
 
Sistemas de recomendação
Sistemas de recomendaçãoSistemas de recomendação
Sistemas de recomendação
 
Apresentação da Dissertação
Apresentação da DissertaçãoApresentação da Dissertação
Apresentação da Dissertação
 
Painel 05 02 - Remis Balaniuk - modelo bayesiano de analise de risco de con...
Painel 05   02 - Remis Balaniuk - modelo bayesiano de analise de risco de con...Painel 05   02 - Remis Balaniuk - modelo bayesiano de analise de risco de con...
Painel 05 02 - Remis Balaniuk - modelo bayesiano de analise de risco de con...
 
Palestra unesp 2012
Palestra unesp 2012Palestra unesp 2012
Palestra unesp 2012
 
Case Recommender: Fazendo recomendação em Python
Case Recommender: Fazendo recomendação em PythonCase Recommender: Fazendo recomendação em Python
Case Recommender: Fazendo recomendação em Python
 
Talk conexao
Talk conexaoTalk conexao
Talk conexao
 
OLAP, BI, EIS
OLAP, BI, EISOLAP, BI, EIS
OLAP, BI, EIS
 
Comércio Eletrônico e Métodos de pagamento on line - Aula 02
Comércio Eletrônico e Métodos de pagamento on line - Aula 02Comércio Eletrônico e Métodos de pagamento on line - Aula 02
Comércio Eletrônico e Métodos de pagamento on line - Aula 02
 
Sistemas de Recomendação com Neo4j + Surprise
Sistemas de Recomendação com Neo4j + SurpriseSistemas de Recomendação com Neo4j + Surprise
Sistemas de Recomendação com Neo4j + Surprise
 
Hierarquia de modelos e Aprendizagem de Máquina - Pós Graduação em Big Data
Hierarquia de modelos e Aprendizagem de Máquina - Pós Graduação em Big DataHierarquia de modelos e Aprendizagem de Máquina - Pós Graduação em Big Data
Hierarquia de modelos e Aprendizagem de Máquina - Pós Graduação em Big Data
 
Introducão à Ciência de Dados
Introducão à Ciência de DadosIntroducão à Ciência de Dados
Introducão à Ciência de Dados
 
Transformational Design Thinking - Aula 8
Transformational Design Thinking - Aula 8Transformational Design Thinking - Aula 8
Transformational Design Thinking - Aula 8
 
Poc2 apresentacao parcial_henriquechevreux
Poc2 apresentacao parcial_henriquechevreuxPoc2 apresentacao parcial_henriquechevreux
Poc2 apresentacao parcial_henriquechevreux
 
Choose your weapon - TDC Floripa 2019
Choose your weapon - TDC Floripa 2019Choose your weapon - TDC Floripa 2019
Choose your weapon - TDC Floripa 2019
 
Mapa Empreendedorismo.docx
Mapa Empreendedorismo.docxMapa Empreendedorismo.docx
Mapa Empreendedorismo.docx
 
Mapa Empreendedorismo.docx
Mapa Empreendedorismo.docxMapa Empreendedorismo.docx
Mapa Empreendedorismo.docx
 
Mapa Empreendedorismo.docx
Mapa Empreendedorismo.docxMapa Empreendedorismo.docx
Mapa Empreendedorismo.docx
 

Collaborative filtering

  • 2. • Introdução; • Desafios da Filtragem Colaborativa; • Técnicas o Model-based; o Memory-based; • Casos de estudo;
  • 3. Introdução • Quantidade crescente quantidade de informação disponível;
  • 4. Introdução • Pessoas confiam em recomendações como forma de filtragem;
  • 5. Introdução • Se usuário X e Y avaliam os itens de forma similar, ou têm comportamentos semelhantes, então eles devem avaliar ou agir em outros itens de forma similar;
  • 6. Introdução • Em uma base típica de preferências "Itens por Usuário" temos:
  • 7. Características e Desafios • • • • • Dispersão dos dados; Escalabilidade; Sinonímias; Problema da "ovelha cinza"; Shilling Attacks;
  • 8. Dispersão dos dados • • • • Matriz Item-Usuário pode ficar extremamente dispersa; Partida fria; Cobertura reduzida; Transitividade com o vizinho;
  • 9. Escalabilidade • Algoritmos tradicionais de CF podem sofrer problemas sérios de escalabilidade; 10 million users X 1 million items
  • 10. Sinonímias Problemas gerados: • Itens com nomes diferentes, porém significados iguais ou similares; • Leva a recomendar itens já adquiridos;
  • 11. Problema da "ovelha cinza" • O usuário não se encaixa em nenhum grupo; • Só é possível fazer recomendações baseadas em conteúdo;
  • 12. Shilling Attacks • Usuário propositalmente positiva determinados de forma para provocar recomendações artificiais; • Memory-based são menos afetados;
  • 13. O prêmio para o desafio do Netflix
  • 14. CF Baseados em Memória • Usa os dados brutos da matriz de avaliações; • Encontra os vizinhos mais próximos para fazer as previsões e recomendações;
  • 15. Computando as Similaridades • Correlação de Pearson; • Similaridade baseada no cálculo do cosseno;
  • 16. Top-N Recomendações User-based: • Encontra os usuários com o padrão mais parecidos; • Encontra o conjunto de itens avaliados/comprados pelos usuários encontrados; • As top-N recomendações serão os itens mais avaliados/comprados pelo grupo pré-selecionado; Items-based: • Encontra os itens C com padrão de compra mais parecidos; • Remove de C o conjunto U de itens já comprados pelo usuário; • Calcula a similaridade entre cada elemento de C com os elementos de U;
  • 17. Técnicas de CF Baseados em Memória Vantagens: • Fácil implementação; • Novos dados podem ser adicionados facilmente; • Não precisa se preocupar com o conteúdo dos itens recomendados; • Bem escalável para itens co-avaliados;
  • 18. Técnicas de CF baseados em memória Desvantagens: • Dependente das avaliações dos usuários; • Perde performance com a dispersão dos dados; • Não consegue recomendar com poucos itens/usuários; • Tem escalabilidade limitada;
  • 19. Técnicas de CF baseados em modelo • Gera modelos que representam a matriz de avaliações; • Permite o sistema reconhecer padrões complexos; • Utiliza protipagem e redução de dimensionalidade;
  • 20. Técnicas de CF baseados em modelo Vantagens: • Lida melhor com dispersão dos dados e escalabilidade; • Melhora performance de previsão; • Dá uma justificativa intuitiva para as recomendações;
  • 21. Técnicas de CF baseados em modelo Desvantagens: • Construção do modelo pode ser custosa; • Possui trade-offs entre performance de previsão e escalabilidade; • Perde informações úteis com o uso de técnicas de redução de dimensionalidade;
  • 22. Casos de Estudo: Tapestry • Motivação: Aumento do uso de correio eletrônico
  • 23. Casos de Estudo: Tapestry • Filtragem baseada em conteúdo e Filtragem Colaborativa • Anotações • Listas moderadas o emails filtrados segundo anotações criadas pelos "moderadores" o Feedback dos usuários • Relacionamento entre dois ou mais emails
  • 24. Casos de Estudo: Tapestry Fluxo de mensagens
  • 25. Casos de Estudo: Tapestry O Sistema é realmente eficiente? Catherine cria um filtro de consulta a fim de receber mensagens que Amy, Annie ou Allison consideraram engraçadas. Priority Inbox
  • 26. Casos de Estudo: Algoritmos de recomendação para e-commerce encontram ambientes desafiadores: • Uma grande loja pode ter enormes quantidades de dados • Resultados em tempo real, ao mesmo tempo em que gera boas recomendações • Novos clientes tem informações extremamente limitadas • Clientes mais velhos tem excesso de informações • Dados dos clientes são voláteis Item-to-Item Collaborative Filtering
  • 27. Casos de Estudo: Algoritmo da amazon.com X outros métodos • Filtragem Colaborativa Tradicional o Cliente = vetor de itens N-dimensional o Componentes do vetor podem ser positivos ou negativos o Computacionalmente muito caro: O(MN), O(M+N)
  • 28. Casos de Estudo: Algoritmo da amazon.com X outros métodos • Modelos de Clusters o Divide o banco de clientes em vários segmentos o Problema de classificação  Agrupar clientes mais similares para formar clusters o Melhor performance do que o método anterior o Recomendações menos relevantes  Melhorar as recomendações aumentando a granularidade dos segmentos o torna quase tão caro quanto Filtragem Colaborativa
  • 29. Casos de Estudo: Algoritmo da amazon.com X outros métodos • Métodos baseados em conteúdo (ou busca) o Tratam o problema de recomendação como uma busca o Recomenda itens com atributos similares o Boa performance e escalabilidade se o usuário fez poucas compras e classificações o Baixa qualidade nas recomendações para usuários que fizeram poucas compras
  • 30. Casos de Estudo: Algoritmo da amazon.com X outros métodos • Filtragem Colaborativa Item-a-Item o Combina cada item comprado e classificado pelo usuário com itens similares o Tabela de itens comprados em conjunto
  • 31. Casos de Estudo: Algoritmo da amazon.com X outros métodos • Filtragem Colaborativa Item-a-Item o Similaridade é calculada pela fórmula do cosseno  Item = Vetor de consumidores M-dimensional o Cálculo de similaridade e construção da tabela é offline o O(N²M) no pior caso. Aproximadamente O(NM) o Dada uma tabela de itens similares, o algoritmo agrupa os itens similares ao item que o usuário está comprando. E então recomenda os itens mais populares ou correlacionados o Geração das recomendações é rápida, dependendo do número de itens que o usuário comprou ou classificou
  • 32. Casos de Estudo: Resumo comparativo: • Filtragem colaborativa tradicional: computação online aumenta de acordo com o número de clientes e itens o Bons resultados para bancos de dados pequenos o Baixa qualidade em grandes bancos de dados, pois é preciso utilizar um subconjunto de dados • Modelos de clusters: Maior parte da computação offline, mas qualidade da recomendação é baixa. Aumentar o número de clusters torna mais caro • Modelos baseados em conteúdo: Falham em fornecer recomendações relevantes e não são bem escaláveis para clientes com muitas compras ou classificações
  • 33. Casos de Estudo: Resumo comparativo: • Filtragem Colaborativa Item-a-Item o Parte computacional mais cara (tabela de similaridade) é feita offline o A parte online possui um algoritmo que é escalável independente do tamanho do catálogo de itens ou número de clientes o Depende somente da quantidade de itens que o usuário comprou ou classificou o Rápido, mesmo para grandes conjuntos de dados o Boa qualidade das recomendações, mesmo com informações limitadas
  • 34. Referências • A Survey of Collaborative Filtering Techniques (Su e Khoshgoftar - 2009) • Using Collaborative Filtering to weave an information Tapestry (Goldberg - 1992) • From Tapestry to SVD: A Survey of the Algorithms That Power Recommender Systems (Huttner - 2009) • Amazon Recommendations: Item-to-Item Collaborative Filtering (Linden, Smith, York - 2003)

Notas do Editor

  1. Explicar a organização de uma base de preferencias Essa base pode ser formada com indicacoes explicitas ou implícitas (explicar isso)
  2. Partida-fria: novo usuário ou item que não tem ou fez nenhuma avaliação;
  3. For example, with tens of millions of customers and millions of distinct catalog items, a CFalgorithm with the complexity of O(n) is already too large.
  4. Algoritmos de recomendação em e-commerces costumam trabalhar em ambientes desafiadores, como: ..... Iremos detalhar 
  5. Algoritmos de recomendação em e-commerces costumam trabalhar em ambientes desafiadores, como: ..... Iremos detalhar 
  6. Algoritmos de recomendação em e-commerces costumam trabalhar em ambientes desafiadores, como: ..... Iremos detalhar 
  7. Algoritmos de recomendação em e-commerces costumam trabalhar em ambientes desafiadores, como: ..... Iremos detalhar 
  8. Algoritmos de recomendação em e-commerces costumam trabalhar em ambientes desafiadores, como: ..... Iremos detalhar 
  9. Algoritmos de recomendação em e-commerces costumam trabalhar em ambientes desafiadores, como: ..... Iremos detalhar 
  10. Algoritmos de recomendação em e-commerces costumam trabalhar em ambientes desafiadores, como: ..... Iremos detalhar 
  11. Algoritmos de recomendação em e-commerces costumam trabalhar em ambientes desafiadores, como: ..... Iremos detalhar 
  12. Algoritmos de recomendação em e-commerces costumam trabalhar em ambientes desafiadores, como: ..... Iremos detalhar 
  13. Algoritmos de recomendação em e-commerces costumam trabalhar em ambientes desafiadores, como: ..... Iremos detalhar 
  14. Algoritmos de recomendação em e-commerces costumam trabalhar em ambientes desafiadores, como: ..... Iremos detalhar 
  15. Tapestry: - Sistema de emails experimental. Um dos primeiros sistemas de recomendação, desenvolvido no centro de pesquisa da Xerox; - Motivação: aumento do uso de correio eletrônico, o que resulta em usuários sendo inundados por um enorme fluxo de documentos recebidos - Figura: (a) correio eletrônico sobrecarregado; (b) uso de listas de distribuição; (c) filtragem convencional; (d) filtragem colaborativa - Listas de distribuição: permite que usuários recebam somente email de listas que interessem a ele. Entretanto, os emails que chegam nessas listas raramente possui conteúdo de interesse do usuário. (Exemplo da grad-l do cin, que recebe emails com propaganda e outros assuntos) - Uma outra solução: O usuário especifica um filtro que examina todas as listas, selecionando emails de interesse não importando em que listas está inscrito - Uma melhor solução: Uma filtragem mais eficiente pode ser feita envolvendo humanos no processo de filtragem
  16. Tapestry: - Combina filtragem baseada em conteúdo com filtragem colaborativa - Anotações: Tapestry registra as ações tomadas pelos usuários para os emails que leram - Essas reações podem significar que um documento foi particularmente interessante (ou particularmente desinteressante). - Essas anotações podem ser acessadas por outros filtros - Uma aplicação das anotações é o suporte para listas moderadas. Em geral, essas listas possuem um único moderador, responsável (nem sempre) por selecionar um subconjunto de mensagens para serem postadas para a lista. Com anotações, uma lista pode ter vários moderadores. Assim, uma lista poderia ser filtrada simplesmente para aqueles emails que um usuário aprovou com uma anotação - Feedback implícito dos usuários (por ex.: algum usuário enviou uma resposta para um email) pode ser também utilizado no processo de filtragem - Você deseja receber emails interessantes de um grupo de notícias mas não sabe como escrever uma espressão de busca que caracteriza esses emails. Entretanto, você conhece certas pessoas que lêem esses emails e respodem aos mais interessantes. Tapestry permite que você filtre os emails que foram respondidos por essas pessoas - Tapestry envolve o relacionamento entre dois ou mais documentos, uma mensagem e uma resposta, por ex., ou um email e suas anotações - Tapestry não funciona simplesmente filtrando um email quando ele chega. É preciso realizar consultas repetidamente em toda base de dados de mensagens recebidas. Pois, depois que um email chega, uma pessoa pode lê-lo e decidir se é interessante. Então essa pessoa reponde ao email (ou faz uma anotação), e você quer que o filtro dispare e envie para você a mensagem original. - Tapestry é, na verdade, mais que um sistema de filtragem de emails; é um repositório de emails enviados no passado. Ele unifica consultas ad hoc nesse repositório com a filtragem dos dados que chegam - Um cenário típico: Um usuário se interessa pela área de "filtragem de email". Para achar mensagens relacionadas a isso, ele cria uma consulta procurando pelo termo "filtragem". Mas essa consulta retorna muitas mensagens. Ele então cria um novo filtro selecionando mensagens que contém ambos os termos "informação" e "filtragem" ou mensagens contendo o termo "filtragem" que tenham recebido ao menos 3 anotações, e descobre que isso funciona melhor. Essa busca é, então, implantada como um filtro de consulta, e, a partir de então, todas as novas mensagens satisfazendo esse filtro serão entregues na caixa de entrada do usuário.
  17. Arquitetura do Tapestry: - Indexer: Lê mensagens de fontes externas, como emails, grupos de notícias, listas de discussão, e as adicionam ao banco de mensagens. O indexador é responsável por analisar mensagens e convertê-las em um conjunto de campos indexados que podem ser referenciados nas consultas - Document store: Banco de documentos. Fornece armazenamento para todas as mensagens por um longo tempo. Também mantém todas as mensagens indexadas, assim as consultas podem ser executadas com eficiência. - Annotation store: Banco de anotações. Fornece armazenamento para anotações associadas com as mensagens. - Filterer: "Filtrador". Executa repetidamente um batch (um "lote") de consultas fornecidas pelo usuário sobre o conjunto de mensagens. Essas mensagens correspondendo uma consulta são colocadas na "caixinha" (Little Box) do dono da consulta. - Little box: "caixinha". Vai enfileirando as mensagens de interesse para um usuário em particular. Cada usuário tem uma caixinha, onde mensagens são depositadas pelo filtrador e removidas pelo leitor de mensagens do usuário. - Remailer: "encaminhador". Envia periodicamente os conteúdos da caixinha de um usuário para o usuário via email. -> Isso é para usuários que querem acessar Tapestry através de seus leitores de email. - Appraiser: "Avaliador". Aplica classificações personalizadas para as mensagens de um usuário. Ele tem a função de priorizar e categorizar mensagens. - Reader/Browser: Fornece a interface com usuário para acessar o serviço do Tapestry. Essa interface inclui ferramentas para adicionar/editar/deletar filtros, recuperar mensagens, exibir mensagens em pastas, fornecer anotações e executar consultas.
  18. - Mas será que Tapestry é realmente eficiente? - Considerando o cenário dado no slide, por ex., será que as anotações de Amy, Annie e Allison são realmente os melhores indicadores do que Catherine acha engraçado? - Para responder essa pergunta, Tapestry teria que ter registrado dados de experiência do usuário para analisar melhor se os filtros realmente funcionaram bem - Gmail possui um sistema semelhante (Priority Inbox). Entretanto, o usuário pode dar feedback sobre o resultado dos filtros do Gmail, marcando uma mensagem como importante ou não.
  19. - Na amazon.com, algoritmos de recomendação são utilizados para personalizar lojas online para cada consumidor. Cada loja muda radicalmente baseada nos interesses do consumidor, oferecendo livros sobre programação para engenheiros de software e brinquedos de bebê para futuras mães. - Algoritmos de recomendação para e-commerce encontram ambientes desafiadores: - Uma grande loja pode ter enormes quantidades de dados, dezenas de milhões de clientes e milhões de itens de catálogo distintos; - As aplicações requerem que os resultados sejam fornecidos em tempo real, e ainda produza boas recomendações; - Novos clientes geralmente tem informações extremamente limitadas, baseadas somente em poucas compras ou classificações de produtos; - Clientes mais velhos podem ter um excesso de informações baseado em milhares de compras e avaliações (e aí podem ter informações que não são mais tão relevantes); - Dados dos clientes são voláteis: Cada interação fornece dados valiosos dos clientes, e o algoritmo deve responder imediatamente às novas informações - Existem 3 abordagens comuns para resolver o problema de recomendação: os algoritmos de filtragem colaborativa tradicionais, modelos baseados em clusters e métodos baseados em conteúdo. A Amazon utiliza um algoritmo de filtragem colaborativa Item-a-Item - Esse algoritmo da Amazon produz recomendações em tempo real, é escalável para enormes conjuntos de dados, e gera boas recomendações
  20. - Comparativo entre o algoritmo da amazon e outros métodos - Na Filtragem Colaborativa Tradicional, um cliente é representado por um vetor de itens N-dimensional, onde N é o número de itens distintos do catálogo - Os componentes do vetor são positivos para itens classificados positivamente e negativos para itens classificados negativamente - Para quase todos os compradores, esse vetor é extremamente disperso - O algoritmo gera recomendações baseadas em alguns clientes que são mais similares ao usuário - Um método comum para medir a similaridade entre dois clientes A e B é dado pelo cosseno do ângulo entre os dois vetores - O algoritmo pode selecionar recomendações de clientes similares utilizando diversos métodos. Uma técnica comum é rankear cada item de acordo com a quantidade de clientes similares que o compraram - Esse método de recomendação é computacionalmente muito caro, pois ele toma O(MN) no pior caso, onde M é o número de clientes e N é o número de produtos no catálogo de itens - Entretanto, analisar todos os clientes leva O(M), mas poucos clientes compraram ou classificaram uma parte significante dos itens, requerendo tempo O(N). Então a performance final do algoritmo é aproximadamente O(M+N) - Mesmo assim, para conjuntos de dados muito grandes, o algoritmo encontra muitos problemas de performance e escalabilidade
  21. - Para encontrar os clientes que são similares ao usuário, os modelos de clusters dividem o banco de clientes em vários segmentos e tratam da tarefa como um problema de classificação - O objetivo do algoritmo é de atribuir o usuário ao segmento contendo os clientes mais similares a ele. Ele então usa as compras e classificações dos clientes no segmento para gerar recomendações - Em geral, os segmentos são criados utilizando um algoritmo de clusterização ou de aprendizado não-supervisionado - Utilizando uma métrica de similaridade, o algoritmo vai agrupar os clientes mais similares para formar clusters ou segmentos - Uma vez gerados os segmentos, o algoritmo computa a similaridade do usuário com os vetores que resultam de cada segmento, e então escolhe o segmento com maior similaridade - Modelos de clusters tem melhor performance do que filtragem colaborativa pois compara o usuário com um número controlado de segmentos, e não com o banco de clientes inteiro - Entretanto, as recomendações geradas não são tão boas, pois considera todos os clientes em um segmento como sendo similares ao usuário
  22. - Os métodos baseados em conteúdo tratam o problema de recomendação como uma busca por itens relacionados - Dados os itens comprados e classificados pelo usuário, o algoritmo constrói uma consulta para buscar outros itens populares pelo mesmo autor, artista, diretor, ou palavras-chave ou assuntos similares - Se um cliente compra a coleção de DVDs do Poderoso Chefão, por ex., o sistema pode recomendar outros filmes sobre crime, outros filmes com Marlon Brando, ou outros filmes dirigidos por Francis Ford Coppola. - Para usuários que fizeram poucas compras e qualificações, o sistema tem boa escalabilidade e performance - Entretanto, para usuários com centenas de compras, é inviável construir uma consulta utilizando todos os itens. O algoritmo precisa, então, usar um subconjunto dos dados, reduzindo a qualidade das recomendações
  23. - O algoritmo de Filtragem Colaborativa Item-a-Item, em vez de comparar os clientes similares, combina cada item comprado ou classificado pelo usuário com itens similares. Então combina esses itens similares em listas de recomendação - Para determinar a combinação de itens mais similar, o algoritmo constrói uma tabela de itens similares, procurando por itens que os clientes tendem a comprar em conjunto
  24. - A similaridade é calculada pela fórmula do cosseno, como explicada anteriormente. Porém, em vez de vetores de clientes, temos vetores de itens M-dimensional correspondendo aos clientes que compraram o item - O cálculo da tabela é muito custoso computacionalmente, mas é feito offline. No pior dos casos, leva O(N²M). Mas na prática fica próximo de O(NM), pois a maioria dos clientes tem pouquíssimas compras