Buscar

Sistemas Colaborativos de Filtragem e Recomendação - tradução

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Sistemas Colaborativos de Filtragem e Recomendação
Sergio Manuel Galán Nieto
Inteligência em redes de comunicação
5ª Engenharia de Telecomunicações
Universidade Calos III de Madri
sergio.galan@gmail.com
RESUMO
Os sistemas de recomendação baseados em algoritmos de filtragem colaborativa usam classificações de usuários em certos elementos do conjunto total para prever avaliações no restante dos elementos e recomendar o de maior valor previsto. Este documento oferece uma descrição dos sistemas de filtragem colaborativa. Busca cobrir de forma abrangente os múltiplos aspectos que a compõem: Os vários aproximações estatísticas: Baseado em modelo, baseado em dados. Também alguns métodos de avaliação e os problemas em relação à implementação. Também apresenta informações sobre como usar a biblioteca de filtros "Taste" contendo implementações de vários algoritmos de filtragem colaborativa.
1. INTRODUÇÃO
Antes da chegada da Internet, um consumidor de qualquer tipo de produto tinha acesso limitado a informações relacionados ao produto em si e a outras possíveis opções A publicidade tornou-se praticamente a única maneira de apresentar um produto e a problema do usuário era como obter informações sincero. No caso de produtos culturais, como música, revistas de rádio ou especializadas atuavam como únicas difusores do novo. Agora a situação foi completamente revertida.
Da escassez de informações, ela foi para o saturação. Para ter algumas prateleiras com CDs e Vídeos no shopping mais próximo foram transmitidos para ter acesso a uma quantidade inesgotável de criações culturais em lojas online ou em redes P2P. Agora o problema tornou-se como separar o que queremos do que não queremos nós queremos encontrar.
Uma abordagem para tentar oferecer a cada pessoa o que você está procurando é através da análise de conteúdo. Por isso é feita uma representação do conteúdo de cada elemento do conjunto e comparado com uma representação do conteúdo que o usuário está procurando. Essa filtragem com base em o conteúdo é eficaz principalmente para encontrar documentos textual com base em critérios de pesquisa. No entanto, é mais difícil parametrizar automaticamente conteúdo multimídia. 
É aqui que eles estão começando a desempenhar um papel importante sistemas de recomendação. A ideia subjacente por trás deles é encontrar usuários com gostos semelhantes aos de outro determinado e recomendar a essas coisas que são desconhecidas mas eles gostam daqueles com quem você tem semelhança. Em outras palavras, um sistema de recomendação é um amigo virtual cujos gostos são uma mistura dos gostos de membros de a comunidade de usuários com gostos semelhantes aos mesmo. Em vez de tentar aplicar inteligência artificial Para analisar o conteúdo e relacioná-lo, deixe o botão comunidade a tarefa de avaliar cada item e usado algoritmos de mineração de dados para encontrar utilidade para relações. Assim, é construída uma inteligência coletiva que permite ao usuário receber informações personalizadas de acordo com seus gostos, às vezes até coisas que eu não esperava encontrar mas eles são úteis para ele.
Neste trabalho, tentamos fornecer uma vista panorâmica geral sobre os sistemas de recomendação, bem como os resultados obtido trabalhando com alguns dos algoritmos Estatísticas estudadas.
2. HISTÓRIA E SITUAÇÃO ATUAL
No começo, os sistemas de recomendação eram conhecidos apenas filtros colaborativos e os primeiros trabalhos Eles remontam ao início dos anos 90. O termo era cunhado em 1992 para um sistema de filtragem de e-mail Exclusivo não automatizado. Em 1994, o primeiro Workshop em Berkeley, onde o utilitário foi visto em vários Áreas dos primeiros algoritmos simples deste tipo. Além disso Algumas questões importantes foram identificadas para o desenvolvimento desses algoritmos: escalabilidade, viabilidade econômica Ica, partituras implícitas e explícitas ... Uma das grupos pioneiros de pesquisa em desenvolvimento de filtros Colaborativo foi o projeto GroupLens da Universidade de Minnesota ainda permanece muito ativo e forneceu grande parte da base algorítmica para muitos sistemas de recomendação. Eles foram os primeiros a introduzir o filtro colaborativo automático usando um algoritmo de procurar vizinhos para fornecer previsões em Grupos de notícias da USENET. Deste grupo de pesquisa A iniciativa de negócios NetPerceptions também começou, esclarecendo muitas das dúvidas sobre viabilidade econômico desses projetos. Atualmente é um campo que é muito ativo e gera um grande número de publicações e conferências todos os anos. E é que a filtragem Colaborativo é um aspecto de grande importância dentro redes sociais e a pequena revolução que trouxe chamado "Web 2.0". Alguns exemplos atuais de uso são:
· Recomendações em lojas online. A partir de um produto são recomendados outros produtos que tenham interesse para os usuários que compraram este produto. O site pioneiro neste tipo de recomendações foi Amazon.com
· Filtragem de notícias. É criado um perfil que armazena as notícias que um usuário consulta.
· Recomendações para música, livros, filmes. No dezenas de sites surgiram nos últimos anos tipo entre o qual “last.fm” e “MyStrands” se destacam, o último de origem espanhola. Nestes serviços, cada toda vez que um usuário ouve uma música, ela é enviada suas informações para o banco de dados do sistema, que usa-os para gerar nossas recomendações, mas os recursos que eles oferecem estão em constante crescimento. Por exemplo, last.fm oferece rádios personalizadas para cada usuário com base nas recomendações que recebem e o MyStrands organiza festas nas quais a música é escolhido automaticamente de forma colaborativa com base em dos gostos dos participantes. O modelo de negócios dessas empresas, além da publicidade, o acordos com lojas on-line para vincular diretamente recomendações com o seu serviço de vendas. Também aquele a fornecer às empresas-discográficas em este caso - análise de tendências musicais, de novas artistas, etc ...
· Pesquise pessoas com ideias semelhantes nas comunidades. Em sites como meneame.net levam em conta as notícias de que cada usuário votou para gerar uma lista de vizinhos com interesses semelhantes.
3. ABORDAGEM TEÓRICA AO PROBLEMA DA RECOMENDAÇÃO
O objetivo é sugerir novos elementos para um usuário baseando-se nas eleições anteriores e nas eleições populares com um histórico semelhante de classificações. Dois existem maneiras de coletar essas classificações. Um é explicitamente, em outras palavras, o usuário atribui uma pontuação a cada elemento que seria um valor numérico discreto entre um máximo e um mínimo. A segunda maneira é coletar as classificações implicitamente, extrair as informações relevantes do ações do usuário. Por exemplo, o tempo que você passa lendo uma determinada página da web, os links a seguir, o número de vezes que uma música é ouvida, isso seria uma abordagem mais clássica à mineração de dados. Uma vez que você tem informações suficientes do usuário, você vai para a fase de previsão e recomendação. Previsão refere-se à estimativa de qual avaliação o usuário daria a cada elemento enquanto recomendação se refere à extração dos elementos N mais recomendável (recomendação Top-N)
Algoritmos de filtragem colaborativa baseados em memória, ou algoritmos de vizinho mais próximo (Nearest Neighbour).
Eles usam todo o banco de dados de elementos e usuários para gerar previsões. Primeiro eles usam técnicas Estatísticas para encontrar vizinhos, ou seja, usuários com um histórico de classificação de itens semelhante a usuário atual. Uma vez que uma lista de vizinhos combinam suas preferências para gerar uma lista com os N elementos mais recomendados para o usuário atual. Entre suas desvantagens está a necessidade de ter um número mínimo de usuários com um número mínimo de previsões cada, incluindo o usuário para que se destina a fazer a recomendação.
Algoritmos de filtro colaborativo baseados no modelo.
Eles primeiro desenvolvem um modelo de classificação do usuário. Trate o problema como um problema de previsão estatísticae calcule o valor esperado para cada item com base em de classificações anteriores. Para isso, algoritmos diferentes são usados aprendendo agrupamento ou redes neurais como Redes de funções baseadas radialmente (RBFN). Por exemplo o uso de cluster é sobre a classificação de um usuário particularmente dentro de uma classe de usuários e de aí estimamos as probabilidades condicionais dessa classe em direção aos elementos a serem avaliados.
Em geral, eles respondem mais rapidamente às perguntas do que com base na memória, mas precisa de um processo aprendizagem intensiva.
3.1 Outros aspectos
O consumo de memória e CPU de qualquer sistema a filtragem e as informações são muito altas quando se lida com muitos dados. Otimizando algoritmos para melhorar seu desempenho é um dos principais campos de pesquisa Dentro da filtragem colaborativa. Algumas funcionalidades desejável nesses sistemas envolve uma modificação constante dos dados, o que torna os algoritmos necessários com baixo custo de atualização. Por exemplo, o Novos elementos precisam aparecer no sistema o mais rápido possível. Melhoria contínua do perfil do do utilizador. Em outras palavras, o usuário percebe que o "esforço" avaliar novos elementos é compensado com algumas melhorias nas recomendações obtidas.
Além dos aspectos técnicos, a implementação de sistemas recomendação pode causar problemas sociais como a privacidade dos usuários. Já é um assunto delicado que para ter uma boa operação é necessário saber a informação máxima possível do usuário. Uma primeira solução É manter apenas as informações relacionadas a votar e conhecer o usuário apenas com pseudônimo, mas isso colide com o modelo de negócios baseado em publicidade que é amplamente usado hoje.
Por fim, mencione também que existem investigações visando entender o relacionamento entre usuários e sistemas de recomendação. Em [7] é estudado como eles influenciam recomendações ao usuário ao fornecer sua própria opinião. Psicologicamente, é conhecido há muito tempo que a opinião dos outros modifica sua própria opinião.
Agora também é percebido como mostrando previsões o voto de um usuário influencia o próprio voto futuro.
4. Algoritmos
4.1 Algoritmos baseados em vizinhos próximos.
Eles foram os primeiros algoritmos de filtragem colaborativa ser implementado. Antes de tudo, é necessário medir a Semelhanças de todos os usuários com o usuário atual. Eles podem medidas diferentes são usadas: [1]
Coeficiente de Correlação de Pearson.
É derivado de fórmulas para regressão linear e suponha que a relação entre elementos é linear, os erros independentes e a distribuição Tem variância constante e média 0. Essas premissas normalmente não ocorre realmente com o que você precisa avaliar como eles afetam a qualidade dos resultados, mas em um grande número de casos executando usando Pearson isso é apropriado. O peso atribuído ao usuário u para Preveja que o usuário ativo a é dado por: (ra, é o voto do usuário para o elemento i)
Outras formas são baseadas em vetores (medida de cosseno), as medidas de correlação baseadas na entropia, Correlação de Ringo ou correlação de Spearman.
Depois de ter os pesos de correlação de cada algoritmo você precisa saber quão confiáveis ​​são esses pesos. É possível alto grau de correlação com vizinhos com quem eles compartilham poucos elementos avaliados pelo usuário atual, mas com avaliação igual. O uso desses pesos fornece uma estimativa ruim desde que tenha uma idéia real da correlação quantos são necessários quantos mais votos melhor compartilhado. Em casos de poucas amostras, recomenda-se diminuir o fator de correlação em função da número de votos compartilhados.
Para tentar melhorar ainda mais os pesos da correlação entre os usuários podem entrar para trabalhar com a variação de os elementos que cada usuário votou. Se um item for votou positivamente por uma grande porcentagem da população O fato de dois usuários compartilharem esse voto diz pouco informações sobre a correlação entre usuários. O contrário acontece no caso de elementos que são votados positivos ou negativamente por poucos usuários. Para levar esse fato em consideração, ele é adicionado à fórmula de correlação de Pearson um termo com a variação do elemento.
Seleção de vizinhos
Em sistemas com poucos usuários, pode ser viável trabalhar com todos os usuários como vizinhos apenas multiplicando cada um pelo peso de sua correlação. No entanto, em sistemas atuais que têm milhares de usuários dessa maneira não é possível, então você precisa pegar um subconjunto do usuários, o que não apenas melhora a eficiência, mas também a eficácia. Para escolher o número de vizinhos, você pode:
1. Estabeleça um limiar de correlação e tome todas as que excedam esse limite. O problema é que ele pode existem usuários que não têm muitos vizinhos com alta correlação. Portanto, o número de vizinhos seria baixo e isso causará o número de elementos no A que a vizinhança de um usuário pode comentar é também baixo.
2. Sempre leve "n" vizinhos, tendo em mente que um um número muito alto pode diluir a influência de os vizinhos com mais peso e um número muito baixo causa os mesmos problemas que o método anterior 
Recomendação
A maneira básica é fazer as anotações dadas por cada vizinho e forneça-os a sua correlação com o usuário atual:
Uma possível melhoria é introduzir uma variável que dependem de quão otimista ou pessimista cada usuário é. Alguns usuários votam em um padrão mais alto do que outros. Para fornecê-los é suficiente para normalizar em relação à média de pontuação de cada usuário. Desta forma, o preditor seria como:
4.2 Algoritmos baseados em elementos.
Em vez de procurar semelhanças entre os usuários, eles buscam proximidade Entre elementos. [3] [4] O procedimento consiste em selecione os elementos que um determinado usuário possui votado e, em seguida, verifique se cada um dos elementos do sistema é semelhante para concluir a recomendação o mais parecido. Existem diferentes maneiras de avaliar a semelhança entre os elementos, mas o procedimento genérico é pegar dois elementos x1, x2 e depois calcular sua semelhança com todos os usuários que votaram ambos os elementos. Em teoria, é a mesma aproximação que aquele com algoritmos baseados em vizinhos próximos. A vantagem é que, no caso dos elementos, a semelhança entre eles é menos variável do que a semelhança entre os usuários, permitindo pré-calcular essas semelhanças e faz o processo muito mais rápido.
Semelhanças baseadas em cossenos.
Cada elemento é considerado como um vetor dentro de um espaço vetorial de m dimensões e a similaridade é calculada como o cosseno do ângulo que eles formam. Quero dizer, se tendemos dois vetores x1, x2 consistindo em uma matriz cujos elementos são os votos recebidos de cada usuário. Sua semelhança seria:
Semelhanças baseadas em correlação.
Considerando o conjunto de votos dos usuários com votos no elemento x1 e x2, o coeficiente é usado da correlação de Pearson. U sendo esse conjunto, u todo usuário R a avaliação de um elemento e ¯Rx a avaliação média desse item
Semelhanças baseadas no cosseno ajustado.
As semelhanças baseadas em cossenos não são levadas em consideração diferenças entre escalas de usuário. Para isso está incluído na fórmula, o parâmetro ¯Ruque indica a avaliação média desse usuário. Também chamado de transformação z:
Cálculo de previsão
Depois que um método é escolhido para calcular o relacionamento entre elementos, os elementos que são mais semelhantes aos do usuário. Novamente, existem vários aproximações.
Soma com pesos (Weighted Sum).
Todos os elementos que o usuário votou são usados. Um elemento "x1" é obtido e, para esse elemento, eles são adicionados todos os coeficientes de similaridade entre esse elemento e o elementos votados pelo usuário, fornecidos com o valor do voto. Sendo N cada elemento votado pelo usuário Sim, NLa semelhança entre os elementos ie N e Ru, N a avaliação de usuário do elemento N:
Regressão.
Semelhante ao modelo anterior, mas em vez de adicionar diretamente as notas dos elementos semelhantesa aproximação com base na linha de regressão. Com este método tentando compensar um problema que ocorre ao avaliar semelhanças por medidas de co-seno ou correlação E é que vetores com alta similaridade podem ser encontrados distante no sentido euclidiano. A mesma fórmula é usada que no caso da soma fornecida, mas substituindo Ru, Npor: ¯R 0N = ¯Ri + + 
4.3 Preditores de inclinação um “SLOPE-ONE”
No momento do cálculo da previsão para um usuário U leva em consideração as informações dos usuários que eles têm em comum a votação de algum elemento U como o informações do restante dos elementos votados. [8]
A partir de duas matrizes viy wi de comprimento n, estamos procurando obtenha a melhor previsão de w de v. Vou ter o forma f (x) = x + be você deve minimizar o erro ao quadrado meio
P i (vi + b - wi) 2de onde derivamos obtemos que
Ou seja, a diferença média entre as duas matrizes. Começando A partir disso, podemos projetar as previsões. A partir de um conjunto X de dados de treinamento, dois elementos são tomados qualquer i, j com votos ui uj e o desvio é calculado Média entre os dois (apenas usuários que eu e j votamos:
Com o que temos uma matriz simétrica pré-calculada que é possível atualizar com cada novo elemento adicionado ao sistema.
A previsão para um usuário uj do resto de os usuários serão (com Rj o conjunto de itens relevantes):
4.3.2 Preditor bipolar de "inclinação um".
Trabalhe dividindo a previsão em duas partes. Use o algoritmo acima uma vez para obter uma previsão do elementos que o usuário gostou e aqueles que não gostei.
O primeiro problema com este sistema é estabelecer o limite do qual um item é considerado como ou antipatia. A idéia intuitiva é estabelecer um limite que seja metade da escala da avaliação. Se a escala passar de 1 a 10 itens abaixo de 5 seriam considerados avaliados negativamente e os demais são avaliados positivamente. Essa abordagem seria apropriada se as avaliações de os usuários foram distribuídos uniformemente, no entanto o comportamento real do usuário indica que ele existe uma alta porcentagem de votos maior que a metade da escala. Portanto, o valor limite é definido como a média de todas as notas dadas pelo usuário.
Na prática, esse procedimento envolve dobrar o número usuários, mas ao mesmo tempo também reduz o número de elementos no cálculo das previsões.
5. MÉTODOS DE AVALIAÇÃO DE DESEMPENHO.
Avalie o desempenho dos algoritmos de recomendação Não é trivial. Primeiro, porque diferentes algoritmos podem ser melhor ou pior, dependendo do conjunto de dados escolhido. A maioria desses algoritmos é projetada para o conjunto de dados Filmes do GroupLens onde há vários elementos muito menos do que o número de usuários e votos. No numa situação inversa, o comportamento pode diferir completamente.
Os objetivos do sistema de recomendação também podem diverso. Um sistema pode ser projetado para estimar com precisão a nota que um usuário daria a um elemento, enquanto Outro pode ter como objetivo principal não fornecer recomendações erradas. Em outras palavras, pode haver várias tipos de medidas: Que as recomendações abranjam toda a espectro de elementos do conjunto (cobertura), que não é repetir, torná-los explicáveis ​​... No entanto, o principal objetivo de um sistema de recomendação não é diretamente quantificável: satisfação do usuário. Em muitos casos obter um pequeno erro quadrado ao escolher um algoritmo ou outro não é apreciado pelo usuário. No entanto, existem muitos outros parâmetros que podem influenciar essa satisfação: O sentimento de credibilidade oferecido pelo sistema, a interface usuário, aprimoramento de perfil incluindo novos votos ...
Em qualquer caso, as medições de precisão podem dar uma primeira idéia de quão bom é o algoritmo nuclear do sistema de recomendação. Existem dois tipos de métodos de avaliação:
· Métodos estatísticos. O parâmetro de avaliação mais importante usado é o erro absoluto médio Erro, MAE). Medir o desvio das recomendações valores previstos e reais. Quanto menor o MAE, melhor o sistema prevê avaliações de usuários.
O MAE, no entanto, pode dar uma idéia distorcida do algoritmo para o caso de sistemas que possuem procure encontrar uma lista de bons itens recomendado. O usuário está interessado apenas em os primeiros N itens na lista. O erro que O cometa ao estimar o resto é indiferente. Nem é recomendado em sistemas onde a saída deve de ser uma decisão binária sim / não. Por exemplo, com uma escala de 1 a 10 se o limite for definido como 5, usando o MAE, um erro maior seria obtido ao errar 9 a 5 do que errar de 5 a 4, o que não é verdade ao medir o erro de saída. 
No entanto, é um tipo de erro estatisticamente muito estudado e fácil de entender. Tem muitas variações, como o erro quadrático médio que ele persegue penalizar erros graves ou erro absoluto normalizado o que facilita a tarefa de estabelecer comparações entre testes com diferentes conjuntos de dados.
· Métricas de decisão. Eles avaliam como o dinheiro é um sistema de previsão ajudando o usuário a selecionar os elementos de maior qualidade, é com que freqüência o sistema de recomendação faz recomendações corrigir. Para isso, eles assumem que o processo previsão é binária: ou o elemento recomendado O usuário gosta ou não. No entanto, no Na prática, surge o problema de avaliar isso. UMA solução possível é dividir o conjunto de dados em dois conjuntos, treinamento e teste. Trabalha com com o conjunto de treinamento e então avaliar o resultado comparando as recomendações fornecido com os do conjunto de teste. Continua sendo Às vezes, essa técnica é útil, devemos levar em consideração que os resultados dependem fortemente da porcentagem dos elementos relevantes que o usuário votou. A mais conhecida dessas métricas é "Precision e Recall ”e é usado em muitos tipos de sistemas de recuperação de informações. Precisão é a probabilidade que um item selecionado é relevante e Recordar é a probabilidade de que um elemento relevante, embora nos sistemas de recomendação "Relevância" é totalmente subjetiva. Do Para o usuário, essa métrica é mais intuitiva, pois estabelecer que um sistema tem uma precisão de 90% significa que de cada 10 itens recomendados 9 seriam boas recomendações, algo que não permanece claro, fornecendo valores médios de erro quadrado.
· Característica de operação do ROC Reciver) é outra medida amplamente utilizado. Fornece uma idéia do poder de diagnóstico de um sistema de filtragem. Curvas ROC desenhe a especificidade (probabilidade de um elemento ruim do conjunto é rejeitado pelo filtro) e o sensibilidade (probabilidade de um bom elemento aceito aleatoriamente). Se um item é bom ou ruim É dado por classificações de usuários. As curvas são desenhadas variando o limiar de previsão para a partir do qual um item é aceito. A área sob o curva está aumentando se quando o filtro é capaz reter mais elementos bons e menos ruins.
6. EXPERIÊNCIA PRÁTICA.
Para testar alguns dos algoritmos discutidos acima a biblioteca de filtros colaborativa será usada "Gosto". Quanto ao conjunto de dados a ser usado, é do conjunto de dados de filmes do grupo GroupLens.
6.1 Conjunto de dados.
O conjunto de dados do filme groupLens "MovieLens" é o conjunto de dados de referência, usado na maioria das publicações sobre filtros colaborativos junto com o conjunto de dados de Pesquisa Compaq, que não está mais disponível hoje. Sua estrutura é como mostrado na figura 2. Um exemplo da tabela de usuários seria:
1 :: F :: 1 :: 10 :: 48067 O campo sexual pode ter os valores A idade F / M é agrupada por faixas:
* 1: "Menores de 18 anos" * 18: "18-24" * 25: "25-34" * 35: "35-44" * 45: ”45-49” * 50: ”50-55” * 56: ”56+” E a ocupação é expressa por meio de um código
Figure 2: Esquema de campos del dataset de películas de GroupLens
Para a mesa do filme: 3949 :: Requiem for a Dream (2000) :: Drama
E, finalmente, a tabela de pontuação: 1227 :: 3786 :: 3 :: 1009223209. O registro de data e hora tem o formato indicado na função unix time (), o número de segundos desde 1º de janeiro de 1970.
O conjuntode dados original contém um milhão de avaliações de Usuários 6040, mas devido a requisitos de memória para trabalhar com todo o conjunto de dados, eles excedem o hardware disponível para testes, o número foi reduzido para alguns 200000 avaliações de 1228 usuários. Os dados foram coletados durante o ano de 2000, para que eles só contêm filmes Até essa data. Usuário 1228 contém contém próprias notas verificar subjetivamente os resultados.
6.2 Gosto
Taste é um mecanismo de filtro colaborativo escrito em JAVA. Ele pode ser integrado aos aplicativos de várias maneiras. Se seu próprio aplicativo estiver programado em java, eles podem ser incluídos Provar classes normalmente. Em caso de programação de aplicativos J2EE, você pode usar um bean sem status para usá-lo em nosso aplicativo. Também suporta uma interface para WebServices SOAP e pode funcionar como um servidor externo, respondendo a solicitações HTTP.
O último seria a forma em que é usado aqui. Entre Os arquivos TASTE incluem um código de exemplo já preparado para trabalhar com o conjunto de dados MOVIELENS.
Ele está trabalhando com esse código modificando o que é necessário para alterar o tipo de recomendação.
6.2.1 Trabalhando com bom gosto
Para trabalhar com qualquer um dos algoritmos que ele implementa Prove que você precisa ter muito Memória RAM, recomenda-se reservar 1 GB para o aplicativo em. No entanto, devido ao hardware disponível precisa reduzir o tamanho do conjunto de dados, pois eles só podem ser reservados cerca de 500 MB para o uso do Taste. O código ele vem preparado para ser executado em um servidor servlet como o ApacheTomcat. Em primeiro lugar, foi necessário copiar o Conjuntos de dados e, em seguida, gere um arquivo de guerra contendo tudo, o que foi feito com: form build-grouplens-example criação de um sistema de recomendação baseado no Taste Compreende várias camadas, como mostra a figura 3.
Modelo de dados. O modelo de dados é implementado em através da interface "DataModel" que vem com várias implementações preparado para obter dados de diferentes fontes. MySQLJDBCDataModel é usado para bancos de dados Dados MySql. FileDataModel é aquele usado para ler dados Vindo de arquivos CSV (valores separados por vírgula). Para ler o conjunto de dados MovieLens, você precisa expandir este classe e pré-trate o arquivo, que é feito a partir do Arquivo GroupLensDataModel.java
Transformações
O gosto implementa várias transformações que podem aplicam-se aos valores fornecidos por um usuário para tente melhorar a qualidade das recomendações. Para para fazer isso é necessário usar o método dataModel.addTransform (PreferenceTransform); As transformações implementadas são:
ZScore Normaliza os dados do usuário ajustando a média e a variância para evitar o problema acima mencionado de que alguns usuários pontuam mais alto que outros.
InverseUserFrequency Fornece elementos raros. É digamos considerar que um item que poucos votaram pessoas é mais importante que outra que é compartilhada entre mais pessoas.
CaseAmplification Amplifica valores mais altos e diminui os mais baixos.
Medidas de similaridade
No caso de trabalhar com semelhanças entre usuários, eles podem use medições baseadas em cosseno, em ou em fórmulas Pearson ou Spearman. A implementação está concluída da seguinte forma:
UserCorrelation userCorrelation = new CosineMeasure-Correlação (DataModel dataModel);
Mas, em vez de CosineMeasureCorrelation, eles podem ser usados Correlação de Pearson ou Correlação de Spearman 
Se, pelo contrário, o sistema trabalha com semelhanças entre elementos as medidas de similaridade são apenas as de Pearson e do cosseno. No entanto, o mais rápido é passar por uma lista de relacionamentos pré-compilados:
ItemCorrelation itemCorrelation = new PearsonCorrelation (DataModel dataModel);
Procurar vizinhos
A interface UserNeighborhood deve ser implementada. Quão Como foi visto na seção 4.1, você pode optar por solicitar uma lista de vizinhos de tamanho fixo ou uma lista que exceda um certo limite. Para este gosto implementa:
Figura 3: Estrutura de uma aplicação com Taste.
Fonte: http: //taste.sourceforge.net/
vizinhos de tamanho fixo ou uma lista que exceda um certo limite. Para este gosto implementa:
1. NearestNUserNeighborhood Retorna listas de vizinhos de tamanho fixo indicado no parâmetro n do construtor: UserNeighborhood neighborhood = new NearestNUserNeighbourhood (n, userCorrelation, modelo);
2. ThresholdUserNeighborhood. Retorna listas de vizinhos que excedam o limiar de correlação estabelecido em o parâmetro de limite: bairro UserNeighbourhood = new NearestNUserNeighborhood (threshold, userCorrelation,modelo);
Gere recomendações
O gosto incorpora um grande número de recomendadores. Além de por Itens e por Usuários, podemos encontrar:
TreeClusteringRecommender: Primeiro agrupe para usuários e, em seguida, gere uma lista de recomendações levando em consideração o grupo ao qual o do utilizador.
SlopeOneRecommender. É do tipo explicado na seção No 4.3, o modelo com pesos é implementado como sem pesos. Para sua implementação, não é necessário o procedimento para encontrar vizinhos e calcular semelhanças. Basta usar a classe de recomendação com o modelo de dados usado.
Recomendador recomendador = new SlopeOneRecommender (modelo);
Recomendador cachingRecommender = new CachingRecommender (Recomendar);
Avalie os resultados.
A interface RecomendenderEvaluator é incorporada para facilitar a tarefa de realizar avaliações. Com gosto eles vêm dois métodos já programados:
RMSRecommenderEvaluator Calcula o parâmetro RMS (raiz quadrada média) Para fazer isso, avalie a diferença entre o previsto e o real. O rms é a raiz quadrada de a média da diferença ao quadrado.
AverageAbsoluteDifferenceRecommenderEvaluator
Calcular a diferença média absoluta entre o previsto e o real.
Para essas avaliações, uma porcentagem dos dados de teste e outra porcentagem de dados de teste, esses parâmetros indicados no método "avaliar":
avaliar (recomenderBuilder, dataModel, treinamento duplo Porcentagem, avaliação duplaPercentage)
Para verificar o erro absoluto no conjunto de dados de movielens fez uso da classe GroupLensRecommenderEvaluatorRunner dentro do arquivo de amostra. Para seu use o comando is: ant eval-grouplens-example
Alguns resultados obtidos
Depois de inserir suas próprias trilhas sonoras no conjunto de dados, o código fonte foi modificado para verificar a algoritmos. A interface de controle é através de um navegador parâmetros de transmissão da web pelo URL:
http://127.0.0.1:8080/taste/RecommenderServlet ? userID = 1228 & howMany = 20 & debug = true
O top20 dos filmes para o usuário é:
5.0 1230 Annie Hall (1977) Comédia | Romance
5.0 1244 Manhattan (1979) Comédia | Drama | Romance
5.0 Matriz 2571 A (1999) Ação | Ficção Científica | Suspense
5.0 260 Star Wars: Episódio IV - Uma Nova Esperança (1977) Ação
5.0 2959 Clube da Luta (1999)
5.0 296 Pulp Fiction (1994) Crime | Drama
5.0 3481 Alta Fidelidade (2000) Comédia
5.0 541 Blade Runner (1982) - Filme de ficção científica |
5.0741 Fantasma na concha (Kokaku kidotai) (1995) Animação
5.0 858 O Poderoso Chefão (1972) Ação | Crime | Drama
4,0 1089 Reservoir Dogs (1992) - Crime | Suspense
4.0 111 Taxi Driver (1976) Drama | Suspense
4.0 1221 Padrinho: Parte II A Ação (1974) | Crime
1483 Crash (1996) Drama | Suspense
4.0 2076 Blue Velvet (1986) Drama | Mistério
4.0 2664 Invasão dos ladrões de corpos (1956) Terror |
Fi
3186 Girl Interrupted (1999) Drama
4.0 3556 Suicídios da Virgem A Comédia (1999) | Drama
3569 Idiotas (Idioterne) (1998) Comédia | Drama
3.0 1078 Bananas (1971) Comédia | Guerra
Ao aplicar a normalização (transformação z
dataModel.addTransform (new ZScore ());) alteração ocorre
na nota dos filmes:
1.1061487 1230 Annie Hall (1977) Comédia | Romance
1.1061487 1244 Manhattan (1979) Comédia | Drama | Romance
0.31955406 3556 Virgin Suicides The (1999) Comédia | Drama
0.31955406 3569 Idiots The (Idioterne) (1998) Comédia | Drama
Trabalhando com o algoritmo slopeone, você recebe um erro metade de 0,814 sem usar qualquer tipode transformação e no entanto, aumenta para 3.614 usando a transformação
′ Em z e até 1,62 usando reforço de filme raro, algo que não corresponde ao esperado. Subjetivamente não Posso dar uma impressão completa, pois não sei muitos dos filmes recomendados. No entanto, alguns dos conhecidos não se adaptam ao que era esperado enquanto do que outros.
Esses tipos de erros provavelmente são devidos a trabalhando com um pequeno conjunto de dados.
Ao usar os algoritmos dos vizinhos mais próximos, as recomendações se eles parecem estar mais adaptados ao gosto de usuário de teste.
Recomendações:
5.0 1408 O Último dos Moicanos (1992)
Ação | Romance | Guerra
5.0 3363 American Graffiti (1973) Comédia | Drama
5.0 593 O Silêncio dos Inocentes (1991) Drama | Suspense
5.0 1374 Jornada nas Estrelas: A Ira de Khan (1982)
aventura | ficção científica
5.0 50 suspeitos do crime (1995) | Suspense
5.0 1233 Boat The (Das Boot) (1981) Ação | Drama | Guerra
5.0 3114 Toy Story 2 (1999) Animação | Infantil | Comédia
5.0 Eleição 2599 (1999) Comédia
5.0 2355 Vida do inseto A (1998)
Animação | Infantil | Comédia
5.0 1104 Streetcar Named Desire A (1951) Drama
5.0 1198 Os Caçadores da Arca Perdida (1981) Ação | Aventura
5.0 1291 Indiana Jones e a Última Cruzada (1989)
Aventura
Baixar Filme: 2580 Go (1999)
5.0 356 Forrest Gump (1994) Comédia | Romance | Guerra
5.0 1278 Young Frankenstein (1974) Comédia | Terror
Parece que devido a algum tipo de problema no software não foram obtidos resultados quantitativos a partir do algoritmos baseados em itens e vizinhos próximos.
Conclusões
Os sistemas de recomendação já são amplamente utilizados na Internet e devido à grande quantidade de informações de todos os tipos ao nosso redor, é de se esperar sua presença e utilidade que aumentará no futuro.
Os algoritmos em que se baseiam são bastante comprovados e matematicamente eles podem alcançar bons resultados. No entanto, muitas falhas ainda precisam ser polidas. Cara não importa ao usuário obter o menor erro quadrático prevendo a avaliação de um filme, mas procurando os itens recomendados são satisfatórios. De Este é o procedimento para avaliar o comportamento de um sistema de filtro colaborativo não é fácil, não pode limite-se a dados estatísticos.
Para obter um melhor nível de qualidade, é necessário introduzir mais elementos externos, além dos cálculos de correlação entre usuários. Depois de obter uma lista de possíveis elementos para sua recomendação devem ser introduzidos novos parâmetros adaptados ao usuário. Em caso de filmes, por exemplo, critérios como o país de origem, a data ou o tema da edição pode ser muito útil incorporar ao gerar a última lista para o usuário.
De qualquer forma, embora haja um caminho a percorrer, os filtros atualmente, as colaboradores têm uma tremenda funcionalidade e o número de usuários que os utiliza não para crescer dia a dia.
7. REFERÊNCIAS
[1] Jonathan Herlocker, Joseph A. Konstan Al Borchers
John Riedl.
Uma estrutura algorítmica para a execução de colaboração
Filtragem.
[2] Sean Owen
Gosto: Filtragem Colaborativa para Java.
http://sourceforge.net/projects/taste/
[3] Badrul Sarwar, George Karypis, Joseph Konstan e
John Riedl.
Recomendação de filtragem colaborativa baseada em item
Algoritmos WWW10, ACM 1-58113-348-0 / 01/0005.
MAIO DE 2005
[4] Mukund Deshpande Georoge Karypis.
Algoritmos de recomendação Top-N baseados em itens
[5] Jonathan Herlocker, Joseph A. Konstan e John Riedl.
Avaliando o Recomendador de Filtragem Colaborativa
Sistemas
[6] Ian Soboroff, Charles Nicholas e Michael Pazzani.
Workshop sobre Sistemas Recomendadores: Algoritmos e
Avaliação
[7] Dan Cosley, Shyong K. Lam, Istvan Albert e Joseph A.
Konstan, John Riedl.
Está vendo acreditar? Como o Recomendador Interfaces
Afetar opiniões de usuários. ACM 1-58113-630-7 / 03/0004,
2003
[8] Daniel Lemire, Anna Maclachlan
Preditores da Slope One para colaboração online baseada em classificação
Filtragem, SDM05. 7 de fevereiro de 2005

Outros materiais