O documento discute técnicas de filtragem colaborativa, começando com os desafios do método, como dispersão de dados e escalabilidade. Em seguida, aborda duas abordagens: model-based, que gera modelos dos dados; e memory-based, que usa os dados brutos. Estuda casos como o Tapestry e compara algoritmos, concluindo que o item-to-item collaboration filtering da Amazon tem melhor desempenho em grandes conjuntos de dados.
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;
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;
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;
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
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)
Explicar a organização de uma base de preferencias
Essa base pode ser formada com indicacoes explicitas ou implícitas (explicar isso)
Partida-fria: novo usuário ou item que não tem ou fez nenhuma avaliação;
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.
Algoritmos de recomendação em e-commerces costumam trabalhar em ambientes desafiadores, como: .....
Iremos detalhar
Algoritmos de recomendação em e-commerces costumam trabalhar em ambientes desafiadores, como: .....
Iremos detalhar
Algoritmos de recomendação em e-commerces costumam trabalhar em ambientes desafiadores, como: .....
Iremos detalhar
Algoritmos de recomendação em e-commerces costumam trabalhar em ambientes desafiadores, como: .....
Iremos detalhar
Algoritmos de recomendação em e-commerces costumam trabalhar em ambientes desafiadores, como: .....
Iremos detalhar
Algoritmos de recomendação em e-commerces costumam trabalhar em ambientes desafiadores, como: .....
Iremos detalhar
Algoritmos de recomendação em e-commerces costumam trabalhar em ambientes desafiadores, como: .....
Iremos detalhar
Algoritmos de recomendação em e-commerces costumam trabalhar em ambientes desafiadores, como: .....
Iremos detalhar
Algoritmos de recomendação em e-commerces costumam trabalhar em ambientes desafiadores, como: .....
Iremos detalhar
Algoritmos de recomendação em e-commerces costumam trabalhar em ambientes desafiadores, como: .....
Iremos detalhar
Algoritmos de recomendação em e-commerces costumam trabalhar em ambientes desafiadores, como: .....
Iremos detalhar
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
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.
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.
- 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.
- 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
- 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
- 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
- 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
- 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
- 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