˜ ˜ 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: