Baixe o app para aproveitar ainda mais
Prévia do material em texto
26/05/2020 Filtragem colaborativa e o desafio da Netflix https://translate.googleusercontent.com/translate_f 1/7 Página 1 Filtragem colaborativa e o desafio da Netflix Stephen Kriss Universidade de Yale stephen.kriss@yale.edu Resumo Na filtragem colaborativa, nossa tarefa é prever como um usuário avaliará um item de acordo com o histórico das classificações de outros itens do usuário, bem como das classificações de outros usuários. Este papel considera a filtragem colaborativa no contexto do conjunto de dados Netflix, uma lista de aproximadamente 480.000 classificações de usuários de mais de 17.000 filmes. Tentamos construir uma novo algoritmo para abordar esse problema com base na idéia de que subconjuntos de filmes existem no conjunto de treinamento e que os filmes em um subconjunto têm maior poder preditivo para um ao outro do que para filmes fora do subconjunto. Mostramos que esses conjuntos de filmes de fato existe, embora não seja fácil encontrar conjuntos de alta qualidade. Além disso, demonstramos que as previsões podem ser aprimoradas levando em consideração as tendências de classificação anteriores de um usuário. Nossos resultados mostram que nosso algoritmo faz melhorias em alguns dos esquemas de linha de base e, mais importante, que vários dos recursos implementados melhorar a precisão da previsão do algoritmo. Esperamos que as idéias obtidas no O curso deste documento levará a melhores métodos para identificar subconjuntos de filmes e portanto, a melhores previsões no futuro. 1. Introdução 1.1 Filtragem colaborativa Este artigo trata com o problema geral de colaboração filtragem aplicada a um domínio de problema específico, o conjunto de dados do Netflix. Filtragem colaborativa refere-se a algoritmos que levam em consideração uma conjunto de classificações dos usuários de determinados itens para elaborar previsões para as classificações dos usuários itens novos ou sem classificação. Para os fins deste papel, o usuário para quem estamos fazendo uma previsão será chamado de usuário predicado e o item para o qual estamos prevendo será chamado item predicado ou filme predicado . A principal dificuldade na construção algoritmos de filtragem colaborativa eficazes são encontrar as classificações no conjunto de treinamento que relacionam-se à previsão em questão. Soluções para esse desafio pode incluir olhar para todos os classificações passadas do item predicado, analisando todas as as classificações anteriores do usuário predicado e encontrar usuários que pareciam exibir similar tendências de classificação para o usuário predicado. o métodos empregados geralmente dependem da domínio do problema em si. Em alguns casos, previsões de tempo são necessárias para que a velocidade seja questão principal, enquanto em outros casos, elaborar modelos podem ser construídos e refinados antes fazendo previsões. O método de combinar as informações relevantes classificações para chegar a uma nova previsão pode variam amplamente, desde a média simples até média ponderada com base em vários fatores, para computando os diferenciais de pontuação entre os usuários itens comuns. Muitos algoritmos de filtragem colaborativa foram descritos na literatura. Os dois principais famílias de algoritmos são baseadas em memória algoritmos e algoritmos baseados em modelo. Administrador Realce Administrador Nota introdução tcc 26/05/2020 Filtragem colaborativa e o desafio da Netflix https://translate.googleusercontent.com/translate_f 2/7 Página 2 Algoritmos baseados em memória pesquisam o treinamento definido para encontrar classificações relevantes e calcular uma previsão com base em uma média do germano classificações. Primeiro algoritmos baseados em modelo determinar um modelo de previsão ou uma regra que descreve melhor o padrão de classificação do usuário e depois preveja de acordo com a regra. Memória- abordagens baseadas são geralmente mais lentas e menos adequado para previsão online. 1.2 O conjunto de dados Netflix No interesse de melhorando seu algoritmo atual, a Netflix divulgaram um conjunto de dados substancial de suas classificações de filmes dos clientes. Este conjunto de dados é composto por classificações de mais de 480.000 usuários individuais para uma coleção de 17.770 filmes, um total de mais de 1 milhão de classificações. Cada classificação é um valor integral entre (e incluindo) uma e cinco estrelas. Netflix tem ofereceu um prêmio monetário a quem puder para fazer uma melhoria de 10% em relação à sua atual algoritmo de previsão, chamado Cinematch. O objetivo principal do uso desse conjunto de dados era ter acesso a um conjunto grande e complexo de classificações que servem como um banco de ensaio adequado para o algoritmos a serem explorados neste artigo. O conjunto de dados é distribuído junto com um “Conjunto de sondas” dos pares usuário / filme nos quais algoritmos podem ser testados. As classificações reais para esses pares são conhecidos, então a saída de um algoritmo para o conjunto pode ser comparado com as classificações reais para medir a taxa de erro. Por esta papel, o erro será medido usando a raiz média erro ao quadrado ou RMSE. Para um vetor real classificações de filmesθ e um vetor de previsões do algoritmo para esses filmesˆθ: 2 (( )))RMSE E θ θ= - B [6] 1.3 Objetivos do Projeto O objetivo deste O projeto foi explorar o domínio de filtragem colaborativa e desenvolver um algoritmo original que funcionou bem no Conjunto de dados Netflix. Trabalhos futuros serão orientados com base nos sucessos e falhas deste projeto. O desempenho do algoritmo foi comparados com vários outros conhecidos algoritmos para determinar o desempenho absoluto; variantes do algoritmo também foram comparadas com uns aos outros para determinar os recursos que são mais bem sucedido na previsão. 2. O Algoritmo da Inclinação Um Como afirmado anteriormente, existem duas questões básicas em filtragem colaborativa: identificação de classificações no conjunto de treinamento e combinando classificações. A família Slope One de algoritmos é projetado para lidar com esses dois problemas [1]. Para este artigo, o algoritmo Slope One foi usado para lidar com o segundo problema enquanto o O primeiro problema foi tratado de uma maneira diferente. maneira. O próprio algoritmo é baseado na ideia de um "diferencial de popularidade" entre itens. Por exemplo, se o Usuário A classificar o Item J 0,5 estrelas maior que o item I, o usuário B também pode gostar Item J por cerca de 0,5 estrelas a mais que o item I. Isso é demonstrado na Figura 1. Figura 1. O algoritmo Slope One é baseado na noção de um "Diferencial de popularidade". Adaptado de [1]. Formalmente, defina P (u) como uma previsão vetor, onde cada componente P (u) i é o contribuição um item no conjunto de treinamento, item i , faz para a previsão. Estamos prevendo em item j . R j é o conjunto de itens relevantes, ou seja, o itens diferentes de j que o usuário predicado possui classificado ( R j é alterado posteriormente neste projeto - consulte Seção 3) e cartão (R j ) é o tamanho do conjunto R j . Vamos u i ser a classificação que o usuário predictee deu item i . Defina dev j, i como a média Usuário A Usuário B Item I Item J 1 1 1.5 2 ? ? = 2 + (1,5-1) = 2,5 Page 3 diferença entre as notas de itens i e j em todos os usuários que classificaram i e j . Então, o algoritmo Slope One pode ser resumidos da seguinte forma: j , 1 1 ji Eu+ 3. Conjuntos críticos de filmes e usuários O problema de encontrar classificações relevantes era uma das principais questões abordadas neste projeto. O insight por trás dos métodos empregados foi provavelmente existem subconjuntos de filmes no conjunto de treinamento e que os filmes em um subconjunto 26/05/2020 Filtragem colaborativa e o desafio da Netflix https://translate.googleusercontent.com/translate_f 3/7 P (u) = ( )() ji Rj dev vocêcartão R ∈ ∑ Isso define o valor de cada componente de o vetor de previsão. Para obter o total previsão, fazemos uma média ponderada da componentes, com pesos iguais para Inclinaçãopadrão um, ou com pesos diferentes para a Inclinação Ponderada Um. O algoritmo da Inclinação Ponderada Um é aquele realmente usado neste projeto. este versão leva em consideração o número de usuários que classificaram um item específico em R j . Se mais usuários avaliou um item, a precisão desse componente da previsão é assumido como sendo maior, por isso é mais pesado. Os pesos aumentar linearmente com o número de usuários que avaliou o item. Portanto, para cada componente do vetor de predição P (u), existe uma associação valor em peso contido no vetor W (u), onde cada entrada é o número de usuários classificados o item predicado e o item de treinamento. A previsão geral P é então: () () () Eu Eu i Rj Eu i Rj Pu W u P Você ∈ ∈ = ∑ ∑ O nome do algoritmo, Slope One, deriva do fato de que somos essencialmente estimando uma equação da forma f (x) = x + b, onde f (x) é a previsão ex é uma média de classificações para um filme de treinamento. Estimamos b para muitos filmes de treinamento diferentes, e combine os resultados das funções para obter uma predição. Funções com adicional coeficientes, como f (x) = ax + b ou f (x) = ax 2 + bx + c pode ser usado, mas trabalhos anteriores não mostrou aumento significativo no desempenho sobre f (x) = x + b [2]. têm maior poder preditivo um para o outro do que nos filmes fora do subconjunto. Estes conjuntos são doravante referidos como filmes críticos conjuntos . O mesmo pode ser dito para os usuários; subconjuntos de usuários com essa propriedade são chamados de conjuntos críticos de usuários . O objetivo de encontrar esses conjuntos era ser mais seletivo sobre as entradas válidas para o Algoritmo Slope One. Em vez de permitir R j para ser o conjunto de todos os filmes classificados pelo predicado usuário, só permitimos filmes no mesmo cluster como o filme predicado para estar em R j . Da mesma forma, em vez de permitir que todos os usuários que classificou o filme predicado e um filme em R j a ser incluído no cálculo do dev j, i , nós somente usuários permitidos no mesmo cluster que o usuário predicado a ser incluído. Existem muitos métodos possíveis para chegando com conjuntos de filmes e usuários candidatos. A dificuldade era que os dados no treinamento matriz é muito escassa - cada usuário avaliou apenas uma pequena fração dos 17.770 filmes e alguns usuários têm muito poucas classificações. Isso fez difícil empregar cluster tradicional métodos, ou mesmo apenas para comparar usuários que teve poucas, se houver, sobreposições nos filmes vistos. Para encontrar cenários críticos neste projeto, calculamos um vetor 5-dimensional para cada filme. Cada recurso do novo vetor continha a fração das classificações do filme que eram um determinado valor: 1 1 (1) 2) (3) 4) (5) () , , , , () () () () () f f f f f vm f tudo f tudo f tudo f tudo f tudo = ⌈ ⌉ │ │⌊ ⌋ f (n) = # classificações do valor n para o filme especificado f (tudo) = total de # classificações para o filme em questão Em vez de considerar classificações individuais como características, consideramos um filme em termos de distribuição de classificações - qual a porcentagem de Page 4 as classificações eram de uma estrela, duas estrelas etc. vetor foi calculado para cada filme, realizado k-significa agrupamento nos vetores. Os clusters resultantes foram, por exemplo, filmes com uma alta proporção de classificações de 5 estrelas; filmes com uma alta proporção de classificações de 1 estrela; filmes com uma proporção quase igual de todos classificações; e filmes com uma alta proporção de Classificações de 1 e 5 estrelas, mas uma baixa proporção de 3 classificações por estrelas. Encontramos conjuntos críticos de usuários subseqüentes aos cenários críticos, por razões explicadas abaixo. Para isso, calculamos cada usuário distribuição de votos em cada subconjunto de filmes. Então, para um determinado conjunto de filmes críticos, agrupou os usuários de acordo com seu voto tendência no futuro. Assim, os usuários foram selecionados com base na sua "consistência diferencial" com o usuário predicado. Neste projeto, a consistência entre dois usuários foi medida examinando a seguinte proporção: frequência (diferencial de classificação mais alto) número total de classificações em comum Isso nos deu uma estimativa aproximada de como consistente o diferencial foi entre dois usuários e somente aqueles com consistência razão acima de um certo limiar foi incluída na o cálculo da previsão. É importante ter em mente que nós estavam realmente procurando usuários com 26/05/2020 Filtragem colaborativa e o desafio da Netflix https://translate.googleusercontent.com/translate_f 4/7 distribuições nesse set de filmagem via k-means. Computamos diferentes conjuntos críticos de usuários para cada conjunto de filmes críticos. A lógica por trás disso A abordagem foi a de que, para um determinado subconjunto de filmes, provavelmente existem alguns usuários que os classificam da mesma forma que a norma e outros usuários que são outliers e taxa diferente da norma. Para Por exemplo, para um conjunto de filmes em que 80% da classificações são cinco estrelas, existem grupos de usuários que classificam muitos deles cinco (os usuários "normais") e grupos de usuários que classificam muitos deles um (os "outliers"). Então, ao fazer previsões, nós considerou qual grupo o usuário predicado estava baseado em suas classificações anteriores e usado apenas classificações de outros usuários em seu conjunto crítico de usuários. Continuando o exemplo acima, se o predicado O usuário avaliou muitos dos filmes nesse cluster 1 estrela (um outlier), consideramos apenas o outro outliers que classificaram muitos deles 1 estrela em fazendo a nossa previsão. Um método alternativo que testamos para encontrar usuários relevantes levou em consideração a estrutura do algoritmo Slope One. Porque o algoritmo calcula uma classificação média diferencial entre dois usuários, o usuário ideal entrada para este algoritmo tem uma alta consistência em diferencial de votos do usuário predicado. Se o dois usuários foram diferentes por um consistente montante no passado, eles provavelmente continuarão padrões de votação para o usuário predicado. Para Por exemplo, essa abordagem identificou usuários que consistentemente tinha um diferencial de classificação 0 do usuário predicado - ou seja, um usuário consistentemente semelhante. Além disso, é importante observar que os usuários com altos diferenciais de classificação geralmente não eram selecionado por essa abordagem. Intuitivamente, parece improvável que haja pares de usuários de tal forma que sempre se classifica filmes três estrelas acima de o outro, principalmente considerando os pequenos gama de classificações possíveis. É mais provável que ou a diferença é pequena ou não existe consistência no diferencial de rating. Os usuários identificados por esse método geralmente tinham um pequeno diferencial do usuário predicado. 4. Ajustes na pontuação Combinando as classificações relevantes via Slope Um algoritmo forneceu uma previsão geral do classificação para o usuário / filme predicado. Contudo, era importante considerar que cada usuário pode têm tendências de classificação individuais que foram não refletido em uma previsão que foi um média das classificações de outros usuários. Por exemplo, alguns usuários podem ser bimodais em suas classificações, dando apenas uma ou cinco estrelas aos filmes que eles tem visto. Nesse caso, não faz sentido prever um 4.2 para eles. Se sabemos que eles avaliar todos os filmes que eles gostam de cinco estrelas, então nós deve prever um cinco, ou pelo menos algo Page 5 muito mais perto disso. Da mesma forma, se um usuário distribuir todas as classificações, mas classifica os filmes com quatro estrelas mais frequentemente do que cinco estrelas, então uma previsão em algum lugar entre quatro e cinco deve provavelmente será aproximado de quatro para levar em conta o histórico de classificações anteriores do usuário. Basicamente, estávamos assumindo que o algoritmoSlope One produziu uma estimativa previsão que poderia ser ajustada para se ajustar tendências históricas de um usuário. O ajuste usado neste projeto foi apenas um primeiro passo para utilizar plenamente o informações coletadas da classificação do usuário história. Levou em conta a prévia distribuição nas duas classificações integrais ao redor da previsão do Slope One, referido como valores de final de livro , por exemplo, a distribuição em 4 e 5 se a previsão for 4.3. Enquanto o diferença na distribuição entre os dois os valores contábeis aumentaram, a classificação foi mudou cada vez mais para o apropriado valor final de livro (veja a Figura 2). Se a diferença na distribuição entre os dois era pequeno, mais peso foi dado ao Slope One previsão e menos aos valores de final de livro. o a fórmula real usada foi: 5. Implementação A maior parte do algoritmo foi escrita em C ++ dentro de um gerenciamento de dados de código aberto estrutura desenvolvida especificamente para Conjunto de dados Netflix [4]. A estrutura permitiu armazenamento eficiente do grande conjunto de dados na memória e funcionalidade fornecida para acessar o dados. O código de cluster do k-means foi gravado em Python. O cluster K-means requer um número de clusters para calcular como entrada. Em alguns domínios, k é conhecido a priori; neste caso, há não havia uma maneira clara de determinar um k ideal . Após analisar os resultados, optamos por calcular 25 sets de filmes críticos e 25 sets de usuários críticos por conjunto de filme. Tendo mais de 25 clusters geralmente resultou em vários clusters que estavam perto demais para serem distintos; tendo menos agrupamentos os diferenciavam demais para serem específicos suficiente na divisão dos dados. No entanto, isso número era um tanto arbitrário e melhor métodos de determinação de k podem resultar em melhores desempenho de previsão. O desempenho em tempo de execução foi significativo questão neste projeto devido ao grande tamanho de o conjunto de dados. O pré-processamento ocupou a maioria 26/05/2020 Filtragem colaborativa e o desafio da Netflix https://translate.googleusercontent.com/translate_f 5/7 pred = Previsão de inclinação Um d (x) = distribuição na pontuação integral x diff = diferença na distribuição entre ⌊pred⌋ e ⌈Pred⌉ ⌊ ⌋ ⌊ ⌋ ⌈ ⌉ ⌈ ⌉ ⌊ ⌋ ⌈ ⌉ 2 * * [ * ( ) * ( )] (1 ) * 2 * * [( ) ( )] (1 ) diff pred d pred pred d pred diff pred diff d pred d pred diff + + - + + - Figura 2. Ajustando a previsão para levar em conta o usuário tendências passadas de classificação. Como o usuário classifica os filmes 5 muito mais frequentemente que 4, a primeira previsão de 4,37 será deslocada para mais perto de 5. do tempo de computação, como pretendido.Agrupamento dos 480.000 usuários em cinco dimensões para cada set de filme crítico aproximadamente 12 horas usando k- significa agrupamento. O agrupamento de usuários foi concluído uma vez para cada filme crítico, para três Zoo máquinas foram usadas para executar os agrupamentos ao mesmo tempo. Cada cluster levou entre 45 e 120 minutos. Agrupamento de filmes era uma tarefa menos substancial por causa da menor conjunto de pontos e levou aproximadamente 30 minutos completar. Uma vez que esse pré-processamento foi feito, as previsões poderiam ser feitas rapidamente. O algoritmo completo da Inclinação Ponderada Um usando conjuntos de usuário e filme e ajustes de pontuação fez 2000 previsões em cerca de 17 minutos em uma máquina Intel Pentium M de 1,5 GHz com 1 Gb de memória. Isso fornece uma previsão média tempo de aproximadamente 0,51 segundos / previsão. 4 54,37 10% 90%d (x) Page 6 6. Resultados experimentais Medimos o desempenho do algoritmo em o conjunto de sondas incluído no conjunto de dados do Netflix. Para comparação, também executamos vários benchmarks algoritmos nos mesmos dados. Estes resultados são resumidos na Tabela 1. Os algoritmos são: 1. Média Global - preveja uma constante: a classificação média dada a qualquer filme por qualquer do utilizador. A classificação média é 3,60. 2. Média do filme - para um filme previsto, prever a média de todas as suas classificações até agora. 3. Média Média - para um filme de estréia e usuário, calcule a média do filme classificação até agora e a classificação média do usuário de todos os filmes até agora. Preveja a média de esses dois valores. 4. Cinematch - proprietário da Netflix algoritmo de previsão. Os detalhes exatos são não especificado, mas é descrito como usando “Modelos lineares estatísticos diretos com muito condicionamento de dados ”[3]. Nós utilizou o RMSE fornecido no site para a conjunto de sondas para comparação. Tabela 1. Comparação do desempenho da versão completa algoritmo para comparar algoritmos. Algoritmo RMSE Inclinação Um com Conjuntos de Filmes / Usuários1.0442 Média global 1.1298 Média do filme 1.0519 Média Dupla 1,0033 Cinematch 0,9474 Além disso, várias versões diferentes do o algoritmo Slope One adaptado foi comparados entre si para julgar o parente méritos de cada recurso. As diferentes versões 4. Filme + conjuntos de usuários + ajustes de pontuação - (3) além de usar apenas usuários que estão no conjunto de usuários críticos do usuário predicado. 5. Conjuntos de filmes + exibição de consistência + ajustes de pontuação - (3) e apenas usando usuários que têm um "diferencial de classificação" consistente com o usuário predicado. Tabela 2. Comparação do desempenho relativo de diferentes características do algoritmo. O esquema de referência para cada comparação é algoritmo (1). Algoritmo % Melhoria (1) 0,0000% 2) -0,6858% (3) 0,1835% 4) 0,9079% (5) -0,0676% Conforme mostrado na Tabela 1, o algoritmo que desenvolvidos mostraram melhora em relação a alguns esquemas de linha de base, mas não conseguiu mesmo nível de desempenho que o Netflix Algoritmo Cinematch. A tabela 2 mostra alguns exemplos mais interessantes resultados sobre os vários recursos com que experimentamos. A pontuação aprimorando função fez um pequeno, mas consistente melhoria de todos os vários esquemas. isto geralmente melhorou os resultados em cerca de 0,8%. Isso é significativo, considerando o efeito limitado atualmente, tem que ajustar as pontuações. Adicionando sets de filmes sozinhos diminuiu o desempenho da previsão do algoritmo. No entanto, devido à maneira como o usuário os sets foram determinados com base nos sets de filme, esperava que sua adição tivesse mais impacto significativo nos resultados. Os resultados mostre que isso era verdade. Adicionando conjuntos de usuários 26/05/2020 Filtragem colaborativa e o desafio da Netflix https://translate.googleusercontent.com/translate_f 6/7 permitir diferentes grupos de filmes e / ou usuáriospara ser inserido na previsão do Slope One. Esses resultados estão resumidos na Tabela 2. O As versões testadas foram: 1. Inclinação Ponderada Um 2. Conjuntos de filmes - (1) mais apenas usando filmes em o set de filmes críticos do filme predicado. 3. Conjuntos de filmes + ajustes de pontuação - (2) mais ajustando a previsão para explicar o tendências anteriores de classificação do usuário. precisão de previsão aumentada em cerca de 0,8%. Também testamos o método descrito acima para encontrar usuários com uma classificação consistente diferencial do usuário predicado. Porque o cálculo foi realizado como uma previsão é sendo feito, o desempenho em tempo de execução é prejudicado. No entanto, a precisão das previsões feitas o uso desses usuários não aumentou; a previsões foram piores do que aquelas feitas usando conjuntos críticos de usuários. Page 7 Observamos que mudanças bastante significativas nos mecanismos de previsão resultou em apenas pequenas mudanças no desempenho da previsão. É provável que isso reflete o fato de que as intuições por trás de nossos métodos eram válidos, mas que cumprir os objetivos dessas intuições é difícil. Conjuntos de filmes e conjuntos de usuários existem, e criamos progresso para encontrá-los. O pequeno ganho na precisão da previsão indica que nossos conjuntos também continha muitos filmes/ usuários errados que não foram mais úteis que a média filme ou usuário ao fazer previsões. 7. Conclusões e trabalhos futuros O algoritmo implementado mostrou algumas sucesso no aumento da precisão das previsões o algoritmo básico Slope One. Os resultados implica que é possível identificar críticas conjuntos de filmes e usuários com uma certa quantidade de precisão. Além disso, os resultados mostraram que levando em consideração a classificação anterior de um usuário tendências tem um efeito consistente e significativo sobre a precisão das previsões feitas. O projeto inspirou muitas idéias para trabalho futuro sobre esse problema. De particular interesse é o desenvolvimento de melhores métodos para identificar filmes críticos e conjuntos de usuários. Embora o cluster seja baseado na distribuição de pontuação é um passo na direção certa, parece que isso cria subconjuntos de filmes que são muito geral: bons filmes, por exemplo, são todos agrupados, embora haja provavelmente subconjuntos específicos de bons filmes que são apreciados por diferentes tipos de usuários. Identificando grupos de usuários que classificam determinados filmes de maneira semelhante é uma estratégia eficaz em princípio, mas precisa ser refinado para ter um efeito mais significativo. Nos métodos empregados neste projeto, basicamente tentamos estimar a correlação entre filmes e usuários. Ao encontrar críticas conjuntos de filmes e usuários, tentamos encontrar grupos de filmes e usuários altamente correlacionado sem fazer explicitamente em pares cálculos de correlação em toda a conjunto de treinamento. Isso foi feito principalmente porque de considerações de desempenho. Idealmente, para fazer uma previsão precisa para um par de usuário / filme, o algoritmo seria capaz de identificar rapidamente usuários semelhantes ao usuário predicado, bem como filmes que tiveram uma forte correlação (positiva ou negativa) para o filme predicado. Então, usando apenas o filmes apropriados, o algoritmo compare as classificações anteriores dos usuários relevantes com as atribuir classificações do usuário para determinar se eles classificaram de maneira muito semelhante ou diferente. Sediada Com base nessas informações, cada usuário relevante faça uma contribuição para a previsão geral. Essencialmente, precisaríamos calcular uma matriz de correlação gigante entre usuários (~ 480.000 x 480.000) e filmes (17.770 x 17.770). Esse problema parece adequado para uma programa paralelo. Porque cada cálculo é independente do outro, esse problema pode ser infinitamente paralelizado. Como o conjunto de treinamento é estático, isso só teria que ser calculado uma vez como uma etapa de pré-processamento. O tempo de execução de esta etapa pode ser significativamente reduzida via paralelismo com processadores suficientes, pois existem sem interdependências de dados. As previsões então seja feita olhando para o mais alto usuários e filmes correlacionados ao predicado usuário e filme e combinando essas classificações para fazer uma previsão. As matrizes de correlação não necessariamente construiria subconjuntos fechados de filmes / usuários críticos, mas listaria um dado usuário ou filme, os usuários mais relevantes e filmes a considerar. O conjunto de dados Netflix forneceu uma cama de teste substancial para a nossa colaboração algoritmo de filtragem. Nós mostramos que embora seja possível identificar seletivamente classificações relevantes para um determinado previsão, não é fácil fazê-lo com alta confiança. Particularmente promissor foi o consideração das tendências passadas de classificação dos usuários em ajustando previsões. Trabalho futuro para melhor identificação de usuários e classificações relevantes para esperamos que uma determinada previsão melhore o precisão deste algoritmo. 26/05/2020 Filtragem colaborativa e o desafio da Netflix https://translate.googleusercontent.com/translate_f 7/7 Page 8 8. Referências [1] Daniel Lemire, Anna Maclachlan, Slope One Preditores para Conectados Baseado em classificação Filtragem colaborativa, na mineração de dados SIAM (SDM'05), Newport Beach, Califórnia, abril 21-23, 2005. http: //www.daniel- lemire.com/fr/documents/publications/lemirema clachlan_sdm05.pdf [2] BM Sarwar, G. Karypis, JA Konstan e J. Riedl. Filtragem colaborativa baseada em itens algoritmos de recomendação. Na WWW10, 2001. [3] Site do Prêmio Netflix. www.netflixprize.com [4] Quadro de recomendação do Netflix. http://www.icefox.net/programs/?program=Netf lixRecommenderFramework [5] Tutorial de agrupamento K-Means. http://www.elet.polimi.it/upload/matteucc/Clust / tutorial_html / kmeans.html [6] Erro médio quadrático. http://en.wikipedia.org/wiki/Mean_squared_err ou
Compartilhar