Você está na página 1de 18

Um Sistema de Recomendação de Filmes Baseado em Filtragem

Colaborativa Utilizando Dados do MovieLens


Fabrı́cio Leite Soares1

1
Aluno do Programa de Pós Graduação em Informática da Universidade Federal da Paraı́ba

fabriciosoares@cc.ci.ufpb.br

Resumo. Sistemas de Recomendação utilizam técnicas de descoberta de conheci-


mento e aprendizado de máquina para oferecer recomendações personalizadas de
informação, produtos e serviços durante a interação de um usuário com um software.
O crescimento na quantidade de usuários e dados de diversos serviços, especialmente
na Internet, exigem que tais Sistemas sejam desenvolvidos com novas abordagens que
consigam produzir recomendações e melhor qualidade e sejam capazes de responder
a milhares de solicitações de recomendação por segundo. Neste artigo, são anali-
sadas e testadas técnicas de Filtragem Colaborativa baseadas em itens e usuários
utilizando o conjunto de dados público do MovieLens, numa abordagem de processa-
mento empı́rica baseada na visualização dos dados através de ferramentas da lingua-
gem R. Duas abordagens de Filtragem Colaborativa (baseadas em itens e baseada
em usuários) e três alternativas para computar a semelhança item a item (baseadas
em correlações de Pearson e de Jaccard, e semelhança de cossenos) são avaliadas
e a performance dos modelos resultantes é discutida quanto às suas capacidades de
escalabilidade e qualidade das recomendações.

1. Introdução
Este artigo discute a implementação e avaliação de um Sistema de Recomendação de Filmes
que utiliza dados disponibilizados pelo MovieLens e abordagens de Filtragem Colaborativa
oferecidas por bibliotecas internas da linguagem R. Os dados do conjunto em questão são sepa-
rados em usuários e filmes, o que os tornam ideais para oferecer recomendações baseadas nos
usuários, método conhecido como Filtragem Colaborativa, que tende a oferecer recomendações
mais ricas ao não se basear apenas no histórico de um usuário, mas no histórico de todos os
usuários aos quais há dados disponı́veis.
O artigo segue a seguinte estrutura:

• A seção 2 contém uma introdução aos conceitos de Sistemas de Recomendação, utili-


zando referenciais teóricos da literatura.
• Na seção 3 são discutidas as caracterı́sticas do conjunto de dados MovieLens, sua estru-
tura, obtenção e limitações de uso.
• Na seção 4 são discutidas a estratégia de Pré-processamento dos dados e as ferramentas
de software utilizadas para esta finalidade.
• Na seção 5 as estratégias para cálculo de semelhança são apresentadas.
• Na seções 6 e 7 os dados são visualizados e decisões de processamento e escolha de
modelos são discutidas.
• A seção 8 apresenta a Metodologia para obtenção de recomendações, discutindo como
os modelos foram parametrizados e aplicados.
• A seção 9 apresenta a estratégia de avaliação dos resultados, quais cenários foram
comparados, e discute os resultados, concluindo com uma discussão acerca de alguns
parâmetros.

2. Sistemas de Recomendação
O crescimento na quantidade de informação digital disponı́vel e no número de acessos à Internet
criou um desafio em relação à sobrecarga de dados que dificulta acessos viáveis quanto a tempo
e itens de interesse de um indivı́duo ou grupo. Sistemas de buscas, como Google, Bing e
DuckDuckGo resolvem parcialmente esse problema ao priorizar conteúdos por interesses em
relação ao termo de busca ou histórico, mas qualquer aspecto de personalização - processo
ocorrido quando o sistema mapeia conteúdo disponı́vel aos interesses e preferências do usuário
é ausente [Konstan and Riedl 2012].
Este fato trouxe um aumento por demanda por Sistemas de Recomendação, que lidam
com o problema da sobrecarga de dados ao filtrar informações vitais de acordo com as pre-
ferências, interesses e comportamentos observados sobre o item. Sistemas de recomendação
possuem a habilidade de predizer se um usuário preferirá um item ou não baseado em
seu perfil ou comportamento [Pan and Li 2010]. Podem também ser enxergados como uma
estratégia de Tomada de Decisão para usuários sob ambientes informacionais complexos
[Rashid et al. 2002], assistindo e melhorando o processo social de utilizar recomendações
de outrém quando não há conhecimento pessoal suficiente ou experiência com alternativas
[Resnick and Varian 1997].
Apesar das origens dos Sistemas de Recomendação poderem ser traçadas a traba-
lhos em Ciência Cognitiva [Rich 1979], Teoria da Aproximação [Powell 1981], Recuperação
de Informação (Information Retrieval) [Salton 1989], e com conexões com a Ciência Ge-
rencial [Murthi and Sarkar 2003] e Modelagem de Escolhas de Consumo em Marketing
[Lilien et al. 1995], tais sistemas emergiram como uma área independente durante os anos 1990
quando pesquisadores começaram a focar-se em problemas de recomendação que se baseavam
explicitamente na estrutura de avaliações.
Na sua formulação mais comum, um problema de recomendação é redutı́vel a um pro-
blema de estimar avaliações para itens desconhecidos ou não vistos pelo usuário. Intuitiva-
mente, essa estimação é geralmente baseada em avaliações prévias do usuário em questão, ou
de outros usuários, em conjunto com alguma informação de relacionamento entre usuários e
itens. Ao conseguir estimar avaliações para itens ainda não avaliados, se pode recomendar ao
usuário os items de maior avaliação estimada.
Definição 1 Problema de Recomendação:
Seja C o conjunto de todos os usuários e S o conjunto de todos os possı́veis itens que
podem ser recomendados. Seja u a função utilidade que mede o benefı́cio utilitário do item s ao
usuário c, isto é, u : C × S → R, onde R é um conjunto ordenado. Para cada usuário c ∈ C,
a solução do Problema de Recomendação consiste em encontrar o item s0 ∈ S que maximize a
função u:

∀c ∈ C, s0c = arg max u(c, s) (1)


s∈S

2.1. Recomendações Baseadas em Conteúdo

Em Recomendações Baseadas em Conteúdo, a função u(c, s) do item s para o usuário c é esti-


mada se baseando na função u(c, s) determinada pelo usuário c e atribuı́da aos itens si ∈ S
semelhantes ao item s. Por exemplo, para o usuário c, esta abordagem tenta entender as
semelhanças entre os itens que o usuário avaliou positivamente no passado, de forma que
itens com maior nı́vel de semelhança às preferências serão então recomendados. A abor-
dagem Baseada em Conteúdo tem suas origens na área de de recuperação de informação
[Baeza-Yates et al. 1999] e filtragem de informação [Belkin and Croft 1992]. Devido ao sig-
nificante progresso nessas áreas e pela importância de diversas aplicações baseadas em texto,
diversos sistemas com esta abordagem contêm informações textuais, como documentos, páginas
web e mensagens de redes sociais. As melhorias em relação às alternativas de obtenção de da-
dos tradicionais surgem do uso de perfis de usuários que contém informações sobre os gostos
dos usuários e suas necessidades.
Mais formalmente, seja C(s) o perfil de um dado item, isto é, um conjunto de atributos
caracterizando s. Tal perfil é computado ao extrair um conjunto de caracterı́sticas de s e seu
conteúdo, e é utilizado para qualificar o item quanto a propósitos de recomendação. Já que,
conforme mencionado, esse tipo de abordagem é projetada para itens textuais, o conteúdo do
item é geralmente descrito com palavras-chaves. Por exemplo, o componente de recomendação
do sistema Fab [Balabanović and Shoham 1997], que recomenda páginas web a usuários, re-
presenta o conteúdo das páginas com as 100 palavras mais importantes. De forma semelhante,
o sistema Syskill and Webert [Pazzani et al. 1996] representa documentos através de suas 128
palavras mais informativas. A ”importância” da palavra kj no documento dj é determinada com
alguma medida ponderada wij .
Como enunciado anteriormente, sistemas de recomendação baseados em conteúdo re-
comendam itens semelhantes ao que o usuário se agradou no passado. Em particular, vários
itens candidatos são comparados a itens previamente avaliados e os de melhor correspondência
são recomendados. Formalmente, seja PC(c) o Perfil de Conteúdo do usuário c contendo as
suas preferências, esses perfis são obtidos através de análise do conteúdo dos itens previamente
vistos e avaliados. Por exemplo, PC(c) pode ser definido como o vetor de pesos (wc1 , ..., wcn ),
onde cada peso wci denota a importância da palavra-chave ki ao usuário c e pode ser compu-
tada a partir de conteúdo individualmente avaliado utilizando alguma técnica. Por exemplo,
o algoritmo Rocchio [Rocchio 1971], uma técnica baseada em média, pode ser utilizada para
computar PC(c) como um vetor de médias a partir de vetores de conteúdo individuais. Por ou-
tro lado, um classificador Bayesiano foi utilizado em [Pazzani and Billsus 1997] para estimar a
probabilidade do documento agradar.
Em suma, para um Sistema de Recomendação Baseado em Conteúdo, a função utilidade
u(c, s) é definida como:

u(c, s) = score(P C(c), Conteúdo(s)) (2)

2.2. Recomendações Baseadas em Colaboração


Diferente de abordagem baseada em conteúdo, a abordagem baseada em colaborações, ou cola-
borativa, tenta encontrar a utilidade dos itens para um dado usuário com base nas informações
de avaliação de tais itens atribuı́das por outros usuários. Mais formalmente, a função utilidade
u(c, s) do item s para o usuário c é estimada com base em u(cj , s) atribuı́da ao item s pelos
usuários cj ∈ C semelhantes ao usuário c.
Diversos sistemas foram desenvolvidos utilizando esta abordagem, tanto na academia e
na indústria. Pode-se afirmar que Grundy [Rich 1979] foi o primeiro sistema de recomendação
capaz de propor estereótipos como mecanismo de construção de modelos de usuário base-
ados numa quantidade limitada de informação acerca de cada usuário. Através de tais es-
tereótipos, Grundy construia modelos de usuários e os utilizava para recomendar livros rele-
vantes para cada usuário. Posteriormente, Tapestry se baseou em cada usuário para identifi-
car usuários parecidos manualmente [Goldberg et al. 1992]. GroupLens [Resnick et al. 1994] e
Ringo [Shardanand and Maes 1995] foram os primeiros sistemas a utilizar algoritmos de filtra-
gem colaborativa para automatizar predições.
De acordo com [Breese et al. 1998], os algoritmos para recomendações colaborativas
podem ser agrupados em duas classes gerais: baseados em Memória (ou heurı́stica) e baseados
em Modelo.
Algoritmos baseados em memória [Breese et al. 1998, Joaquin and Naohiro 1999,
Nakamura and Abe 1998, Resnick et al. 1994, Shardanand and Maes 1995] essencialmente são
heurı́sticas que realizam predições de avaliações com base na coleção de itens previamente ava-
liados pelos usuários. Isto é, o valor de uma avaliação desconhecida rc,s para o usuário c e o
item s é calculada como a agregação das avaliações de outros (N mais semelhantes) usuários
para o mesmo item s:

rc,s = c0 ∈ C 0 aggr(rc0 ,s ) (3)

Onde C 0 denota o conjunto dos N usuários mais semelhantes ao usuário c e que avalia-
ram o item s (1 ≤ N ≤ |usuários|). Algumas funções de agregação incluem:

1 X
rc,s = rc0 ,s (4)
N c0 ∈C 0

sem(c, c0 ) × rc0 ,s
X
rc,s = k (5)
c0 ∈C 0

O multiplicador k é utilizado como fator de normalização.


Para casos simples, a função de agregação pode ser dada pela média, como em 4. A
agregação mais utilizada, no entanto, se baseia em soma ponderada, conforme 5.
A semelhança sim(c, c0 ) entre usuários é uma medida de distância utilizada como peso,
de forma que quanto mais semelhantes c e c0 forem, mais a avaliação rc0 ,s será responsável pela
predição de rc,s .

3. MovieLens

Os conjuntos de dados MovieLens [Harper and Konstan 2016], oferecidos desde 1998, descre-
vem preferências pessoais para filmes. Tais preferências aparecem na forma de tuplas no for-
mato <usuário, item, avaliação, data>, cada uma representando as preferências
de um usuário (numa avaliação de 0 a 5 estrelas) para um filme num momento em particular.
Esses dados foram capturados historicamente pelo Sistema de Recomendação que o próprio
serviço oferece 1 . Os conjuntos de dados são baixados com frequência (mais de 140.000 em
2014) e possuem grande números de referências na literatura (mais de 7500 resultados para
”movielens” no Google Scholar). Essa popularidade reflete (i) O crescimento de sistemas de
recomendação personalizados em que esse tipo de dado tem valor substancial ao permitir explo-
rar e validar ideias; (ii) a flexibilidade dos dados de avaliação presentes, que naturalmente são
adequados para o uso em sistemas de recomendação, mas também para disciplinas da chamada
ciência de dados como sumarização, identificação de padrões e visualização e (iii) a acessibi-
lidade de filmes como conteúdo que constitui um interesse comum e bem conhecido, simplifi-
cando a discussão da saı́da dos algoritmos.
Limitações Os conjuntos de dados do MovieLens incluem apenas dados de usuários
com pelo menos 20 avaliações, de forma que introduz um viés em relação a usuários ”bem-
sucedidos”. Isto é, usuários menos interessados no serviço (que não suficientemente utilizaram
a ele) não compõe parte importante dos dados. É possı́vel que esses usuários possuam dados
fundamentalmente diferentes dos outros usuários que permaneceram. Os conjuntos também
associam datas (timestamps) a cada avaliação, que não representam a data em que o conteúdo
foi consumido de fato pelo usuário, e usuários tendem a inserir um grande número de avaliações
em curtos perı́odos de tempo, especialmente nos primeiros minutos de uso do serviço, de forma
que as datas tem seu valor reduzido para diversas finalidades.
Obtenção Para efeitos de simplificação, o menor conjunto de dados MovieLens foi uti-
lizado (ml-latest-small.zip), que em 1 de junho 2019 possuia 100.000 avaliações para
9.000 filmes avaliados por 600 usuários, e foi atualizado pela última vez em setembro de 2018.
O arquivo em questão contem quatro arquivos: movies.csv, ratings.csv, links.csv
e tags.csv, mas apenas os dois primeiros foram utilizados. A tabela 1 ilustra algumas entra-
das do arquivo movies.csv para o ano 1995, e a tabela 2 ilustra algumas entradas referentes
a um usuário.

1
https://grouplens.org/
movieID title genres
1 Toy Story (1995) Adventure—Animation—Children—Comedy—Fantasy
2 Jumanji (1995) Adventure—Children—Fantasy
3 Grumpier Old Man (1995) Comedy—Romance
4 Waiting to Exhale (1995) Comedy—Drama—Romance
5 Father of the Bride Part II (1995) Comedy

Tabela 1. Recorte de entradas do arquivo movies.csv para o ano 1995

userId movieId rating timestamp


1 16 4.0 1217897793
1 24 1.5 1217895807
1 32 4.0 1217896246
1 47 4.0 1217896556
1 50 4.0 1217896523

Tabela 2. Recorte de entradas do arquivo ratings.csv para o usuário de ID=1.

4. Ferramentas de Software Utilizadas


4.1. recommendarlab
A biblioteca recommenderlab [Hahsler 2011] da linguagem R2 oferece ferramentas que permi-
tem estabelecer ambientes de teste e avaliação.
A biblioteca requer que os dados estejam normalizados no formato de matriz esparsa.
Esta conversão resultou numa matriz de dimensões 668 × 10325.
Os algoritmos incluı́dos na biblioteca estão elencados na tabela 3. Este artigo trata em
especial de abordagens baseadas em Filtragem Colaborativa, que são oferecidas pelos algorit-
mos IBCF e UBCF, portanto estes foram os selecionados para a utilização e avaliação.

4.2. One Hot Encoding


Os dados dos filmes possuem os gêneros para cada filme dentro do mesmo atributo: genres,
de maneira que não é possı́vel selecionar com facilidade um filme dentro de uma lista de filmes
para um dado gênero. A estratégia utilizada para resolver esse problema consiste em transfor-
mar a lista de gêneros para o formato one-hot encoding.
2
https://www.r-project.org

Nome Descrição
IBCF Filtragem colaborativa baseada em itens.
Popular Filtragem baseada em popularidade dos itens.
realRatingMatrix Recomendações aleatórias.
ReRecommend ”Re-recomendar”itens melhor avaliados.
SVDF Método de Máximo Declive (gradient descent).
UBCF Filtragem colaborativa baseada em usuários.

Tabela 3. Algoritmos incluı́dos na biblioteca recommenderlab.


5. Cálculo de Semelhança
Uma vez que algoritmos de filtragem colaborativa são baseados em medir a semelhança en-
tre usuários ou entre itens, é necessário utilizada uma função para medir tal semelhança. A
biblioteca recommenderlab oferece 3 versões desta função:

• cosine: A semelhança baseada em cossenos (equação 6) mede a orientação de dois


vetores n-dimensionais com respeito à sua magnitude. O produto escalar é calculado
para os vetores e então é normalizado pelo produto dos seus comprimentos, de forma
que resultados próximos a 1 indicam alta semelhança.

x·y
cos(x, y) = (6)
||x|| · ||y||
• pearson: Utiliza o Coeficiente de Correlação de Pearson (Eq. 7) para medir a
semelhança linear. É obtida através do Método dos Minı́mos Quadrados (Eq. 8), e
valores próximos a 1 indicam correlações positivas entre as variáveis e próximos a −1
correções negativas, com 0 indicando ausência de correlação.

cov(X, Y )
ρ= (7)
σx σy
Pn
(xi − x)(yi − y)
r= qP i=1 (8)
n
i=1 (xi − x)2 (yi − y)2
• jaccard: O ı́ndice de Jaccard (Eq. 9) mede a semelhança entre duas amostras finitas
(neste caso, itens ou usuário). É obtido a partir da divisão do tamanho da interseção pelo
tamanho da união das amostras.

|A ∩ B| |A ∩ B|
J(A, B) = = . (9)
|A ∪ B| |A| + |B| − |A ∩ B|
Na medida cosine, o número de atributos em comum é dividido pelo total de atributos
possı́veis. Na medida jaccard, o número de atributos em comum é dividido pelo números de
atributos que existe em pelo menos um dos itens. jaccard tende a definir como alta a semelhança
de dois itens com vários atributos iguais, e cosine tende a ser melhor na identificação de itens
que mesmo com atributos diferentes, estejam espacialmente próximos [Zahrotun 2016].
As figuras 1 e 2 ilustram, utilizando tons de vermelho, recortes das matrizes de
semelhança entre usuários e filmes (respectivamente), onde cada linha/coluna representa um
usuário/filme, e cada célula representa um nı́vel de semelhança. Quanto mais vermelha a célula
está, mais semelhantes são dois usuários/filmes.

6. Exploração dos Dados


De acordo com a documentação MovieLens, uma avaliação equivalente a 0 representa um valor
ausente, então estes valores foram removidos. A figura 3 mostra os filmes mais bem avaliados.
A figura 4 mostra a distribuição da avaliação média dos filmes. Filmes com número de
avaliações abaixo de 50 foram removidos, e por consequência os filmes com avaliação 1 e 5
Figura 1. Matriz de Semelhança Figura 2. Matriz de Semelhança
entre Usuários entre Filmes

Figura 3. Filmes melhor avaliados


Figura 4. Distribuição das Figura 5. Distribuição das
Avaliações Médias, antes das Avaliações Médias, após
remoções remoções.

Figura 6. Heatmap da matriz de avaliações, com dimensões 668x10325.

acabaram sendo removidos por não atingirem esse limiar. A figura 5 mostra a distribuição das
avaliações após essa remoção, estando agora as avaliações entre 2, 16 e 4, 45. Como esperado,
os extremos foram removidos. A maior avaliação agora está ao redor de 4.
Para visualizar a matriz de avaliações, um heat map (Figura 6) foi construı́do, onde cores
representam avaliações. Cada linha da matriz corresponde a um usuário, e cada coluna a um
filme, com cada célula da matriz indicando uma avaliação.
A Figura 7 mostra um recorte das primeiras linhas e colunas do heatmap, onde é possı́vel
visualizar que alguns usuários avaliaram mais filmes que outros. A figura 8 mostra outro heat-
map, dessa vez mostrando os usuários e itens mais relevantes, isto é, os usuários que assistiram
muitos filmes e os filmes assistidos por muitos usuários.

7. Preparação dos Dados


O processo de preparação dos dados utilizado consiste em 3 passos:

• Selecionar os dados relevantes - Para selecionar os dados mais relevantes, o número


50 foi definido como mı́nimo de usuários por filme avaliado, e mı́nimo de avaliações
por filme. Tal seleção resultou em 420 usuários e 1447 filmes, em comparação com os
anteriores 668 usuários e 10325 filmes do conjunto de dados original.
• Normalizar os dados - Ter usuários que avaliam seus filmes com valores muito baixos ou
muito altos pode introduzir um viés nos resultados. Para remover esse efeito, os dados
foram normalizados de forma que a avaliação média por usuário é 0. As figuras 9 e 10
ilustram esse processo.
Figura 7. Heatmap das primeiras 20 linhas e 25 colunas.

Figura 8. Heatmap dos usuários e filmes com mais avaliações.


Figura 9. Heatmap dos fil- Figura 10. Heatmap dos filmes
mes melhor avaliados e usuários melhor avaliados e usuários
com mais avaliações, antes da com mais avaliações, após
normalização. normalização.

Figura 11. Binarização sem Figura 12. Binarização com


preservação de avaliações. preservação de avaliações.

• Binarizar os dados - Alguns modelos de recomendação funcionam apenas para dados


binários, então é útil converter os dados nesse formato. Isto é feito (i) definindo uma
matriz em que células contendo 1 representam usuários que avaliaram um filme e 0
caso contrário e a avaliação não é preservada; ou (ii) definindo uma matriz em que
células contém 1 se as avaliações são maiores ou iguais a um dado limiar ou 0 caso
contrário, havendo preservação parcial das avaliações. As figuras 11 e 12 ilustram ambas
as bordagens.

8. Metodologia

8.1. Filtragem Colaborativa baseada em Usuários

Numa abordagem de recomendação por filtragem colaborativa baseada em usuários, os usuários


existentes e suas preferências são utilizados para recomendar novos itens a outros usuários.
Figura 13. Distribuição do número de elementos por coluna para o modelo de
recomendação IBCF.

Estas informações são aqui modeladas como uma matriz em que linhas correspondem a usuários
e colunas correspondem a itens.
O algoritmo extrairá os filmes avaliados por cada usuário, e para cada um dos filmes
identificará seus itens semelhantes de acordo com a matriz de semelhanças. Ao final, é cons-
truı́do um ranking baseado nesses itens, extraindo informações relacionadas ao item: avaliações
do usuário (utilizado como peso) a nı́vel de semelhança. Cada peso é multiplicado com seu nı́vel
de semelhança, e os resultados desse cálculo para cada item são somados.
O modelo IBCF da biblioteca recommenderlab é parametrizável de diferentes maneiras.
É possı́vel utilizar um valor k para indicar o número de itens a terem sua semelhança calcu-
lada entre si no primeiro passo. Então, para cada item, o algoritmo identifica os k itens mais
semelhantes e armazena o resultado. O parâmetro method indica a função de semelhança
(cosine, pearson, jacard). A figura 13 contém um gráfico com a distribuição de ele-
mentos por coluna utilizando method = cosine, e mostra que há poucos filmes que são
semelhantes a muitos outros.
Aplicando o modelo O algoritmo extrai, para cada usuário, seus filmes avaliados. Para
cada filme, ele identifica todos os itens semelhantes, iniciando a partir da matriz de semelhanças.
Então, o algoritmo gera um ranking de semelhança para os itens. Para o item i, isto consiste
em:
• Extrair a avaliação do usuário de cada item in associado com o item i. Este valor é
utilizado como peso.
• Extrai a semelhança do item in com cada um dos itens associados com o i.
• Multiplicar cada peso com a sua semelhança.
• Somar os resultados.

O modelo IBCF recomenda itens com base na matriz de semelhança, sendo considerado
do tipo Eager-Learning [Hendrickx and Van Den Bosch 2005], isto é, uma vez construı́do, o
modelo é independente das entradas e capaz de generalizar além dos dados de entrada com o
mesmo custo desses dados. Para cada item, o modelo armazena os k mais semelhantes, de forma
que a quantidade de informação é pequena quando o modelo é construı́do, mesmo utilizando
grandes quantidades de dados.

8.2. Filtragem Colaborativa Baseada em Itens


A abordagem UBCF consiste em, dado um novo usuário, identificar quais usuários são seme-
lhantes a ele e oferecer os itens mais bem avaliados desses usuários como recomendação.
Para cada novo usuário, a abordagem consiste em:

• Medir quão semelhante o novo usuário é em relação aos outros. Assim como o IBCF, o
UBCF utiliza as medidas baseadas em correlação e cosseno.
• Identificar os usuários mais semelhantes utilizando:
– k vizinhos mais próximos
– Usuários com semelhança acima de um dado limiar
• Avaliar os filmes avaliados pelos usuários semelhantes. A avaliação é a avaliação média
entre usuários semelhantes e as abordagens são:
– Avaliação média com pesos, utilizando as semelhanças entre os pesos.
– Utilizar os filmes melhor avaliados.

A figura 14 mostra a distribuição dos elementos por coluna para o mo-


delo UBCF. Em comparação com IBCF a distribuição é do tipo ”calda longa”(long
tail)[Park and Tuzhilin 2008], o que indica que certos filmes são frequentemente mais reco-
mendados que outros.

9. Avaliação
Os dados serão divididos em conjunto de treinamento e conjunto de testes. 3 métodos podem
ser utilizados para realizar a divisão:

• Divisão de Pareto - Divide o conjunto de dados em 80% para treinamento e 20% para
testes. Para cada usuário no conjunto de testes, são definidos quantos itens utilizar para
gerar recomendações. Para tal, é verificado o numero mı́nimo de itens avaliados por
usuários para garantir que não haverão usuários sem itens a testar.
• Reamostragem (boostrapping) - É feita uma amostragem com substituição, de forma
que o mesmo usuário pode ser amostrado mais de uma vez.
• Validaçao cruzada - Divide os dados em partições e realiza testes utilizando uma da
partição como conjunto de testes, repetindo para outras partições obtendo uma acurácia
média ao final.
Figura 14. Distribuição do número de elementos por coluna para o modelo de
recomendação UBCF.

RMSE MSE MAE


1.1026305 1.2157940 0.7928826

Tabela 4. Medidas de acurácia para o modelo IBCF.

Neste trabalho utilizou-se a validação cruzada com 4 partições (4-fold), cada um com
tamanho 315. A tabela 4 mostra o resultado das medidas de acurácia calculados para o modelo
IBCF. A imagem 15 mostra a distribuição da medida RMSE por usuário para esse modelo.
A biblioteca recommenderlab oferece internamente um mecanismo de avaliação
baseado em comparações, que também possibilita cálcular métricas. A função evaluate()
avalia a performance do recomendador dependendo do número n de itens a serem recomenda-
dos para o usuário. Foi utilizada a sequência de 10 a 100, com intervalos de 10, então n =
seq(10, 100, 10).
Comparação Para comparar diferentes modelos, os diferentes cenários foram definidos:
• Random (usado como baseline)
• IBCF, cosine
• IBCF, pearson
• UBCF, cosine
• UBCF, pearson
As curvas ROC e precisão-recall são exibidas nas Figuras 16 e 17 respectivamente. Se
concluiu que se um percentual pequeno de filmes avaliados é recomendado, a precisão diminui.
Figura 15. Distribuição da medida RMSE por usuário para o modelo IBCF.

Figura 16. Curva ROC. Figura 17. Curva Precisão-Recall.

Por outro lado, quanto maior o percentual de filmes avaliados, maior o recall. O cenário UBCF,
cosine obteve a melhor performance, pois possui a maior área abaixo da curva ROC.
Como o algoritmo IBCF utiliza os k itens mais próximos, foram testados diferentes
valores para k, no intervalo entre 5 e 40. Com base na curva ROC exibida na figura 18, o valor
de k adequado é 10, pois apresentam maior área abaixo da curva, mas ao mesmo tempo ele não
apresenta valores altos para TPR, significando que mesmo para valores de n altos, o algoritmo
não será capaz de recomendar um percentual suficiente de itens ao usuário. IBCF com k = 5
recomenda apenas alguns alguns itens, portanto não é suficiente. Com base na gráfico precision-
recall da Figura 19, k = 10 obteve os melhores resultados de recall, mas k = 5 obteve melhor
precisão.
Figura 19. Curva Precisão-Recall
Figura 18. Curva ROC para IBCF,
para IBCF, diferentes valores de
diferentes valores de k.
k.

10. Conclusão
Neste projeto foi desenvolvido e avaliado um sistema de recomendação baseado em filtragem
colaborativa para recomendar filmes, utilizando o conjunto de dados MovieLens e ferramentas
da linguagem R.
A partir da discussão deste sistema e de sua avaliação, é possı́vel concluir que sistemas
baseados em filtragem colaborativa oferecem recomendações que conseguem complementar
itens que o usuário já interagiu (neste caso, avaliou). Este tipo de recomendação é especiali-
zado pois oferece mais que simples substitutos para um filme que já foi assistido. No entanto,
este tipo de sistema é baseado em memória, e utiliza todos os dados de usuários para criar
recomendações. Comparar correlações em pares para todo e qualquer usuário num conjunto de
dados é um problema difı́cil de escalar, a termos de performance. Se há milhões de usuários,
a computação pode demorar muito. Possı́veis maneiras de contornar este problema envolvem
implementar alguma forma de redução dimensional, tal como a Análise de Componentes Prin-
cipais (PCA)[Jolliffe 2011]. Outro problema envolve o fato de esse tipo de abordagem utilizar
suposições baseadas na experiência prévia dos usuários para oferecer as recomendações. Por
consequência, se supõe que as preferências do usuário se mantém ao longo do tempo, o que
nem sempre é verdade; mas ao mesmo tempo o custo de reconstruir o modelo de forma online
pode não ser viável.
Referências
Baeza-Yates, R., Ribeiro-Neto, B., et al. (1999). Modern information retrieval, volume 463.
ACM press New York.
Balabanović, M. and Shoham, Y. (1997). Fab: content-based, collaborative recommendation.
Communications of the ACM, 40(3):66–72.
Belkin, N. J. and Croft, W. B. (1992). Information filtering and information retrieval: Two sides
of the same coin? Communications of the ACM, 35(12):29–38.
Breese, J. S., Heckerman, D., and Kadie, C. (1998). Empirical analysis of predictive algorithms
for collaborative filtering. In Proceedings of the Fourteenth conference on Uncertainty in
artificial intelligence, pages 43–52. Morgan Kaufmann Publishers Inc.
Goldberg, D., Nichols, D., Oki, B. M., and Terry, D. (1992). Using collaborative filtering to
weave an information tapestry. Communications of the ACM, 35(12):61–70.
Hahsler, M. (2011). recommenderlab: A framework for developing and testing recommendation
algorithms. Technical report.
Harper, F. M. and Konstan, J. A. (2016). The movielens datasets: History and context. Acm
transactions on interactive intelligent systems (tiis), 5(4):19.
Hendrickx, I. and Van Den Bosch, A. (2005). Hybrid algorithms with instance-based classifi-
cation. In European Conference on Machine Learning, pages 158–169. Springer.
Joaquin, D. and Naohiro, I. (1999). Memory-based weighted-majority prediction for recom-
mender systems. Research and Development in Information Retrieval.
Jolliffe, I. (2011). Principal component analysis. Springer.
Konstan, J. A. and Riedl, J. (2012). Recommender systems: from algorithms to user experience.
User modeling and user-adapted interaction, 22(1-2):101–123.
Lilien, G. L., Kotler, P., and Moorthy, K. S. (1995). Marketing models. Prentice Hall.
Murthi, B. and Sarkar, S. (2003). The role of the management sciences in research on persona-
lization. Management Science, 49(10):1344–1362.
Nakamura, A. and Abe, N. (1998). Collaborative filtering using weighted majority prediction
algorithms. In ICML, volume 98, pages 395–403.
Pan, C. and Li, W. (2010). Research paper recommendation with topic analysis. In Computer
Design and Applications (ICCDA), 2010 International Conference on, volume 4, pages V4–
264. IEEE.
Park, Y.-J. and Tuzhilin, A. (2008). The long tail of recommender systems and how to leverage
it. In Proceedings of the 2008 ACM conference on Recommender systems, pages 11–18.
ACM.
Pazzani, M. and Billsus, D. (1997). Learning and revising user profiles: The identification of
interesting web sites. Machine learning, 27(3):313–331.
Pazzani, M. J., Muramatsu, J., Billsus, D., et al. (1996). Syskill & webert: Identifying interes-
ting web sites. In AAAI/IAAI, Vol. 1, pages 54–61.
Powell, M. J. D. (1981). Approximation theory and methods. Cambridge university press.
Rashid, A. M., Albert, I., Cosley, D., Lam, S. K., McNee, S. M., Konstan, J. A., and Riedl, J.
(2002). Getting to know you: learning new user preferences in recommender systems. In
Proceedings of the 7th international conference on Intelligent user interfaces, pages 127–
134. ACM.
Resnick, P., Iacovou, N., Suchak, M., Bergstrom, P., and Riedl, J. (1994). Grouplens: an
open architecture for collaborative filtering of netnews. In Proceedings of the 1994 ACM
conference on Computer supported cooperative work, pages 175–186. ACM.
Resnick, P. and Varian, H. R. (1997). Recommender systems. Communications of the ACM,
40(3):56–58.
Rich, E. (1979). User modeling via stereotypes. Cognitive science, 3(4):329–354.
Rocchio, J. J. (1971). Relevance feedback in information retrieval. The SMART retrieval system:
experiments in automatic document processing, pages 313–323.
Salton, G. (1989). Automatic text processing: The transformation, analysis, and retrieval of.
Reading: Addison-Wesley.
Shardanand, U. and Maes, P. (1995). Social information filtering: algorithms for automating
“word of mouth”. In Proceedings of the SIGCHI conference on Human factors in computing
systems, pages 210–217. ACM Press/Addison-Wesley Publishing Co.
Zahrotun, L. (2016). Comparison jaccard similarity, cosine similarity and combined both of the
data clustering with shared nearest neighbor method. Computer Engineering and Applicati-
ons Journal, 5(1):11–18.

Você também pode gostar