Table Of Content˜ ˜
PROPOSTA E AVALIAC¸AO DE UM ALGORITMO PARA RECOMENDAC¸AO
˜
DE JOGOS BASEADO EM DIFUSAO EM REDES SOCIAIS
Gabriel Augusto Amim Sab
Projeto de Graduac¸˜ao apresentado ao Curso
de Computa¸ca˜o e Informa¸ca˜o da Escola
Polit´ecnica da Universidade Federal do Rio de
Janeiro como parte dos requisitos necessa´rios
para a obten¸ca˜o do grau de Engenheiro de
Computa¸ca˜o e Informa¸c˜ao.
Orientador: Daniel Ratton Figueiredo
Rio de Janeiro
Janeiro de 2017
˜ ˜
PROPOSTA E AVALIAC¸AO DE UM ALGORITMO PARA RECOMENDAC¸AO
˜
DE JOGOS BASEADO EM DIFUSAO EM REDES SOCIAIS
Gabriel Augusto Amim Sab
PROJETO SUBMETIDO AO CORPO DOCENTE DO CURSO DE
˜ ˜ ´
COMPUTAC¸AO E INFORMAC¸AO DA ESCOLA POLITECNICA DA
UNIVERSIDADE FEDERAL DO RIO DE JANEIRO COMO PARTE
´ ˜
DOS REQUISITOS NECESSARIOS PARA A OBTENC¸AO DO GRAU DE
˜ ˜
ENGENHEIRO DE COMPUTAC¸AO E INFORMAC¸AO.
Examinadores:
Prof. Daniel Ratton Figueiredo, Dr.
Prof. Ricardo Guerra Marroquim, Dr.
Prof. Carlos Eduardo R. de Mello, Dr.
RIO DE JANEIRO, RJ – BRASIL
JANEIRO DE 2017
Augusto Amim Sab, Gabriel
Proposta e avalia¸c˜ao de um algoritmo para
recomenda¸ca˜o de jogos baseado em difusa˜o em redes
sociais/Gabriel Augusto Amim Sab. – Rio de Janeiro:
UFRJ/POLI – COPPE, 2017.
X, 55 p.: il.; 29,7cm.
Orientador: Daniel Ratton Figueiredo
Projeto(gradua¸ca˜o)–UFRJ/EscolaPolit´ecnica/Curso
de Computa¸ca˜o e Informa¸ca˜o, 2017.
Referˆencias Bibliogra´ficas: p. 54 – 55.
1. Steam. 2. Jogos. 3. Recomendac¸˜ao. 4.
Sistemas de Recomenda¸ca˜o. 5. Grafos. 6. Redes.
7. Redes Complexas. 8. Filtragem colaborativa. I.
Ratton Figueiredo, Daniel. II. Universidade Federal do
Rio de Janeiro, Escola Polit´ecnica/ Curso de Computa¸ca˜o
e Informa¸ca˜o. III. T´ıtulo.
iii
Agradecimentos
Agrade¸co`aminhama˜e, peloconstanteapoioemocionaleporsuainfinitadedicac¸˜aoe
`
seu imenso amor. A minha irma˜, por frequentemente me fazer pensar sobre aspectos
que havia ignorado ou com os quais ainda na˜o havia tido contato. Ao meu pai,
por sempre me lembrar da grande importaˆncia de na˜o deixar o desejo pelo prazer
momentaˆneodesviarofocododesenvolvimentointelectual. Agrade¸coameusamigos
e familiares, pelos momentos descontra´ıdos e alegres, sem os quais a vida seria muito
mais dif´ıcil e sem gra¸ca.
Agrade¸co a todos os professores com os quais tive contato durante o curso, por
seus ensinamentos e sua dedicac¸˜ao `a educa¸ca˜o. Aos colegas de curso, especialmente
aos amigos Rafael Cardoso e Rafael Rozendo, por proporcionarem trocas valiosas de
conhecimento e me ajudarem na trajet´oria universit´aria. Aos funcion´arios da Escola
Polit´ecnica e terceirizados, por manterem a institui¸ca˜o em funcionamento apesar
das constantes dificuldades.
Por fim, agrade¸co a Giulio Iacobelli, por toda a ajuda oferecida na concep¸ca˜o do
projeto, e ao professor Daniel Figueiredo por todos seus ensinamentos, seu incentivo,
sua dedica¸ca˜o e sua orienta¸ca˜o.
iv
Resumo do Projeto de Graduac¸˜ao apresentado a` Escola Polit´ecnica/COPPE/UFRJ
como parte dos requisitos necess´arios para a obtenc¸˜ao do grau de Engenheiro de
Computa¸ca˜o e Informa¸ca˜o.
PROPOSTA E AVALIAC¸A˜O DE UM ALGORITMO PARA
RECOMENDAC¸A˜O DE JOGOS BASEADO EM DIFUSA˜O EM
REDES SOCIAIS
Gabriel Augusto Amim Sab
Janeiro/2017
Orientador: Daniel Ratton Figueiredo
Curso: Engenharia de Computac¸˜ao e Informa¸c˜ao
A atual ubiquidade da Internet em nossas vidas veio acompanhada de um au-
mento na oferta de produtos e servi¸cos por meio da web e, consequentemente, de
um aumento do nu´mero de possibilidades de escolha do consumidor. Com isso,
fazem-se necessa´rios sistemas que facilitem o processo de decis˜ao de forma a tornar
a experiˆencia de consumo mais simples e satisfato´ria. Sistemas de recomenda¸ca˜o
tˆem o papel de inferir, por meio de algoritmos e ferramentas de software, se um ou
mais determinados itens s˜ao recomendados para um dado usua´rio com base em in-
forma¸co˜es sobre o comportamento do mesmo e de outros usua´rios e/ou informa¸c˜oes
a respeito dos itens que consumiu no passado. Este trabalho propo˜e e avalia um
processo recursivo e iterativo para recomenda¸ca˜o de jogos a usu´arios do Steam com
base em seus tempos de jogo e na rede formada pelos usua´rios e pelas amizades entre
eles.
Palavras-Chave: Steam, Jogos, Recomenda¸c˜ao, Sistemas de Recomenda¸ca˜o,
Grafos, Redes, Redes Complexas, Filtragem colaborativa.
v
AbstractoftheUndergraduateProjectpresentedtoPoli/COPPE/UFRJasapartial
fulfillmentoftherequirementsforthedegreeofComputerandInformationEngineer.
PROPOSAL AND EVALUATION OF AN ALGORITHM FOR
GAMES RECOMMENDATION BASED ON INFORMATION
DIFFUSION IN SOCIAL NETWORKS
Gabriel Augusto Amim Sab
January/2017
Advisor: Daniel Ratton Figueiredo
Course: Computer and Information Engineering
The ubiquity of the Internet in our lives has led to an increase in the number
of products and services offered online and, therefore, to an increase in the number
of choices with which a consumer is faced. Hence, there is a need for systems that
reduce the difficulty in making decisions, so that the user experience is simpler and
more satisfying. Recommendation systems have the goal of inferring, via algorithms
and software tools, if one or more certain items are recommended to a given user,
based on information about said user’s and other users’ behaviours, as well as infor-
mation about the items with which the user has previously had contact. This work
proposes and evaluates a recursive and iterative process to recommend games to
Steam users based on their playtimes and on the network formed by the platform’s
users and their friendships.
Keywords: Steam, Games, Recommendation, Recommendation Systems,
Graph, Network Science, Collaborative filtering.
vi
Sum´ario
Lista de Figuras ix
Lista de Tabelas x
1 Introdu¸c˜ao 1
1.1 T´ecnicas de recomendac¸˜ao . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.1 Baseada em conteu´do . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.2 Colaborativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.3 Demogr´afica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.4 Baseada em conhecimento . . . . . . . . . . . . . . . . . . . . 3
1.1.5 Baseada em comunidades . . . . . . . . . . . . . . . . . . . . 3
1.1.6 H´ıbrida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Motiva¸c˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 A t´ecnica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.5 Estrutura¸ca˜o do documento . . . . . . . . . . . . . . . . . . . . . . . 7
2 Trabalhos Relacionados 8
2.1 NextVideoGame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.1 O m´etodo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.2 Avalia¸ca˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.2 TrustWalker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.1 O m´etodo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.2 Avalia¸ca˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3 FilmTrust . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3.1 O m´etodo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3.2 Avalia¸ca˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4 Graph-based RS for Digital Library . . . . . . . . . . . . . . . . . . . 16
2.4.1 O m´etodo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4.2 Avalia¸ca˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
vii
3 Algoritmo proposto 20
3.1 Explica¸ca˜o detalhada . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1.1 Tempos de jogo . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.1.2 Medida de similaridade entre usua´rios . . . . . . . . . . . . . . 21
3.1.3 Loop principal . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.1.4 Condi¸c˜ao de parada . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2 Pseudoco´digo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2.1 Complexidade . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.3 Implementac¸˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4 Avalia¸c˜ao 33
4.1 Dados coletados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.1.1 Tecnologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.1.2 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.1.3 Nu´meros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.2 Metodologia de avalia¸ca˜o . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.3 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.3.1 Compara¸c˜ao de m´etodos . . . . . . . . . . . . . . . . . . . . . 41
4.3.2 An´alise de robustez . . . . . . . . . . . . . . . . . . . . . . . . 44
5 Conclus˜ao e Trabalhos Futuros 51
5.1 Conclusa˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
5.2 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.2.1 Maior abrangˆencia . . . . . . . . . . . . . . . . . . . . . . . . 52
5.2.2 Influˆencia das similaridades . . . . . . . . . . . . . . . . . . . 52
5.2.3 Complexidade . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.2.4 Utilizar correlac¸˜ao . . . . . . . . . . . . . . . . . . . . . . . . 53
5.2.5 Tempos de jogo recentes . . . . . . . . . . . . . . . . . . . . . 53
5.2.6 Mais compara¸co˜es . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.2.7 Influˆencia de outros jogos . . . . . . . . . . . . . . . . . . . . 53
Referˆencias Bibliogr´aficas 54
viii
Lista de Figuras
1.1 Diagrama de exemplo de valores iniciais . . . . . . . . . . . . . . . . 6
2.1 Exemplo de grafo de duas camadas simplificado . . . . . . . . . . . . 17
3.1 CCDF dos valores de similaridade de gˆenero . . . . . . . . . . . . . . 22
3.2 CCDF dos valores de similaridade de jogos . . . . . . . . . . . . . . . 25
3.3 CCDF dos valores de similaridade de jogos em escala semilog . . . . 26
3.4 Rede de exemplo - Estado inicial . . . . . . . . . . . . . . . . . . . . 28
3.5 Rede de exemplo - Estado ap´os uma itera¸c˜ao . . . . . . . . . . . . . . 28
3.6 Rede de exemplo - Estado ap´os duas itera¸c˜oes . . . . . . . . . . . . . 29
3.7 Rede de exemplo - Estado ap´os trˆes itera¸c˜oes . . . . . . . . . . . . . . 29
3.8 Rede de exemplo - Estado final . . . . . . . . . . . . . . . . . . . . . 30
4.1 Gr´afico de distribui¸c˜ao de graus da rede coletada, em escala log-log . . 34
4.2 Gr´afico de distribui¸c˜ao de graus da rede coletada . . . . . . . . . . . . 35
4.3 Gr´afico de dispers˜ao das diferen¸cas percentuais e valores de correla¸c˜ao 43
4.4 Gr´afico de robustez `a retirada de valores de tempo de jogo (Awesome-
nauts) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.5 Gr´afico de robustez `a retirada de valores de tempo de jogo (CS:GO) . 45
4.6 Gr´afico de robustez `a retirada de valores de tempo de jogo (DOTA 2) 46
4.7 Gr´afico de robustez `a retirada de valores de tempo de jogo (Brawlhalla) 47
4.8 Gr´afico de robustez `a retirada de valores de tempo de jogo (Call of
Duty: Black Ops 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.9 Gr´afico de robustez `a retirada de valores de tempo de jogo (Grand
Theft Auto V) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.10 Gr´afico de robustez `a retirada de valores de tempo de jogo (Border-
lands 2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.11 Gr´afico de robustez `a retirada de valores de tempo de jogo (Game of
Thrones) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.12 Gr´afico de robustez `a retirada de valores de tempo de jogo (Golf With
Your Friends) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
ix
Lista de Tabelas
4.1 Tabela de valores de correla¸ca˜o de tempo de jogo entre vizinhos para
diferentes jogos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.2 Tabela de m´edias de tempo de jogo e desvios padro˜es para diferentes
jogos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.3 Tabela de valores de RMSE por jogo . . . . . . . . . . . . . . . . . . 41
x
Description:recomendaç˜ao de jogos baseado em difus˜ao em redes Palavras-Chave: Steam, Jogos, Recomendaç˜ao, Sistemas de Recomendaç˜ao, .. No âmbito de jogos eletrônicos para computador, a maior plataforma de vendas. 4