Escolar Documentos
Profissional Documentos
Cultura Documentos
recomendação de livros
Gabrielle Serra Mazon, Marina Amaro Farias da Silva, Thiago Mota Silva, Victor
de Melo Macena, Calebe de Paula Bianchini
Abstract. This work focuses on analyzing the efficiency of some of the main
classification algorithms applied to a book dataset, as well as in the data
preparation, to enable and potentialize the application of the algorithms for book
recommendation. Nowadays, there are many and varied algorithms for data
classification that, depending on several factors, generate different results, the
main one being the dataset. One of the difficulties encountered when
approaching a classification problem is which of these algorithms to use when
necessary to make a recommendation based on data. Thus, the objective of this
study is to identify which algorithm has the best performance, using the selected
dataset.
1. Introdução
Diante do crescimento da exposição a diferentes tipos de informações, faz-se necessário
ajudar as pessoas a encontrarem aquilo que procuram e nesse contexto é que surgiram os
sistemas de recomendação. Estes, através de modelagem de dados e aplicação de
algoritmos tentam prever a nota (rating) ou preferência de um usuário a um determinado
item (SHAPIRA, 2011).
Em um problema de recomendação, as principais entidades são o usuário e o item,
onde o objetivo é recomendar os itens com melhores notas aos usuários (TAKAHASHI,
2021). Como exemplo, pode-se citar um indivíduo que deseja comprar um livro. Nesse
caso, os algoritmos podem ser aplicados para analisar o comportamento do comprador e
recomendar um livro que melhor se adeque ao seu perfil, aumentando a probabilidade da
finalização da compra.
De acordo com Gao (2019), os algoritmos comumente utilizados em sistemas de
recomendação de livros podem ser divididos em três categorias: algoritmos de
recomendação baseados em regras de associação; algoritmos de recomendação com base
no conteúdo; e algoritmos de recomendação por filtragem colaborativa, o qual utiliza
usuários com perfis similares para realizar a recomendação. Dentro de tais categorias,
existe uma variedade muito grande de algoritmos, dificultando a escolha pelo mais eficaz
e eficiente a ser aplicado, já que cada um gera diferentes resultados.
No trabalho de Takahashi (2021) o algoritmo baseado em filtragem colaborativa foi
o que apresentou os melhores resultados e, por essa razão, este estudo irá comparar três
algoritmos distintos dessa categoria para identificar qual possui o melhor desempenho ao
aplicá-los em um dataset de livros. Nos capítulos seguintes serão apresentados o
referencial teórico utilizado para a realização deste trabalho, o processo de seleção dos
algoritmos, a preparação da base de dados, os experimentos realizados, quais foram os
resultados obtidos e, por fim, as considerações finais.
2. Referencial Teórico
Para conduzir o embasamento conceitual deste trabalho, os temas que norteiam este
estudo foram escolhidos para síntese em referencial teórico: preparação de dados, eficácia
de algoritmos de classificação para recomendação de livros e algoritmos de
recomendação por filtragem colaborativa.
3. Preparação do experimento
Para definir o dataset a ser trabalhado foram definidos alguns requisitos:
- Possuir riqueza de dados.
- Qualidade de dados (Consistência, completude, estruturação).
- Se encaixar na temática de livros para que o algoritmo pudesse recomendá-los aos
leitores.
Levando em conta os requisitos mencionados, o dataset escolhido foi o goodbooks
10k1, com mais de 900 mil avaliações de livros e 10 mil livros. Para fim de recomendação,
os arquivos de dados utilizados do dataset utilizados foram: books.csv e ratings.csv
O arquivo books.csv conta com os registros de livros, contendo os detalhes de
cada um deles, bem como o id, nome, quantidade e média de avaliações, entre outras
informações que não foram aplicadas neste projeto. Das informações utilizadas, ficaram
as colunas: book_id, title e average_rating, demonstradas na Figura 1.
Já o arquivo ratings.csv possui os registros de avaliação, contendo três colunas:
user_id (identificador único do usuário), book_id (identificador do livro registrado no
books.csv) e rating (avaliação dada ao livro pelo usuário). Na imagem a seguir estão as
colunas utilizadas no arquivo ratings.csv. Nela podemos ver o intervalo de valores das
colunas. A exemplo a coluna rating, que possui um intervalo de valores de 1 a 5.
1
https://www.kaggle.com/zygmunt/goodbooks-10k
Figura 1- https://www.kaggle.com/zygmunt/goodbooks-10k?select=books.csv
Figura 2- https://www.kaggle.com/zygmunt/goodbooks-10k?select=ratings.csv
4. Experimentos
Após a preparação de dados, os experimentos foram conduzidos em fases de seleção,
aplicação e comparação entre algoritmos, e assim definir de forma organizada e sucinta
o cenário da eficácia da temática em questão.
2
https://math.stackexchange.com/questions/169032/understanding-the-imdb-weighted-rating-function-
forusage-on-my-own-website
4.2 Aplicação dos Algoritmos
Com os dados já preparados, os algoritmos de recomendação foram implementados
utilizando a linguagem de programação Python com o auxílio da biblioteca de algoritmos
de recomendação Surprise3.
5. Resultados
Ao aplicar os algoritmos no dataset selecionado, foi possível obter as métricas
representadas nas figuras a seguir.
A Figura 5, demonstra o gráfico de tempo de treinamento, em segundos, dos
algoritmos KNN, SVD e NMF. É possível identificar que o NMF obteve uma maior
agilidade de treinamento, com apenas 3,3 segundos de treinamento, seguido do SVD, com
4,2 segundos, enquanto o KNN foi o mais demorado com 14,3 segundos.
Na figura 6 podemos analisar as métricas MAE (Mean Absolute Error) e RMSE
(Root Mean Squared Error) que representam, respectivamente, a média da diferença
absoluta dos valores preditos dos valores reais e a raiz quadrática da diferença entre eles.
Estas métricas foram utilizadas para avaliar a precisão dos algoritmos em predizer a
avaliação que um leitor daria a um livro. A MAE também foi utilizada para calcular a
nota de corte dos livros considerados para o teste de taxa de acerto.
Como a RMSE possui uma sensibilidade maior a erros mais distantes do valor
original, podemos comparar os algoritmos que tiveram predições mais inconsistentes por
apresentar valores discrepantes do real ao compará-la com a MAE.
A Figura 7 apresenta os resultados do teste de taxa de acerto, nela é perceptível
que o SVD se destacou novamente possuindo uma maior taxa de acerto em praticamente
toda a bateria de testes, em seguida do NMF que apresentou um desempenho mediano se
comparado ao SVD, e por fim o KNN com a pior performance e acurácia dos três.
3
http://surpriselib.com/
Também é perceptível que quanto maior a quantidade de recomendações considerada,
maior a taxa de acerto dos algoritmos.
Figura 6 – valores para as métricas Mean Absolute Error (MAE) e Root Mean
Squared Error (RMSE)
6. Considerações finais
Ao analisar os resultados obtidos, o algoritmo com menor tempo de treinamento foi o
NMF, seguido pelo SVD e, por último, o KNN. Em relação à precisão dos algoritmos ao
predizer a nota que um usuário daria a um livro, o SVD apresentou o melhor resultado,
apesar de o NMF ter se destacado também com uma taxa de precisão bem próxima.
Quanto à taxa de acerto, o algoritmo com melhor desempenho foi o SVD, com
taxa de acerto de até 70% quando aplicado no contexto de usuários com mais de 80
avaliações de livros. O NMF tem um desempenho próximo ao SVD em usuários com
poucas avaliações, mas se distancia conforme o número de avaliações aumenta. Já o KNN
começa com a taxa de acerto próxima de 0, se recupera quando a quantidade de avaliações
é mais alta, mas ainda tem um desempenho inferior aos outros dois algoritmos.
Referências
FREIRE, Mauricio Noris; DE CASTRO, Leandro Nunes. A Framework for e-
Recruitment Recommender Systems. In: International Conference on Artificial
Intelligence and Soft Computing. Springer, Cham, 2020. p. 165-175.
GAO, Yuhe. Research on book personalized recommendation method based on
collaborative filtering algorithm. In: IOP Conference Series: Earth and Environmental
Science. IOP Publishing, 2019. p. 052099.
GOODBOOKS-10K, Kaggle. Ten Thousand Books, One Million Ratings.
Disponível em: Https://Www.Kaggle.Com/Zygmunt/Goodbooks- 10k. /. Acesso em: 08
nov. 2021.
HERRLOCKER, J.; KONSTAN, J. Evaluating collaborative filtering
recommender systems. ACM Trans. Inf. Syst, v. 22, n. 1, p. 5-53, 2004.
HUG, Nicolas. Surprise: a python scikit for recommender systems. A Python
Scikit For Recommender Systems. Disponível em: http://surpriselib.com/. Acesso em: 06
dez. 2021.
JIAO, Jiangli. A novel learning rate function and its application on the SVD++
recommendation algorithm. IEEE Access, v. 8, p. 14112-14122, 2019
KOREN, Yehuda; BELL, Robert; VOLINSKY, Chris. Matrix factorization
techniques for recommender systems. Computer, v. 42, n. 8, p. 30-37, 2009.
MINDS, C. What are today’s top recommendation engine algorithms? Disponível
em:https://itnext.io/what-are-the-top-recommendation-engine-algorithms-used-
nowadays-646f588ce639. /. Acesso em: 08 nov. 2021.
NG, Yiu-Kai. CBRec: a book recommendation system for children using the
matrix factorisation and content-based filtering approaches. International Journal of
Business Intelligence and Data Mining, v. 16, n. 2, p. 129-149, 2020.
OLIVEIRA, Elias. Avaliação do desempenho do algoritmo ML-kNN em
classificação de textos livres de atividades econômicas. In: Companion Proceedings of
the XIV Brazilian Symposium on Multimedia and the Web. 2008. p. 384-386.
PEREIRA FILHO, João Bosco A. Um algoritmo de filtragem colaborativa
baseado em SVD. 2012.
RICCI, Francesco; ROKACH, Lior; SHAPIRA, Bracha. Introduction to
recommender systems handbook. In: Recommender systems handbook. Springer,
Boston, MA, 2011. p. 1-35.
TAKAHASHI, Marcos M.; HIRATA JR, Roberto. Estudo comparativo de
Algoritmos de Recomendação. Universidade de São Paulo, 2015.
WANG, Juan; YUE-XIN, Lan; CHUN-YING, Wu. Survey of recommendation
based on collaborative filtering. In: Journal of Physics: Conference Series. IOP
Publishing, 2019.
ZHANG, Zhong-Yuan. Nonnegative matrix factorization: models, algorithms and
applications. Data mining: foundations and intelligent paradigms, p. 99-134, 2012.