Filtragem Colaborativa

Slides:



Advertisements
Apresentações semelhantes
Agenda Introdução Justificativa Objetivo Detecção de Spam
Advertisements

Estruturas de Dados Marcio Gonçalves.
UML Modelando um sistema.
ARQUITETURA DE COMPUTADORES II
Refatorações Experiência é aquela coisa maravilhosa que permite que você reconheça um erro tão logo o cometa novamente F.P. Jones.
Reconhecimento de Padrões Seleção de Características
Reconhecimento de Padrões Dissimilaridade
David Menotti Estruturas de Dados I DECOM – UFOP
A Review of Algorithms for Audio Fingerprinting
Descoberta de Conhecimento:
Rejane Sobrino Pinheiro Tania Guillén de Torres
Complexidade de Algoritmos
ESTRUTURA DE COMUNICAÇÃO DE DADOS
ESCOLA POLITÉCNICA DE PERNAMBUCO
Anderson Berg Orientador: Prof. Fernando Buarque
INF 1771 – Inteligência Artificial
Aprendizado de Máquina
Autores: Jean Suellen Silva de Almeida Victor Hugo Cunha de Melo
Link Mining Víctor Medeiros.
Aprendizagem de Máquina - Agrupamento
Filtragem Colaborativa e Sistemas de Recomendação
Sistemas de Recomendação
Aprendizado Baseado em Instâncias – Algoritmo k-NN
Sistemas de Recomendação
Sistemas de recomendação
Apresentação Intermédia José Graciano Almeida Ramos Orientador: Professor Dr. Jaime S. Cardoso Responsável INESC Porto : MSc. Ricardo Sousa 1 FEUP-MIEIC.
Introduction to Information Retrieval Introduction to Information Retrieval CS276 Information Retrieval and Web Search Christopher Manning and Prabhakar.
Sistema Recomendador para Comércio Eletrônico
Adicionando Escalabilidade ao Framework de Recomendação IRF
Marcus Vinicius Silva Soares Orientador: Luiz Merschmann Outubro / 2010.
Treinamento do Microsoft® Access® 2010
Sistemas Distribuídos
Adicionando Escalabilidade ao Framework de Recomendação Idealize
Milene Selbach Silveira
Usabilidade. Por que se preocupar com usabilidade? Garantir que as pessoas que usam nosso produto estejam no centro do nosso projeto de design Olhar o.
Sistemas de Recomendação Mineração da Web
 São recomendações que utiliza o perfil do usuário para associar as busca e destacar as informações mais relevantes para o usuário. › Existe dois.
Filtragem Colaborativa Ivan Romero Teixeira Agentes inteligentes
Algoritmos Colaborativos para Sistemas de Recomendação
Experimentação Algorítmica
Estimativas de Custos e Orçamentação
Orientador: Prof. Msc. Silvio César Cazella Um protótipo de aplicação para recomendação de produtos baseado no interesse e comportamento de consumo do.
Sistemas de Recomendação
Introdução a Banco de Dados Aula 04
Sistemas de Recomendação – Filtragem Colaborativa
Seleção de atributos Mariana Pinheiro Bento IA368Q.
Projeto Final MCI 2004 Filtragem de s Agente de Classificação de SPAM.
Introdução à complexidade de algoritmos Luiz Gonzaga da Silveira Junior.
Análise de Agrupamentos Marcílio Souto DIMAp/UFRN.
Recuperação Inteligente de Informação
Classificação/Categorização Christian Diego – cdad Icamaan Viegas – ibvs.
Filtragem de Informação
Sistemas de Recomendação de Músicas
Geometria Computacional Fecho Convexo
Clustering Algorithms for Gene Expression Analysis Pablo Viana Fagner Nascimento.
Prof. Alessandro Gonçalves
Disciplina Engenharia da Qualidade II
Aplicações em Redes Neurais Artificiais De acordo com Turbam, McLean e Wetherbe (2004), “a computação neural também pode ser combinada com outros sistemas.
Classificação de Textos
Engenharia de Software
Recomendação de videos com RSVD Bruno de F. Melo e Souza Gustavo Soares Souza PUC-RJ/INF2915 – Aprendizado de Máquina I Rio de Janeiro, 2 de dezembro de.
Comportamento do Consumidor
Gabriel C.S. EDA0001 – TADS – 2013 UDESC – Joinville
Metodologia da Pesquisa em Ensino de Ciências I
1 Database Systems, 8 th Edition Sistemas de Banco de Dados: Projeto, Implementação e gestão Oitava Edição Capítulo 2 Modelo de Dados.
Métodos de Ordenação Externa
TÉCNICAS DE ESTIMATIVAS
Ordenação Professor Paulo Gomide 27 de outubro de 2015.
Curso: Redes de Computadores Turno: Noturno Disciplina: Introdução a Sistemas Abertos Professor: Jean Galdino Componentes: Andresa Maria Camilla Priscilla.
Transcrição da apresentação:

Filtragem Colaborativa João Carlos Jobert Sá

Introdução; Desafios da Filtragem Colaborativa; Técnicas Model-based;   Introdução; Desafios da Filtragem Colaborativa; Técnicas Model-based; 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: Explicar a organização de uma base de preferencias Essa base pode ser formada com indicacoes explicitas ou implícitas (explicar isso)

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; Partida-fria: novo usuário ou item que não tem ou fez nenhuma avaliação;

Escalabilidade Algoritmos tradicionais de CF podem sofrer problemas sérios de escalabilidade; 10 million users           X 1 million items 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.

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; Algoritmos de recomendação em e-commerces costumam trabalhar em ambientes desafiadores, como: ..... Iremos detalhar 

Shilling Attacks Usuário propositalmente positiva determinados de forma para provocar recomendações artificiais; Memory-based são menos afetados; Algoritmos de recomendação em e-commerces costumam trabalhar em ambientes desafiadores, como: ..... Iremos detalhar 

O prêmio para o desafio do Netflix Algoritmos de recomendação em e-commerces costumam trabalhar em ambientes desafiadores, como: ..... Iremos detalhar 

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; Algoritmos de recomendação em e-commerces costumam trabalhar em ambientes desafiadores, como: ..... Iremos detalhar 

Computando as Similaridades Correlação de Pearson; Similaridade baseada no cálculo do cosseno; Algoritmos de recomendação em e-commerces costumam trabalhar em ambientes desafiadores, como: ..... Iremos detalhar 

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; Algoritmos de recomendação em e-commerces costumam trabalhar em ambientes desafiadores, como: ..... Iremos detalhar 

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; Algoritmos de recomendação em e-commerces costumam trabalhar em ambientes desafiadores, como: ..... Iremos detalhar 

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; Algoritmos de recomendação em e-commerces costumam trabalhar em ambientes desafiadores, como: ..... Iremos detalhar 

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;  Algoritmos de recomendação em e-commerces costumam trabalhar em ambientes desafiadores, como: ..... Iremos detalhar 

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;  Algoritmos de recomendação em e-commerces costumam trabalhar em ambientes desafiadores, como: ..... Iremos detalhar 

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; Algoritmos de recomendação em e-commerces costumam trabalhar em ambientes desafiadores, como: ..... Iremos detalhar 

Casos de Estudo: Tapestry Motivação: Aumento do uso de correio eletrônico 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

Casos de Estudo: Tapestry Filtragem baseada em conteúdo e Filtragem Colaborativa Anotações Listas moderadas emails filtrados segundo anotações criadas pelos "moderadores" Feedback dos usuários Relacionamento entre dois ou mais emails 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.

Casos de Estudo: Tapestry 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. 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 - 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.

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 - 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

Casos de Estudo: Algoritmo da amazon.com X outros métodos Filtragem Colaborativa Tradicional Cliente = vetor de itens N-dimensional Componentes do vetor podem ser positivos ou negativos  Computacionalmente muito caro: O(MN), O(M+N) - 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

Casos de Estudo: Algoritmo da amazon.com X outros métodos Modelos de Clusters Divide o banco de clientes em vários segmentos Problema de classificação Agrupar clientes mais similares para formar clusters Melhor performance do que o método anterior Recomendações menos relevantes Melhorar as recomendações aumentando a granularidade dos segmentos o torna quase tão caro quanto Filtragem Colaborativa - 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

Casos de Estudo: Algoritmo da amazon.com X outros métodos Métodos baseados em conteúdo (ou busca) Tratam o problema de recomendação como uma busca Recomenda itens com atributos similares Boa performance e escalabilidade se o usuário fez poucas compras e classificações Baixa qualidade nas recomendações para usuários que fizeram poucas compras - 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

Casos de Estudo: Algoritmo da amazon.com X outros métodos Filtragem Colaborativa Item-a-Item Combina cada item comprado e classificado pelo usuário com itens similares Tabela de itens comprados em conjunto - 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

Casos de Estudo: Algoritmo da amazon.com X outros métodos Filtragem Colaborativa Item-a-Item Similaridade é calculada pela fórmula do cosseno Item = Vetor de consumidores M-dimensional Cálculo de similaridade e construção da tabela é offline O(N²M) no pior caso. Aproximadamente O(NM) 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 Geração das recomendações é rápida, dependendo do número de itens que o usuário comprou ou classificou - 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

Casos de Estudo: Resumo comparativo:  Filtragem colaborativa tradicional: computação online aumenta de acordo com o número de clientes e itens Bons resultados para bancos de dados pequenos 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 Parte computacional mais cara (tabela de similaridade) é feita offline A parte online possui um algoritmo que é escalável independente do tamanho do catálogo de itens ou número de clientes Depende somente da quantidade de itens que o usuário comprou ou classificou Rápido, mesmo para grandes conjuntos de dados 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?