Filtragem colaborativa - Collaborative filtering
| Sistemas de recomendação |
|---|
| Conceitos |
| Métodos e desafios |
| Implementações |
| Pesquisar |
Filtragem colaborativa ( CF ) é uma técnica usada por sistemas de recomendação . A filtragem colaborativa tem dois sentidos, um estreito e outro mais geral.
No sentido mais novo e restrito, a filtragem colaborativa é um método de fazer previsões automáticas (filtragem) sobre os interesses de um usuário , coletando preferências ou informações de gosto de muitos usuários (colaboração). A suposição subjacente da abordagem de filtragem colaborativa é que se uma pessoa A tem a mesma opinião que a pessoa B sobre um problema, é mais provável que A tenha a opinião de B sobre um assunto diferente do que a de uma pessoa escolhida aleatoriamente. Por exemplo, um sistema de recomendação de filtragem colaborativa para preferências em programação de televisão poderia fazer previsões sobre qual programa de televisão um usuário gostaria, dada uma lista parcial dos gostos desse usuário (gostos ou desgostos). Observe que essas previsões são específicas para o usuário, mas usam informações coletadas de muitos usuários. Isso difere da abordagem mais simples de dar uma pontuação média (não específica) para cada item de interesse, por exemplo, com base em seu número de votos .
No sentido mais geral, a filtragem colaborativa é o processo de filtragem de informações ou padrões usando técnicas que envolvem a colaboração entre vários agentes, pontos de vista, fontes de dados, etc. Os aplicativos de filtragem colaborativa geralmente envolvem conjuntos de dados muito grandes. Métodos de filtragem colaborativa têm sido aplicados a muitos tipos diferentes de dados, incluindo: dados de detecção e monitoramento, como na exploração mineral, detecção ambiental em grandes áreas ou sensores múltiplos; dados financeiros, como instituições de serviços financeiros que integram muitas fontes financeiras; ou em comércio eletrônico e aplicativos da web onde o foco está nos dados do usuário, etc. O restante desta discussão se concentra na filtragem colaborativa para os dados do usuário, embora alguns dos métodos e abordagens possam se aplicar a outros aplicativos principais também.
Visão geral
O crescimento da Internet tornou muito mais difícil extrair efetivamente informações úteis de todas as informações online disponíveis . A enorme quantidade de dados necessita de mecanismos para uma filtragem eficiente de informações . A filtragem colaborativa é uma das técnicas usadas para lidar com esse problema.
A motivação para a filtragem colaborativa vem da ideia de que as pessoas geralmente obtêm as melhores recomendações de alguém com gostos semelhantes aos deles. A filtragem colaborativa abrange técnicas para combinar pessoas com interesses semelhantes e fazer recomendações com base nisso.
Os algoritmos de filtragem colaborativa geralmente requerem (1) a participação ativa dos usuários, (2) uma maneira fácil de representar os interesses dos usuários e (3) algoritmos que são capazes de corresponder a pessoas com interesses semelhantes.
Normalmente, o fluxo de trabalho de um sistema de filtragem colaborativa é:
- Um usuário expressa suas preferências classificando itens (por exemplo, livros, filmes ou gravações de música) do sistema. Essas classificações podem ser vistas como uma representação aproximada do interesse do usuário no domínio correspondente.
- O sistema compara as classificações deste usuário com as de outros usuários e encontra as pessoas com gostos mais "semelhantes".
- Com usuários semelhantes, o sistema recomenda itens que os usuários semelhantes avaliaram bem, mas ainda não foram avaliados por este usuário (presumivelmente, a ausência de classificação é frequentemente considerada como a falta de familiaridade de um item)
Um problema chave da filtragem colaborativa é como combinar e ponderar as preferências dos vizinhos do usuário. Às vezes, os usuários podem avaliar imediatamente os itens recomendados. Como resultado, o sistema ganha uma representação cada vez mais precisa das preferências do usuário ao longo do tempo.
Metodologia
Os sistemas de filtragem colaborativa têm muitas formas, mas muitos sistemas comuns podem ser reduzidos a duas etapas:
- Procure usuários que compartilham os mesmos padrões de classificação com o usuário ativo (o usuário para o qual a previsão se destina).
- Use as classificações dos usuários com ideias semelhantes encontradas na etapa 1 para calcular uma previsão para o usuário ativo
Isso se enquadra na categoria de filtragem colaborativa com base no usuário. Uma aplicação específica disso é o algoritmo do Vizinho Mais Próximo baseado no usuário .
Alternativamente, a filtragem colaborativa baseada em item (usuários que compraram x também compraram y), prossegue de maneira centrada no item:
- Construir uma matriz item-item determinando as relações entre pares de itens
- Inferir os gostos do usuário atual examinando a matriz e combinando os dados do usuário
Veja, por exemplo, a família de filtragem colaborativa baseada em item Slope One .
Outra forma de filtragem colaborativa pode ser baseada em observações implícitas do comportamento normal do usuário (em oposição ao comportamento artificial imposto por uma tarefa de classificação). Esses sistemas observam o que um usuário fez junto com o que todos os usuários fizeram (que música eles ouviram, quais itens compraram) e usam esses dados para prever o comportamento do usuário no futuro, ou para prever como um usuário pode gostar para se comportar dada a chance. Essas previsões devem ser filtradas por meio da lógica de negócios para determinar como podem afetar as ações de um sistema de negócios. Por exemplo, não é útil oferecer a alguém a venda de um determinado álbum de música se essa pessoa já tiver demonstrado que possui essa música.
Contar com um sistema de pontuação ou classificação que é medido por todos os usuários ignora demandas específicas de um usuário e é particularmente pobre em tarefas onde há grande variação de interesse (como na recomendação de música). No entanto, existem outros métodos para combater a explosão de informações, como pesquisa na web e agrupamento de dados .
Tipos
Baseado em memória
A abordagem baseada em memória usa dados de classificação do usuário para calcular a similaridade entre usuários ou itens. Exemplos típicos dessa abordagem são o CF com base na vizinhança e as recomendações N principais baseadas em itens / usuários. Por exemplo, em abordagens baseadas no usuário, o valor das classificações que o usuário u dá ao item i é calculado como uma agregação da classificação de alguns usuários semelhantes do item:
onde U denota o conjunto dos principais N usuários que são mais semelhantes ao usuário u que classificou o item i . Alguns exemplos da função de agregação incluem:
onde k é um fator de normalização definido como , e
onde é a avaliação média do usuário u para todos os itens avaliados por u .
O algoritmo baseado em vizinhança calcula a similaridade entre dois usuários ou itens e produz uma previsão para o usuário, obtendo a média ponderada de todas as classificações. O cálculo de similaridade entre itens ou usuários é uma parte importante desta abordagem. Múltiplas medidas, como correlação de Pearson e similaridade baseada em vetor cosseno, são usadas para isso.
A similaridade de correlação de Pearson de dois usuários x , y é definida como
onde I xy é o conjunto de itens avaliados pelo usuário xe pelo usuário y .
A abordagem baseada na co-seno define o co-seno-similaridade entre dois utilizadores x e y como:
O algoritmo de recomendação top-N baseado em usuário usa um modelo vetorial baseado em similaridade para identificar os k usuários mais semelhantes a um usuário ativo. Depois que k usuários mais semelhantes são encontrados, suas matrizes de itens de usuário correspondentes são agregadas para identificar o conjunto de itens a serem recomendados. Um método popular para localizar usuários semelhantes é o hashing sensível à localidade , que implementa o mecanismo de vizinho mais próximo em tempo linear.
As vantagens dessa abordagem incluem: a explicabilidade dos resultados, que é um aspecto importante dos sistemas de recomendação; criação e uso fáceis; facilitação de novos dados; independência de conteúdo dos itens que estão sendo recomendados; bom dimensionamento com itens co-avaliados.
Existem também várias desvantagens com essa abordagem. Seu desempenho diminui quando os dados ficam esparsos , o que ocorre frequentemente com itens relacionados à web. Isso dificulta a escalabilidade dessa abordagem e cria problemas com grandes conjuntos de dados. Embora possa lidar com novos usuários com eficiência porque depende de uma estrutura de dados , adicionar novos itens se torna mais complicado, pois essa representação geralmente depende de um espaço vetorial específico . Adicionar novos itens requer a inclusão do novo item e a reinserção de todos os elementos na estrutura.
Baseado em modelo
Nessa abordagem, os modelos são desenvolvidos usando diferentes algoritmos de mineração de dados e aprendizado de máquina para prever a classificação dos usuários de itens não classificados. Existem muitos algoritmos de CF baseados em modelo. Redes bayesianas , modelos de clustering , modelos semânticos latentes , como a decomposição de singular valor , análise semântica latente probabilística , fator multiplicativo múltipla, alocação de Dirichlet latente e processo de decisão de Markov modelos baseados.
Por meio dessa abordagem, os métodos de redução de dimensionalidade estão sendo usados principalmente como técnica complementar para melhorar a robustez e a precisão da abordagem baseada em memória. Nesse sentido, métodos como decomposição de valor singular , análise de componentes principais , conhecidos como modelos de fator latente, comprimem a matriz do usuário-item em uma representação de baixa dimensão em termos de fatores latentes. Uma vantagem de usar essa abordagem é que, em vez de ter uma matriz dimensional elevada contendo um número abundante de valores ausentes, estaremos lidando com uma matriz muito menor no espaço dimensional inferior. Uma apresentação reduzida pode ser utilizada para algoritmos de vizinhança baseados no usuário ou baseados em item que são apresentados na seção anterior. Existem várias vantagens com este paradigma. Ele lida com a dispersão da matriz original melhor do que as baseadas em memória. Além disso, comparar a similaridade na matriz resultante é muito mais escalonável, especialmente ao lidar com grandes conjuntos de dados esparsos.
Híbrido
Vários aplicativos combinam os algoritmos de CF baseados em memória e os baseados em modelo. Isso supera as limitações das abordagens nativas de CF e melhora o desempenho de previsão. É importante ressaltar que eles superam os problemas de CF, como dispersão e perda de informações. No entanto, eles têm maior complexidade e são caros de implementar. Normalmente, a maioria dos sistemas de recomendação comerciais são híbridos, por exemplo, o sistema de recomendação de notícias do Google.
Aprendizado Profundo
Nos últimos anos, várias técnicas neurais e de aprendizado profundo foram propostas. Alguns generalizam algoritmos de fatoração de Matrix tradicionais por meio de uma arquitetura neural não linear ou alavancam novos tipos de modelo como Autoencoders Variacionais . Embora o aprendizado profundo tenha sido aplicado a muitos cenários diferentes: ciente do contexto, ciente da sequência, marcação social, etc., sua real eficácia quando usada em um cenário de recomendação colaborativa simples foi questionada. Uma análise sistemática de publicações que aplicam aprendizagem profunda ou métodos neurais ao problema de recomendação top-k, publicadas nas principais conferências (SIGIR, KDD, WWW, RecSys), mostrou que, em média, menos de 40% dos artigos são reproduzíveis, com tão pouco como 14% em algumas conferências. No geral, o estudo identifica 18 artigos, apenas 7 deles podem ser reproduzidos e 6 deles podem ser superados por linhas de base bem mais antigas e mais simples, devidamente ajustadas. O artigo também destaca uma série de problemas potenciais nas bolsas de pesquisa de hoje e apela para a melhoria das práticas científicas nessa área. Problemas semelhantes foram identificados também em sistemas de recomendação com reconhecimento de sequência.
Filtragem colaborativa com base no contexto
Muitos sistemas de recomendação simplesmente ignoram outras informações contextuais existentes ao lado da classificação do usuário ao fornecer recomendação de item. No entanto, pela disponibilidade generalizada de informações contextuais, como horário, local, informações sociais e tipo de dispositivo que o usuário está usando, está se tornando mais importante do que nunca para um sistema de recomendação bem-sucedido fornecer uma recomendação sensível ao contexto. De acordo com Charu Aggrawal, "os sistemas de recomendação sensíveis ao contexto adaptam suas recomendações a informações adicionais que definem a situação específica sob a qual as recomendações são feitas. Essas informações adicionais são chamadas de contexto."
Levando as informações contextuais em consideração, teremos uma dimensão adicional para a matriz de classificação de item de usuário existente. Por exemplo, suponha um sistema de recomendação de música que forneça recomendações diferentes de acordo com a hora do dia. Nesse caso, é possível que um usuário tenha diferentes preferências por uma música em diferentes horários do dia. Assim, em vez de usar a matriz de itens do usuário, podemos usar tensor de ordem 3 (ou superior para considerar outros contextos) para representar as preferências dos usuários sensíveis ao contexto.
A fim de tirar proveito da filtragem colaborativa e, particularmente, dos métodos baseados na vizinhança, as abordagens podem ser estendidas de uma matriz de classificação bidimensional para um tensor de ordem superior. Para esse propósito, a abordagem é encontrar os usuários mais semelhantes / com pensamentos semelhantes aos de um usuário-alvo; pode-se extrair e calcular a similaridade de fatias (por exemplo, matriz item-tempo) correspondente a cada usuário. Ao contrário do caso insensível ao contexto para o qual a similaridade de dois vetores de classificação é calculada, nas abordagens cientes do contexto , a similaridade das matrizes de classificação correspondentes a cada usuário é calculada usando coeficientes de Pearson . Depois que os usuários com interesses semelhantes são encontrados, suas classificações correspondentes são agregadas para identificar o conjunto de itens a serem recomendados ao usuário-alvo.
A desvantagem mais importante de levar o contexto ao modelo de recomendação é ser capaz de lidar com um conjunto de dados maior que contém muito mais valores ausentes em comparação com a matriz de classificação de itens do usuário. Portanto, semelhante aos métodos de fatoração de matriz , as técnicas de fatoração de tensor podem ser usadas para reduzir a dimensionalidade dos dados originais antes de usar qualquer método baseado em vizinhança.
Aplicativo na web social
Ao contrário do modelo tradicional de mídia convencional, no qual há poucos editores que definem diretrizes, a mídia social filtrada de forma colaborativa pode ter um número muito grande de editores, e o conteúdo melhora à medida que o número de participantes aumenta. Serviços como Reddit , YouTube e Last.fm são exemplos típicos de mídia baseada em filtragem colaborativa.
Um cenário de aplicativo de filtragem colaborativa é recomendar informações interessantes ou populares conforme julgado pela comunidade. Como um exemplo típico, as histórias aparecem na página inicial do Reddit à medida que são "votadas" (avaliadas positivamente) pela comunidade. À medida que a comunidade se torna maior e mais diversa, as histórias promovidas podem refletir melhor o interesse médio dos membros da comunidade.
A Wikipedia é outra aplicação de filtragem colaborativa. Os voluntários contribuem para a enciclopédia filtrando fatos de falsidades.
Outro aspecto dos sistemas de filtragem colaborativa é a capacidade de gerar recomendações mais personalizadas por meio da análise de informações da atividade anterior de um usuário específico ou do histórico de outros usuários considerados de gosto semelhante a um determinado usuário. Esses recursos são usados como perfil de usuário e ajudam o site a recomendar conteúdo usuário por usuário. Quanto mais um determinado usuário faz uso do sistema, melhores se tornam as recomendações, pois o sistema ganha dados para melhorar seu modelo daquele usuário.
Problemas
Um sistema de filtragem colaborativa não necessariamente consegue combinar automaticamente o conteúdo com as preferências de alguém. A menos que a plataforma alcance uma diversidade excepcionalmente boa e independência de opiniões, um ponto de vista sempre dominará outro em uma comunidade específica. Como no cenário de recomendação personalizada, a introdução de novos usuários ou novos itens pode causar o problema de inicialização a frio , pois haverá dados insuficientes nessas novas entradas para que a filtragem colaborativa funcione com precisão. Para fazer recomendações apropriadas para um novo usuário, o sistema deve primeiro aprender as preferências do usuário, analisando votações anteriores ou atividades de classificação. O sistema de filtragem colaborativa requer que um número substancial de usuários avalie um novo item antes que ele seja recomendado.
Desafios
Dados esparsos
Na prática, muitos sistemas de recomendação comercial são baseados em grandes conjuntos de dados. Como resultado, a matriz de usuário-item usada para filtragem colaborativa pode ser extremamente grande e esparsa, o que traz desafios no desempenho da recomendação.
Um problema típico causado pela dispersão de dados é o problema de inicialização a frio . Como os métodos de filtragem colaborativa recomendam itens com base nas preferências anteriores dos usuários, os novos usuários precisarão classificar um número suficiente de itens para permitir que o sistema capture suas preferências com precisão e, assim, forneça recomendações confiáveis.
Da mesma forma, novos itens também apresentam o mesmo problema. Quando novos itens são adicionados ao sistema, eles precisam ser avaliados por um número significativo de usuários antes que possam ser recomendados para usuários que têm gostos semelhantes aos que os classificaram. O problema do novo item não afeta as recomendações baseadas em conteúdo , porque a recomendação de um item é baseada em seu conjunto discreto de qualidades descritivas, e não em suas classificações.
Escalabilidade
Conforme o número de usuários e itens aumenta, os algoritmos tradicionais de CF sofrerão sérios problemas de escalabilidade. Por exemplo, com dezenas de milhões de clientes e milhões de itens , um algoritmo de CF com a complexidade de já é muito grande. Da mesma forma, muitos sistemas precisam reagir imediatamente aos requisitos online e fazer recomendações para todos os usuários, independentemente de seus milhões de usuários, com a maioria dos cálculos acontecendo em máquinas com memória muito grande.
Sinônimos
Sinônimos referem-se à tendência de vários itens iguais ou muito semelhantes terem nomes ou entradas diferentes. A maioria dos sistemas de recomendação é incapaz de descobrir essa associação latente e, portanto, trata esses produtos de maneira diferente.
Por exemplo, os itens aparentemente diferentes "filme infantil" e "filme infantil" referem-se, na verdade, ao mesmo item. Na verdade, o grau de variabilidade no uso de termos descritivos é maior do que comumente se suspeita. A prevalência de sinônimos diminui o desempenho de recomendação dos sistemas de FC. A modelagem de tópicos (como a técnica de alocação de Dirichlet latente ) pode resolver isso agrupando palavras diferentes pertencentes ao mesmo tópico.
Ovelha cinza
Ovelha cinza refere-se aos usuários cujas opiniões não concordam ou discordam consistentemente de qualquer grupo de pessoas e, portanto, não se beneficiam da filtragem colaborativa. A ovelha negra é um grupo cujos gostos idiossincráticos tornam as recomendações quase impossíveis. Embora seja uma falha do sistema de recomendação, os recomendadores não eletrônicos também têm grandes problemas nesses casos, portanto, ter ovelhas negras é uma falha aceitável.
Ataques de xelim
Em um sistema de recomendação onde todos podem dar as classificações, as pessoas podem dar muitas classificações positivas para seus próprios itens e classificações negativas para seus concorrentes. Freqüentemente, é necessário que os sistemas de filtragem colaborativa introduzam precauções para desencorajar tais manipulações.
Diversidade e a cauda longa
Espera-se que os filtros colaborativos aumentem a diversidade porque nos ajudam a descobrir novos produtos. Alguns algoritmos, entretanto, podem fazer o oposto involuntariamente. Como os filtros colaborativos recomendam produtos com base em vendas ou classificações anteriores, eles geralmente não podem recomendar produtos com dados históricos limitados. Isso pode criar um efeito de enriquecimento para produtos populares, semelhante a um feedback positivo . Essa tendência à popularidade pode impedir o que de outra forma seriam melhores correspondências entre produtos de consumo. Um estudo da Wharton detalha esse fenômeno junto com várias ideias que podem promover a diversidade e a " cauda longa ". Vários algoritmos de filtragem colaborativa foram desenvolvidos para promover a diversidade e a " cauda longa ", recomendando itens novos, inesperados e fortuitos.
Inovações
- Novos algoritmos foram desenvolvidos para CF como resultado do prêmio Netflix .
- Filtragem Colaborativa entre Sistemas, onde perfis de usuários em vários sistemas de recomendação são combinados de maneira multitarefa; desta forma, o compartilhamento de padrões de preferência é alcançado entre os modelos.
- Filtragem colaborativa robusta , onde a recomendação é estável em relação aos esforços de manipulação. Esta área de pesquisa ainda está ativa e não totalmente resolvida.
Informação auxiliar
A matriz de item de usuário é uma base básica das técnicas tradicionais de filtragem colaborativa e sofre de problemas de dispersão de dados (ou seja, inicialização a frio ). Como consequência, exceto para a matriz de item de usuário, os pesquisadores estão tentando reunir mais informações auxiliares para ajudar a impulsionar o desempenho de recomendação e desenvolver sistemas de recomendação personalizados. Geralmente, existem duas informações auxiliares populares: informações de atributo e informações de interação. As informações de atributo descrevem as propriedades de um usuário ou item. Por exemplo, o atributo do usuário pode incluir perfil geral (por exemplo, sexo e idade) e contatos sociais (por exemplo, seguidores ou amigos em redes sociais ); Atributo de item significa propriedades como categoria, marca ou conteúdo. Além disso, as informações de interação referem-se aos dados implícitos que mostram como os usuários interagem com o item. As informações de interação amplamente utilizadas contêm tags, comentários ou análises e histórico de navegação, etc. As informações auxiliares desempenham um papel significativo em uma variedade de aspectos. Links sociais explícitos, como um representante confiável de confiança ou amizade, são sempre empregados no cálculo de similaridade para encontrar pessoas semelhantes que compartilham interesses com o usuário-alvo. As informações associadas à interação - tags - são tomadas como uma terceira dimensão (além do usuário e do item) na filtragem colaborativa avançada para construir uma estrutura tensorial tridimensional para exploração de recomendação.
Veja também
- Linguagem de marcação de perfil de atenção (APML)
- Arranque a frio
- Modelo colaborativo
- Motor de pesquisa colaborativo
- Inteligência coletiva
- O envolvimento do cliente
- Democracia Delegativa , o mesmo princípio aplicado à votação em vez de filtrar
- Bookmarking empresarial
- Firefly (website) , um website extinto baseado em filtragem colaborativa
- Bolha de filtro
- Ranking da página
- Elicitação de preferência
- Filtragem psicográfica
- Sistema de recomendação
- Relevância (recuperação de informações)
- Sistema de reputação
- Filtragem colaborativa robusta
- Pesquisa por similaridade
- Declive Um
- Translucidez social
Referências
links externos
- Além dos sistemas de recomendação: ajudando as pessoas a se ajudarem , página 12, 2001
- Sistemas de recomendação. Prem Melville e Vikas Sindhwani. Na Encyclopedia of Machine Learning, Claude Sammut e Geoffrey Webb (Eds), Springer, 2010.
- Sistemas de recomendação em contextos industriais - tese de doutorado (2012), incluindo uma visão abrangente de muitos sistemas de recomendação colaborativos
- Rumo à próxima geração de sistemas de recomendação: um levantamento do estado da arte e possíveis extensões . Adomavicius, G. e Tuzhilin, A. IEEE Transactions on Knowledge and Data Engineering 06.2005
- Avaliação de sistemas de recomendação de filtragem colaborativa ( DOI : 10.1145 / 963770.963772 )
- Artigos de pesquisa do GroupLens .
- Filtragem colaborativa impulsionada por conteúdo para recomendações aprimoradas. Prem Melville, Raymond J. Mooney e Ramadass Nagarajan. Proceedings of the Eighth National Conference on Artificial Intelligence (AAAI-2002), pp. 187–192, Edmonton, Canadá, julho de 2002.
- Uma coleção de projetos de "filtragem de informações" passados e presentes (incluindo filtragem colaborativa) no MIT Media Lab
- Eigentaste: A Constant Time Collaborative Filtering Algorithm. Ken Goldberg, Theresa Roeder, Dhruv Gupta e Chris Perkins. Recuperação de informações, 4 (2), 133-151. Julho de 2001.
- Uma Pesquisa de Técnicas de Filtragem Colaborativa Su, Xiaoyuan and Khoshgortaar, Taghi. M
- Personalização do Google Notícias: filtragem colaborativa on-line escalonável Abhinandan Das, Mayur Datar, Ashutosh Garg e Shyam Rajaram. Conferência Internacional da World Wide Web, Anais da 16ª conferência internacional da World Wide Web
- Factor in the Neighbours: Scalable and Accurate Collaborative Filtering Yehuda Koren, Transactions on Knowledge Discovery from Data (TKDD) (2009)
- Previsão de classificação usando filtragem colaborativa
- Sistemas de Recomendação
- Berkeley Collaborative Filtering