Dissertação
Transcrição
Dissertação
MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO DEPARTAMENTO DE CIÊNCIA E TECNOLOGIA INSTITUTO MILITAR DE ENGENHARIA CURSO DE MESTRADO EM SISTEMAS E COMPUTAÇÃO ANTONIO FELIPE PODGORSKI BEZERRA METODOLOGIA BAUS: UMA ABORDAGEM SOCIAL PARA O PROBLEMA DE COLD-START EM SISTEMAS DE RECOMENDAÇÃO BASEADA NA EXTRAÇÃO E ANÁLISE DE RECURSOS WEB Rio de Janeiro 2015 INSTITUTO MILITAR DE ENGENHARIA ANTONIO FELIPE PODGORSKI BEZERRA METODOLOGIA BAUS: UMA ABORDAGEM SOCIAL PARA O PROBLEMA DE COLD-START EM SISTEMAS DE RECOMENDAÇÃO BASEADA NA EXTRAÇÃO E ANÁLISE DE RECURSOS WEB Dissertação de Mestrado apresentada ao Curso de Mestrado em Sistemas e Computação do Instituto Militar de Engenharia, como requisito parcial para obtenção do título de Mestre em Sistemas e Computação. Orientador: Prof. Julio Cesar Duarte - D.Sc., Rio de Janeiro 2015 c2015 INSTITUTO MILITAR DE ENGENHARIA Praça General Tibúrcio, 80-Praia Vermelha Rio de Janeiro-RJ CEP 22290-270 Este exemplar é de propriedade do Instituto Militar de Engenharia, que poderá incluí-lo em base de dados, armazenar em computador, microfilmar ou adotar qualquer forma de arquivamento. É permitida a menção, reprodução parcial ou integral e a transmissão entre bibliotecas deste trabalho, sem modificação de seu texto, em qualquer meio que esteja ou venha a ser fixado, para pesquisa acadêmica, comentários e citações, desde que sem finalidade comercial e que seja feita a referência bibliográfica completa. Os conceitos expressos neste trabalho são de responsabilidade do autor e do orientador. 005.1 S586p Bezerra, Antonio Felipe Podgorski Metodologia Baus: uma Abordagem Social para o Problema de Cold-Start em Sistemas de Recomendação Baseada na Extração e Análise de Recursos Web/ Antonio Felipe Podgorski Bezerra, orientado por Julio Cesar Duarte. – Rio de Janeiro: Instituto Militar de Engenharia, 2015. 123p.: il. Dissertação (mestrado) – Instituto Militar de Engenharia – Rio de Janeiro, 2015. 1. Curso de Sistemas e computação - teses e dissertações 2. Sistemas de Recomendação. 3. Cold-start. I. Duarte, Julio Cesar. II. Título. III. Instituto Militar de Engenharia. CDD 005.1 2 INSTITUTO MILITAR DE ENGENHARIA ANTONIO FELIPE PODGORSKI BEZERRA METODOLOGIA BAUS: UMA ABORDAGEM SOCIAL PARA O PROBLEMA DE COLD-START EM SISTEMAS DE RECOMENDAÇÃO BASEADA NA EXTRAÇÃO E ANÁLISE DE RECURSOS WEB Dissertação de Mestrado apresentada ao Curso de Mestrado em Sistemas e Computação do Instituto Militar de Engenharia, como requisito parcial para obtenção do título de Mestre em Sistemas e Computação. Orientador: Prof. Julio Cesar Duarte - D.Sc., Aprovada em 23 de Fevereiro de 2015 pela seguinte Banca Examinadora: Prof. Julio Cesar Duarte - D.Sc., do IME - Presidente Prof. Claudia Marcela Justel - D.Sc., do IME Prof. Marley Maria Bernardes Rebuzzi Vellasco - D.Sc., da PUC-Rio Rio de Janeiro 2015 3 SUMÁRIO LISTA DE ILUSTRAÇÕES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 LISTA DE TABELAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 LISTA DE ABREVIATURAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.2 Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.3 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.4 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.5 Estrutura da Dissertação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2 SISTEMAS DE RECOMENDAÇÃO E A WEB . . . . . . . . . . . . . . . . . . 18 2.0.1 Fenômeno da Cauda Longa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.1 Técnicas Clássicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2 Filtragem Colaborativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.2.1 Usuário-usuário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.2.2 Item-item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.2.3 Problemas Conhecidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.2.3.1 Cold-Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.3 Explorando Domínios Cruzados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.4 Sobrecarga Informativa (Information Overload ) . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.4.1 Novas Experiências Sociais na Web 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3 ESTADO DA ARTE EM TRABALHOS RELACIONADOS AO PROBLEMA DE COLD-START . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.1 Trabalhos na Área . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.2 Trabalhos Multi-Domínio Relacionados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 4 METODOLOGIA BAUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.1 Recursos Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.1.1 Recursos Estruturados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4 4.1.2 Recursos Não-Estruturados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.2 Núcleo de Processamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.2.1 Módulo de Busca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.2.2 Módulo de Estruturação de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.2.3 Módulo de Pré-processamento e Análise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.3 Composição dos Modelos de Usuários Sociais . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.4 Recomendando Itens do tipo Cold-Start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 5 MELHORANDO A RECOMENDAÇÃO DE ITENS COLD-START EM UM AMBIENTE DE FILMES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 5.1 Módulo de Estruturação de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 5.1.1 Leiaute do Item Semente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5.1.2 Leiaute do Modelo Usuário Social . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 5.2 Módulo de Busca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 5.2.1 Túnel de Conexão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 5.2.2 Pool de Controle de Requisição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 5.3 Módulo de Pré-Processamento e Análise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.3.1 Pré-Processamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 5.3.2 Análise de Sentimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 5.3.3 Análise do Conteúdo e Associação ao Item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 6 EXPERIMENTOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 6.1 Criando os Cenários . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 6.1.1 Cenário Estruturado: Movielens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 6.1.2 Cenário estruturado: lançamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 6.1.3 Cenário Estruturado: Lançamentos-Agrupados . . . . . . . . . . . . . . . . . . . . . . . . . . 64 6.1.4 Cenário Não-Estruturado: Simulação Rede Social . . . . . . . . . . . . . . . . . . . . . . . . 64 6.2 Algoritmo de Recomendação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 6.3 Ambiente de Experimentação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 6.3.1 Ambientes Criados para Predição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 6.3.1.1 Pior Caso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 6.3.1.2 Melhor Caso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 6.3.1.3 Caso Metodológico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 6.3.2 Ambientes Criados para Recomendação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 5 6.3.2.1 Caso Randômico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 6.3.2.2 Caso Metodológico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 6.3.3 Tamanho dos Modelos Sociais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 6.4 Avaliação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 6.4.1 RMSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 6.4.2 RMSE-GAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 6.4.3 F1-Score . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 6.5 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 6.5.1 Predição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 6.5.2 Recomendação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 6.5.3 Predição X Recomendação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 6.5.4 Influência no Tamanho dos Modelos de Usuários Sociais . . . . . . . . . . . . . . . . . . 86 7 8 CONCLUSÕES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 REFERÊNCIAS BIBLIOGRÁFICAS 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 LISTA DE ILUSTRAÇÕES FIG.2.1 Fenômeno da cauda longa, adaptado de (KELLY, 2012) . . . . . . . . . . . . . . 18 FIG.2.2 Exploração do conhecimento na recomendação de domínios cruzados, adaptado de (CANTADOR, 2014). . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 FIG.2.3 Tomada de decisão a respeito das informações recebidas, adaptado de (CANN, 2011) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 FIG.2.4 Pesquisas e oportunidades na sobrecarga social . . . . . . . . . . . . . . . . . . . . . . 30 FIG.3.1 Particionamento vertical do conjunto de dados para a criação dos domínios, adaptado de (BERKOVSKY, 2007). . . . . . . . . . . . . . . . . . . . . . 33 FIG.3.2 Processando Linking Open Data para recomendações colaborativas, adaptado de (HEITMANN, 2010). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 FIG.4.1 Núcleo de processamento da metodologia Baus . . . . . . . . . . . . . . . . . . . . . . 40 FIG.4.2 Módulos auxiliares ao módulo de busca . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 FIG.4.3 Visão geral do fluxo geral dos processos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 FIG.4.4 Interseção de itens entre os domínios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 FIG.5.1 Tratamento de requisições por usuário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 FIG.5.2 Controle geral de requisições . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 FIG.6.1 Visão geral do fluxo para criação do conjunto de dados. . . . . . . . . . . . . . . 63 FIG.6.2 Cenário não-estruturado simulado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 FIG.6.3 Pior caso: divisão das avaliações entre o conjunto de dados de treino e teste. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 FIG.6.4 Melhor caso: divisão das avaliações entre o conjunto de dados de treino e teste. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 FIG.6.5 Caso metodológico: divisão das avaliações entre o conjunto de dados de treino e teste. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 FIG.6.6 RMSE-GAP das hipóteses propostas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 FIG.6.7 Performance por top-n, movielens (item-item). . . . . . . . . . . . . . . . . . . . . . . 83 FIG.6.8 RMSE em relação ao tamanho dos modelos de usuários sociais. FIG.6.9 F1-score em relação ao tamanho dos modelos de usuários sociais. . . . . . . 88 7 . . . . . . . 87 LISTA DE TABELAS TAB.2.1 Comparativo entre sistemas de recomendação clássicos, adaptado de (BURKE, 2007). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 TAB.2.2 Matriz usuário-item com as respectivas avaliações de cada usuário. . . . . 21 TAB.6.1 Movielens: itens considerados como cold-start e o total de modelos de usuários sociais criados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TAB.6.2 Lançamentos: itens considerados como cold-start e o total de modelos de usuários sociais criados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TAB.6.3 .................................. 64 Parametrização dos algoritmos utilizados para a execução dos experimentos nesta implementação. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TAB.6.5 63 Distribuição dos meses agrupados e total de usuários elegíveis com o mínimo de itens em cold-start TAB.6.4 62 68 Cenário estruturado: movielens - resultados das hipóteses RMSEGAP por intervalo de tempo, utilizando o algoritmo base-usuárioitem. TAB.6.6 ......................................................... 77 Cenário estruturado: lançamentos - resultados das hipóteses RMSEGAP por intervalo de tempo, utilizando o algoritmo base-usuárioitem. TAB.6.7 ......................................................... 78 RMSE-GAP obtido nos cenários utilizando os algoritmos com as abordagens usuário-usuário, item-item e base-usuário-item e seus percentuais de melhora em relação à situação de cold-start . . . . . . . . . . . TAB.6.8 Cenário movielens - f1-score da recomendação top-3 respectivo ao intervalo de tempo de 2006 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . TAB.6.9 79 81 F1-score médio no experimento exp10+. . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 TAB.6.10 F1-score médio no experimento exp20+. . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 TAB.6.11 Percentual de melhora dos experimentos exp10+ em relação ao ambiente randômico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 TAB.6.12 Percentual de melhora dos experimentos exp20+ em relação ao ambiente randômico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 TAB.6.13 RMSE-GAP obtido nos cenários exp10+ e exp20+, utilizando os algoritmos com as abordagens usuário-usuário, base-usuário-item e seus percentuais de melhora em relação à situação de cold-start. 8 ...... 85 TAB.6.14 Melhora percentual obtida nos cenários exp10+ e exp20+, utilizando os algoritmos com as abordagens usuário-usuário, baseusuário-item e seus percentuais de melhora em relação à situação de cold-start. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 TAB.6.15 Movielens - quantidade de modelos de usuários sociais e cobertura de filmes em relação à quantidade de itens avaliados por modelo. . . . . . . 86 TAB.6.16 Lançamentos - quantidade de modelos de usuários sociais e cobertura de filmes em relação quantidade de itens avaliados por modelo. . . . 9 87 LISTA DE ABREVIATURAS API - Application Programming Interface DOM - Document Object Model FC - Filtragem Colaborativa (Collaborative Filtering) HTML - HyperText Markup Language IP - Internet Protocol IME - Instituto Militar de Engenharia JSON - JavaScript Object Notation LOD - Linking Open Data MAE - Mean Absolute Error MAP - Mean Average Precision NMAE - Normalized Mean Absolute Error NLTK - Natural Language Toolkit PLN - Processamento de Linguagem Natural RDF - Resource Description Framework RMSE - Root Mean Square Error SPARQL - SPARQL Protocol and RDF Query Language WOW - Word-of-Mouth WWW - World Wide Web XML - eXtensible Markup Language 10 RESUMO Em geral, um sistema de recomendação apoia pessoas na realização de escolhas entre diversas alternativas apresentadas, tentando maximizar as possibilidades de encontrar informações interessantes e valiosas que possam ajudar em sua tomada de decisão. Nos últimos anos, é claramente observado que a informação na web está crescendo exponencialmente, principalmente a partir de interações sociais, gerando uma sobrecarga informativa. No entanto, esta sobrecarga é proveniente de fontes heterogêneas e a forma como elas estão estruturadas fazem a sua extração e análise um processo complexo, motivando, dessa forma, diversas áreas de pesquisa atualmente ativas neste tema. Neste estudo é apresentada a metodologia Baus. Esta metodologia é focada em uma abordagem social que possibilita utilizar o conhecimento proveniente de diferentes recursos web para expandir a matriz usuário-item, utilizada em sistemas de recomendação que empregam a técnica conhecida por filtragem colaborativa (FC), e melhorar o seu desempenho, tornando suas recomendações mais precisas em relação a itens em situação de cold-start, problema comumente observado em sistemas de recomendação baseados em FC. Tendo como motivação a sobrecarga informativa e o contexto limitado, no qual os sistemas de recomendação clássicos atuam, a abordagem metodológica proposta utiliza estas informações para criar modelos de usuários sociais, sem interferir na privacidade dos usuários que colaboram para a construção dos modelos, e expandir a matriz original. Este processo pode ser utilizado de igual maneira para melhorar a performance em sistemas de recomendação que possuam poucas avaliações em sua base de dados. Em um cenário real, os resultados observados nos experimentos demonstraram uma melhora na qualidade das predições e recomendações de itens em situação de cold-start, em torno de 70% e 119% respectivamente, se comparadas aos métodos clássicos de FC. 11 ABSTRACT In general, a recommender system helps people perform choices between several alternatives presented, in order to maximize the possibility of finding interesting and valuable information that may help on the decision making process. In the past few years, it has been clearly observed that the information on the web is growing exponentially, mainly from social interactions, creating an information overload. However, such overload is originated from heterogeneous sources and the way they are structured makes its extraction and analysis a complex process, motivating the interest on many research fields currently active in this theme. We present the Baus methodology in this work. Such methodology is focused in a social approach that allows the use of knowledge originated from different web resources to expand the user-item matrix, used in recommender systems based in a technique known by collaborative filtering (CF) and enhance its performance, making the recommendations more accurate in cold-start situations, a problem commonly observed in recommendation systems based in CF. By having as motivation, the information overload and the limited context in which classic recommendation systems work, the proposed methodological approach uses this information to create models of social users, without interfering with the privacy of users who collaborate with the design of these models, that expand the original matrix. This process may be employed in the same way to improve the performance of recommender systems containing a small number of reviews in its database. In a real case scenario, the observed results in the experiment showed an improvement in the quality of the predictions and recommendations of items in cold-start situations of about 70% and 119%, respectively, when compared to the classic CF methods. 12 1 INTRODUÇÃO Qual o próximo livro eu devo ler? Será que este smartphone realmente atenderá minhas expectativas? Vale a pena ir ao cinema para ver aquele filme que acabou de entrar em cartaz? Perguntas como essas fazem parte de nosso dia a dia. Nessas tomadas de decisão, sofremos influências interpessoais baseadas nas relações sociais (FISKE, 1992), onde podemos observar este fenômeno claramente no "boca a boca", word-of-mouth (WOW), termo utilizado por William Whyte, em um artigo publicado na revista Fortune de 1954 (KIMMEL, 2012). O WOW é uma comunicação de natureza mais informal, baseada geralmente nos laços de amizades, em que uma das partes possui certo conhecimento prévio a respeito de algo, e a partir de sua opinião gera uma predisposição em quem recebe a informação, sendo uma importante fonte de influência para escolhas de produtos e decisões de compra, além de seu potencial de rápido alcance a múltiplas pessoas. Os primeiros sistemas de recomendação computacionais surgiram na década de 90 (GOLDBERG, 1992), com o objetivo de automatizar este processo de recomendação, auxiliar as pessoas a escolher entre as diversas alternativas apresentadas, e maximizar a possibilidade de uma pessoa encontrar informações interessantes e valiosas para apoiar sua tomada de decisão. Segundo (SIGROHA, 2012), o objetivo de um sistema de recomendação é gerar sugestões sobre novos itens ou prever a utilidade de um item específico para um determinado usuário. Em paralelo, é claramente observado que, nos dias atuais, há uma sobrecarga informativa na web, principalmente provenientes de interações sociais. O valor existente neste novo ambiente web é imensurável, porém sua forma heterogênea, volátil e descentralizada torna a sua extração e análise um processo complexo. Esforços focados neste problema, novas linhas de pesquisas e o interesse de diversas expertises demonstram o quão relevante e vasto é este assunto. Segundo (SU, 2009), todo sistema de recomendação tem suas limitações e problemas conhecidos. E este potencial informativo da web e contexto social envolvido são extremamente relevantes para melhorar sistemas de recomendação clássicos (BORCHERS, 1998). Nesse contexto, muitos pesquisadores têm proposto sistemas de recomendação personalizados, baseados em ambientes sociais (ZHOU, 2012) utilizando técnicas baseadas em 13 marcações (tag-based ), baseadas em contexto (context-based ), baseadas em influências sociais (social influence-based ) e baseadas em confiança ( trust-based) (KEIKHA, 2013). 1.1 MOTIVAÇÃO Os sistemas de recomendação clássicos tratam os usuários em um contexto isolado, no qual suas interações se resumem ao ambiente controlado de um determinado sistema a qual essas recomendações são realizadas. Tal realidade se mostrou funcional desde quando a mesma foi proposta, na década de 90. Em paralelo, a evolução da web, possibilitou novas formas de interação com usuários, interoperabilidade entre sistemas, e como consequência, atualmente pode-se observar uma sobrecarga informativa. Este novo cenário tornou possível vislumbrar outras formas de sistemas de recomendação que levem em consideração novos aspectos e a possibilidade de lidar com alguns problemas conhecidos dos sistemas de recomendação clássicos. Um problema recorrente em sistemas de recomendação que utilizam a técnica de FC é o de cold-start, situação observada na entrada de novos usuários ou itens. Em relação a um novo item ou itens antigos que são impopulares neste sistema, é necessário que este item comece a receber uma quantidade substancial de interações de seus usuários para que o sistema passe a ter condições de recomendá-lo para os demais usuários, e esse intervalo de tempo gera um hiato que impossibilita por muitas vezes o sistema de recomendar para seus usuários estes novos itens que acabaram de entrar no sistema. Outro ponto importante concerne a privacidade e a proteção dos dados. Atualmente, é possível realizar acesso a diversos sistemas com a autenticação integrada através de redes sociais, e diversas informações a respeito deste usuário podem ser coletadas a fim de melhorar o sistema de recomendação no qual o usuário está utilizando. Estas novas maneiras de adquirir conhecimento deixam uma questão em aberto, qual é o limite entre o público e privado? É possível observar um desafio: como conseguir que novos sistemas se beneficiem desta sobrecarga informativa e por outro lado não haja uma exposição demasiada deste usuário. Como manter a privacidade e possibilitar a absorção deste conteúdo é um tema que possibilita vastas abordagens e abre precedente para novas técnicas que não sejam tão evasivas para gerar conhecimento através deste conteúdo. 14 1.2 OBJETIVO O objetivo principal deste trabalho é apresentar a metodologia Baus, uma abordagem social para extração e análise desta sobrecarga informativa proveniente de diferentes recursos web, que tem como finalidade gerar conhecimento através da criação de modelos de usuários sociais, sem interferir na privacidade dos usuários reais que colaboram na construção destes modelos, e então aplicá-los em sistemas de recomendação clássicos baseados em FC e avaliar os resultados nas abordagens usuário-usuário, item-item e base-usuário-item. Este trabalho espera gerar as seguintes contribuições: • Conceitualizar e implementar a metodologia proposta neste trabalho; • Instanciar e validar sua implementação em diferentes cenários de filmes; • Construir bases estendidas com os modelos de usuários sociais. Tendo em vista a dificuldade em trabalhar com dados atuais em domínios cruzados, é pretendido, com esta metodologia, permitir a coleta de dados recentes, provenientes de diferentes fontes, de forma a auxiliar outras pesquisas e não depender somente de conjuntos de dados de natureza estática. 1.3 JUSTIFICATIVA Em um sistema de recomendação baseado em FC, quando um novo item é inserido faz-se necessário que este receba um número suficiente de interações para que consiga ser recomendado, problema conhecido na literatura como cold-start, sendo também observado em itens impopulares. Este trabalho estuda a aplicação de uma abordagem social que permita reduzir o intervalo de tempo necessário para que estes itens passem a ser recomendados, aliviando o problema de cold-start e melhorando a performance em questão. Na literatura recente, diferentes abordagens foram propostas para aliviar a situação de cold-start. Algumas abordagens utilizam o conceito de domínios cruzados. Este conceito busca aumentar a capacidade do domínio principal em realizar recomendações mais assertivas, explorando o conhecimento oriundo de domínios auxiliares. (BERKOVSKY, 2007) foi um dos primeiros trabalhos a apresentar este conceito, no qual demonstrou-se a possibilidade em utilizar o conhecimento de um mesmo usuário, visto a existência deste em ambos domínios, para melhorar a performance da predição. 15 (SHI, 2011), (ENRICH, 2013), (FERNÁNDEZ-TOBÍAS, 2014) utilizaram o mesmo conceito de domínios cruzados, porém a interseção entre os domínios foi realizada através das tags, não havendo necessidade do usuário estar em ambos. Tags são palavras-chave – termos associados a uma informação que utilizam um caractere específico para sua identificação. Ainda utilizando a abordagem de domínios cruzados, (HEITMANN, 2010) apresentou uma proposta diferente, adotando esta abordagem em conjunto com a web semântica. Os dados estruturados provenientes do RDF serviram para adquirir conhecimento, em que as relações usuário-item auxiliaram a interconexão entre os domínios, possibilitando assim a transferência de conhecimento entre o domínio principal e auxiliar. (SEDHAIN, 2014) apresentou uma abordagem baseada em dados demográficos do usuário, como: idade, localidade, e informações provenientes de redes sociais, assim como amigos e páginas curtidas pelo usuário neste ambiente. A partir destas informações foram criadas matrizes auxiliares, o que possibilitou recomendar os itens em situação de coldstart aos usuários que pertenciam a este sistema. 1.4 METODOLOGIA Este estudo busca desenvolver uma abordagem social que tenha a capacidade de extrair e analisar conteúdos provenientes de recursos web, e com isso, gerar conhecimento a partir deste conteúdo e padronizá-lo em modelos, de maneira a permitir sua aplicação em sistemas de recomendações clássicos que utilizem FC. Nosso objetivo é tornar as recomendações neste sistema mais precisas para itens que estejam em situação de coldstart e, além disso, manter a privacidade das pessoas que colaboraram para a criação dos modelos sociais. A essa metodologia damos o nome de Baus. Tal metodologia foi conceitualizada e implementada para funcionar tanto em ambientes que possuem estruturas mais definidas e estáveis, quanto em ambientes mais inóspitos, onde há pouca ou nenhuma estrutura disponível. Sua validação se deu em relação a performance de sua capacidade em melhorar dado sistema de recomendação, no tocante às predições e recomendações de itens em situação de cold-start neste sistema. Para isso, foram criadas bases de comparação para as predições e recomendações anteriores a implantação da metodologia, avaliando assim a performance do sistema de recomendação em relação a estes itens sem o auxílio da mesma. Em seguida, estes itens foram submetidos a metodologia e o conhecimento adquirido através do conteúdo de re16 cursos web foi padronizado em modelos, sendo então, transferidos ao sistema de recomendação. Por fim, novos experimentos em relação a esses itens foram realizados e comparados as bases de comparação anteriormente criadas. Foram utilizados neste estudo três algoritmos de FC clássicos, o algoritmo usuário-usuário, item-item e base-usuário-item, sendo esta metodologia independente do algoritmo utilizado. Neste estudo, a implementação da metodologia utilizou o domínio de filmes, visto a popularidade deste domínio em sistemas de recomendação utilizando FC. 1.5 ESTRUTURA DA DISSERTAÇÃO Esta dissertação está organizada da seguinte forma: no capítulo 2, serão apresentados os conceitos básicos relacionados aos sistemas de recomendação e a sobrecarga informativa observada na web. No capítulo 3, serão apresentados os principais trabalhos na área e trabalhos relacionados. No capítulo 4, a metodologia Baus será conceitualizada. No capítulo 5, será descrito como a metodologia foi implementada. No capítulo 6, serão criados os cenários para validar a metodologia, os ambientes de experimentação e serão apresentados os resultados obtidos. No capítulo 7, serão realizadas as considerações finais e apresentadas sugestões de trabalhos futuros. O capítulo 8, contém as referências bibliográficas utilizadas como base neste trabalho. 17 2 SISTEMAS DE RECOMENDAÇÃO E A WEB Segundo (RESNICK, 1997), o objetivo de um sistema de recomendação é utilizar as opiniões de uma comunidade de usuários para ajudar um determinado usuário naquela comunidade a identificar de forma mais eficaz o conteúdo de interesse entre um grande conjunto de escolhas, gerando recomendações que estão pessoalmente adaptadas às preferências deste usuário. 2.0.1 FENÔMENO DA CAUDA LONGA Em um sistema de recomendação há uma grande quantidade de opções disponíveis e o objetivo de sua aplicação é tornar possível que estas opções sejam apresentadas eficientemente, ou seja, as recomendações devem ser individualizadas para cada usuário do sistema, buscando sua satisfação da melhor maneira possível. Segundo (RAJARAMAN, 2011), espera-se também de um sistema de recomendação a capacidade em surpreender seus usuários, ou seja, apresentar ao usuário opções que não figurem entre as opções mais populares, sendo assim, aumentando a capacidade em apresentar novidades que pareçam ser escolhas feitas ao acaso, entretanto que tenham relevância para o usuário a qual estas opções sejam apresentadas, fenômeno conhecido como da cauda longa, demonstrado na figura 2.1. FIG. 2.1: Fenômeno da cauda longa, adaptado de (KELLY, 2012) Cauda longa é um termo estatístico utilizado para descrever distribuições de dados, que se caracterizam por apresentar uma quantidade muito maior de dados ao longo de sua 18 cauda, conforme ilustrado na figura 2.1. Este termo ganhou popularidade em um artigo escrito por Chris Anderson para a revista Wired em 2004 (ANDERSON, 2004), no qual ele demonstrou como grandes empresas como Amazon e Netflix utilizam esta estratégia. No ano de 2006, ele escreveu o livro A Cauda Longa - Do mercado de massa para o mercado de nicho (ANDERSON, 2006). 2.1 TÉCNICAS CLÁSSICAS Existem diversas técnicas clássicas que podem ser aplicadas em sistemas de recomendação como filtragem colaborativa, baseada em conteúdo, baseada em conhecimento e demográfica. Cada uma dessas técnicas possui suas forças e fraquezas. (BURKE, 2007) distinguiu em seu trabalho estas quatro diferentes técnicas: • Filtragem colaborativa: o sistema gera recomendações para o usuário utilizando o histórico de seu perfil de votação. O sistema localiza usuários com perfis semelhantes ao usuário a qual se deseja realizar as recomendações, e a partir das preferências mais relevantes nesta vizinhança gera suas recomendações para o usuário em questão; • Baseada em conteúdo: o sistema gera recomendações a partir das características dos itens, utilizando uma análise textual, e, a partir das preferências do usuário, é gerado um classificador que compara tais preferências com o conteúdo de determinado item, para decidir se o mesmo deve ser ou não recomendado para este usuário; • Baseada em conhecimento: o sistema sugere recomendações baseadas em inferências sobre o que o usuário precisa, suas preferências e necessidades. Por vezes, contém um conhecimento funcional explícito sobre como algumas funcionalidades do produto atendem às necessidades do usuário; • Demográfica: a recomendação demográfica é realizada com base em um perfil demográfico do usuário. Produtos recomendados podem ser apresentados para nichos demográficos diferentes, ao combinar os votos de usuários que pertencem a determinado nicho. Na tabela 2.1 é apresentado um quadro comparativo entre sistemas de recomendação clássicos, onde: • U representa o conjunto de todos os usuários presentes no sistema; 19 • I representa o conjunto de todos os itens no sistema; • u representa o usuário a qual o sistema está realizando a operação; • i representa o item a qual o sistema está realizando a operação. TAB. 2.1: Comparativo entre sistemas de recomendação clássicos, adaptado de (BURKE, 2007). Técnica Conhecimento Entrada Processamento Filtragem Cola- votos de U para votos de u para Identifica usuários borativa itens em I itens em I em U similares a u, e avalia seus votos em i Baseada em Características dos votos de u para Gera um classifiConteúdo itens em I itens em I cador que analisa características do voto de u e utiliza em i Baseada em Co- Características dos Descrição das ne- Infere a relação ennhecimento itens em I e o cessidades ou inter- tre i e as necessiconhecimento de esses de u dades ou interesses como estes itens de u atendem o usuário Demográfica Informação de- Informação de- Identifica usuários mográfica de U e mográfica de u com características seus votos nos itens demográficas simiem I lares a u, e avalia seus votos em i Outra abordagem possível são os sistemas de recomendação híbridos, esse termo é utilizado para descrever qualquer sistema de recomendação que combine diferentes técnicas de recomendação em conjunto para produzir uma única saída. 2.2 FILTRAGEM COLABORATIVA A metodologia Baus é implementada e validada em sistemas que utilizam a técnica de filtragem colaborativa, portanto, esta seção explica em maiores detalhes o funcionamento da técnica de FC clássica. 20 Basicamente, a filtragem colaborativa consiste em observar as avaliações realizadas pelos usuários do sistema, de modo a encontrar usuários que possuam avaliações similares a um dado usuário; e a partir das avaliações realizadas por estes usuários similares, determinar se este usuário deverá ou não ter interesse por um item que ainda não tenha expressado sua opinião. Esta técnica parte de uma premissa central em que, usuários com avaliações semelhantes no passado, provavelmente terão avaliações semelhantes no futuro. Uma característica importante desta técnica é a independência em relação a qualquer informação adicional para sua utilização, como contextos auxiliares de seus usuários ou dos itens do sistema. A única informação que se faz necessária é a avaliação prévia de seus usuários pelos itens do sistema, uma matriz bidimensional (usuário-item), exemplificada na tabela 2.2, fator ao qual justifica sua adoção em larga escala, inclusive comercialmente. Portanto, são necessários aos sistema de recomendação FC clássicos: • A matriz usuário-item, com as avaliações dos usuários por itens aos quais estes já tenham expressado suas opiniões; • Uma função para calcular a similaridade entre os usuários ou itens do sistema; • Um método que utilize estas similaridades obtidas e as avaliações prévias dos usuários para calcular a predição de um item para um determinado usuário. TAB. 2.2: Matriz usuário-item com as respectivas avaliações de cada usuário. usuário-01 usuário-02 usuário-03 usuário-04 usuário-05 usuário-06 item-01 5 3 ? 3 ? ? item-02 3 1 3 3 5 ? item-03 4 ? 4 ? ? ? item-04 4 3 ? ? 2 ? item-05 ? ? ? ? ? ? Conforme observado na tabela 2.2, em geral, uma matriz usuário-item é bastante esparsa, ou seja, possui a grande maioria de seus itens sem avaliações. Ainda na tabela, em negrito, o item-05 e o usuário-06 estão em situação de cold-start, denominados como usuário em cold-start e item em cold-start, respectivamente. Em outras palavras, este usuário não pode se beneficiar do sistema de recomendação, nem o item tem a capacidade de ser recomendado por esse sistema. Este trabalho é focado em aliviar a situação de itens 21 que estejam em situação de cold-start. As duas abordagens que são comumente utilizadas em sistemas de FC clássicos são, usuário-usuário e item-item. 2.2.1 USUÁRIO-USUÁRIO A abordagem usuário-usuário, sugerida inicialmente no artigo (RESNICK, 1994), consiste em uma das implementações mais fidedignas a premissa central da técnica de FC. Em um sistema de FC utilizando a abordagem usuário-usuário, onde o objetivo é realizar a predição de um item para um determinado usuário, visto que este usuário ainda não expressou sua opinião pelo item em questão, primeiramente, é necessário definir o nível de similaridade entre este usuário, e os demais usuários, isto é, encontrar usuários que tenham maiores concordâncias nas avaliações de itens, em que ambos tenham avaliado previamente. Para isso, é necessário utilizar uma função de similaridade. Diversas funções para calcular a similaridade entre os usuários foram propostas e avaliadas na literatura, como a similaridade do cosseno ajustado (adjusted cosine similarity) e o coeficiente de correlação de Spearman (Spearman’s rank correlation coefficient) para calcular a proximidade entre usuários. (HERLOCKER, 1999) demonstrou através de análises empíricas que a funcão da correlação de Pearson (Pearson correlation) obteve melhores resultados se comparada com as demais métricas utilizando a abordagem usuário-usuário. A equação 2.1 apresenta a função da correlação de Pearson: P − ra )(rb,i − rb ) pP 2 2 i∈I (ra,i − r a ) i∈I (rb,i − r b ) sim(a, b) = pP i∈I (ra,i (2.1) Em que, ra,i e rb,i correspondem as avaliações numéricas realizadas em relação ao conjunto de itens que foram avaliados em comum (I) por cada usuário que está sendo comparado na equação, enquanto ra e rb correspondem a média geral das avaliações destes, possibilitando que, usuários que tenham diferentes interpretações em relação a escala de avaliações possíveis, sejam comparados e definidos inclusive como usuários com grande afinidade, mesmo que suas avaliações sejam em valores absolutos bastante diferentes. Consequentemente, a similaridade na correlação de Pearson pode assumir valores no intervalo entre -1 e 1. Se o valor estiver próximo a 1, significa que estes usuários possuem grande afinidade entre si. Caso o valor esteja mais próximo de -1, significa respectivamente uma maior divergência entre suas opiniões. 22 Quanto a predição de um item para determinado usuário, é necessário antes definir qual será o tamanho da vizinhança N dos usuários mais similares que serão levados em consideração. A equação 2.2 é utilizada para realizar esta predição: P pred(a, p) = ra + b∈N sim(a, b) · (rb,p − rb ) P b∈N sim(a, b) (2.2) onde, a predição de um item (p) para um usuário (a) é calculada a partir das avaliações realizadas no item (p) pelos usuários similares (b) ao usuário (a). No qual para cada usuário similar em N , se calcula o somatório do produto entre a similaridade dos usuários sim(a, b) e o desvio da média geral da avaliação do usuário (b) pelo item (p). O valor é então ponderado dividindo-o pelo somatório da similaridade de cada usuário em N . Por fim, o desvio obtido a partir dos usuários similares é somado à média geral da avaliação do usuário (ra ), obtendo assim, o valor da predição do item (p) para o usuário (a). 2.2.2 ITEM-ITEM A abordagem item-item, sugerida inicialmente no artigo (SARWAR, 2001),ao invés de calcular a similaridade entre os usuários do sistema, conforme a abordagem usuário-usuário, observa os padrões das avaliações entre os itens para definir a similaridade. Segundo (LINDEN, 2003), a abordagem usuário-usuário é de difícil aplicabilidade em cenários reais. Devido a tendência dos usuários e itens aumentarem gradativamente, chegando a milhões, torna-se o tempo de resposta necessário ao processamento para calcular a similaridade e realizar a predição, inviável em ambientes on-line. Já na abordagem item-item, apesar da igual necessidade de se calcular a similaridade para realizar a predição, é possível pré-computá-la off-line, construindo antecipadamente a matriz de similaridade dos itens em pares. (SARWAR, 2001) demonstrou que é possível pré-computar off-line a matriz de similaridade na abordagem usuário-usuário. Entretanto, em cenários reais, a quantidade de avaliações de itens que ambos usuários tenham avaliado previamente é relativamente pequena. Portanto, novas avaliações podem influenciar consideravelmente na similaridade entre os usuários. Já na abordagem item-item, novas avaliações não afetam tão significativamente no valor da similaridade, permitindo assim, pré-computar a matriz de similaridade, e em determinados intervalos de tempo recalculá-la, atualizando a matriz de similaridade. 23 O algoritmo calcula o nível de similaridade dos itens, a partir de pares de itens que foram co-avaliados por cada usuário no sistema, utilizando uma função de similaridade. A similaridade do cosseno na abordagem item-item tem apresentado melhores resultados se comparado com as demais métricas (JANNACH, 2010), (SARWAR, 2001). Conforme apresentado na equação 2.3, a similaridade do cosseno considera os dois itens e suas avaliações como vetores, definindo a similaridade entre eles como o ângulo entre esses vetores. → − − sim(→ a, b)= → − → − a · b → − − |→ a |x| b | (2.3) → − − Em que, → a e b são vetores que possuem as avaliações realizadas nos itens a e b coavaliados por usuários em comum. Isto é, calcula-se o produto escalar dos vetores pela → − − distância Euclidiana dos vetores |→ a | e | b |. Como resultado, o nível de similaridade do cosseno pode assumir valores no intervalo entre 0 e 1. Se o valor estiver próximo a 1, significa que estes dois itens avaliados possuem grande similaridade entre si. Caso o valor esteja mais próximo de 0, significa uma maior divergência entre estes itens. Essa métrica não leva em consideração o fato que diferentes usuários possuem comportamentos distintos ao realizar sua avaliação, ou seja, alguns usuários têm tendências em realizar, em geral, avaliações com valores mais elevados, enquanto outros, possuem padrões mais críticos e tendem a valores mais baixos. Esse inconveniente pode ser remediado utilizando a similaridade do cosseno-ajustado, que leva em consideração a média geral de cada usuário, subtraindo o valor das avaliações dada por este usuário para o par de itens em questão. Os valores para o cosseno ajustado podem assumir o intervalo de valores entre -1 e 1, conforme a correlação de Pearson, sendo demonstrado na equação 2.4: P − ru )(ru,b − ru ) pP 2 2 u∈U (ru,a − r u ) u∈U (ru,b − r u ) sim(a, b) = pP u∈U (ru,a (2.4) Quanto a predição de um item para determinado usuário, é necessário antes definir qual será o tamanho da vizinhança N dos itens mais similares ao item (p), realizando o somatório para cada um desses itens, ponderando o produto da avaliação do usuário pelo item em questão (i) e a similaridade entre o item em questão com o item a qual esta se realizando a predição sim(i, p). No fim, o resultado é dividido pela soma das similaridades 24 dos itens, de forma a obter um valor razoável para a predição. Sua fórmula é apresentada na equação 2.5: P pred(u, p) = i∈ItensAvaliados(u) P sim(i, p) · ru,i i∈ItensAvaliados(u) sim(i, p) (2.5) 2.2.3 PROBLEMAS CONHECIDOS A técnica de FC apresenta algumas vulnerabilidades intrínsecas a sua abordagem. Sua implementação, portanto, exige a solução ou atenuação de diversos problemas, não somente técnicos, mas eventualmente subjetivos. Algumas abordagens híbridas tentam equacionar estas forças e fraquezas a fim de buscar uma recomendação mais precisa. Algumas dessas limitações foram descritas em (SU, 2009) e (HUANG, 2004): • Dados Esparsos: a matriz usuário-item é extremamente esparsa, prejudicando as recomendações, ou mesmo as tornando inviáveis; • Escalabilidade: a quantidade de usuários e itens em um sistema de recomendação real tende a crescer consideravelmente, gerando um problema de escalabilidade, aumentando a necessidade por recursos que viabilizem o processamento on-line; • Sinônimo: um mesmo item é considerado como distinto devido ao uso de sinônimos, afetando diretamente no resultado das recomendações; • Gray sheep: refere a situação quando o usuário possui opiniões que divergem de qualquer grupo, ou qualquer usuário e este não se beneficia de nenhum sistema de recomendação; • Shilling attacks: quando recomendações positivas são geradas para determinado produto e negativas para seus concorrentes diretos, de modo somente a privilegiá-lo ou prejudicá-lo, com o objetivo de burlar o sistema de recomendação; • Privacidade: para que um sistema de recomendação seja capaz de individualizar seu usuário e prover melhores recomendações, é necessário conhecer seus hábitos, preferências, informações pessoais, porém sem extrapolar a privacidade deste usuário; • Proteção: assegurar a proteção das preferências do usuário, tendo em vista a segurança dos dados fornecidos, confiados a um determinado sistema de recomendação; 25 • Cold-start: refere-se a situação em que um novo usuário ou item acaba de entrar no sistema. Para novos usuários, o sistema de recomendação não consegue gerar recomendações devido a pouca ou nenhuma interação anterior deste usuário, e para novos itens, onde poucos ou nenhum usuários tenha opinado a respeito, não há a possibilidade de recomendá-lo. Dados esparsos são um dos fatores que contribuem diretamente para a situação de cold-start. 2.2.3.1 COLD-START Cold-start é um problema no qual não existem avaliações suficientes ou mesmo avaliações disponíveis para que um sistema de recomendação consiga se basear e realizar recomendações a seus usuários. Esta necessidade de informação está diretamente ligada à premissa central em que, usuários com avaliações semelhantes no passado, provavelmente terão avaliações semelhantes no futuro. Portanto, o problema de cold-start pode ser visto como um problema de inicialização; e pode ser divido em duas categorias, usuários em cold-start e itens em cold-start: • Usuários em cold-start: quando um novo usuário se cadastra e passa a fazer parte de um sistema. Nesse caso, não há interações suficientes de suas avaliações, preferências ou opiniões que permitam aos sistemas, utilizando técnicas de FC ou baseada em conteúdo, realizarem recomendações para o mesmo; • Itens em cold-start: quando um novo item é inserido em um sistema, possuindo poucas ou nenhuma avaliação recebida em um curto período de tempo. Tais avaliações não são suficientes para que um sistema de recomendação utilizando FC consiga recomendá-lo a seus usuários apropriadamente. Quanto a definição de um item estar ou não em situação de cold-start, algumas abordagens consideram apenas os itens que não possuem avaliações (SCHEIN, 2002), enquanto outras utilizam diferentes heurísticas visto que, por vezes, poucas avaliações podem ocasionar ruídos, gerando recomendações equivocadas. (SHANI, 2011) elencou algumas possíveis heurísticas como: o item existir ao menos um período de tempo específico no sistema, ou o item possuir uma quantidade suficiente de avaliações para retirá-lo desta situação ou, até mesmo, mesclar as duas heurísticas anteriores, caso uma das situações sejam satisfeitas o item deixa de figurar como um item em situação de cold-start neste sistema. 26 2.3 EXPLORANDO DOMÍNIOS CRUZADOS Um sistema de recomendação que utiliza domínios cruzados tenta se beneficiar principalmente da interseção das preferências de seus usuários ou de seus itens. Isto é, tenta melhorar as recomendações em um dado domínio – domínio principal (DA ) – a partir do conhecimento proveniente de outro domínio – domínio auxiliar (DB ). Além de gerar melhores recomendações em DA , esta abordagem é bastante apropriada para tratar de alguns problemas conhecidos em FC como: esparsidade e uma potencial solução para aliviar o problema de cold-start (CREMONESI, 2011). Ainda não há um consenso na literatura, e diferentes noções são apresentadas para definição de domínio (CANTADOR, 2014), (CREMONESI, 2011), (BERKOVSKY, 2007). Alguns trabalhos consideram em domínios: • Itens que pertençam a diferentes áreas de aplicação como, filmes e livros; • Itens que possuam atributos que permitam categorizar, como filmes de ação e filmes de comédia; • Usuários que possuam diferentes contextos de interação, como localização, tempo ou humor; • Itens ou usuários que pertençam a uma mesma área de aplicação, porém provenientes de sistemas distintos. Em relação ao domínio no qual se pretende melhorar as recomendações, (CANTADOR, 2014) apresentou três categorias distintas de sistemas de recomendação utilizando domínios cruzados. Dado um domínio DA , o qual se deseja melhorar as recomendações, baseado no conhecimento de um domínio DB . Sendo UA e UB os usuários em cada domínio e IA e IB o conjunto de itens em cada domínio, respectivamente. Com base nessas definições este trabalho categorizou os domínios como: • domínios múltiplos (multi-domain): recomendações de itens ocorrem em ambos domínios, DA e DB . A título de exemplo, recomendar itens em IA ∪IB para usuários em UA . De maneira equivalente para usuários em UB ou usuários em UA ∪ UB ; • domínios ligados (linked-domain): recomendações de itens ocorrem no domínio principal, DA , explorando o conhecimento proveniente em ambos domínios, DA e DB . 27 A título de exemplo, recomendar itens em IB para usuários em UA , explorando o conhecimento dos usuários UA ∪ UB e/ou itens IA ∪ IB ; • domínios cruzados (cross-domain): recomendações de itens ocorrem no domínio principal, DA , explorando o conhecimento proveniente do domínio auxiliar, DB . A título de exemplo, recomendar itens em IB para usuários em UA , explorando o conhecimento dos usuários UB e/ou itens IB . Com base na maneira de como este conhecimento proveniente do domínio auxiliar é explorado, duas abordagens são consideradas, conforme ilustrado na figura 2.2: FIG. 2.2: Exploração do conhecimento na recomendação de domínios cruzados, adaptado de (CANTADOR, 2014). • Ligando / agregando conhecimento (linking / aggregating knowledge): o conhecimento de um ou mais domínios auxiliares é agregado ao domínio principal, podendo ser obtido em qualquer fase do processo de recomendação; • Compartilhando / transferindo conhecimento (sharing / transferring knowledge): o conhecimento de um ou mais domínios auxiliares, como fatores latentes, características em comum e padrões implícitos e/ou explícitos podem ser utilizados para dar suporte as recomendações no domínio principal. Neste trabalho, a definição de domínio foi utilizada de maneira mais relaxada. Em que diferentes sistemas, provenientes de uma mesma área de aplicação são tratados como domínios distintos, similarmente aos experimentos propostos em (CREMONESI, 2011). Dessa forma, foi possível utilizar algoritmos de FC clássicos sem a necessidade de adaptálos para seu devido funcionamento. Em relação a abordagem, foi utilizada agregação de 28 conhecimento, no qual os modelos de usuários criados compuseram o domínio auxiliar DB , e adicionados diretamente na matriz original usuário-item, do domínio principal DA . 2.4 SOBRECARGA INFORMATIVA (INFORMATION OVERLOAD) Quando determinada informação chega a uma pessoa, é necessário que esta tome uma decisão a respeito deste conteúdo recebido, isto é, precisa filtrar o que de fato é relevante para ela, a figura 2.3 ilustra este processo de tomada de decisão. FIG. 2.3: Tomada de decisão a respeito das informações recebidas, adaptado de (CANN, 2011) Segundo (EVARISTO, 1995), o termo capacidade de processamento de informação, representa o limite máximo de recursos que uma pessoa consegue utilizar para o processar e executar determinadas tarefas, no qual esse limite varia entre diferentes pessoas. A sobrecarga informativa ocorre quando a quantidade de entrada excede sua capacidade de processamento e os tomadores de decisão ficam com suas capacidades de processamento limitadas. Consequentemente, quando ocorre a sobrecarga de informações, é provável que uma redução na qualidade da decisão ocorra (SPEIER, 1999). 2.4.1 NOVAS EXPERIÊNCIAS SOCIAIS NA WEB 2.0 As tecnologias web evoluíram e proporcionaram aos desenvolvedores a capacidade de criar novas experiências interativas e imersivas aos seus usuários. O ambiente web atual é um universo em constante crescimento com sites, aplicações web, vídeos, fotos, conteúdos interativos, redes sociais, entre outros. Esta evolução é descrita como a segunda geração do World Wide Web (WWW), conhecida como web 2.0. 29 Com a web 2.0, os usuários deixaram de ser apenas consumidores de informação e passaram a ser também agentes diretos e ativos, consequentemente gerando conteúdo através de blogs, wikis, fóruns e redes sociais, isto é, eles passaram a realizar uma variedade de atividades sociais através da web. Tal capacidade de produzir mais informações para um público cada vez mais amplo e em períodos de tempo cada vez menores proporcionou um fenômeno denominado sobrecarga social (social overload ). A sobrecarga social tornou-se um problema no ambiente web atual, pois a exposição do usuário ao fluxo de informações advindos das mídias sociais muitas vezes excede a capacidade cognitiva deste em processar essas informações. Esta sobrecarga social observada na web é proveniente de diversas fontes heterogêneas, na qual não há uma forma ou padrão definido no que concerne a sua estruturação, tornando sua extração e análise um processo trabalhoso e complexo. Entretanto, há um potencial conhecimento agregado nesta sobrecarga social não padronizada, que motiva dessa forma, diversas áreas de pesquisa atuantes neste tema. FIG. 2.4: Pesquisas e oportunidades na sobrecarga social A figura 2.4 demonstra uma visão macro de uma heurística hipotética que objetiva a aplicação deste conhecimento proveniente desta sobrecarga social em um cenário específico. Em outras palavras, se busca identificar e extrair conteúdo de um recurso alvo, gerar conhecimento, garantir sua qualidade e enfim aplicar este conhecimento adquirido ao cenário proposto. 30 3 ESTADO DA ARTE EM TRABALHOS RELACIONADOS AO PROBLEMA DE COLD-START Conforme explicado no capítulo 2, o problema de cold-start é uma consequência da premissa central da técnica de FC. Entretanto, diversas pesquisas tentam aliviar esta situação propondo as mais diversas abordagens, visto que um sistema de recomendação utilizando FC realiza diversas etapas até que a predição seja realizada. Sendo assim, cada trabalho se propõe em atacar um determinado viés, buscando apresentar uma solução que resolva de maneira satisfatória este problema. Na seção 3.1, são apresentados alguns trabalhos que abordam o problema de coldstart utilizando apenas um único domínio, e que propõem soluções como: abordagens híbridas, novos algoritmos e diferentes métricas para calcular medida de similaridade. Já na seção 3.2, são apresentados trabalhos que utilizam o conceito de domínios cruzados para solucionar esta questão. 3.1 TRABALHOS NA ÁREA Em (LI, 2003), foi proposta uma abordagem híbrida, utilizando FC em conjunto com uma técnica baseada em conteúdo para realizar as predições. Primeiramente, foi utilizado um algoritmo de clusterização para agrupar os itens e gerar uma nova matriz denominada group-rating. Em seu estudo de caso baseado em filmes, o algoritmo de clusterização se baseou no conteúdo do filme como, gênero, diretor, atores e sinopse para agrupá-los. Em seguida, para calcular a similaridade, devido aos intervalos de valores entre as matrizes serem de ordens diferentes, foram adotadas métricas distintas, em que para calcular a similaridade na matriz usuário-item foi utilizada a correlação de Pearson e para a matriz group-rating, a similaridade do cosseno ajustado. Ao final, a similaridade foi composta a partir da combinação linear entre estas duas similaridades, onde essa nova similaridade foi utilizada para obter-se a vizinhança. Para calcular a predição, foi utilizada a média ponderada dos desvios da média de seus vizinhos somada a média do usuário. Foi utilizado o algoritmo de FC clássico item-item para gerar as predições com a medida de similaridade proposta no trabalho. A métrica MAE (mean absolute error ) foi utilizada para avaliar os resultados das predições realizadas. Se comparada ao RMSE, este pune mais severamente 31 os erros de predição que possuem grandes diferenças entre o valor predito e o valor real. Em suas observações os autores pontuaram que a abordagem proposta realiza plenamente os pontos fortes da técnica baseada em conteúdo, mitigando o problema de cold-start. Nesta abordagem, o cálculo da similaridade não leva só em consideração o gosto pessoal do usuário, mas também o conteúdo do item, possibilitando assim apresentar itens que surpreendam seus usuários. Em (AHN, 2008), foi apresentado uma nova métrica para calcular a similaridade aliviando a situação de usuários em cold-start, denominada PIP, acrônimo de Proximidade-Impacto-Popularidade, em substituição a similaridade da correlação de Pearson e do cosseno, visto suas baixas performances quando existem poucas avaliações disponíveis para calcular a similaridade de cada usuário. Os resultados obtidos melhoraram a capacidade de predição para usuários com poucas avaliações. Apesar da métrica PIP funcionar com abordagens de FC clássicas e mostrar bons resultados, os autores consideraram usuários em situação cold-start, usuários com poucas avaliações, ou seja, a métrica apresentada não favorece usuários que acabaram de entrar de fato no sistema. (SARWAR, 1998) e (PARK, 2006) propuseram abordagens híbridas, com o uso de filterbots, utilizando as informações contidas no conteúdo do item para gerar avaliações de maneira sistemática, ou seja, sem que exista a necessidade do usuário em avaliar um determinado item. A partir deste conceito, em (PARK, 2006), foi proposto o algoritmo naive filterbot. Este algoritmo injeta pseudo usuários no sistema ou bots responsáveis por avaliarem os itens, através de alguns fatores como, quem atuou no filme, ou da média obtida em uma área demográfica de usuários. Estas avaliações inferidas para um determinado usuário a respeito de um item foram adicionadas diretamente na matriz usuário-item, juntamente com as demais avaliações reais deste usuário. Os algoritmos de FC clássicos, usuário-usuário e item-item, foram utilizados para gerar as predições em três conjuntos de dados distintos e as performances foram avaliadas somente em relação às predições, utilizando a métrica NMAE (normalized mean absolute error ). Em suas observações, os resultados apresentaram melhoras em relação aos itens em cold-start se comparados à base de comparação não-personalizada. 3.2 TRABALHOS MULTI-DOMÍNIO RELACIONADOS A maioria dos sistemas comerciais atuais que utilizam sistemas de recomendação, realizam suas recomendações a partir de único domínio, isto é, ainda não é percebida a 32 oportunidade em se utilizar múltiplos domínios. Entretanto, o conhecimento adquirido a partir de domínios auxiliares tem demostrado potencial ao ser transferido e explorado em sistemas que utilizem apenas um domínio, aumentando assim o seu desempenho e por consequência a qualidade de suas recomendações. O desafio em como extrair, analisar e transferir este conhecimento, e o potencial de negócios em se realizar recomendações entre vários domínios, tem provocado um interesse crescente em pesquisas com foco em recomendações utilizando domínios cruzados. Embora a recomendação em domínios cruzados tenha sido estudada por diversas pesquisas de várias formas, ainda não há um consenso na literatura que defina o problema e conceitualize as técnicas de abordagem e avaliação, o que torna difícil realizar uma análise mais detalhada e qualitativa entre as pesquisas. Os trabalhos de (CREMONESI, 2011), (LI, 2011), (FERNÁNDEZ-TOBÍAS, 2012), (CANTADOR, 2014), (CANTADOR, 2015) propuseram definir uma melhor formalização na tentativa padronizar e unificar este assunto. Este tipo de esforços têm sido de grande valia na comunidade para o avanço das pesquisas em domínios cruzados. (BERKOVSKY, 2007) foi um dos primeiros trabalhos a apresentar o conceito de domínios cruzados na literatura. Os seus experimentos foram executados utilizando um único conjunto de dados de filmes, ou seja, havia apenas uma matriz usuário-item (M ). Nesse caso, para a criação dos domínios cruzados, houve o particionamento vertical deste conjunto de dados, utilizando a heurística de particionamento que considerava cada gênero de filme como um domínio distinto (Md ). A figura 3.1, ilustra este particionamento vertical: FIG. 3.1: Particionamento vertical do conjunto de dados para a criação dos domínios, adaptado de (BERKOVSKY, 2007). Com esta heurística de particionamento foram criados oito domínios distintos que, devido à sua lógica, os usuários pertenciam a todos os domínios e, um item poderia pertencer a mais de um domínio, visto que um filme podia ser classificado em mais de 33 um gênero simultaneamente. Os autores propuseram três abordagens a serem avaliadas, sendo elas: • Padrão (Standard ): nesta abordagem foi considerada a matriz M sem que houvesse o particionamento vertical, ou seja, foi considerado todo o conteúdo inicial do conjunto de dados para realizar as predições; • Local (Local ): nesta abordagem cada domínio criado a partir de cada gênero utilizou sua respectiva matriz Md para realizar as predições; • Média-Remota (Remote-Average): em contrapartida a abordagem local, que não levava em consideração que um mesmo item pudesse estar em mais de um domínio simultaneamente, nesta abordagem, o item que estivesse em mais de um domínio teve sua predição local calculada independentemente, ou seja, cada domínio utilizava sua matriz Md . Ao final, como resultado, foi utilizada a média entre todas as predições locais. A função do cosseno foi utilizada para calcular a similaridade e a métrica MAE, para avaliar os resultados das predições realizadas. Em suas observações, os resultados demonstraram que as abordagens local e média-remota melhoraram as predições em relação à abordagem padrão. Em outras palavras, as avaliações realizadas considerando apenas gêneros específicos foram mais precisas, enquanto as avaliações na abordagem padrão criaram ruídos nas predições. Se comparadas entre si, a média-remota apresentou uma pequena melhora, demonstrando que os domínios cruzados com outros gêneros relevantes têm a capacidade de melhorar as predições. Em resumo, os resultados demonstraram que a importação de dados do perfil do usuário, em outros domínios, pode produzir previsões mais precisas. (SHI, 2011), (ENRICH, 2013), (FERNÁNDEZ-TOBÍAS, 2014) utilizaram o conceito de domínios cruzados, onde a interseção entre os domínios foi realizada através de tags. Tais tags são palavras-chave – termos associados a uma informação que utilizam um caractere específico para sua identificação. Em (ENRICH, 2013), foi apresentada uma abordagem utilizando domínios cruzados, em que as tags e as avaliações no domínio auxiliar eram utilizadas para dar suporte às predições no domínio principal, com objetivo de melhorar as predições para usuários em situação de cold-start. Portanto, as tags que ocorriam em ambos os domínios para descrever seus respectivos itens eram utilizadas para 34 inferir possíveis correlações, a fim de auxiliar nas predições. Os autores propuseram três abordagens a serem avaliadas, sendo elas: • UserItemTags: esta abordagem era baseada na ideia de que poderia haver uma dependência entre a avaliação numérica do usuário e as tags que o usuário havia atribuído ao item. Os autores assumiram nesta abordagem que um usuário poderia atribuir tags ao item sem que houvesse a necessidade do mesmo realizar a sua respectiva avaliação numérica. Então, estas tags foram utilizadas para prover melhores predições para este item; • UserItemRelTags: esta abordagem era uma variação da abordagem UserItemTags, sendo baseada na ideia que as tags possuem diferentes relevâncias. Sendo assim, para calcular a predição, apenas as tags mais relevantes eram levadas em consideração, com o objetivo de reduzir o ruído causado na predição por tags consideradas irrelevantes. Para considerar uma tag como relevante os autores utilizaram o teste conhecido como Wilcoxon rank-sum, em que uma tag era considerada estatisticamente relevante se a média de todas as avaliações numéricas dos usuários onde a tag estava presente era significativamente diferente da média de todas as avaliações numéricas dos usuários onde a tag não era utilizada; • ItemRelTags: para superar a principal limitação das abordagens anteriores, que era a incapacidade de realizar uma predição para um item que o usuário não havia atribuído nenhuma tag, os autores propuseram esta abordagem que explorava as tags de uma forma mais generalista, considerando todas as tags atribuídas por qualquer usuário para o item ao qual a predição estava sendo realizada. Isto é, esta abordagem não levava em consideração qual tag o usuário, para qual a predição estava sendo realizada, havia atribuído ao item. Os conjuntos de dados utilizados para a realização dos experimentos eram de gêneros distintos, ou seja, o conceito de domínio utilizado considerava itens que pertenciam a diferentes áreas de aplicação, no caso filmes e livros. A métrica MAE foi utilizada para avaliar os resultados das predições realizadas. Como base de comparação, foi utilizada a predição realizada apenas no domínio principal, tendo em vista que os domínios são completamente disjuntos, tanto em seus itens, quanto em seus usuários. Em suas observações os resultados demonstraram que todas as abordagens propostas melhoraram as predições em relação à base de comparação. A abordagem UserItemRelTags 35 apresentou melhores resultados em todos os experimentos, enquanto a abordagem ItemRelTags oscilou entre resultados melhores e piores em relação à base de comparação. Ao final, os autores propuseram aplicar as abordagens sugeridas em cada domínio em separado, e constataram que os resultados obtidos, utilizando ambos os domínios, foram melhores que os resultados apresentados por ambos em separado. Em (SEDHAIN, 2014), foi proposta uma abordagem social baseada nos conteúdos do usuário em redes sociais como: rede de amigos, páginas curtidas e dados demográficos, com o objetivo de aliviar a situação de usuários na condição de cold-start, permitindo assim, gerar predições sem que houvesse a necessidade de avaliações prévias do usuário no domínio principal. Em outras palavras, matrizes auxiliares com atributos binários foram criadas com estas informações sociais afim de permitir definir a vizinhança deste usuário em situação de cold-start. Quatro abordagens foram propostas e comparadas entre si, sendo elas: • Mais popular: esta abordagem utilizou uma recomendação não-personalizada, apresentando os itens mais populares no conjunto de dados, muitas vezes esta abordagem é utilizada como padrão em sistemas de recomendação; • Demográfica: esta abordagem criou uma matriz auxiliar levando em consideração duas informações, idade e localização, em que a idade foi particionada em dez atributos disjuntos com intervalos de 10 anos entre cada atributo, e por sua vez, cada localização distinta foi considerada como um atributo; • Amigos: esta abordagem criou uma matriz auxiliar levando em consideração a rede de amigos de cada usuário, os autores assumiram que toda amizade era mútua; • Páginas curtidas: esta abordagem criou uma matriz auxiliar levando em consideração cada página distinta como um atributo. O conjunto de dados utilizado era proveniente de um domínio de livros, o Kobo, contendo as informações de seus usuários na rede social, Facebook. As métricas utilizadas em seus experimentos foram precisão, revocação e MAP (mean average precision). Em suas observações os resultados demonstraram que a abordagem páginas curtidas obteve melhores resultados, o que demonstrou o valor da sobrecarga informativa proveniente de redes sociais. 36 Em (HEITMANN, 2010), foi utilizado o conceito de domínios cruzados em conjunto com a web semântica para aliviar tanto a situação de usuários e itens em situação de coldstart, quanto ao problema de esparsidade. Os autores propuseram a utilização de fontes de dados abertas provenientes do projeto Linking Open Data (LOD), com o objetivo de criar um algoritmo portável entre diferentes fontes de dados, e assim lidar com o desafio na aquisição de informação observado nas técnicas de FC. Apesar dessas fontes de dados possuírem informações semânticas que permitiam abordagens como: recomendação baseada em conteúdo e baseada em conhecimento, foram exploradas as conexões binárias observadas entre usuários e itens, devido a baixa consistência das características que descreviam os itens, foi utilizada a técnica de FC. Na figura 3.2 é apresentada a heurística adotada. FIG. 3.2: Processando Linking Open Data para recomendações colaborativas, adaptado de (HEITMANN, 2010). Esta heurística possui três etapas a fim de possibilitar a aquisição deste conhecimento, sendo estas: • Integrar: as fontes de dados utilizam diferentes vocabulários para definir a conexão entre usuário e item, tornando necessário padronizá-las em um vocabulário comum. Para isso, foi utilizada a linguagem SPARQL para construção de consultas, em que a conexão entre o usuário e o item é representada através de um atributo binário; • Transformar: a representação da consulta é expressa no formato de grafo RDF, consequentemente, foi necessário transformá-la em uma matriz usuário-item, dando origem assim ao domínio auxiliar; • Aplicar: o domínio principal utilizando FC foi expandido a partir do domínio auxiliar. 37 As métricas utilizadas em seus experimentos foram a precisão e a revocação, em suas observações os resultados demonstraram que a expansão do domínio principal com as informações do domínio auxiliar melhoraram a performance da precisão e revocação, em torno de 2% para 14% e de 7% para 33%, respectivamente. Inspirado nesses trabalhos, foi proposta a metodologia Baus, uma abordagem independente de usuários sobrepostos, ou seja, usuários que estejam em ambos os domínios ou qualquer outra informação adicional como tags ou outros fatores latentes entre seus usuários, como forma de aliviar a situação de cold-start. Observando que muitos sistemas de recomendação reais utilizando FC nem sempre contém estas informações adicionais, a metodologia proposta utiliza apenas as informações das avaliações dos usuários da matriz usuário-item, auxiliado apenas pelos modelos de usuários sociais criados pela metodologia empregando-os como domínio auxiliar. 38 4 METODOLOGIA BAUS Este capítulo apresenta a metodologia proposta neste trabalho para a construção de modelos baseados no auxílio de usuários sociais, a mesma foi nomeada a partir de seu acrônimo, Baus. Esta metodologia tem por objetivo permitir que itens que estejam na situação de coldstart I(cs) possuam interações suficientes e possam ser recomendados de maneira eficiente, sem que haja a necessidade de se esperar que os mesmos recebam uma quantidade mínima de interações dos usuários UA deste domínio, denominado domínio principal, DA . 4.1 RECURSOS WEB Os recursos web propostos que possibilitam criar os modelos de usuários sociais nesta metodologia estão divididos em recursos estruturados e recursos não estruturados. 4.1.1 RECURSOS ESTRUTURADOS O recurso estruturado pode ser definido como o recurso web em que, por meio de seu conteúdo, é possível estabelecer e reconhecer padrões que possibilitem recuperar o conteúdo com alguma estrutura que auxilie na sua identificação, como por exemplo alguma linguagem de marcação, como HTML, XML. Neste caso, é possível aplicar técnicas consagradas, como o web scraping, para recuperar o conteúdo desejado. Web scraping consiste em navegar através dos links do recurso em questão de forma metódica e automatizada, tendo como resultado a recuperação do conteúdo. 4.1.2 RECURSOS NÃO-ESTRUTURADOS O recurso não-estruturado pode ser definido como o recurso web em que, através de seu conteúdo, pouca ou nenhuma organização torne possível o estabelecimento de algum padrão a ser seguido. Este conteúdo pode ser recuperado através de web scraping ou de algum serviço como uma API, comumente disponibilizada pelas redes sociais. Outras técnicas como PLN e análise de sentimentos se fazem necessárias para inferir um valor qualitativo sobre o conteúdo de origem textual recuperado. 39 4.2 NÚCLEO DE PROCESSAMENTO O núcleo de processamento da metodologia Baus é o responsável pela criação dos modelos de usuários sociais, a figura 4.1 ilustra em maiores detalhes o seu funcionamento. FIG. 4.1: Núcleo de processamento da metodologia Baus Como entrada, o núcleo de processamento espera receber os itens que estão em situação de cold-start em DA , podendo este item ser um item novíssimo ou um item impopular neste domínio. Dentro da metodologia Baus, estes itens são denominados como itens semente. Os três módulos principais para seu funcionamento são: • Módulo de busca: responsável por realizar as requisições aos recursos web e buscar informações a respeito do item semente a qual recebeu a solicitação; • Módulo de estruturação de dados: organiza as informações recuperadas provenientes do recurso web e as padroniza para um formato ideal de troca de dados entre os módulos; • Módulo de pré-processamento e análise: é responsável por realizar o pré-processamento das informações e realizar análises. Importante notar que dependendo da natureza do recurso web em questão, seu uso poderá ser opcional. 4.2.1 MÓDULO DE BUSCA O módulo de busca, conforme observado na figura 4.1, é responsável por realizar dois procedimentos distintos, sendo eles: 40 • Enviar primeiramente uma requisição à página do recurso web alvo que possua as informações dos usuários que realizaram interações com este item semente. O conteúdo recuperado então, é enviado para o módulo de estruturação de dados responsável por individualizar estes usuários por meio de um identificador único e possibilitar a interoperabilidade entre os módulos; • Com os usuários previamente identificados pelo procedimento anterior, uma nova requisição é realizada para cada usuário, buscando as páginas as quais este usuário interagiu neste recurso web. As informações recuperadas são enviadas para os módulos subsequentes para efetivar a criação do modelo de usuário social baseado neste item semente que iniciou o processo. A quantidade de requisições necessárias para a criação destes modelos de usuários sociais para cada item semente é diretamente dependente de algumas variáveis: • Quantidade de usuários que interagiram com este o item semente; • Quantidade de páginas necessárias para acessar o histórico de cada usuário, isto é, esta pode variar de 1, caso estas informações estejam agrupadas em uma única página web, até N , em que N é igual a quantidade de itens que este usuário interagiu neste recurso web. Com estas informações, a fim de realizar este procedimento em um tempo viável de processamento, e diminuir a quantidade de requisições desnecessárias, mantendo a intermitência e a resiliência destas requisições, dois métodos adicionais são sugeridos nesta metodologia para auxiliar o módulo de busca. Tais métodos podem ser observados na figura 4.2. 41 FIG. 4.2: Módulos auxiliares ao módulo de busca • Pool de controle de requisição: é responsável por gerenciar a grande quantidade de informações manipuladas, a fim de não gerar retrabalho e erros de execução no método. Análogo ao pool de impressão, tem a responsabilidade de gerenciar o estado atual de cada documento e submeter os documentos a serem processados para o módulo de busca realizar as requisições necessárias, podendo cada documento assumir um estado por vez, sendo estes: – Agendado: documento que está pendente para ser executado pelo módulo de busca; – Em processo: documento que está sendo executado pelo módulo de busca; – Finalizado: documento que terminou de ser executado pelo módulo de busca. • Túnel de conexão: devido a grande quantidade de requisições necessárias e de forma a evitar que existam problemas que inviabilizem o processo, como por exemplo terse o IP em uma black-list, o túnel de conexão é sugerido a fim de possibilitar a realização de requisições utilizando diferentes IP‘s. 4.2.2 MÓDULO DE ESTRUTURAÇÃO DE DADOS O módulo de estruturação de dados é responsável por padronizar as informações provenientes dos recursos web em um formato que permita a troca de dados, mantendo a interoperabilidade entre os módulos da metodologia Baus. 42 Conforme observado na figura 4.1, o módulo de busca interage com o recurso web realizando dois procedimentos distintos, o resultado destas interações precisa ser encapsulado em documentos que padronizem estas informações. As principais estruturas que precisam ser convertidas em documentos são: o item semente e o modelo do usuário social. Cada documento deve conter ao menos as seguintes informações: • Item semente: o identificador do item semente e os identificadores dos usuários que interagiram com este item no recurso web; • Modelo de usuário social: cada documento representa um usuário que serve como base para a criação do modelo em questão. Este documento deve conter as avaliações dos itens que este usuário interagiu neste recurso web. Para criação destes documentos, algumas técnicas podem ser aplicadas com este propósito como: texto plano, linguagem de marcação, conjunto de chave/valor, anotação semântica, API, entre outras. 4.2.3 MÓDULO DE PRÉ-PROCESSAMENTO E ANÁLISE O módulo de pré-processamento e análise é responsável por pré-processar o conteúdo recuperado e realizar alguns tipos de inferências. Suas principais funcionalidades são: • Aplicar técnicas de PLN ; • Análise de sentimentos em trechos textuais e inferir valores numéricos; • Reconhecimento e associação de conteúdos a seus respectivos itens; Este é um módulo opcional durante o processo, pois depende da natureza do recurso web e como a informação recuperada está organizada. 4.3 COMPOSIÇÃO DOS MODELOS DE USUÁRIOS SOCIAIS Os modelos de usuários sociais na metodologia Baus são provenientes de recursos web, base para o domínio auxiliar, DB . Cada modelo de usuário neste domínio – uB – possui n uma quantidade arbitrária de itens (Ii=0 ) e pelo menos um item que está em situação de cold-start (I(cs) ) no domínio principal, DA . Logo, a composição de cada modelo de n usuário em DB pode ser definida como uB = Ii=0 + I(cs) . 43 (SAHEBI, 2013) observou em seu estudo que em domínios cruzados a quantidade de itens de um modelo pode influenciar diretamente no resultado. Sendo assim, na metodologia Baus, em DB a quantidade mínima de itens (min) por usuário deve ser delimitada, em que IuB ≥ min. O objetivo é melhorar a performance do sistema de recomendação e diminuir a quantidade de modelos de usuários em DB que não estejam significantemente auxiliando em DA . A redução deste domínio auxiliar permite diminuir o custo computacional dos processos e vislumbra o uso desta metodologia em cenários reais. 4.4 RECOMENDANDO ITENS DO TIPO COLD-START A metodologia Baus é baseada na construção de modelos de usuários sociais a partir da extração, análise e conhecimentos adquiridos em diversos recursos web que possuam informações relacionadas aos itens que estejam na situação de cold-start em DA . Então, estes modelos de usuários sociais são organizados e passam a constituir um domínio auxiliar, denominado DB , a figura 4.3 ilustra a visão geral do fluxo geral dos processos. FIG. 4.3: Visão geral do fluxo geral dos processos Conforme ilustrado na figura 4.4, os modelos de usuários sociais de DB , denominados UB , devido a natureza de busca da metodologia Baus, possuem pelo menos um item que está na situação de cold-start I(cs) em DA , como explicado na seção 4.3. A partir da interseção dos demais itens entre os usuários dos domínios, IA ∩ IB , a recomendação do item I(cs) em DA passa a ser possível para o usuário deste domínio, UA . O domínio DB pode possuir itens que não estejam contidos em DA , IB 6⊂ DA , logo estes itens não influenciam substancialmente no auxílio ao item semente que sofre de coldstart em DA , sendo assim, estes itens não são considerados em cada modelo de usuário social em DB neste estudo. 44 FIG. 4.4: Interseção de itens entre os domínios Importante notar que tais itens que apenas estão em DB não devem ser descartados, pois, em um momento futuro, podem ser adicionados em DA e sua inserção em DB passará a auxiliar o sistema de recomendação. Podem ser, inclusive, utilizados em outras aplicações que não sejam diretamente ligadas ao problema de cold-start como aumentar a capacidade em surpreender seus usuários com novos itens. 45 5 MELHORANDO A RECOMENDAÇÃO DE ITENS COLD-START EM UM AMBIENTE DE FILMES Este capítulo apresenta a implementação da metodologia Baus. O ambiente escolhido para a implementação foi o de filmes, devido a este domínio ser amplamente utilizado em sistemas de recomendação que utilizam FC, tanto comercialmente quanto na literatura recente. O código fonte desta implementação pode ser acessado através do repositório git, pela url goo.gl/EeHji9 . Sendo este, um código open source sob a licença MIT (MIT). A linguagem Python foi escolhida para implementação da metodologia, na qual foram utilizadas diversas bibliotecas, tanto built-ins, como bibliotecas de terceiros. Conforme descrito na metodologia (Capítulo 4), o núcleo de processamento é composto por três módulos principais. Aqui são descritas as implementações de tais módulos nesse contexto. 5.1 MÓDULO DE ESTRUTURAÇÃO DE DADOS Na implementação do módulo de estruturação de dados, responsável por padronizar as informações provenientes dos recursos web, a técnica escolhida foi a chave/valor. Foi utilizado para este propósito o JSON, que é uma notação de objetos baseada em javaScript. Sua escolha foi motivada por sua sintaxe possuir maior clareza na leitura e o tamanho físico ser inferior se comparado às outras opções especuladas, como o XML. Foram criados dois leiautes de padronização para os documentos provenientes do resultado do módulo de busca, um para o item semente e outro para o modelo de usuário social. 46 5.1.1 LEIAUTE DO ITEM SEMENTE { " total_reviews ":"" , " usuarios " : [ ] , " e r r o _p r o ce s s am e n t o " : " " , " item_origem_busca " : " " } A função de cada atributo é definida como: • "total_reviews" : tem a função de servir como um verificador em relação aos usuários que são armazenados no array do atributo "usuarios"; • "usuarios" : armazena todos os usuários que interagiram com o item semente que originou o processo; • "erro_processamento" : tem a função de ser uma flag de controle que valida a integridade do documento; • "item_origem_busca" : armazena o identificador único do item semente. 47 5.1.2 LEIAUTE DO MODELO USUÁRIO SOCIAL { " reviews " : [ { " item_rating ":"" , " item_opiniao_titulo ":"" , " item_opiniao " : " " , " item_data_review " : " " , " item_review_util ":{ " positivo ":"" , " total ":"" }, " item_id " : " " , " item_titulo ":"" } ], " data_criacao ":"" , " data_finalizacao ":"" , " status_arquivo ":"" , " usuario ":"" } A função de cada atributo é definida como: • "reviews" : armazena todos os reviews do usuário que está servindo de base para este modelo de usuário social, cada review possui uma lista de atributos, sendo eles: – "item_rating" : armazena o rating, ou seja, o valor numérico que representa a opinião deste usuário pelo item em questão; – "item_opiniao_titulo" : armazena o título que o usuário criou para o seu comentário; – "item_opiniao" : armazena o comentário do usuário; – "item_data_review" : armazena a data que o usuário realizou este review ; 48 – "item_review_util" : armazena a quantidade de usuários que definiram o review realizado como pertinente; – "item_id" : armazena o identificador do item em questão; – "item_titulo" : armazena o título do item em questão; • "data_criacao" : armazena a data e hora que este documento foi criado; • "data_finalizacao" : armazena a data e hora que este documento foi finalizado; • "status_arquivo" : tem a função de ser uma flag com o status de execução do documento que serve de controle para o pool de controle de requisição; • "usuario" : armazena o identificador do usuário que serviu como base de criação deste documento. 5.2 MÓDULO DE BUSCA Na implementação do módulo de busca foi utilizada a biblioteca Beautiful Soup. Ela é responsável por realizar o web scraping e fornecer alguns métodos simples que permitem enviar requisições http, convertendo a resposta da requisição em um objeto que estrutura o documento HTML em uma árvore, tornando possível analisar os seletores do DOM, e disponibiliza métodos para criar expressões que permitam navegar através desta árvore e extrair o conteúdo desejado. Para que o módulo de busca funcione adequadamente é necessário que seja implementado métodos auxiliares para que se consiga efetuar e controlar as requisições da melhor maneira possível, sendo eles: o túnel de conexão e o pool de controle de requisições. 5.2.1 TÚNEL DE CONEXÃO Na implementação do túnel de conexão foi utilizada a biblioteca TorCtl que serve de interface, criando protocolos de controle para utilizar o serviço Tor. O Tor é responsável por criar uma rede de túneis virtuais que permite as pessoas navegarem, sem serem rastreadas e compartilharem informações através de redes públicas sem comprometer sua privacidade. Para ter acesso ao serviço de túneis virtuais disponibilizados pelo Tor é necessário previamente instalar o navegador TorBrowser. Ao executar este navegador os túneis são 49 criados e associados a uma porta da máquina local. Então, o TorCtl é a biblioteca que permite via codificação associar este serviço à implementação, possibilitando controlar e submeter as requisições http aos recursos web através desta porta, mantendo assim, o anonimato das requisições geradas. 5.2.2 POOL DE CONTROLE DE REQUISIÇÃO Na implementação do pool de controle de requisição foram utilizados apenas bibliotecas built-ins da linguagem para manipular o conteúdo entre as pastas. Foram criadas conforme proposto na metodologia, as seguintes estruturas em diretórios físicos: • Agendados: que armazena os documentos que estão pendentes para serem executados pelo módulo de busca; • Em processo: que armazena os documentos que estão sendo executados; • Finalizados: que armazena os documentos que terminaram de ser executados. O pool de controle de requisição nesta implementação é responsável por gerenciar o segundo procedimento do módulo de busca, definido na seção 4.2.1. Para cada item semente submetido ao recurso web é criado um documento padronizado, conforme descrito na seção 5.1.1. A partir disso, o pool de controle executa inicialmente as seguintes etapas, conforme exemplificado na figura 5.1: a) Recupera os usuários que interagiram com o item semente que está armazenado no atributo "usuarios" de cada documento gerado; b) Elimina a duplicidade dos usuários que possam ter aparecido em mais de um documento, deixando apenas uma ocorrência; c) Aleatoriza os usuários, com a finalidade de dificultar que alguma rotina do recurso web tente identificar acessos sequenciais aos seus servidores; d) Separa os usuários em grupos de N usuários, por exemplo N = 100, em arquivos distintos, armazenando-os na pasta agendados. 50 FIG. 5.1: Tratamento de requisições por usuário Com o propósito de paralelizar múltiplas requisições foi utilizado o conceito de threads. Para tal propósito, um arquivo escrito em Shell Script é utilizado para a automação de instruções, ou seja, realizar uma sequência de operações e monitorar os processos que foram iniciados, de forma a manter a resiliência e intermitência do serviço, em caso de falhas. FIG. 5.2: Controle geral de requisições 51 Conforme ilustrado na figura 5.2, este arquivo de automação é responsável por inicializar a rotina no pool de controle de requisição (1). O pool de requisições então realiza os demais controles, sendo eles: a) Agrupar todos os usuários que estão em cada documento na pasta agendados (2); b) Aleatorizar e escolher um usuário (3); c) Verificar se o documento referente a este usuários se encontra na pasta em processo ou na pasta finalizados; • Caso o encontre, escolher outro usuário (3); • Caso não encontre, criar o documento na pasta em processo (4), com o layout do modelo social de usuário, conforme descrito na seção 5.1.2; d) Enviar o identificador único do usuário para que o módulo de busca efetue a requisição (5). e) Ao receber o retorno com todos os reviews do usuário, o atributo "reviews" no respectivo documento é atualizado (6). f) Finalmente, o documento com o modelo de usuário social completo, é transferido para a pasta finalizados (7). O arquivo de automação fica responsável por escutar o processo iniciado por ele (9), e caso verifique que houve um problema na sua execução, recriá-lo. Este mesmo arquivo de automação é responsável por verificar se existe algum arquivo órfão na pasta em processo (8). Um arquivo é considerado como órfão se ele possuir uma diferença maior que 120 segundos em comparação ao momento que ocorreu a verificação e a criação do arquivo. Caso seja encontrado algum arquivo nesta situação, ele é removido da pasta em processo. 5.3 MÓDULO DE PRÉ-PROCESSAMENTO E ANÁLISE Na implementação do módulo de pré-processamento e análise foram utilizadas as bibliotecas NLTK (BIRD, 2009) e Fuzzywuzzy (GONZALEZ, 2014). A biblioteca NLTK possui um conjunto de ferramentas para a manipulação de linguagem natural que é composto por leitores de corpus, tokenizers, stemmers, taggers, chunkers, parsers, entre outros. Além 52 de possuir módulos dedicados à análise de sentimentos, enquanto a biblioteca Fuzzywuzzy é responsável por comparar strings e definir o percentual de similaridade utilizando a técnica conhecida como string matching. A biblioteca Fuzzywuzzy implementa dois algoritmos distintos como opção a realizar o string matching, sendo eles: o algoritmo Ratcliff/Obershelp nativo na linguagem python, na biblioteca built-in difflib, e o algoritmo Levenshtein presente na biblioteca pythonLevenshtein (NECAS, 2014). O algoritmo Levenshtein foi o escolhido, pois seu tempo total de processamento demonstrou ser em torno de cinco vezes mais rápido para realizar comparação entre as strings. 5.3.1 PRÉ-PROCESSAMENTO Em relação ao pré-processamento a seguinte heurística foi adotada em relação ao conteúdo textual nesta implementação: • Receber o conteúdo textual; <div> <p> What a w o n d e r f u l accomplishment o f a f i l m by James Marsh (Man on Wire ) who b r i n g s such depth and beauty t o t he l i f e and l o v e s t o r y o f Stephen and Jane Hawking.< br/> This b e a u t i f u l f i l m i s adapted from h er n o v e l on t h e i r l i f e and b r i n g s f o r t h much o f t h e l o v e and t e n a c i t y n e c e s s a r y t o c a r e f o r and l o v e someone g o i n g through g r e a t p h y s i c a l s t r u g g l e s o v e r time . </p> </div> • Remover marcadores HTML, XML, caracteres de escape; what a w o n d e r f u l accomplishment o f a f i l m by james marsh ( man on w i r e ) who b r i n g s such depth and beauty t o t h e l i f e and l o v e s t o r y o f s t e p h e n and j a n e hawking . t h i s b e a u t i f u l f i l m i s adapted from he r n o v e l on t h e i r l i f e and b r i n g s f o r t h much o f th e l o v e and t e n a c i t y n e c e s s a r y t o c a r e f o r and l o v e someone g o i n g through g r e a t p h y s i c a l s t r u g g l e s o v e r time . 53 • Realizar a "tokenização", ou seja, decompor este conteúdo em cada um de seus termos, token, o delimitador escolhido nesta implementação foi o caractere de espaço em branco; u ’ what ’ , u ’ a ’ , u ’ wonderful ’ , u ’ accomplishment ’ , u ’ of ’ , u ’ a ’ , u ’ f i l m ’ , u ’ by ’ , u ’ james ’ , u ’ marsh ’ , u ’ ( ’ , u ’ man ’ , u ’ on ’ , u ’ wire ’ , u ’ ) ’ , u ’ who ’ , u ’ b r i n g s ’ , u ’ such ’ , u ’ depth ’ , u ’ and ’ , u ’ beauty ’ , u ’ to ’ , u ’ the ’ , u ’ l i f e ’ , u ’ and ’ , u ’ l o v e ’ , u ’ s t o r y ’ , u ’ of ’ , u ’ stephen ’ , u ’ and ’ , u ’ jane ’ , u ’ hawking ’ , u ’ . ’ , u ’ t h i s ’ , u ’ b e a u t i f u l ’ , u ’ f i l m ’ , u ’ i s ’ , u ’ adapted ’ , u ’ from ’ , u ’ her ’ , u ’ novel ’ , u ’ on ’ , u ’ t h e i r ’ , u ’ l i f e ’ , u ’ and ’ , u ’ b r i n g s ’ , u ’ f o r t h ’ , u ’ much ’ , u ’ of ’ , u ’ the ’ , u ’ l o v e ’ , u ’ and ’ , u ’ t e n a c i t y ’ , u ’ n e c e s s a r y ’ , u ’ to ’ , u ’ c a r e ’ , u ’ f o r ’ , u ’ and ’ , u ’ l o v e ’ , u ’ someone ’ , u ’ going ’ , u ’ through ’ , u ’ g r e a t ’ , u ’ p h y s i c a l ’ , u ’ s t r u g g l e s ’ , u ’ over ’ , u ’ time ’ , u’. ’ • Remover todos os tokens referentes as pontuações; u ’ what ’ , u ’ a ’ , u ’ wonderful ’ , u ’ accomplishment ’ , u ’ of ’ , u ’ a ’ , u ’ f i l m ’ , u ’ by ’ , u ’ james ’ , u ’ marsh ’ , u ’ man ’ , u ’ on ’ , u ’ wire ’ , u ’ who ’ , u ’ b r i n g s ’ , u ’ such ’ , u ’ depth ’ , u ’ and ’ , u ’ beauty ’ , u ’ to ’ , u ’ the ’ , u ’ l i f e ’ , u ’ and ’ , u ’ l o v e ’ , u ’ s t o r y ’ , u ’ of ’ , u ’ stephen ’ , u ’ and ’ , u ’ jane ’ , u ’ hawking ’ , u ’ t h i s ’ , u ’ b e a u t i f u l ’ , u ’ f i l m ’ , u ’ i s ’ , u ’ adapted ’ , u ’ from ’ , u ’ her ’ , u ’ novel ’ , u ’ on ’ , u ’ t h e i r ’ , u ’ l i f e ’ , u ’ and ’ , u ’ b r i n g s ’ , u ’ f o r t h ’ , u ’ much ’ , u ’ of ’ , u ’ the ’ , u ’ l o v e ’ , u ’ and ’ , u ’ t e n a c i t y ’ , u ’ n e c e s s a r y ’ , u ’ to ’ , u ’ c a r e ’ , u ’ f o r ’ , u ’ and ’ , u ’ l o v e ’ , u ’ someone ’ , u ’ going ’ , u ’ through ’ , u ’ g r e a t ’ , u ’ p h y s i c a l ’ , u ’ s t r u g g l e s ’ , u ’ over ’ , u ’ time ’ 54 • Remover todos os tokens que sejam stopwords, ou seja, palavras extremamente comuns ao idioma e de certa maneira não representativas, como preposições, artigos, advérbios; u ’ wonderful ’ , u ’ accomplishment ’ , u ’ f i l m ’ , u ’ james ’ , u ’ marsh ’ , u ’ man ’ , u ’ wire ’ , u ’ b r i n g s ’ , u ’ depth ’ , u ’ beauty ’ , u ’ l i f e ’ , u ’ l o v e ’ , u ’ s t o r y ’ , u ’ stephen ’ , u ’ jane ’ , u ’ hawking ’ , u ’ b e a u t i f u l ’ , u ’ f i l m ’ , u ’ adapted ’ , u ’ novel ’ , u ’ l i f e ’ , u ’ b r i n g s ’ , u ’ f o r t h ’ , u ’ much ’ , u ’ l o v e ’ , u ’ t e n a c i t y ’ , u ’ n e c e s s a r y ’ , u ’ c a r e ’ , u ’ l o v e ’ , u ’ someone ’ , u ’ going ’ , u ’ g r e a t ’ , u ’ p h y s i c a l ’ , u ’ s t r u g g l e s ’ , u ’ time ’ • Realizar o stemming dos tokens restantes, reduzindo o termo ao seu radical. Foi utilizada a implementação do NLTK do algoritmo de Porter, proposto por Martin Porter em (PORTER, 1980); u ’ wonder ’ , u ’ accomplish ’ , u ’ f i l m ’ , u ’ jame ’ , u ’ marsh ’ , u ’ man ’ , u ’ wire ’ , u ’ b r i n g ’ , u ’ depth ’ , u ’ b e a u t i ’ , u ’ l i f e ’ , u ’ l o v e ’ , u ’ s t o r i ’ , u ’ stephen ’ , u ’ jane ’ , u ’ hawk ’ , u ’ b e a u t i ’ , u ’ f i l m ’ , u ’ adapt ’ , u ’ novel ’ , u ’ l i f e ’ , u ’ b r i n g ’ , u ’ f o r t h ’ , u ’ much ’ , u ’ l o v e ’ , u ’ tenac ’ , u ’ n e c e s s a r i ’ , u ’ c a r e ’ , u ’ l o v e ’ , u ’ someon ’ , u ’ go ’ , u ’ g r e a t ’ , u ’ p h y s i c ’ , u ’ s t r u g g l ’ , u ’ time ’ • Remover todos os tokens extremamente comuns ao domínio, ou seja, tokens que foram originados a partir de palavras que tenham uma frequência relevante no domínio em questão, porém sua polaridade seja considerada neutra. A exemplo, no passo anterior – o token u’film’ – gerado a partir de palavras que derivam deste prefixo, se enquadra neste quesito, pois sua frequência se torna por muitas vezes recorrente e ela acabará sendo considerada como relevante, mesmo não auxiliando de igual maneira no aprendizado e na inferência das avaliações. 55 u ’ wonder ’ , u ’ accomplish ’ , u ’ jame ’ , u ’ marsh ’ , u ’ man ’ , u ’ wire ’ , u ’ b r i n g ’ , u ’ depth ’ , u ’ b e a u t i ’ , u ’ l i f e ’ , u ’ l o v e ’ , u ’ stephen ’ , u ’ jane ’ , u ’ hawk ’ , u ’ b e a u t i ’ , u ’ adapt ’ , u ’ novel ’ , u ’ l i f e ’ , u ’ b r i n g ’ , u ’ f o r t h ’ , u ’ much ’ , u ’ l o v e ’ , u ’ tenac ’ , u ’ n e c e s s a r i ’ , u ’ c a r e ’ , u ’ l o v e ’ , u ’ someon ’ , u ’ go ’ , u ’ g r e a t ’ , u ’ p h y s i c ’ , u ’ s t r u g g l ’ , u ’ time ’ • Calcular a frequência de cada token. u ’ l o v e ’ : 3 , u ’ b r i n g ’ : 2 , u ’ l i f e ’ : 2 , u ’ b e a u t i ’ : 2 , u ’ go ’ : 1 , u ’ wonder ’ : 1 , u ’ accomplish ’ : 1 , u ’ much ’ : 1 , u ’ marsh ’ : 1 , u ’ adapt ’ : 1 , u ’ jane ’ : 1 , u ’ c a r e ’ : 1 , u ’ f o r t h ’ : 1 , u ’ someon ’ : 1 , u ’ stephen ’ : 1 , u ’ wire ’ : 1 , u ’ hawk ’ : 1 , u ’ p h y s i c ’ : 1 , u ’ man ’ : 1 , u ’ g r e a t ’ : 1 , u ’ novel ’ : 1 , u ’ tenac ’ : 1 , u ’ s t r u g g l ’ : 1 , u ’ jame ’ : 1 , u ’ depth ’ : 1 , u ’ n e c e s s a r i ’ : 1 , u ’ time ’ : 1 • Como resultado deste pré-processamento haverá um saco de palavas (bag-of-words), ordenado em relação aos termos que são considerados mais relevantes. u ’ l o v e ’ , u ’ b r i n g ’ , u ’ l i f e ’ , , u ’ b e a u t i ’ , u ’ wonder ’ , u ’ accomplish ’ , u ’ jame ’ , u ’ marsh ’ , u ’ man ’ , u ’ wire ’ , u ’ depth ’ , u ’ stephen ’ , u ’ jane ’ , u ’ hawk ’ , u ’ adapt ’ , u ’ novel ’ , u ’ f o r t h ’ , u ’ much ’ , u ’ tenac ’ , u ’ n e c e s s a r i ’ , u ’ c a r e ’ , u ’ someon ’ , u ’ go ’ , u ’ g r e a t ’ , u ’ p h y s i c ’ , u ’ s t r u g g l ’ , u ’ time ’ 5.3.2 ANÁLISE DE SENTIMENTOS Para realizar a inferência da avaliação a partir de um conteúdo textual é necessário que haja um classificador já treinado. Para gerar o classificador a seguinte heurística foi adotada: • Definir o conteúdo que servirá como base para o classificador; • Realizar o pré-processamento do conteúdo textual, conforme descrito na seção 5.3.1; • Estabelecer a polaridade de cada conteúdo textual que será submetido ao treinamento; 56 • Realizar o treinamento. Já a inferência de um determinado conteúdo textual: • Selecionar o classificador que será utilizado; • Realizar o pré-processamento do conteúdo textual, conforme descrito na seção 5.3.1; • Definir a quantidade de tokens que serão utilizados por conteúdo textual para enviar ao classificador; • O classificador retorna a polaridade inferida e um valor entre 0 e 1 para cada polaridade, onde o valor da polaridade é complementar e a soma de seus valores sempre será 1; • As seguintes fórmulas são utilizadas, dependendo da polaridade de maior predominância, para realizar a inferência da avaliação: onde, maior avaliacao possivel(mp) e valor da polaridade predominante(pp). – Polaridade positiva : mp × pp ; – Polaridade negativa : mp − (mp × pp) . 5.3.3 ANÁLISE DO CONTEÚDO E ASSOCIAÇÃO AO ITEM Para realizar a inferência e determinar se o conteúdo textual corresponde a um determinado item em DA , uma cadeia de termos pré-determinados é confrontada contra o conteúdo textual. Estas cadeias de termos relacionadas aos itens em DA são armazenadas em um arquivo de texto, em que cada linha é relacionada a um determinado item, seguindo o formato: codigo_item , termo01 , termo02 , . . . , termoN onde: • codigo_item: representa o código legado que este item apresenta em DA ; • termo01, termo02, ..., termoN : é a cadeia de termos que serve como parâmetro para analisar e determinar se haverá uma associação com o conteúdo textual confrontado. Estes termos são independentes entre si, podendo ser uma string, uma 57 sequência de strings ou hashtags. Hashtags são palavras-chave ou termos associados a uma informação antecedidas pelo carácter cerquilha(#), seu uso é observado com bastante frequência em redes sociais, como Twitter, Facebook, Instagram. Para realizar a comparação do conteúdo textual com um termo que seja uma string ou uma cadeia de strings a seguinte heurística foi adotada nesta implementação: • Receber o conteúdo textual e o termo a ser comparado; • Realizar a "tokenização" do conteúdo textual (t1 ) e do termo a ser comparado (t2 ). O delimitador escolhido foi o caractere de espaço em branco e a ordem utilizada é a alfabética; • Os tokens são agrupados em três cadeias de comparação e ao final são convertidos novamente em strings, cada cadeia de comparação tem a seguinte distribuição: – c1 : os tokens que possuem interseção em t1 e t2 ; – c2 : os tokens que possuem interseção em t1 e t2, mais os tokens em t1 sem interseção com t2 ; – c3 : os tokens que possuem interseção em t1 e t2, mais os tokens em t2 sem interseção com t1 ; • As cadeias geradas são comparadas em pares entre si e a maior similaridade é levada em consideração. Caso o conteúdo textual possua hashtags em sua composição, estas são identificadas e armazenadas, sendo comparadas com cada termo relacionado aos itens em DA que seja uma hashtag, tendo sua similaridade calculada. Devido ao conteúdo de uma hashtag por vezes apresentar em sua composição algum adendo com outros conteúdos, outra heurística adicional foi adotada para possibilitar a análise e reconhecimento deste tipo de hashtags: • Receber a hashtag e o termo a ser comparado; • Verificar qual dos dois possui maior comprimento de caracteres m, e o menor, n respectivamente. Criando cadeias de comparação com substrings de tamanho m−n, deslocando um caractere a direita para formar cada cadeia de comparação; 58 • Cada cadeia criada é comparada em relação ao menor termo original n, e a maior similaridade é levada em consideração. Estas heurísticas são aplicadas para os termos pré-determinados em cada item em em DA . A maior similaridade entre todas é armazenada em conjunto com o identificador legado do item. Ao final, caso a similaridade seja maior que 75% o conteúdo textual é considerado como sendo relacionado ao item correspondente, caso contrário, o conteúdo é descartado. 59 6 EXPERIMENTOS 6.1 CRIANDO OS CENÁRIOS A partir da implementação descrita no capítulo 5, foram criados seis cenários relacionados a filmes para validar sua eficiência da metodologia Baus em recursos estruturados e nãoestruturados. Algumas características são fundamentais para a criação e experimento em um cenário: • O domínio principal, denominado DA , domínio a qual se pretende melhorar as recomendações em relação a seus itens que estão na situação de cold-start; • O domínio auxiliar, denominado DB , este domínio utiliza como base para sua construção os modelos de usuários sociais provenientes da metodologia. • Estratégia de como serão definidos os itens que irão estar na situação de cold-start em DA . 6.1.1 CENÁRIO ESTRUTURADO: MOVIELENS O conjunto de dados escolhido para servir como domínio principal neste cenário foi o HetRec2011 (CANTADOR, 2011). O HetRec2011 é uma extensão do conjunto de dados MovieLens10M. O MovieLens é um website acadêmico especializado em reviews e recomendação de filmes, criado pelo GroupLens research Group. Uma característica peculiar no HetRec2011 que se mostrou interessante a este estudo foi que este conjunto de dados possui os identificadores de seus filmes para outros websites, no caso, IMDB e RottenTomatoes, estes dois websites comerciais, especializados em filmes e amplamente utilizados. Algumas informações pertinentes do HetRec2011 são: • O intervalo de anos entre os lançamentos dos filmes: de 1903 até 2011; • Possui 2,113 usuários; • Possui 10,197 filmes. 60 O IMDB foi escolhido como o recurso estruturado que a metodologia Baus irá obter modelos de usuários sociais e formar o domínio auxiliar. Uma vez que o HetRec2011 é uma fonte de dados estática, a estratégia definida para simular os itens que estariam na condição de cold-start consistiu em "congelar" o conjunto de dados, ano por ano, de 2000 até 2009. Como resultado, foram obtidos dez intervalos de tempo distintos, em que os filmes contidos em cada intervalo de tempo serviram como itens sementes para serem submetidos ao IMDB de forma a construir os modelos de usuários sociais. Importante esclarecer que os anos de 2010 e 2011 foram descartados devido a quantidade insuficiente de exemplos para aplicar este experimento. No ano de 2010, haviam apenas dois filmes, no qual um deles, The Lady from Shanghai (tt0439663), não existia mais na base do IMDB. Já em 2011, havia apenas o filme Red Sonja (tt0800175), que estava categorizado como em desenvolvimento e não estava aberto para avaliações de usuários. Com estes intervalos, de 2000 até 2009, 3,121 itens no total foram considerados cold-start em momentos distintos, servindo como itens semente na metodologia Baus. Como resultado, foram criados 301,642 modelos de usuários sociais. Uma vez que apenas opiniões que continham valor numérico foram consideradas úteis, este número diminuiu para 221,247 modelos finais. A tabela 6.1 mostra a quantidade total de itens separada por intervalo de ano que foram considerados como cold-start e a quantidade de modelos que foram criados. 61 TAB. 6.1: Movielens: itens considerados como cold-start e o total de modelos de usuários sociais criados. Intervalo dos Anos 2009 2008 2007 2006 2005 2004 2003 2002 2001 2000 Itens Coldstart 21 267 360 352 330 333 339 399 372 348 Modelos (Todos) Modelos (Úteis) 4,699 30,818 30,081 44,608 43,112 37,727 28,907 30,638 29,597 21,455 3,360 19,166 21,916 27,839 29,156 25,971 22,869 25,098 25,280 20,592 Dois pontos interessantes devem ser ressaltados no tocante a criação dos modelos de usuários sociais, sendo eles: • Os modelos de usuários sociais trouxeram 158,860 itens adicionais em DB , no qual IB 6⊂ DA , ou seja, filmes que não eram conhecidos em DA , estes itens foram desconsiderados na criação do domínio auxiliar, conforme demonstrado na seção 4.4. Porém para outras aplicações podem ser bastante úteis, a exemplo, na aplicação da cauda longa, estes itens adicionais são elegíveis para manter a serendipidade, característica fundamental a um bom sistema de recomendação. • A quantidade de requisições necessárias ao IMDB, devido aos controles e tratamento aplicados pelo pool de requisição, reduziram em torno de 80%, a quantidade total de requisições. 6.1.2 CENÁRIO ESTRUTURADO: LANÇAMENTOS Este cenário estruturado foi criado a partir de filmes que são realmente novos. Geralmente, os conjuntos de dados são de natureza estática, ou seja, servem como o retrato do momento que este foi criado, devido a dificuldade em encontrar um conjunto de dados recente e com esta especificidade, um conjunto de dados com estas características foi construído. 62 Para a construção deste conjunto de dados foram utilizados os filmes que iriam estrear e que estavam na seção denominada Coming Soon no website IMDB. Foi adotada a própria metodologia Baus para a criação deste conjunto de dados, aplicando o fluxo demonstrado na figura 6.1: FIG. 6.1: Visão geral do fluxo para criação do conjunto de dados. Foram empregados como itens alvo os itens que estavam na seção Coming Soon entre os meses de Maio e Outubro. Cada filme encontrado foi submetido a metodologia e os modelos de usuários sociais passaram a constituir este conjunto de dados. A tabela 6.2 demonstra a quantidade de modelos gerados a partir desta abordagem. TAB. 6.2: Lançamentos: itens considerados como cold-start e o total de modelos de usuários sociais criados. Meses Outubro Setembro Agosto Julho Junho Maio Total Itens Alvo 50 45 33 28 28 26 210 Modelos Criados 3,258 2,179 2,090 1,317 1,993 2,324 13,161 Para a criação do domínio principal e auxiliar foram utilizados os modelos de usuários sociais de cada intervalo de mês, dividindo-os aleatoriamente em partes iguais entre os domínios. A estratégia definida para simular os itens que estariam na condição de coldstart consistiu em utilizar os itens alvo de cada intervalo de mês. 63 6.1.3 CENÁRIO ESTRUTURADO: LANÇAMENTOS-AGRUPADOS Este cenário estruturado foi criado com a finalidade de permitir a execução do experimento de recomendação, com as condições descritas na seção 6.3.2, que torne o usuário elegível ao experimento de recomendação. No cenário de lançamentos a quantidade de itens em situação cold-start é pequena em cada intervalo de tempo em separado, conforme observado na tabela 6.2. O que diminui a possibilidade em se obter uma quantidade significativa de usuários que tenham interagido com itens suficientes, permitindo assim realizar as recomendações top-n e avaliar sua performance. Como solução, foram criados novos domínios principais e auxiliares, a partir do agrupamento de 04 meses em sequência, permitindo a obtenção de usuários elegíveis aos experimentos de recomendação, conforme apresentado na tabela 6.3: TAB. 6.3: Distribuição dos meses agrupados e total de usuários elegíveis com o mínimo de itens em cold-start Lançamentos-Agrupados Maio Junho Julho Agosto Set. Out. Usuários Elegíveis >=10 itens >=20 itens MA01 X X X X 78 usuários 21 usuários MA02 X X X X 84 usuários 18 usuários MA03 X X X X 79 usuários 22 usuários Para a criação do domínio principal e auxiliar foram utilizados os modelos de usuários sociais dos intervalos de meses que foram agrupados entre si, dividindo-os aleatoriamente em partes iguais entre os domínios. A estratégia definida para simular os itens que estariam na condição de cold-start consistiu em utilizar os itens alvo de cada agrupamento de meses. 6.1.4 CENÁRIO NÃO-ESTRUTURADO: SIMULAÇÃO REDE SOCIAL O cenário não-estruturado vislumbrado foi o Twitter, no entanto algumas limitações e dificuldades encontradas não permitiram gerar o cenário não-estruturado da maneira elucubrada inicialmente. As limitações tecnológicas em relação ao Twitter API foram: 64 • Limite de requisições por tempo; • Acesso retroativo de apenas uma semana; • Amostra de apenas 1% da massa total diária, ou seja, em média 05 milhões tweets por dia; • Heurística desconhecida em relação a formação desse 1% diário. Quanto a dificuldade de acesso aos dados públicos do Twitter, foi verificado que há pouco ou nenhum interesse da empresa e de parceiras em permitir o acesso a estas informações, mesmo que para estudos acadêmicos, na qual é sabido haver um enorme potencial de interesse para diversas áreas de pesquisa. Algumas técnicas para recuperar estes dados foram levantadas, como o próprio web scraping, porém se mostrou inviável devido a complexidade, limitações e o tempo necessário. Ao aprofundar o conhecimento em relação as formas de acessar os Tweets – interação do usuário do Twitter em seu sistema – veio ao conhecimento uma estrutura denominada Twitter Firehose. Esta estrutura disponibiliza 100% dos Tweets diários gerados no Twitter, sendo estas informações disponibilizadas através de parceiros certificados. Até Outubro de 2014, as seguintes empresas tinham esta permissão: GNIP, Datashift e SCUP. Nenhuma destas empresas demonstrou interesse em apoiar as pesquisas. Um levantamento de preço para a quantidade necessária de termos equivalentes a quantidade de itens cold-start do cenário movielens (seção 6.1.1), isto é, 3.121 termos ficou estimado em 16 mil dólares. Outras duas tentativas de acesso aoTwitter Firehose, se deram através de dois serviços, Topsy e o IBM Social Media Analytics. • O Topsy é especializado em coletar o conteúdo do Twitter desde 2006 de maneira não oficial e disponibiliza estas informações através de uma API proprietária. Este era um serviço cobrado, porém foi descontinuado para novos usuários, devido a aquisição desta empresa pela Apple. Durante este estudo foi encontrado uma falha de segurança nesta API, na qual havia uma chave de acesso que era exposta diretamente no código fonte do HTML no website do serviço, permitindo acesso irrestrito ao conteúdo da API. Foi então elaborado um relatório e enviado a empresa apontando esta fragilidade. No entanto, a empresa reparou este erro e mesmo assim não manteve mais contato, não sendo solícita em apoiar este estudo. 65 • O IBM Social Media Analytics, informaram utilizar o próprio GNIP, parceiro certificado do Twitter, para acesso às informações. . Como alternativa ao Twitter, o recurso não-estruturado foi então simulado. Três cenários não-estruturados foram propostos baseados nos cenários estruturados demonstrados nas seções 6.1.1, 6.1.2 e 6.1.3. Conforme demonstrado na figura 6.2, o domínio principal é utilizado como base para gerar o classificador e o domínio auxiliar serve para simular o recurso não-estruturado, em que o valor da avaliação é descartada e apenas o conteúdo textual é levado em consideração. FIG. 6.2: Cenário não-estruturado simulado. Para gerar o classificador, as seguintes etapas são realizadas: • As opiniões dos usuários em DA , com o conteúdo textual e a avaliação, são enviadas ao módulo de pré-processamento e análise; • Cada opinião é submetida ao pré-processamento para que o conteúdo textual seja transformado em tokens com os termos mais representativos, procedimento exemplificado na seção 5.3.1; • Para cada opinião, o conjunto de tokens e a polaridade são enviados ao treinamento, em que a polaridade é definida com a seguinte heurística, opiniões com avaliação a 66 partir de 70% do valor total possível da avaliação são considerados positivas e as com valores abaixo de 50%, negativas. A decisão em desconsiderar os valores entre 50 e 69 %, ocorreu devido ao classificador utilizado nesta implementação apenas considerar uma avaliação como positiva ou negativa, não havendo a possibilidade em definir a intensidade desta avaliação. Sendo assim, adotando esta heurística, foi pretendido aumentar a precisão do classificador em discernir entre os padrões observados em avaliações positivas ou negativas. Para realizar a inferência da avaliação em cada opinião em DA as seguintes etapas são realizadas, sendo elas: • As opiniões dos usuários em DB , apenas com o conteúdo textual, são enviadas ao módulo de pré-processamento e análise; • Cada opinião é submetida ao pré-processamento para que o conteúdo textual seja transformado em tokens com os termos mais representativos, procedimento exemplificado na seção 5.3.1; • Para cada opinião, o conjunto de N tokens é enviado ao classificador. Em que N = 10, este valor é definido para simular um cenário no qual há uma limitação de caracteres, similar ao Twitter ; • O classificador infere a polaridade e um valor numérico que define a intensidade desta polaridade predominante em relação ao conjunto de tokens recebidos. A partir deste valor e polaridade definidos é, então, calculada a avaliação relacionada ao conteúdo textual que iniciou o processo. Importante notar que na construção destes cenários simulados não houve a necessidade de realizar a análise do conteúdo para associá-lo ao item, conforme descrito na seção 5.3.3, pois esta informação já era conhecida nos ambientes que serviram de base. Porém, caso não existissem as dificuldades tecnológicas apresentadas para a obtenção destas informações no Twitter, previamente descritas nesta seção, esta análise seria necessária. 6.2 ALGORITMO DE RECOMENDAÇÃO O MyMediaLite (GANTNER, 2011) foi a biblioteca utilizada para a execução dos experimentos propostos. A metodologia Baus foi submetida contra três abordagens de FC 67 clássicas, sendo elas usuário-usuário, item-item e base-usuário-item. Os algoritmos que utilizam as abordagens usuário-usuário e item-item, foram previamente explicadas no capítulo 2. O algoritmo base-usuário-item, é implementado nesta biblioteca conforme proposto em (KOREN, 2010). Esta abordagem não realiza o processo de filtragem como as demais abordagens utilizadas neste estudo, ou seja, não há a busca pela vizinhança similar. Sendo assim, utiliza-se apenas o viés colaborativo, considerando todas as avaliações providas pelos usuários do sistema em relação aos itens para realizar suas predições. Visto que, alguns usuários possuem tendências em realizar avaliações mais elevadas do que outros usuários e alguns itens tendem a receber avaliações mais elevadas que os demais, esta abordagem tenta minimizar estes efeitos aplicando, como estimativa de predição, a média geral de todas as avaliações realizadas no sistema (µ) e os desvios médios do usuário (du ) e do item (di ) em relação a µ, sendo utilizada para realizar a predição, a seguinte fórmula, pu,i = µ + du + di . Os parâmetros que foram utilizados para a execução dos experimentos nesta implementação em cada algoritmo, são apresentados na tabela 6.4: TAB. 6.4: Parametrização dos algoritmos utilizados para a execução dos experimentos nesta implementação. Parametrização Algoritmos FC Similaridade Vizinhança(K) Usuário-usuário Correlação de Pearson 20 Item-item Cosseno 30 Base-usuário-item - RegU 10 RegI 15 (HERLOCKER, 2002) demonstrou em seu estudo que o valor de k entre 20 e 50 é razoável para definir a vizinhança de usuários utilizando a correlação de Pearson. Com um valor de k muito pequeno as estimativas podem ser afetadas por haver poucos vizinhos e superajustar os resultados. Enquanto, valores de k elevados podem trazer ruídos adicionais às estimativas. No entanto, o problema em encontrar um bom valor para k ainda existe, sendo o valor de k = 20 adotado nesta implementação. (SARWAR, 2001) demonstrou ser possível utilizar a correlação de Pearson para calcular a similaridade em abordagens item-item, porém a similaridade do cosseno obteve melhores resultados finais. Neste mesmo estudo o valor de k, equivalente a 30, foi considerado um tamanho da vizinhança que tende, em geral, apresentar bons resultados. Este 68 valor padrão foi o adotado nesta implementação. Ainda na tabela 6.4, no algoritmo base-usuário-item, RegU e RegI servem como termos de regularização para du e di respectivamente, evitando assim, o superajuste das predições, penalizando-as em relação as magnitudes dos itens previamente avaliados. Os valores RegU = 10 e RegI = 15 são os valores constantes definidos para estes parâmetros no MyMediaLite. Sendo o padrão adotado nesta implementação. 6.3 AMBIENTE DE EXPERIMENTAÇÃO Os ambientes de experimentação foram criados para testar o desempenho da metodologia Baus de maneira a validar a eficiência da metodologia quanto à sua capacidade de predição e a de realizar recomendações. 6.3.1 AMBIENTES CRIADOS PARA PREDIÇÃO Em um sistema de recomendação que utiliza FC, a predição é a representação de um valor numérico, que expressa a probabilidade da possível nota que o usuário daria a respeito de um item que ele ainda não tenha manifestado sua opinião. A métrica proposta para avaliar a acurácia desta predição é o RMSE. De forma a validar a eficiência da metodologia quanto a sua capacidade de predição, foram definidas duas hipóteses para servirem de base de comparação contra a abordagem metodológica proposta. Nestas duas hipóteses, foi simulado o comportamento de um sistema de recomendação baseado em algoritmos de FC que utiliza apenas as avaliações provenientes do domínio principal DA , sem a inserção das avaliações provenientes dos modelos de usuários sociais do domínio auxiliar criado pela metodologia, denominado domínio B (DB ). Estas hipóteses foram denominadas como "Pior caso" e "Melhor caso". O uso de aspas se faz necessário porque elas são diretamente influenciadas pela escolha da técnica de FC e do algoritmo utilizado, logo, pequenas variações no resultado podem ser apresentadas dependendo destes fatores. A intenção destas hipóteses é simular duas situações extremas nos cenários avaliados com os sistemas de recomendação que utilizam FC. Vale a pena notar que a metodologia proposta é independente do algoritmo e pode trabalhar em qualquer cenário de recomendação. A hipótese que utiliza a abordagem metodológica proposta foi denominada caso me- 69 todológico, neste cenário a matriz original em DA foi expandida com o conteúdo auxiliar proveniente em DB , ou seja, as avaliações dos modelos de usuários sociais do domínio auxiliar foram acrescidos a matriz original que possuía até então somente as avaliações de seus usuários originais, conforme definido pela metodologia na seção 4.4. As três hipóteses utilizaram o mesmo algoritmo para calcular o RMSE, permitindo assim serem comparadas entre si, o objetivo é avaliar quão preciso e preditivo cada hipótese se comportará na prática. Para simular cada hipótese, as avaliações foram separadas de maneiras distintas para criar o conjunto de dados para treino e teste em cada cenário em relação a cada intervalo de tempo. (seções 6.1.1, 6.1.2, 6.1.3, 6.1.4). Os respectivos intervalos em cada cenário são: • Movielens: 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009; • Lançamentos: Maio, Junho, Julho, Agosto, Setembro, Outubro de 2014; • Lançamentos-Agrupados por Meses: MA01 (Maio, Junho, Julho, Agosto), MA02 (Junho, Julho, Agosto, Setembro) e MA03 (Julho, Agosto, Setembro, Outubro). 6.3.1.1 PIOR CASO Na hipótese do pior caso é pretendido simular a situação de cold-start para todos os itens em DA para cada intervalo de tempo. Então, como conjunto de dados de treino, foram utilizados todos as avaliações provenientes aos filmes criados anteriormente ao respectivo intervalo de tempo e como conjunto de dados de teste foram utilizados todas as avaliações provenientes aos filmes pertencentes ao respectivo intervalo de tempo. A figura 6.3 ilustra a divisão das avaliações entre os conjunto de dados. FIG. 6.3: Pior caso: divisão das avaliações entre o conjunto de dados de treino e teste. As avaliações provenientes dos filmes que pertencem ao respectivo intervalo de tempo não aparecem no conjunto de treino, sendo assim, itens em situação de cold-start neste 70 cenário. Quando não existem avaliações em um item que possibilitem realizar uma predição personalizada para um determinado usuário, em geral, os sistemas de recomendação que utilizam FC, adotando abordagens como usuário-usuário ou item-item, retornam a estimativa inicial de predição (p) para um determinado usuário (u) e item (i). Tal estimativa é a média de todas as avaliações realizadas previamente por este usuário em outros itens, nos quais ele já tenha expressado a sua opinião (au ). Apesar da abordagem base-usuário-item utilizar a fórmula pu,i = µ + du + di para realizar suas predições, um item que esteja na situação de cold-start não possui avaliações, sendo portanto, di = 0. Ou seja, o resultado obtido para itens em cold-start será análogo tanto utilizando uma abordagem usuário-usuário quanto uma item-item. 6.3.1.2 MELHOR CASO Na hipótese de melhor caso, é pretendido separar as avaliações que pertencem a cada intervalo de tempo entre o conjunto de dados de treino e teste. O método de validação cruzada escolhido foi o k-fold, este método assegura a representatividade máxima dos itens entre o conjunto de treino e teste, repartindo o conjunto de dados em k -partições exclusivas (folds) de mesmo tamanho, ou tamanho aproximado. Para o conjunto de treino são utilizados k −1 partições e como conjunto de teste é utilizada a partição remanescente. Este processo é realizado k vezes e a média das interações é considerado como resultado, neste experimento é utilizado k = 10. A figura 6.4 ilustra a divisão das avaliações entre os conjunto de dados. FIG. 6.4: Melhor caso: divisão das avaliações entre o conjunto de dados de treino e teste. O objetivo desta hipótese é verificar como o sistema iria se comportar, se cada item pertencente ao intervalo de tempo avaliado não estivesse em situação de cold-start. Nesta hipótese, são criados cenários simulados, em que os filmes pertencentes a cada intervalo de tempo têm suas avaliações separadas em ambos os conjuntos, de teste e treino. Ou 71 seja, os filmes deixam de ser considerados como itens em situação de cold-start. Para cada intervalo de tempo os algoritmos avaliados, em cada experimento, são executados 10 vezes, a fim de gerar uma média ponderada mais fidedigna. 6.3.1.3 CASO METODOLÓGICO Na hipótese do caso metodológico é pretendido aplicar os modelos de usuários sociais em DB , expandindo a matriz em DA . Aqui, os conjuntos de treino e teste são similares a hipótese do pior caso, com a diferença de que no conjunto de treino são adicionados as avaliações dos modelos de usuários sociais em DB criados a partir dos itens sementes do respectivo intervalo de tempo. Diferente do melhor caso, esta hipótese representa um cenário real em que o sistema de recomendação lida de fato com o problema de cold-start. A figura 6.5 ilustra a divisão das avaliações entre os conjunto de dados. FIG. 6.5: Caso metodológico: divisão das avaliações entre o conjunto de dados de treino e teste. 6.3.2 AMBIENTES CRIADOS PARA RECOMENDAÇÃO Apesar do fato do RMSE ser bastante popular na literatura, (CREMONESI, 2010) demonstrou que a melhora ou piora no RMSE em predições de avaliação não implicam necessariamente em resultados melhores ou piores em relação a uma lista de recomendações de top-n itens. A ideia principal em criar este ambiente é considerar que o objetivo de um sistema de recomendação no mundo real é produzir uma lista de recomendações com top-n itens e não puramente estimar avaliações. Recomendação é a capacidade do sistema apresentar um item ou gerar uma lista para o usuário com os itens que ele ainda não tenha manifestado sua opinião, conhecido como recomendação top-n. A métrica proposta para avaliar a acurácia desta listagem é o f1score. 72 De forma a validar a eficiência da metodologia quanto a sua capacidade de gerar recomendações foi criado um ambiente de top-n recomendações, no qual n assumirá os valores de 1, 3 ou 5. É condição necessária a este experimento que somente os usuários em DA que tenham uma quantidade de k itens na condição de cold-start superior a n, sejam elegíveis. Os experimentos foram conduzidos com: • Usuários em DA que interagiram com 10 ou mais itens na condição de cold-start; • Usuários em DA que interagiram com 20 ou mais itens na condição de cold-start. Duas hipóteses foram criadas para realizar este experimento, a hipótese do caso metodológico e do caso randômico. Essa última, apenas como base de comparação. 6.3.2.1 CASO RANDÔMICO Na hipótese do caso randômico, é gerada uma lista top-n de maneira aleatória para cada usuário. Esta técnica foi adotada, pois na maioria das implementações de algoritmos que utilizam a técnica de FC têm como padrão utilizar a média entre todos as avaliações já realizados por este usuário quando precisam gerar a predição de um item na condição de cold-start para ele. Sendo assim, como todos os itens estão na condição de cold-start, todos teriam a mesma avaliação predita, impossibilitando realizar uma ordenação válida. 6.3.2.2 CASO METODOLÓGICO Na hipótese do caso metodológico, aplicam-se os modelos de usuários sociais em DB , expandindo a matriz em DA , de forma a gerar uma lista top-n para cada usuário, ordenada de maneira decrescente, isto é, em relação as maiores avaliações preditas. 6.3.3 TAMANHO DOS MODELOS SOCIAIS O tamanho do modelo de usuário social, ou seja, a quantidade de itens que este usuário interagiu, pode influenciar diretamente no resultado final, descrito na seção 4.3. Em ambos ambientes de experimentação, tanto na predição quanto na recomendação top-n, foram realizados experimentos limitando o tamanho mínimo aceitável por modelo. As quantidades mínimas foram definidas como 2, 5, 10, 50, 100 itens por modelo de usuário social. 73 6.4 AVALIAÇÃO Foram utilizadas três métricas principais para avaliar os ambientes de experimentação: • Root Mean Square Error (RMSE): métrica utilizada para determinar acurácia nas predições realizadas em cada hipótese; • RMSE-GAP: métrica utilizada para comparar o RMSE das hipóteses do pior caso, melhor caso e caso metodológico, a fim de tornar mais fácil a avaliação das hipóteses entre si; • F1-Score: métrica utilizada para determinar o desempenho das listas top-n geradas pelo sistema de recomendação. 6.4.1 RMSE A primeira métrica utilizada para avaliar as hipóteses é o RMSE. Foi observado que esta métrica é amplamente utilizada para avaliar sistemas de recomendação, tanto em pesquisas na área acadêmica quanto em cenários comerciais. O Netflix Prize, a título de exemplo, foi uma competição de mineração de dados e aprendizado de máquina que ofereceu um prêmio de um milhão de dólares para quem melhorasse a acurácia em seu sistema de recomendação existente. A métrica escolhida para avaliar os competidores foi o RMSE (WU, 2007). Neste domínio de filmes, se uma predição oscilar em sua avaliação de cinco estrelas em até uma estrela, provavelmente ainda irá satisfazer ao usuário. O RMSE pode ser calculado como demonstrado na equação 6.1: v u N u1X RM SE = t (yi − ȳi )2 N i=1 (6.1) Devido sua fórmula, o RMSE é bastante útil, pois erros com grandes oscilações são indesejáveis e punidos mais severamente, comparando com outras métricas como, o MAE. Ou seja, para cada item (i) a diferença entre a predição (yi ) e o valor real da avaliação correspondente ao item (ȳi ) é elevada ao quadrado, em seguida o resultado final é obtido através da raiz quadrada da média do somatório dos desvios observados para cada item. 74 6.4.2 RMSE-GAP O resultado final do RMSE oscila, na maioria de nossos casos, entre 0 e 1. Logo, a comparação entre as três hipóteses propostas utilizando o valor absoluto é de difícil compreensão para avaliar. Em função disso, foi proposto uma métrica para comparar o quão próxima a hipótese metodológica (H) está em relação ao melhor e pior caso, esta métrica foi denominada como RMSE-GAP. Tal métrica utiliza como resultado um valor relativo que serve como comparativo entre as hipóteses, ao invés de um valor absoluto, tornando mais fácil suas avaliações. A fórmula do RMSE-GAP é demonstrada na equação 6.2: RM SE − GAP (H) = RM SE(M elhor Caso) − RM SE(H) RM SE(M elhor Caso) − RM SE(P ior Caso) (6.2) O RMSE-GAP representa quanto o caso metodológico está próximo do melhor caso ou do pior caso. Ou seja, se o resultado tender a 0 significa que o caso metodológico está mais próximo do melhor caso, se o resultado estiver próximo a 1 significa que o caso metodológico está mais próximo do pior caso, conforme ilustrado na figura 6.6. FIG. 6.6: RMSE-GAP das hipóteses propostas. Além disso, um RMSE-GAP negativo significa que o caso metodológico superou o RMSE obtido na hipótese de melhor caso. Da mesma maneia, valores superiores a 1 demonstram que o RMSE do caso metodológico foi inferior à hipótese do pior caso. 6.4.3 F1-SCORE O f1-score é a métrica utilizada para avaliar quão bem o sistema de recomendação pode classificar os itens como sendo corretamente recomendáveis. Esta tarefa de recomendação pode ser considerada como um problema de classificação. Sendo assim, podem ser utilizadas medidas consagradas para a avaliação de problemas de classificação (JANNACH, 2010), como a precisão (precision) e a abrangência (recall ), alternativamente chamada de revocação. 75 O f1-score é comumente utilizado para problemas relacionados a recuperação de informação. Ele é calculado como sendo a média harmônica entre a precisão e a abrangência, dando o mesmo peso para ambos. Os resultados finais do f1-score oscilam entre zero e um. Quanto mais próximo o resultado tende a 1, melhor é a classificação dos itens. Em (CREMONESI, 2011), é proposta uma abordagem adaptando a fórmula do f1-score em relação aos top-n itens, em que n é a quantidade de itens que o sistema de recomendação irá sugerir ao usuário, conforme descrito na equação 6.3: F 1Score(N ) = 2 × Abrangencia(N ) × P recisao(N ) Abrangencia(N ) + P recisao(N ) (6.3) As equações para calcular precisão e abrangência são apresentadas respectivamente: P recisao = tp tp + f p Abrangencia = (6.4) tp tp + f n (6.5) onde: • tp: verdadeiro-positivos (true positives), representa a quantidade de itens preditos corretamente, ou seja, os que estão nas duas listas de itens top-n do usuário, a real e a de predições realizadas pelo sistema de recomendação; • fp: falso-positivos (false positives), representa a quantidade de itens que estão na lista de predições e não fazem parte da escolha real do usuário; • fn: falso-negativos (false negatives), representam a quantidade de itens que estão na lista real do usuário e não foram preditos pelo sistema de recomendação. 6.5 RESULTADOS O objetivo desta seção é apresentar os resultados experimentais da aplicação da metodologia Baus nos cenários propostos nas seções (6.1.1, 6.1.2, 6.1.3 e 6.1.4) e avaliar o desempenho desta abordagem metodológica nos itens que estejam em situação de cold-start nestes cenários, em relação as predições e as recomendações top-n, utilizando os algoritmos de FC usuário-usuário, item-item e base-usuário-item. 76 6.5.1 PREDIÇÃO Conforme apresentado nas tabelas 6.5 e 6.6, a média obtida através do RMSE-GAP em cada intervalo de tempo nos ambientes estruturados (cenários Movielens e Lançamentos) utilizando o algoritmo base-usuário-item, mostram que a abordagem metodológica de fato auxilia nas predições realizadas no tocante aos itens em situação de cold-start, superando a base de comparação obtida com a hipótese de pior caso, a qual se simula a situação de cold-start. TAB. 6.5: Cenário estruturado: movielens - resultados das hipóteses RMSE-GAP por intervalo de tempo, utilizando o algoritmo base-usuário-item. 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 Modelos >= 2 0,2343 0,2612 0,3327 0,3446 0,4614 0,5404 0,4819 0,8036 0,7496 3,7769 Modelos >= 5 0,2151 0,2245 0,2619 0,2621 0,3529 0,3838 0,3755 0,5603 0,5821 3,7044 RMSE-GAP Modelos Modelos >= 10 >= 50 0,2055 0,1929 0,2196 0,2122 0,2349 0,2209 0,2274 0,2120 0,3051 0,2381 0,3040 0,2590 0,3289 0,2709 0,4493 0,3554 0,5072 0,3581 3,2932 2,6764 Modelos >= 100 0,2299 0,2212 0,2321 0,2182 0,2362 0,2590 0,2357 0,3255 0,3620 2,7675 No cenário movielens, utilizando o algoritmo base-usuário-item, tabela 6.5, houve uma melhora geral em torno de 67% em relação as predições realizadas. No intervalo de tempo do ano de 2009, em negrito, os resultados obtidos obtiveram um comportamento destoante aos demais intervalos de tempo. O fator que pode ter influenciado diretamente neste resultado é a baixa quantidade de itens avaliados por estes usuários no domínio principal, se comparado com os demais intervalos de tempo, podendo ter influenciado neste sub-ajuste negativo do resultado. No cenário lançamentos, utilizando o algoritmo base-usuário-item (Tabela 6.6) houve uma melhora percentual em torno de 89% nas predições realizadas. Este cenário apresenta uma particularidade em relação ao cenário do Movielens, pois cada intervalo de tempo é independente entre si, ou seja, cada intervalo de tempo possui uma rede local distinta. 77 TAB. 6.6: Cenário estruturado: lançamentos - resultados das hipóteses RMSE-GAP por intervalo de tempo, utilizando o algoritmo base-usuário-item. Maio Junho Julho Agosto Setembro Outubro Modelos >= 2 0,0432 0,1597 0,0113 - 0,0498 0,0084 0,0247 RMSE-GAP Modelos Modelos Modelos >= 5 >= 10 >= 50 0,0566 0,1161 0,2841 0,1445 0,0708 0,0860 0,0150 0,0638 0,1847 - 0,0334 - 0,0048 0,0055 0,0443 0,0120 0,0204 0,1650 0,2392 0,5214 Modelos >= 100 0,4117 0,2644 0,3573 0,0354 0,0383 0,4785 Ainda na Tabela 6.6, no intervalo de tempo relativo ao mês de Agosto, as células em negrito demonstram que houve resultados que superaram a performance em relação a hipótese de melhor caso, em até 5%. Ou seja, a abordagem metodológica melhorou a predição dos itens em situação de cold-start mesmo se comparado com a situação a qual estes itens não estavam em situação de cold-start. Sendo assim, demostra a capacidade da metodologia melhorar o desempenho das predições em casos que os itens já possuam avaliações no domínio principal. Na Tabela 6.7, é apresentado o RMSE-GAP dos experimentos em cada cenário e algoritmos distintos com os seus respectivos percentuais de melhora em relação a hipótese do pior caso, ou seja, o percentual de melhora das predições dos itens que estavam em situação de cold-start após o uso da metodologia. 78 TAB. 6.7: RMSE-GAP obtido nos cenários utilizando os algoritmos com as abordagens usuário-usuário, item-item e base-usuário-item e seus percentuais de melhora em relação à situação de cold-start RMSE-GAP Cenário Algoritmo Estruturado Não-Estruturado Movielens base-usuário-item 0,3300 (67,00%) 1,0126 (-1,26%) Movielens item-item 0,2640 (73,60%) 0,7676 (23,24%) Movielens usuário-usuário — — Lançamentos base-usuário-item 0,1162 (88,38%) 0,4951 (50,49%) Lançamentos item-item — — Lançamentos usuário-usuário - 0,1444 (114,44%) 0,5444 (45,56%) Lançamentos-Agrupados base-usuário-item - 0,0250 (102,50%) 1,2167 (-21,67%) Lançamentos-Agrupados item-item — — Lançamentos-Agrupados usuário-usuário - 0,3289 (132,89%) 2,3397 (-133,97%) Em geral, os algoritmos usuário-usuário e item-item obtiveram melhores performances se comparados à abordagem utilizada no algoritmo base-usuário-item, este algoritmo não utiliza a similaridade conforme os demais algoritmos testados. Apesar de obter resultados menos expressivos se comparado aos demais algoritmos, seu tempo de execução é expressivamente menor, permitindo a aplicabilidade da metodologia em cenários reais. Conforme esperado, os ambientes não-estruturados, ambientes simulados a partir do cenário movielens, cenário lançamentos e do cenário lançamentos-agrupados, procedimento descrito na seção 6.1.4, obtiveram predições inferiores em relação ao ambiente estruturado. Alguns experimentos não-estruturados obtiveram o RMSE-GAP inferior a hipótese de pior caso, ou seja, suas predições em geral foram inferiores em relação a predição que utilizou apenas a média geral do usuário ao qual a predição estava sendo realizada. Entretanto, em outros experimentos não-estruturados, apesar de serem obtidas predições inferiores aos cenários estruturados, suas predições foram superiores as apresentadas nos itens em situação de cold-start. Com esses resultados, nota-se que a heurística utilizada no processo de análise de sentimento, a fim de realizar a inferência numérica pode influenciar nas predições significativamente, sendo assim, cada cenário pode ser avaliado em separado para avaliar suas particularidades, e aplicar outras heurísticas para a obtenção de melhores resultados, objetivando assim, melhores predições. Devido a implementação na biblioteca MyMediaLite, os experimentos no cenário movie79 lens utilizando o algoritmo usuário-usuário e no cenário lançamentos-agrupados utilizando o algoritmo item-item, não foram executados. Nestes cenários há uma expansão relativamente bem maior da matriz usuário-item, após sua expansão com os modelos de usuários sociais provenientes da metodologia, se comparado aos demais experimentos. O MyMediaLite nestes casos consumiu toda a memória física disponível em um ambiente de execução dos experimentos que possui 20 GB de memória física. Soluções possíveis seriam, utilizar outra biblioteca que otimize estes algoritmos ou contornar a limitação da implementação desta biblioteca aplicando outras técnicas como, fatoração de matrizes, ou seja, utilizar duas matrizes de menor grandeza de tal forma que quando multiplicadas se obtenha novamente a matriz original. 6.5.2 RECOMENDAÇÃO O objetivo deste experimento é avaliar a capacidade do sistema em gerar uma listagem de recomendações top1, top3 e top5, ou seja, recomendar 1, 3 ou 5 itens respectivamente, para um determinado usuário a partir de uma listagem de itens que estejam na situação de cold-start. Os experimentos foram executados inicialmente com pelo menos 10 ou mais itens em situação de cold-start possíveis a serem escolhidos (exp10+). E posteriormente, com 20 ou mais itens na mesma situação (exp20+). Sendo ambos comparados em relação a base de comparação randômica. A base de comparação randômica realiza recomendações top-n aleatórias para cada experimento estruturado e não-estruturado realizado em cada intervalo de tempo, conforme exemplificado em negrito na tabela 6.8. A média entre todos os resultados aleatórios obtidos é calculada. A título de exemplo, no cenário movielens, a base de comparação randômica para recomendações top-3 com 20 ou mais itens em cold-start é de 0,0907. 80 TAB. 6.8: Cenário movielens - f1-score da recomendação top-3 respectivo ao intervalo de tempo de 2006 F1-score top-3 entre 20 ou mais itens em cold-start Modelos Modelos Modelos Modelos >= 2 >= 5 >= 10 >= 50 Estruturado 0,177 0,192 0,196 0,211 Randômico 0,086 0,086 0,094 0,102 Não-Estruturado 0,165 0,167 0,179 0,164 Randômico 0,077 0,096 0,096 0,091 Modelos >= 100 0,203 0,092 0,146 0,087 As tabelas 6.9 e 6.10 agrupam as recomendações top-1, top-3 e top-5 por cenários: movielens e lançamentos-agrupados, e ambientes: estruturado, não-estruturado e randômico. Sendo calculado o f1-score médio de seus respectivos intervalos de tempo. Em todos os cenários e ambientes as recomendações top-n superaram a base de comparação randômica, conforme observado nas tabelas 6.9 e 6.10. Sendo assim, corroborando que a aplicabilidade da metodologia Baus, em relação a base de comparação randômica, tende a aumentar a capacidade de acertos ao gerar listagens de recomendações para itens em situação de cold-start. TAB. 6.9: F1-score médio no experimento exp10+. estr. Movielens base-usuário-item Movielens item-item Lanç.Agrupados base-usuário-item Lanç.Agrupados usuário-usuário F1-score Médio (exp10+) Top1 Top3 não-estr. rand. estr. não-estr. rand. estr. Top5 não-estr. rand. 0.113 0.062 0.051 0.264 0.181 0.148 0.380 0.293 0.248 0.132 0.072 0.051 0.267 0.201 0.149 0.396 0.319 0.247 0.242 0.184 0.066 0.482 0.431 0.202 0.606 0.567 0.326 0.330 0.198 0.075 0.540 0.362 0.201 0.627 0.523 0.332 81 TAB. 6.10: F1-score médio no experimento exp20+. estr. Movielens base-usuário-item Movielens item-item Lanç.Agrupados base-usuário-item Lanç.Agrupados usuário-usuário F1-score Médio (exp20+) Top1 Top3 não-estr. rand. estr. não-estr. rand. estr. Top5 não-estr. rand. 0.084 0.043 0.032 0.211 0.126 0.092 0.296 0.197 0.154 0.106 0.050 0.031 0.229 0.144 0.092 0.311 0.224 0.154 0.227 0.183 0.035 0.415 0.359 0.106 0.531 0.452 0.172 0.279 0.151 0.038 0.501 0.256 0.113 0.572 0.391 0.172 Conforme demonstrado nas tabelas 6.9 e 6.10, os experimentos exp20+ possuem valores absolutos do f1-score médio menores se comparado ao experimento exp10+, o que é de certa maneira esperado, devido o aumento de opções disponíveis. Em contrapartida, conforme observado nas tabelas 6.11 e 6.12, em comparação ao ambiente randômico, percentualmente cada experimento no exp20+ obteve melhor desempenho se comparado ao exp10+, nota-se, que conforme aumentam as opções disponíveis a lista de recomendação gerada a partir de escolhas randômicas diminui gradativamente sua performance, isto é, no ambiente randômico, à medida em que se aumenta a quantidade de itens em situação de cold-start para serem recomendados ao usuário a capacidade em realizar boas recomendações diminui. Contudo, tanto em ambientes estruturados quanto em não-estruturados, a lista de recomendação gerada tende a melhorar sua performance após a incorporação dos modelos de usuários sociais provenientes da metodologia Baus. TAB. 6.11: Percentual de melhora dos experimentos exp10+ em relação ao ambiente randômico. F1-score (exp10+ percentual de melhora ) Top1 Top3 estr. não-estr. estr. não-estr. Movielens base-usuário-item Movielens item-item Lanç.Agrupados base-usuário-item Lanç.Agrupados usuário-usuário estr. Top5 não-estr. 121,56% 21,57% 78,38% 22,30% 53,22% 18,15% 158,82% 41,18% 79,20% 34,90% 60,32% 29,15% 266,67% 178,79% 138,61% 113,37% 85,89% 73,93% 340,00% 164,00% 168,66% 80,10% 88,85% 57,53% 82 TAB. 6.12: Percentual de melhora dos experimentos exp20+ em relação ao ambiente randômico. F1-score (exp20+ percentual de melhora ) Top1 Top3 estr. não-estr. estr. não-estr. Movielens base-usuário-item Movielens item-item Lanç.Agrupados base-usuário-item Lanç.Agrupados usuário-usuário Top5 estr. não-estr. 162,5% 34,37% 129,35% 36,96% 92,21% 27,92% 241,93% 61,29% 148,91% 56,52% 101,95% 45,45% 548,57% 422,86% 291,50% 238,68% 208,72% 162,79% 634,21% 297,37% 343,36% 126,54% 232,56% 127,32% No cenário movielens, o algoritmo item-item obteve resultados um pouco melhores se comparado ao algoritmo base-usuário-item. Já no cenário lançamentos-agrupados, os resultados foram mais expressivos de certa forma, pois a quantidade de usuários elegíveis neste cenário é bastante inferior, em torno de 2 à 3%, se comparada ao cenário movielens. Sendo assim, as listas top-n recomendadas de maneira correta acabam tendo maior peso no resultado final. Já no cenário lançamentos-agrupados o algoritmo usuário-usuário obteve melhores resultados em relação ao algoritmo base-usuário-item apenas no ambiente estruturado. Contudo, no ambiente não-estruturado o algoritmo base-usuário-item obteve melhor performance. FIG. 6.7: Performance por top-n, movielens (item-item). A figura 6.7 demonstra como se comporta, em geral, as recomendações top-n, em 83 relação aos ambientes estruturado, não-estruturado e randômico, no tocante a sua performance. A esquerda da figura é apresentado o f1-score em cada ambiente e a direita, a fim de possibilitar uma comparação, a melhora percentual de cada ambiente em relação ao ambiente randômico. A título de exemplo, o cenário movielens utilizando o algoritmo item-item, os experimentos exp20+, representados por linhas tracejadas, possuem valores absolutos menores de f1-score médio se comparado ao seu experimento exp10+ correlato. Contudo, a melhora percentual em experimentos exp20+ em relação a base de comparação randômica, tende a aumentar a capacidade de acertos ao gerar listagens de recomendações quando são apresentadas mais opções de itens em situação de cold-start, experimento exp20+. Outro detalhe observado é que apesar da melhora percentual ser maior em ambientes estruturados, a medida em que listas com mais itens são recomendadas a queda do percentual de melhora é mais abrupta do que em ambientes não-estruturados, em que se apresentaram mais tênues. 6.5.3 PREDIÇÃO X RECOMENDAÇÃO O objetivo desta seção é realizar uma comparação entre predição e recomendação, ou seja, estabelecer se há uma relação entre os resultados obtidos. Sendo assim, avaliar se boas predições necessariamente tendem a gerar boas recomendações, ou vice-versa. Importante notar que, os experimentos de predição tiveram que ser realizados novamente apenas para o propósito de comparação entre os experimentos de predição e recomendação. Aqui, em cada experimento de predição, o conjunto de teste passou a considerar apenas as avaliações dos usuários que foram elegíveis no experimento de recomendação ao qual a comparação é realizada, pois os usuários que não foram elegíveis no experimento de recomendação poderiam gerar ruídos no RMSE-GAP geral, podendo influenciar diretamente no resultado final e gerar uma análise de certa maneira equivocada. Na tabela 6.13, os resultados desses novos experimentos de predição são apresentados: 84 TAB. 6.13: RMSE-GAP obtido nos cenários exp10+ e exp20+, utilizando os algoritmos com as abordagens usuário-usuário, base-usuário-item e seus percentuais de melhora em relação à situação de cold-start. Cenário Movielens Lanç.Agrupados Lanç.Agrupados Algoritmo base-usuário-item base-usuário-item usuário-usuário RMSE-GAP exp10+ e exp20+ Estruturado exp10+ exp20+ 0,3025 (69,75%) 0,2622 (73,78%) -0,1519 (115,19%) -0,5200 (152,00%) -0,4111 (141,11%) -0,8547 (185,47%) Não-Estruturado exp10+ exp20+ 0,9969 (0,31%) 0,9633 (3,67%) 1,4839 (-48,39%) 3,0113 (-201,13%) 2,5089 (-150,89%) 5,6558 (-465,58%) Conforme observado nas tabelas 6.13 e 6.14, não há necessariamente uma correlação direta entre as predições e recomendações. Isto é, predições que possuem RMSE elevados podem de certa maneira contribuir em recomendações top-n. O objetivo de um sistema de recomendação é apresentar itens que satisfaçam seus usuários através de recomendações. Já a predição, pode ser vista apenas como um dos processos intermediários que dão subsídios para a geração das recomendações. Sendo assim, um sistema de recomendação pode vir a gerar predições pouco precisas, no entanto é possível haver uma ordenação plausível dessas predições que crie boas recomendações, agradando seus usuários. TAB. 6.14: Melhora percentual obtida nos cenários exp10+ e exp20+, utilizando os algoritmos com as abordagens usuário-usuário, base-usuário-item e seus percentuais de melhora em relação à situação de cold-start. Melhora Percentual Recomendação exp10+ Cenário Algoritmo Estruturado exp10+ exp20+ Movielens base-usuário-item 84,38% 128,02% Lanç.Agrupados base-usuário-item 163,72% 349,59% Lanç.Agrupados usuário-usuário 199,17% 403,37% e exp20+ Não-Estruturado exp10+ exp20+ 20,67% 33,08% 122,03% 274,77% 100,54% 183,74% É importante notar que, nos experimentos de recomendação foram adotados como base de comparação escolhas randômicas, dado que sistemas de recomendação utilizando FC clássicos realizam a predição de itens em situação cold-start apenas utilizando como base a média das avaliações deste usuário, o que impossibilita a ordenação em uma listagem de recomendações. Sendo assim, há uma certa equivalência nos experimentos de predição e recomendação que permite realizar comparações entre estes experimentos. 85 6.5.4 INFLUÊNCIA NO TAMANHO DOS MODELOS DE USUÁRIOS SOCIAIS O tamanho dos modelos dos usuários sociais, isto é, a quantidade de itens que foram avaliados pelo usuário que deu origem ao modelo, é um fator que tende a influenciar no resultado final, tanto nas predições, quanto nas recomendações. No entanto, a taxa de cobertura, isto é, a quantidade de filmes do domínio auxiliar que fazem parte do domínio principal, é outro fator que tende a influenciar no resultado final obtido, pois quanto maior for esta interseção, maiores são as possibilidades para os algoritmos que utilizam o procedimento de filtragem de estabelecerem vizinhanças a partir de uma função de similaridade. As tabelas 6.15 e 6.16 demonstram a correlação entre a quantidade de modelos de usuários sociais e a cobertura de filmes à medida que se define o tamanho mínimo de itens aceitáveis por modelo de usuário social. TAB. 6.15: Movielens - quantidade de modelos de usuários sociais e cobertura de filmes em relação à quantidade de itens avaliados por modelo. Modelos de Usuário e Cobertura de Filmes Domínio Auxiliar Mod >= 2 Mod >= 100 Cobert. filmes filmes usr filmes usr filmes inicial final 6,591 15,686 6,591 374 6,381 100% 96,81% 6,962 36,298 6,962 408 6,740 100% 96,81% 7,359 42,732 7,359 453 7,134 100% 96,94% 7,694 48,508 7,694 484 7,475 100% 97,15% 8,022 55,337 8,022 527 7,813 100% 97,39% 8,352 63,945 8,352 563 8,142 100% 97,48% 8,703 72,309 8,703 621 8,492 100% 97,57% 9,060 78,201 9,060 669 8,849 100% 97,67% 9,325 83,248 9,325 702 9,113 100% 97,73% 9,342 83,798 9,342 703 9,135 100% 97,78% Domínio Principal 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 usr 2,113 2,213 2,113 2,113 2,113 2,113 2,113 2,113 2,113 2,113 Modelos qnt. final 0,24% 1,12% 1,06% 1,00% 0,95% 0,88% 0,86% 0,85% 0,84% 0,84% O cenário movielens, tabela 6.15, possui inicialmente um domínio auxiliar com uma taxa de cobertura que abrange 100% dos filmes existentes no domínio principal. No final, em que apenas modelos de usuários sociais mais densos são considerados, isto é, aqueles que avaliaram pelo menos 100 itens, observa-se uma pequena oscilação na cobertura desses filmes. No entanto, há uma redução expressiva na quantidade final de modelos de usuários sociais (apresentados em negrito). Tais percentuais demonstram que utilizando apenas os modelos mais densos, a quantidade de modelos de usuários é reduzida aproximadamente para apenas 1% dos modelos inicialmente gerados. 86 Já o cenário lançamentos, tabela 6.16, possui taxas de cobertura iniciais que oscilam entre si, devido a natureza de sua construção, já que cada intervalo de tempo consiste em um domínio principal independente, gerado aleatoriamente, conforme descrito na seção 6.1.2. Ao final, utilizando apenas modelos mais densos observa-se uma oscilação na cobertura dos filmes em torno de 4% se comparado à cobertura inicial, enquanto a quantidade final de modelos de usuários sociais é reduzida para aproximadamente 20% da quantidade inicial. TAB. 6.16: Lançamentos - quantidade de modelos de usuários sociais e cobertura de filmes em relação quantidade de itens avaliados por modelo. Modelos de Usuário e Cobertura de Filmes Domínio Principal Domínio Auxiliar Mod >= 2 Mod >= 100 Cobert. usr filmes usr filmes usr filmes inicial Maio 625 41517 635 28756 94 27766 69,26% Junho 545 41176 546 22685 87 21409 55,09% Julho 381 31822 388 31500 58 30711 98,99% Agosto 670 46610 674 43419 169 42508 93,15% Setembro 686 42794 687 42300 157 41170 98,84% Outubro 967 47531 977 37447 160 36010 78,78% filmes final 66,88% 51,99% 96,51% 91,20% 96,20% 75,76% Modelos qnt. final 14,80% 15,93% 14,95% 25,07% 22,85% 16,38% FIG. 6.8: RMSE em relação ao tamanho dos modelos de usuários sociais. 87 Na figura 6.8 é apresentado o RMSE médio de cada cenário em relação ao tamanho dos modelos de usuários sociais. No cenário movielens, em ambientes estruturados, os modelos de usuários sociais menos densos causaram mais ruídos do que auxiliaram nas predições realizadas. Em contrapartida, em ambientes não-estruturados, à medida que os modelos considerados foram apenas os mais densos, houve uma certa piora na qualidade nas predições. Os algoritmos utilizados neste cenário foram o base-usuário-item e o itemitem. Por sua vez, no cenário lançamentos, tanto em ambientes estruturados quanto em não-estruturados, os modelos menos densos colaboraram em melhores predições. Sendo assim, a baixa quantidade de modelos de usuários sociais, à medida em que apenas os modelos mais densos eram considerados e o domínio principal possui relativamente poucos usuários, pode ter sido um fator que influenciou nos resultados observados. Os algoritmos utilizados neste cenário foram o base-usuário-item e o usuário-usuário. No cenário de lançamentos-agrupados, sendo este, uma variação do cenário lançamentos, criado a partir do agrupamento de 04 meses em sequência, seu RMSE médio foi melhor que os obtidos nos experimentos no cenário lançamentos. Em ambientes estruturados, ambos algoritmos utilizados obtiveram praticamente resultados equivalentes, havendo uma leve vantagem para o algoritmo item-item quando foram considerados também os modelos menos densos. Entretanto, ao considerar apenas os modelos mais densos, o algoritmo base-usuário-item superou os resultados do algoritmo item-item. Em geral neste cenário, os modelos menos densos auxiliam em predições mais corretas. FIG. 6.9: F1-score em relação ao tamanho dos modelos de usuários sociais. 88 Na figura 6.9, é apresentado o f1-score médio de cada cenário em relação ao tamanho dos modelos de usuários sociais. A fim de facilitar a visualização e comparação entre as duas métricas, f1-score e RMSE, os valores do f1-score no eixo y são apresentados em ordem decrescente. No cenário lançamentos-agrupados, os algoritmos executados, base-usuário-item e usuário-usuário, tiveram comportamentos distintos. Enquanto o algoritmo usuário-usuário apresentou melhores resultados em suas recomendações utilizando modelos menos densos, o algoritmo base-usuário-item, à medida em que eram considerados apenas modelos mais densos, aumentou sua capacidade de prover melhores recomendações. Ainda na figura 6.9, as recomendações em ambientes estruturados utilizando os algoritmos de FC, usuário-usuário e item-item, obtiveram melhores resultados em comparação ao algoritmo utilizando apenas o viés colaborativo, base-usuário-item, em ambos cenários avaliados. Sendo assim, em relação as recomendações, ao utilizar uma função de similaridade para definir os usuários ou itens que tenham maiores concordâncias de avaliações entre si, antes de calcular as predições e ordená-las, se mostrou mais eficiente do que apenas utilizar o viés colaborativo, considerando todas as avaliações do sistema. 89 7 CONCLUSÕES O objetivo principal de um sistema de recomendação é prover aos usuários novidades, de forma que sua satisfação geral seja sempre melhorada. Estas recomendações são usualmente baseadas em interações prévias dos usuários com o sistema de recomendação, o que torna difícil a integração de novos itens neste processo. Neste trabalho, foi apresentada uma abordagem baseada em domínios cruzados, na qual é utilizada a sobrecarga informativa proveniente da web para construir modelos de usuários, e compor um domínio auxiliar, a fim de expandir as informações utilizadas para realizar as recomendações e aliviar a situação de cold-start, em um domínio que faça uso de um sistema de recomendação que utilize alguma técnica de FC clássica. Os resultados observados nos experimentos demonstraram uma melhora significativa na qualidade das predições e recomendações dos itens em situação de cold-start em relação aos métodos clássicos de FC. Conforme esperado, os ambientes estruturados obtiveram resultados superiores aos observados em ambientes não-estruturados simulados. Os resultados experimentais da metodologia Baus foram avaliados em relação a três aspectos: a capacidade em realizar predições, a capacidade em gerar recomendações e a influência do tamanho dos modelos dos usuários sociais neste domínio auxiliar. No que concerne a esses aspectos, os experimentos em cada cenário apresentaram os seguintes resultados: • Predição: em relação a sua base de comparação, o cenário movielens obteve uma melhora em torno de 70% em ambientes estruturados, e 11% em ambientes nãoestruturados. Já o cenário lançamentos obteve uma melhora em torno de 102% em ambientes estruturados, e 48% em ambientes não-estruturados. Por sua vez, no cenário de lançamentos-agrupados houve uma melhora em torno de 118% em ambientes estruturados, porém houve uma piora em torno de 77% em ambientes não-estruturados; • Recomendação: constatou que a aplicação da metodologia tende a aumentar a capacidade de acertos a medida que mais itens em situação de cold-start são apresentados. Em relação a sua base de comparação – o cenário movielens – nos experimentos com pelo menos 10 itens a serem recomendados, obteve uma melhora em torno de 92% 90 em ambientes estruturados, e 28% em ambientes não-estruturados. Nos experimentos com pelo menos 20 itens a serem recomendados, obteve uma melhora em torno de 146% em ambientes estruturados, e 44% em ambientes não-estruturados. Já o cenário lançamentos-agrupados, nos experimentos com pelo menos 10 itens a serem recomendados, obteve uma melhora em torno de 181% em ambientes estruturados, e 111% em ambientes não-estruturados. Nos experimentos com pelo menos 20 itens a serem recomendados, obteve uma melhora em torno de 376% em ambientes estruturados, e 229% em ambientes não-estruturados; • Tamanho dos modelos de usuários sociais: a quantidade mínima de itens por modelo de usuário social tende a influenciar no resultado das predições e recomendações. Entretanto, a oscilação entre os resultados não deve ser o único fator a ser levado em consideração, pois quanto maior a quantidade de modelos, maior será o custo computacional. Desse modo, é preciso avaliar ambos fatores, para definir o tamanho "ótimo" no cenário observado. São motivadas, outras heurísticas mais dinâmicas, a fim de possibilitar a adição dos modelos somente quando necessário. A principal contribuição deste trabalho foi a concepção da metodologia Baus. Esta metodologia é independente de interseções entre os usuários dos domínios em questão ou de qualquer outra informação adicional para que ocorra a aplicação da técnica de domínios cruzados. Além de sua implementação e instanciação no domínio de filmes, foram criados modelos de usuários sociais e conjuntos de dados estendidos, permitindo futuros estudos na área de domínios cruzados. Estas informações são disponibilizadas no repositório deste trabalho. Os resultados obtidos neste estudo demonstraram haver um grande potencial nesta sobrecarga informativa, sendo capaz de auxiliar sistemas de recomendação. Em contrapartida, a transferência deste conhecimento adquirido é um processo bastante custoso, que por vezes impede sua aplicabilidade em cenários reais. Então, algumas questões ficam em aberto em relação a este conhecimento. O que transferir? Quando transferir? E como transferir? São questões que precisam ser exploradas em detalhes, a fim de permitir integrações mais dinâmicas e menos custosas. Portanto, são motivados trabalhos futuros que explorem estas questões em abordagens que utilizem domínios cruzados. Se observou até a data corrente da conclusão deste estudo, a limitação tecnológica em se obter conteúdo íntegro de recursos web não-estruturados, no caso da rede social Twitter. Apesar disso, todos os métodos propostos inicialmente foram implementados e 91 cenários simulados foram propostos a fim de validar a metodologia neste tipo de ambiente. Visto que estas simulações não são tão fidedignas quanto ao ambiente real, são motivados trabalhos futuros que permitam analisar a metodologia nesses ambientes sem que haja a necessidade em simulá-los; Para validar o desempenho da metodologia com itens realmente novos, isto é, filmes que haviam acabado de entrar em cartaz ou que iriam estrear em breve, foi criado o cenário lançamentos, proveniente do IMDB. Devido ao fato de não haver outro conjunto de dados para a determinada condução dos experimentos, os modelos de usuários recuperados foram divididos entre si a fim de criar domínios distintos. É motivado utilizar a metodologia Baus em outro recurso correlato ao IMDB, como o Rotten Tomatoes, para a criação de novos modelos de usuários, de maneira a permitir a utilização de todos os modelos de cada domínio sem que haja a necessidade em dividi-los; e conduzir novos experimentos que analisem inclusive a abordagem com domínios múltiplos, ou seja, avaliar a capacidade em realizar recomendações destes itens em ambos domínios; E por fim, foi utilizado no cenário que simulou os ambientes não-estruturados a inferência de avaliações através de seu conteúdo textual. Em (BAO, 2014), é proposta a utilização simultânea de avaliações que possuem e não possuem valores numéricos para realizar recomendações e os resultados apresentados neste estudo foram satisfatórios. Sendo assim, visto que foram observadas nos modelos de usuários avaliações as quais o usuário apenas escreveu sua opinião a respeito do item, sem informar seu correspondente numérico, é motivado analisar os experimentos realizados neste estudo com mais este viés híbrido em comparação aos resultados apresentados. O conceito de domínios cruzados, visto suas diversas possibilidades, em conjunto com a sobrecarga social oriunda da web, são áreas bastante promissoras, e uma vez que existem diversas questões em aberto em ambas as áreas, são motivados trabalhos futuros. É esperado que os experimentos e melhorias propostas permitam a definição de melhores abordagens, e por consequência, novas técnicas na área de pesquisa em domínios cruzados para lidar com itens em situação de cold-start. 92 8 REFERÊNCIAS BIBLIOGRÁFICAS AHN, H. J. A new similarity measure for collaborative filtering to alleviate the new user cold-starting problem. Information Sciences, 178(1):37–51, 2008. ANDERSON, C. The long tail. http://archive.wired.com/wired/archive/12.10/ tail.html?pg=1&topic=tail&topic_set=/, 2004. Acessado em 16 de Dezembro de 2014. ANDERSON, C. The Long Tail: Why the Future of Business Is Selling Less of More. Hyperion, 2006. ISBN 1401302378. BAO, Y. e ZHANG, H. F. J. Topicmf: Simultaneously exploiting ratings and reviews for recommendation. 2014. BERKOVSKY, S., KUFLIK, T. e RICCI, F. Cross-domain mediation in collaborative filtering. Em User Modeling 2007, págs. 355–359. Springer, 2007. BIRD, S., KLEIN, E. e LOPER, E. Natural Language Processing with Python. O’Reilly Media, Inc., 1st edition, 2009. ISBN 0596516495, 9780596516499. BORCHERS, A., HERLOCKER, J., KONSTAN, J. e REIDL, J. Ganging up on information overload. Computer, 31(4):106–108, 1998. BURKE, R. Hybrid web recommender systems. Em The adaptive web, págs. 377–408. Springer, 2007. CANN, A., DIMITRIOU, K. e HOOLEY, T. Social media: a guide for researchers. 2011. URL http://www.rin.ac.uk/system/files/attachments/social_media_ guide_for_screen_0.pdf. CANTADOR, I., BRUSILOVSKY, P. e KUFLIK, T. 2nd Workshop on Information Heterogeneity and Fusion in Recommender Systems (HetRec 2011). Em Proceedings of the 5th ACM conference on Recommender systems, RecSys 2011, New York, NY, USA, 2011. ACM. CANTADOR, I. e CREMONESI, P. Tutorial on cross-domain recommender systems. Em Proceedings of the 8th ACM Conference on Recommender systems, págs. 401–402. ACM, 2014. CANTADOR, I., FERNÁNDEZ-TOBIAS, I., BERKOVSKY, S. e CREMONESI, P. Cross-domain recommender systems. 2015. CREMONESI, P., KOREN, Y. e TURRIN, R. Performance of recommender algorithms on top-n recommendation tasks. Em Proceedings of the fourth ACM conference on Recommender systems, págs. 39–46. ACM, 2010. 93 CREMONESI, P., TRIPODI, A. e TURRIN, R. Cross-domain recommender systems. Em Data Mining Workshops (ICDMW), 2011 IEEE 11th International Conference on, págs. 496–503. IEEE, 2011. ENRICH, M., BRAUNHOFER, M. e RICCI, F. Cold-Start Management with CrossDomain Collaborative Filtering and Tags. Em E-Commerce and Web Technologies, págs. 101–112. Springer, 2013. EVARISTO, R., ADAMS, C. e CURLEY, S. Information load revisited: A theoretical model. ICIS 1995 Proceedings, pág. 18, 1995. FERNÁNDEZ-TOBÍAS, I. e CANTADOR, I. Exploiting social tags in matrix factorization models for cross-domain collaborative filtering. CBRecSys 2014, pág. 34, 2014. FERNÁNDEZ-TOBÍAS, I., CANTADOR, I., KAMINSKAS, M. e RICCI, F. Crossdomain recommender systems: A survey of the state of the art. Em Proceedings of the 2nd Spanish Conference on Information Retrieval. CERI, 2012. FISKE, A. P. The four elementary forms of sociality: framework for a unified theory of social relations. Psychological review, 99(4):689, 1992. GANTNER, Z., RENDLE, S., FREUDENTHALER, C. e SCHMIDT-THIEME, L. MyMediaLite: A Free Recommender System Library. Em Proceedings of the 5th ACM Conference on Recommender Systems (RecSys 2011), 2011. GOLDBERG, D., NICHOLS, D., OKI, B. M. e TERRY, D. Using collaborative filtering to weave an information tapestry. Commun. ACM, 35(12):61–70, dezembro 1992. ISSN 0001-0782. URL http://doi.acm.org/10.1145/138859.138867. GONZALEZ, J. Fuzzywuzzy github. https://github.com/seatgeek/fuzzywuzzy, 2014. Acessado em 27 de Dezembro de 2014. HEITMANN, B. e HAYES, C. Using Linked Data to Build Open, Collaborative Recommender Systems. Em AAAI spring symposium: linked data meets artificial intelligence, págs. 76–81, 2010. HERLOCKER, J., KONSTAN, J. A. e RIEDL, J. An empirical analysis of design choices in neighborhood-based collaborative filtering algorithms. Information retrieval, 5(4):287–310, 2002. HERLOCKER, J. L., KONSTAN, J. A., BORCHERS, A. e RIEDL, J. An algorithmic framework for performing collaborative filtering. Em Proceedings of the 22nd annual international ACM SIGIR conference on Research and development in information retrieval, págs. 230–237. ACM, 1999. HUANG, Z., CHEN, H. e ZENG, D. Applying associative retrieval techniques to alleviate the sparsity problem in collaborative filtering. ACM Transactions on Information Systems (TOIS), 22(1):116–142, 2004. 94 JANNACH, D., ZANKER, M., FELFERNIG, A. e FRIEDRICH, G. Recommender systems: an introduction. Cambridge University Press, 2010. KEIKHA, F., FATHIAN, M. e GHOLAMIAN, M. R. Comparison and evaluation of recommendation systems on social networks. Journal of Basic and Applied Scientific Research, 3(10):52–58, 2013. KELLY, T. Book review: The long tail (chris anderson). https://tingkelly. wordpress.com/2012/11/05/book-review-the-long-tail-chris-anderson, 2012. Acessado em 30 de Janeiro de 2015. KIMMEL, A. Psychological Foundations of Marketing. Taylor & Francis, 2012. ISBN 9781136183638. URL http://books.google.com.br/books?id=vyxxA53zX54C. KOREN, Y. Factor in the neighbors: Scalable and accurate collaborative filtering. ACM Transactions on Knowledge Discovery from Data (TKDD), 4(1):1, 2010. LI, B. Cross-domain collaborative filtering: A brief survey. Em Tools with Artificial Intelligence (ICTAI), 2011 23rd IEEE International Conference on, págs. 1085–1086. IEEE, 2011. LI, Q. e KIM, B. M. Clustering approach for hybrid recommender system. Em Web Intelligence, 2003. WI 2003. Proceedings. IEEE/WIC International Conference on, págs. 33–38. IEEE, 2003. LINDEN, G., SMITH, B. e YORK, J. Amazon. com recommendations: Item-toitem collaborative filtering. Internet Computing, IEEE, 7(1):76–80, 2003. MIT. The mit license (mit) | open source initiative. http://opensource.org/ licenses/MIT. Acessado em 24 de Janeiro de 2014. NECAS, D., HAAPALA, A. e OHTAMAA, M. python-levenshtein 0.12.0 : Python package index. https://pypi.python.org/pypi/python-Levenshtein/0.12.0, 2014. Acessado em 27 de Dezembro de 2014. PARK, S.-T., PENNOCK, D., MADANI, O., GOOD, N. e DECOSTE, D. Naïve filterbots for robust cold-start recommendations. Em Proceedings of the 12th ACM SIGKDD international conference on Knowledge discovery and data mining, págs. 699– 705. ACM, 2006. PORTER, M. F. An algorithm for suffix stripping. Program: electronic library and information systems, 14(3):130–137, 1980. RAJARAMAN, A. e ULLMAN, J. D. Mining of massive datasets. Cambridge University Press, 2011. RESNICK, P., IACOVOU, N., SUCHAK, M., BERGSTROM, P. e RIEDL, J. GroupLens: an open architecture for collaborative filtering of netnews. Em Proceedings of the 1994 ACM conference on Computer supported cooperative work, págs. 175–186. ACM, 1994. 95 RESNICK, P. e VARIAN, H. R. Recommender systems. Communications of the ACM, 40(3):56–58, 1997. SAHEBI, S. e BRUSILOVSKY, P. Cross-Domain Collaborative Recommendation in a Cold-Start Context: The Impact of User Profile Size on the Quality of Recommendation. Em CARBERRY, S., WEIBELZAHL, S., MICARELLI, A. e SEMERARO, G., editores, User Modeling, Adaptation, and Personalization, volume 7899 of Lecture Notes in Computer Science, págs. 289–295. Springer Berlin Heidelberg, 2013. ISBN 978-3-642-38843-9. SARWAR, B., KARYPIS, G., KONSTAN, J. e RIEDL, J. Item-based collaborative filtering recommendation algorithms. Em Proceedings of the 10th international conference on World Wide Web, págs. 285–295. ACM, 2001. SARWAR, B. M., KONSTAN, J. A., BORCHERS, A., HERLOCKER, J., MILLER, B. e RIEDL, J. Using filtering agents to improve prediction quality in the grouplens research collaborative filtering system. Em Proceedings of the 1998 ACM conference on Computer supported cooperative work, págs. 345–354. ACM, 1998. SCHEIN, A. I., POPESCUL, A., UNGAR, L. H. e PENNOCK, D. M. Methods and metrics for cold-start recommendations. Em Proceedings of the 25th annual international ACM SIGIR conference on Research and development in information retrieval, págs. 253–260. ACM, 2002. SEDHAIN, S., SANNER, S., BRAZIUNAS, D., XIE, L. e CHRISTENSEN, J. Social collaborative filtering for cold-start recommendations. Em Proceedings of the 8th ACM Conference on Recommender systems, págs. 345–348. ACM, 2014. SHANI, G. e GUNAWARDANA, A. Evaluating recommendation systems. Em Recommender systems handbook, págs. 257–297. Springer, 2011. SHI, Y., LARSON, M. e HANJALIC, A. Tags as bridges between domains: Improving recommendation with tag-induced cross-domain collaborative filtering. Em User Modeling, Adaption and Personalization, págs. 305–316. Springer, 2011. SIGROHA, D. e RANA, C. Survey Paper on Analysis of Various Recommendation Algorithms. Journal of Computer Science, 3(2):3406–3408, 2012. SPEIER, C., VALACICH, J. S. e VESSEY, I. The influence of task interruption on individual decision making: An information overload perspective. Decision Sciences, 30(2):337–360, 1999. SU, X. e KHOSHGOFTAAR, T. M. A survey of collaborative filtering techniques. Advances in artificial intelligence, 2009:4, 2009. WU, M. Collaborative filtering via ensembles of matrix factorizations. Em Proceedings of KDD Cup and Workshop, volume 2007, 2007. 96 ZHOU, X., XU, Y., LI, Y., JOSANG, A. e COX, C. The state-of-the-art in personalized recommender systems for social networking. Artificial Intelligence Review, 37(2):119–132, 2012. 97