Buscar

Filtragem colaborativa e o desafio da Netflix

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

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

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ê viu 3, do total de 7 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

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

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ê viu 6, do total de 7 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

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

Outros materiais