marivaldo bispo rodrigues junior - repositorio.ufba.br · análise e desenvolvimento de modelos de...

84
Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de Recomendação Por Marivaldo Bispo Rodrigues Junior Trabalho de Graduação wiki.dcc.ufba.br/DCC/ SALVADOR, Maio/2016

Upload: vongoc

Post on 09-Nov-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

Análise e Desenvolvimento de Modelos de UsuáriosBaseado em Múltiplos Domínios para Sistemas de

Recomendação

Por

Marivaldo Bispo Rodrigues Junior

Trabalho de Graduação

Universidade Federal da Bahia

wiki.dcc.ufba.br/DCC/

SALVADOR, Maio/2016

Page 2: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,
Page 3: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

Universidade Federal da Bahia

Departamento de Ciência da Computação

Marivaldo Bispo Rodrigues Junior

Análise e Desenvolvimento de Modelos de UsuáriosBaseado em Múltiplos Domínios para Sistemas de

Recomendação

Trabalho apresentado ao Departamento de Ciência da Com-

putação da Universidade Federal da Bahia como requisito

parcial para obtenção do grau de Bacharel em Ciência da

Computação.

Orientador: Frederico Araujo Durão

SALVADOR, Maio/2016

Page 4: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,
Page 5: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

Dedico esta dissertação à minha família, amigos e

professores que me deram todo o apoio necessário para

chegar até aqui.

Page 6: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,
Page 7: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

Always code as if the guy who ends up maintaining your code will be a

violent psychopath who knows where you live

—JOHN WOODS

Page 8: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,
Page 9: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

Resumo

Sistemas de Recomendação são utilizados por muitos sites e serviços, sendo ferramentasimportantes para auxiliar o usuário a encontrar o que é mais relevante diante da imensaquantidade de informação disponível. Uma das maneiras de se construir um Sistema deRecomendação é a filtragem baseada em conteúdo, que recomenda itens para o usuáriocom base em um histórico do que ele gostou no passado. Para que isso ocorra de maneiraeficaz, o sistema precisa levar em consideração as preferências dos usuários sobre ositens a serem recomendados e, assim, conseguir gerar recomendações úteis. Este trabalhotem como proposta a criação de modelos de usuário, baseados em múltiplos domíniose de forma automatizada. E, através da transferência de conhecimento de um domíniopara outro, melhorar a precisão da recomendação. Os resultados obtidos na avaliaçãomostraram que compartilhar informações entre os domínios aumentou a performanceda recomendação, como no caso do teste com a métrica prec@5, que avalia os cincoprimeiros itens da lista de recomendação, e obteve uma melhoria de mais de 90%.

Palavras-chave: Sistema de Recomendação, Modelo de Usuário, Múltiplos Domínios,Redes Sociais

ix

Page 10: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,
Page 11: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

Abstract

Recommender systems are used by many sites and services, and are important tools to helpthe user to find what is most relevant in the immense amount of information available. Oneway to build a Recommendation System is content-based filtering, which recommendsitems to the user based on a profile that contains information about the content, such asgenre, keywords, etc. For this to happen effectively, the system must take into accountthe preferences and needs of users in order to generate useful recommendations. Thiswork proposes the modeling of user profiles with integration of multiple domains andautomatically. Then, through a transfer of knowledge of a domain to another, increase theperformance of the recomendation. The results of the evaluation showed that informationsharing between the domains increased the performance of the recommendation, as in thetest with the metric prec@5, which assesses the first five items of the recommendationlist, where obtained an improvement of more than 90%.

Keywords: Recommender Systems, User Model, Cross-domain, Social Network

xi

Page 12: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,
Page 13: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

Sumário

Lista de Figuras xvii

Lista de Tabelas xix

Lista de Acrônimos xxi

Lista de Códigos Fonte xxiii

1 Introdução 11.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2 Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.3 Objetivos da Solução Proposta . . . . . . . . . . . . . . . . . . . . . . 3

1.4 Estrutura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Sistemas de Recomendação 52.1 Histórico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.2 Conceitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.3 Tarefas de um Sistema de Recomendação . . . . . . . . . . . . . . . . 7

2.4 Técnicas de Recomendação . . . . . . . . . . . . . . . . . . . . . . . . 9

2.4.1 Filtragem Colaborativa . . . . . . . . . . . . . . . . . . . . . . 10

2.4.2 Filtragem Baseada em Conteúdo . . . . . . . . . . . . . . . . . 11

2.4.3 Arquitetura de Sistemas de Recomendação Baseados em Conteúdo 12

2.4.4 Comparação das Técnicas de Recomendação . . . . . . . . . . 13

2.5 Aplicações de Sistemas de Recomendação . . . . . . . . . . . . . . . . 14

2.5.1 TiVo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2.5.2 Biblioteca Digital . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.5.3 Amazon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.6 Sumário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3 Modelo de Usuário 193.1 Feedback do Usuário . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.2 Modelagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.3 Modelos de Usuário Baseados em Múltiplos Domínios . . . . . . . . . 22

3.4 Ranking Personalizado . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.4.1 Bayesian Personalized Ranking . . . . . . . . . . . . . . . . . 23

xiii

Page 14: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

3.4.2 BPR-Linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.4.3 BPR-Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.5 Trabalhos Relacionados . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.6 Sumário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

4 Análise e Desenvolvimento de Modelos de Usuários Baseado em MúltiplosDomínios para Sistemas de Recomendação 294.1 Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

4.1.1 Requisitos Funcionais . . . . . . . . . . . . . . . . . . . . . . 30

4.1.2 Requisitos Não Funcionais . . . . . . . . . . . . . . . . . . . . 32

4.2 Arquitetura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

4.2.1 Composição da Arquitetura . . . . . . . . . . . . . . . . . . . 33

Camada View . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Camada Controller . . . . . . . . . . . . . . . . . . . . . . . . 33

Camada Model . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4.3 Tecnologias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

4.3.1 HTML, CSS e JavaScript . . . . . . . . . . . . . . . . . . . . . 34

4.3.2 PHP/Laravel e MySQL . . . . . . . . . . . . . . . . . . . . . . 35

4.3.3 SPARQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

4.3.4 Facebook API . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4.4 Telas e Funcionamento . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4.5 Sumário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

5 Avaliação 455.1 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

5.2 Conjunto de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

5.3 Métricas de Avaliação . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5.3.1 Precisão em n (Prec@n) . . . . . . . . . . . . . . . . . . . . . 48

5.3.2 Mean Average Precision (MAP) . . . . . . . . . . . . . . . . . 49

5.3.3 Area Under the ROC curve (AUC) . . . . . . . . . . . . . . . . 49

5.4 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

5.4.1 Prec@5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

5.4.2 Prec@10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

5.4.3 MAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

5.4.4 AUC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

5.5 Discussão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

xiv

Page 15: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

5.6 Pontos de Melhoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545.7 Sumário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

Referências Bibliográficas 55

xv

Page 16: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,
Page 17: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

Lista de Figuras

2.1 Técnicas de recomendação e suas fontes de conhecimento (Burke, 2007). 102.2 Arquitetura de alto nível de um Sistema de Recomendação Baseado em

Conteúdo (Lops et al., 2011). . . . . . . . . . . . . . . . . . . . . . . . 122.3 Lista de Recomendação do Sistema de Recomendação do TiVo (RCN,

2013). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.4 Página Web do CYCLADES. Figura elaborada pelo autor (2015). . . . 162.5 Recomendação de Livros no site da Amazon. Figura elaborada pelo autor

(2015). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4.1 A organização do MVC (Sommerville, 2010). . . . . . . . . . . . . . . 334.2 Funcionamento de aplicações Web dinâmicas, utilizando PHP e Mysql

(Ullman, 2009). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354.3 Diagrama Entidade-Relacionamento do Sistema. Figura elaborada pelo

autor (2015). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.4 Fluxo do Funcionamento do Sistema. Figura elaborada pelo autor (2015). 404.5 Tela de login de usuário. Figura elaborada pelo autor (2015). . . . . . . 414.6 Tela do perfil do usuário com opção para coleta dos dados. Figura

elaborada pelo autor (2015). . . . . . . . . . . . . . . . . . . . . . . . 424.7 Tela de visualização dos detalhes de um livro. Figura elaborada pelo

autor (2015). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424.8 Tela de visualização dos filmes do usuário. Figura elaborada pelo autor

(2015). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434.9 Tela do perfil com estatísticas de gêneros mais assistidos e lidos pelo

usuário. Figura elaborada pelo autor (2015). . . . . . . . . . . . . . . . 44

5.1 Exemplo de arquivo da relação entre filme e gênero. Figura elaboradapelo autor (2015). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

5.2 Precisão e Cobertura (Barth, 2013). . . . . . . . . . . . . . . . . . . . 485.3 Resultados da métrica MAP utilizando o algoritmo BPR-Mapping. Figura

elaborada pelo autor (2015). . . . . . . . . . . . . . . . . . . . . . . . 515.4 Resultados da métrica AUC utilizando o algoritmo BPR-Mapping. Figura

elaborada pelo autor (2015). . . . . . . . . . . . . . . . . . . . . . . . 53

xvii

Page 18: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,
Page 19: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

Lista de Tabelas

4.1 Requisitos Funcionais do Sistema. . . . . . . . . . . . . . . . . . . . . 314.2 Requisitos Não Funcionais do Sistema. . . . . . . . . . . . . . . . . . . 32

5.1 Conjunto de Dados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475.2 Resultados para AUC, prec@5 e prec@10. . . . . . . . . . . . . . . . . 50

xix

Page 20: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,
Page 21: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

Lista de Acrônimos

RR Realimentação de Relevância

BPR Bayesian Personalized Ranking

MAP Mean Average Precision

ROC Receiver Operating Characteristics

AUC Area Under the ROC Curve

MVC Model View Controller

xxi

Page 22: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,
Page 23: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

Lista de Códigos Fonte

4.1 Consulta SPARQL para um Filme. . . . . . . . . . . . . . . . . . . . . 39

xxiii

Page 24: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,
Page 25: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

1Introdução

You can’t connect the dots looking forward; you can only connect them

looking backwards. So you have to trust that the dots will somehow

connect in your future. You have to trust in something – your gut,

destiny, life, karma, whatever. This approach has never let me down,

and it has made all the difference in my life.

—STEVE JOBS

Hoje em dia, através da Internet, o acesso à informação se torna cada vez mais fácil, ea sua disponibilidade vem crescendo com o surgimento de novos serviços e dispositivos.A quantidade de informação vem aumentando, assim, encontrar o conteúdo mais relevantedeixou de ser uma tarefa trivial. De acordo com Gantz and Reinsel (2012), até 2020a quantidade de informação digital chegará a 40 trilhões de gigabytes (mais de 5.200gigabytes por cada homem, mulher e criança em 2020). Como resultado, o usuáriotem uma sobrecarga de informação, ou seja, ele é submetido em excesso à informação,tornando difícil encontrar o que é mais importante.

Com tanta informação disponível, é natural que as pessoas sintam dificuldades emencontrar aquela que lhe é útil. Para minimizar a sobrecarga, elas podem obter avaliaçõesde seus pares (amigos, conhecidos, etc) ou fazer pesquisas na Internet, o que já caracterizaum conjunto de informações muito grande e disperso, dificultando a descoberta. Assim, ainformação não é entregue de forma personalizada ao usuário e encontrá-la pode ser umatarefa bem complexa.

Uma solução são os sistemas de recomendação, que filtram a informação para fornecersugestões para um usuário, como assistir a um filme, ouvir uma música, ler um livroe assim por diante. Neste sentido, um sistema de recomendação irá atuar a favor das

1

Page 26: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

CAPÍTULO 1. INTRODUÇÃO

preferências do usuário. Para realizar essas sugestões os sistemas de recomendação utili-zam um modelo de usuário, que armazena suas preferências e restrições. Normalmenteestes modelos concentram-se em um domínio específico. Assim, o foco deste trabalho éfornecer uma ferramenta que permita gerar modelos de usuário baseados em múltiplosdomínios.

1.1 Motivação

A população da Internet vem crescendo a cada ano, e pesquisas indicam que até 2015existiam aproximadamente 3,2 bilhões de usuários (ITU, 2015) utilizando a Internet.Grande parcela dos usuários de internet utilizam redes sociais e, com essa popularidade,elas possuem um enorme repositório de dados a respeito deles, isso permite que elescriem diversos tipos de itens pessoais em vários domínios, como livros, filmes e músi-cas preferidos. Além dessas informações fornecidas pelos próprios usuários, temos àdisposição informações que podem ser colhidas a partir das suas relações de amizade narede. A análise conjunta desse tipo de informação pode melhorar o entendimento sobreas preferências do usuário.

Todo esse conjunto de conhecimento sobre as preferências do usuário pode ser utili-zado por sistemas de recomendação. A filtragem baseada em conteúdo, uma das técnicasutilizadas por sistemas de recomendação, normalmente tenta fornecer recomendações aum usuário sobre um conjunto de itens pertencentes a um domínio específico, baseadono histórico de avaliações do usuário. Em muitos casos, a quantidade de classificaçõesfeitas pelo usuário pode não ser o suficiente para o sistema de recomendação, o que gerapredições de baixa qualidade.

Para fornecer informações personalizadas o sistema precisa criar um modelo ou perfilde usuário. O modelo de usuário serve para que o sistema conheça as preferências erestrições de quem se deseja gerar recomendações, para que assim possa apresentarapenas o que for de seu interesse. Normalmente, serviços utilizam seus próprios modelosde usuário. Por exemplo, o serviço de streaming de filmes Netflix1 utiliza um modelode usuário voltado ao domínio filme, já a Amazon2 está relacionada a livros. Porém,ao unir estes dois modelos para integrar um único modelo de usuário pode-se melhoraro resultado final, gerando recomendações mais relevantes no que se refere ao gosto dousuário. Este é um modelo de usuário baseado em múltiplos domínios.

Para melhorar o poder de sugestão do sistema de recomendação é proposta uma

1http://www.netflix.com2http://www.amazon.com

2

Page 27: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

1.2. PROBLEMA

modelagem do perfil de usuário que combina informações de múltiplos domínios deforma automatizada. Neste cenário, os interesses para um item de um domínio podem serdescobertos através de correlações com dados de outro domínio.

1.2 Problema

A incapacidade dos atuais modelos de usuários detectarem a preferência do usuário,quando há pouco ou nenhum conhecimento a seu respeito, impossibilita a geração deuma boa recomendação baseada em seu interesse.

As redes sociais permitem que os usuários armazenem informações de filmes e livrosvistos pelo usuário, estes formam um conjunto de itens em múltiplos domínios. O grandevolume de itens destes domínios acaba resultando em uma sobrecarga de informação.Porém, a maioria dos sistemas de recomendação utiliza modelos de usuário baseados emum único domínio.

Um problema com os sistemas de recomendação existentes é que eles geralmenteprecisam de algum registro de interação do usuário antes que seja possível realizar arecomendação. Por exemplo, um sistema de recomendação de filmes precisa que ousuário forneça algumas informações de suas preferências por filmes, antes que ele possafornecer recomendações personalizadas sobre outros filmes. Enquanto isso, o usuárioirá receber recomendações de baixa qualidade, um problema conhecido como "partida afrio" (cold-start problem).

Portanto, há a falta de uma opção em que um sistema de recomendação não dependaexclusivamente de informações passadas pelo usuário de forma manual. Este é um dosprincipais problemas que este trabalho busca resolver.

1.3 Objetivos da Solução Proposta

Este trabalho propõe como solução a criação de modelos de usuário baseados em múltiplosdomínios de forma automatizada. O objetivo é melhorar a qualidade da recomendaçãocombinando as informações de diferentes domínios. Para gerar o perfil do usuário, serãoutilizados dados do usuário obtidos da rede social Facebook3, o que ajuda a evitar oproblema da "partida a frio", onde o sistema tem baixa eficiência até obter uma quantidadesuficiente de avaliações.

3http://www.facebook.com

3

Page 28: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

CAPÍTULO 1. INTRODUÇÃO

Para começar o usuário fará um registro na aplicação utilizando o seu login do Face-book. Feito o login, a aplicação coletará informações do perfil do usuário no Facebookreferentes a suas preferências sobre filmes e livros. Os dados a serem coletados serão otítulo de cada filme e livro que o usuário marcou como assistido e lido, respectivamente.

Após obter esses dados, será necessário coletar informações adicionais para classificaresses dados, pois inicialmente teremos apenas o título do item, o que não é o suficientepara criar relações entre os itens. Será utilizado serviços da web semântica, como DBPe-dia4 e LinkedIMDB5, para obter informações estruturadas e, assim, fazer a classificação.Após obtida estas informações o usuário verá no painel da aplicação uma visão geral dositens que ele possui. E com estas informações, sistemas de recomendação poderão seralimentados para realizar recomendações ao usuário.

1.4 Estrutura

Neste capítulo motivamos e introduzimos o problema que este trabalho propõe resolver.Os próximos capítulos estão organizados da seguinte maneira: O Capítulo 2 apresentaos conceitos teóricos usados neste trabalho referentes a Sistemas de Recomendação. OCapítulo 3 apresenta conceitos sobre Modelos de Usuário. O Capítulo 4 apresenta aproposta de resolução para modelos de usuários em múltiplos domínios criados automati-camente e discute como foi feita a implementação. O Capítulo 5 apresenta a avaliação daferramenta, conclusões e considerações finais.

4http://wiki.dbpedia.org/5http://www.linkedmdb.org/

4

Page 29: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

2Sistemas de Recomendação

A grande quantidade de informação produzida e disponibilizada atualmente pode geraruma sobrecarga para o usuário. Por causa deste problema, muitas tecnologias surgirampara apoiar a seleção, recuperação e filtragem da informação de interesse do usuário. Estecapítulo fornece uma visão geral sobre Sistemas de Recomendação, introduz os principaisconceitos em sistemas de recomendação, as tarefas e técnicas que a caracterizam.

2.1 Histórico

Os primeiros sistemas de recomendação foram tradicionais sistemas de filtragem e recu-peração da informação os quais não podiam recomendar mais do que certos resultados deacordo com a pesquisa. O primeiro sistema de recomendação foi um sistema experimentalde filtragem de email: Tapestry (Goldberg et al., 1992), desenvolvido por pesquisadoresda Xerox Palo Alto Research Center. A motivação para o Tapestry veio do aumentodo número de emails que chegavam no centro de pesquisa (Resnick and Varian, 1997).Tapestry foi elaborado para lidar com filtragem colaborativa - sendo os primeiros a usar otermo - e filtragem baseada em conteúdo. A parte colaborativa do sistema filtra e arquivaos emails de acordo com as reações das pessoas que já tinham lido.

Em sua forma mais simples, recomendações personalizadas são fornecidas como listasranqueadas de itens. Para gerar essa lista, sistemas de recomendação tentam predizer qualproduto ou serviço mais se encaixa, baseado nas preferências do usuário. Para isso, elescoletam as preferências do usuário que podem ser expressas explicitamente, por exemplo,avaliando produtos, ou são inferidas interpretando as ações do usuário, por exemplo, osistema pode considerar um acesso à página de um produto como um sinal implícito depreferência (Ricci et al., 2011).

As pessoas frequentemente dependem de recomendações de outras pessoas seja

5

Page 30: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

CAPÍTULO 2. SISTEMAS DE RECOMENDAÇÃO

através de recomendação de amigos, reviews de livros e filmes, ou guias de restaurantes.O sistema de recomendação apoia e aumenta esse processo natural (Resnick and Varian,1997). Basicamente, sistemas de recomendação são técnicas e ferramentas de softwarepara fornecer sugestões de itens que sejam úteis para um usuário. Nesses sistemas,"item" é um termo genérico utilizado para denotar o que o sistema recomenda a umusuário (Ricci et al., 2011).

Sistemas de recomendação são largamente utilizados no comércio eletrônico, en-tretenimento, consumo de conteúdo, indústria de serviço, e já podem ser encontradosem muitas aplicações modernas que entregam ao usuário uma enorme coleção de itens,recomendando itens ao usuário final utilizando uma combinação de abordagens baseadaem conteúdo, filtragem colaborativa e em conhecimento (Ricci et al., 2011). Por exemplo,o serviço de streaming de filmes Netflix1 exibe predições de classificação para cada filmeexibido, ajudando o usuário a decidir qual filme assistir. A loja online Amazon2 fornece,na página de um produto, informações de outros produtos comprados por usuários quecompraram aquele produto (Shani and Gunawardana, 2009).

Com o rápido crescimento da quantidade de informação disponível na Web e o surgi-mento de vários novos tipos de serviços que, frequentemente sobrecarregam o usuário(compra de produtos, comparação de produtos, leilão, etc), são tomadas decisões pobresou erradas. Assim a disponibilidade de escolhas ao invés de ser um benefício acaba sendoum problema para o usuário (Ricci et al., 2011). Os sistemas de recomendação oferecemnovos itens não visitados anteriormente como produtos, filmes, livros, páginas web, etc,baseados nas preferências do usuário mantidas em seu perfil. Os sistemas de recomen-dação lidam com esse problema de sobrecarga de informação filtrando itens que podemcorresponder aos interesses do usuário. Eles ajudam os usuários filtrando informaçõesirrelevantes quando os usuários pesquisam por alguma informação de interesse (Aminiet al., 2011).

Critérios como "individualizada" e "interessante e útil" que diferenciam o sistemade recomendação dos sistemas de recuperação de informação ou motores de busca. Emum motor de busca, o sistema deve retornar tudo o que for correspondente a um termo depesquisa. Porém, motores de buscas começaram a utilizar técnicas como Realimentaçãode Relevância (RR) (em inglês, Relevance Feedback - RF) para introduzir o usuário noprocesso da busca, permitindo que os mesmos indiquem o que é realmente relevante(Burke, 2002).

1https://www.netflix.com2http://www.amazon.com/

6

Page 31: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

2.2. CONCEITOS

2.2 Conceitos

Os dados utilizados pelo sistema de recomendação podem se referir a três tipos de objetos:itens, usuários e relações (Ricci et al., 2011).

• Itens: Itens são os objetos recomendados. Podem ser caracterizados por suacomplexidade e por seu valor ou utilidade. O valor de um item pode ser positivo seo item é útil para o usuário, ou negativo se o item é inapropriado e o usuário tomouuma decisão errada ao selecioná-lo. Itens podem ser representados utilizando váriasabordagens de representação e informação.

• Usuários: Os usuários do sistema de recomendação podem ter diversos objetivos ecaracterísticas. Para personalizar as recomendações os sistemas de recomendaçãoexploram um conjunto de informações sobre o usuário. Essas informações podemser estruturadas de várias maneiras, e a seleção de quais informações modelardepende da técnica de recomendação. Usuários também podem ser descritos peloseus padrões de comportamento, como dados de navegação em um site.

• Transações: Transações são registros de interação entre o usuário e o sistema derecomendação. São como dados de log que armazenam informações importantesgeradas durante a interação humano-computador, as quais são úteis para geraçãode recomendação pelo algoritmo que o sistema está utilizando.

2.3 Tarefas de um Sistema de Recomendação

Ricci et al. (2011) apresentou uma lista das tarefas de um sistema de recomendaçãobaseado nos interesses do criador do sistema de recomendação.

• Aumentar o número de itens vendidos: Esta é, provavelmente, a função maisimportante para um sistema de recomendação comercial. Ele deve ser capaz devender um conjunto de itens adicionais comparado a aqueles que venderiam semqualquer tipo de recomendação.

• Vender mais itens diferentes: Outra função importante de um sistema de reco-mendação é possibilitar que o usuário encontre itens que seriam difícil de encontrarsem uma recomendação precisa.

7

Page 32: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

CAPÍTULO 2. SISTEMAS DE RECOMENDAÇÃO

• Aumentar a satisfação do usuário: Uma combinação de recomendações precisase uma interface bem desenhada irão aumentar a avaliação subjetiva que o usuáriotem do sistema. Isto irá aumentar a utilização do sistema e a probabilidade de asrecomendações serem aceitas.

• Aumentar a fidelidade do usuário: Um usuário deve ser fiel a um site quereconhece-o como um cliente antigo e trata-o como um visitante de grande valor.Esse é um recurso comum em sistemas de recomendação, já que eles calculamrecomendações avaliando as informações adquiridas do usuário em interaçõesanteriores.

• Melhor entendimento do que o usuário quer: A descrição das preferências dousuário, coletas explicitamente ou preditas pelo sistema, podem ser reutilizadaspara vários objetivos.

Herlocker et al. (2004) define onze tarefas de usuário que um sistema de recomendaçãopode auxiliar a implementar para apoiar o usuário em seus objetivos.

• Anotação em Contexto: Dada uma lista de itens em um contexto, destacar algunsdeles de acordo com as preferências do usuário.

• Encontrar Bons Itens: Fornecer ao usuário uma lista ranqueada dos itens reco-mendados, com uma previsão do quanto os eles gostariam deles.

• Encontrar Todos os Bons Itens: Fornecer ao usuário uma lista de todos os itensque podem satisfazer suas necessidades. Em alguns casos encontrar apenas algunsbons itens pode não ser o suficiente. Na prática, o sistema tem que garantir ter umataxa de "falso negativo" suficientemente baixa.

• Recomendar uma Sequência: Aqui tem-se o desafio de recomendar uma sequên-cia de itens relacionados.

• Recomenda um Grupo: Recomendar um grupo de itens relacionados que possaminteressar o usuário.

• Apenas Navegar: O sistema deve auxiliar os usuários que apenas navegam sem umpropósito definido, navegando entre os itens que possam ser interessantes naquelasessão específica.

8

Page 33: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

2.4. TÉCNICAS DE RECOMENDAÇÃO

• Encontrar Sistema de Recomendação Confiável: Os usuários podem não confiarno sistema de recomendação, assim o sistema deve possibilitar que o usuário testealgumas funções.

• Melhorar o Perfil: O sistema deve receber informações do usuário sobre o queele gosta e não gosta. As contribuições do usuário aperfeiçoarão a qualidade dasrecomendações.

• Expressar-se: Alguns usuários não se importam com as recomendações, apenasestão interessados em contribuir com as qualificações. Assim, o sistema devefornecer uma seção para comentários.

• Ajudar os Outros: Alguns usuários gostam de contribuir com informação porqueeles acreditam que a comunidade se beneficia de sua avaliação.

• Influenciar os Outros: Existem ainda usuários maliciosos, que tentarão influenciaroutros a escolher um determinado item, ou ainda utilizarão o sistema apenas parapromover ou penalizar um item.

2.4 Técnicas de Recomendação

Para a realização da recomendação são utilizadas algumas técnicas de recomendação,feitas a partir da predição sobre as informações dos itens e usuários.

Várias técnicas de recomendação foram propostas como base para um sistema derecomendação, como as técnicas colaborativa, baseada em conteúdo, baseada em co-nhecimento e demográfica. As técnicas de recomendação podem ser diferenciadas combase em suas fontes de conhecimento: de onde vem o conhecimento necessário parafazer a recomendação? Em alguns sistemas, esse conhecimento é o conhecimento daspreferências de outros usuários (Burke, 2007).

A utilidade de um item para um usuário pode ser influenciada pelo conhecimentoque o usuário tem do domínio, por exemplo, usuário iniciantes vs experientes de umacâmera digital, ou pode depender do momento em que a recomendação foi feita. Ou ousuário pode estar mais interessado em itens mais perto de seu local atual, um restaurantepor exemplo. Assim, a recomendação deve ser adaptada para esses detalhes específicosadicionais (Ricci et al., 2011).

Burke (2007) apresentou quatro diferentes classes de técnicas de recomendaçãobaseadas em fontes de conhecimento, como ilustrado na Figura 2.1:

9

Page 34: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

CAPÍTULO 2. SISTEMAS DE RECOMENDAÇÃO

Figura 2.1 Técnicas de recomendação e suas fontes de conhecimento (Burke, 2007).

• Filtragem Colaborativa: O sistema gera recomendações para um usuário utili-zando apenas informações de itens de outros usuários com gosto similar.

• Baseada em Conteúdo: O sistema gera recomendação de duas fontes: as caracte-rísticas associadas ao item e as classificações que os usuários deram a ele.

• Demográfica: Fornece recomendações baseado no perfil demográfico do usuário.

• Baseada em Conhecimento: Sugere itens baseado em inferências sobre as prefe-rências e necessidades do usuário.

A seguir é discutido em detalhes alguns dos tipos de recomendação.

2.4.1 Filtragem Colaborativa

Na filtragem colaborativa o sistema recomenda ao usuário ativo itens que usuários comgostos similares gostaram no passado. A semelhança de gostos de dois usuários écalculada baseada na similaridade do histórico de classificações dos usuários. A filtragemcolaborativa é considerada a técnica em sistemas de recomendação mais popular e maislargamente implementada (Ricci et al., 2011).

A ideia chave é que a classificação de um usuário u para um novo item i é provávelde ser similar para a de outro usuário v, se u e v tem classificado outros itens de maneira

10

Page 35: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

2.4. TÉCNICAS DE RECOMENDAÇÃO

similar. De modo similar, é provável que u classifique dois itens i e j de forma semelhante,se outros usuários tem feito classificações similares para estes dois itens (Ricci et al.,2011).

Em Burke (2002) e Burke (2007), tem-se que os métodos de filtragem colaborativapodem ser divididos nas duas classes gerais baseados em vizinhança e modelo. Nafiltragem colaborativa baseada em vizinhança as classificações usuário-item armazenadasno sistema são utilizadas diretamente para predizer classificações para novos itens. Istopode ser feito de duas maneiras conhecidas como recomendação user-based ou item-based

(Ricci et al., 2011).

Sistemas baseados em usuário, avaliam o interesse de um usuário u por um itemi utilizando as classificações, para este item, de outros usuários, chamados vizinhos,que tem padrões de classificação similar. Os vizinhos do usuário u são tipicamente osusuários v cujas classificações para os itens classificados por u e v, isto é Iuv, são maiscorrelacionados com aqueles de u. A abordagem baseada no item, por outro lado, prediza classificação de um usuário u para um item i baseado nas classificações de u para itenssimilares a i. Em tais abordagens, dois itens são similares se muitos usuários do sistematem classificado estes itens de maneira similar (Ricci et al., 2011).

Diferente dos sistemas baseado em vizinhança, que usam as classificações armazena-das diretamente na predição, abordagens baseadas em modelo usam essas classificaçõespara aprender um modelo preditivo. A ideia geral é modelar as interações usuário-itemcom fatores representando características latentes dos usuários e itens no sistema, como aclasse de preferência do usuário e a classe de categoria dos itens. Este modelo é entãotreinado utilizando os dados disponíveis, e depois utilizado para predizer classificaçõesde usuários para novos itens (Ricci et al., 2011).

2.4.2 Filtragem Baseada em Conteúdo

Sistemas de recomendação baseado em conteúdo tentam recomendar itens similaresa aqueles que um usuário gostou no passado, ao passo que sistemas que utilizam oparadigma de recomendação colaborativa identificam usuários que possuem preferênciassimilares a um usuário e recomenda itens que eles tem gostado (Lops et al., 2011).

Sistemas implementando uma abordagem de recomendação baseada em conteúdoanalisam um conjunto de documentos e/ou descrições de itens previamente classificadospor um usuário, e constrói um modelo ou perfil de interesses do usuário baseado nascaracterísticas dos objetos classificados por este usuário (Mladenic, 1999). O perfil é umarepresentação estruturada dos interesses do usuário, adaptado para recomendar novos

11

Page 36: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

CAPÍTULO 2. SISTEMAS DE RECOMENDAÇÃO

Figura 2.2 Arquitetura de alto nível de um Sistema de Recomendação Baseado em Conteúdo(Lops et al., 2011).

itens interessantes. O processo de recomendação consiste basicamente em combinar osatributos do perfil do usuário contra os atributos de um objeto de conteúdo. O resultado éum julgamento de relevância que representa os níveis de interesse do usuário naqueleobjeto. Se um perfil reflete com precisão as preferências do usuário, isso é uma grandevantagem para a eficácia no processo de acesso a informação. Por exemplo, poderia serutilizado para filtrar os resultados de pesquisa para decidir se um usuário está interessadoem uma específica página Web ou não e, em caso negativo, prevenir de ser exibida (Lopset al., 2011).

2.4.3 Arquitetura de Sistemas de Recomendação Baseados em Con-teúdo

Segundo Lops et al. (2011), em sistemas baseados em conteúdo é necessário utilizartécnicas apropriadas para representar os itens e produzir o perfil do usuário, e algumasestratégias para comparar o perfil do usuário com a representação do item. O processo derecomendação é realizado em três passos, cada qual é manipulado por um componenteseparado:

12

Page 37: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

2.4. TÉCNICAS DE RECOMENDAÇÃO

• Analisador de Conteúdo: Quando a informação não tem estrutura, como um texto,algum tipo de pré-processamento é preciso para extrair informação relevante eestruturada. A principal responsabilidade do componente é representar o conteúdodos itens (por exemplo, documentos, páginas Web, notícias, descrição de produtos,etc.) vindos de fontes de informação de forma adequada para o próximo passo deprocessamento.

• Aprendiz de Perfil: Este módulo coleta dados representativos das preferênciasdos usuários e tenta generalizar estes dados, para construir o perfil do usuário.Normalmente, a estratégia de generalização é realizada através de técnicas deaprendizado de máquina, que são capazes de inferir um modelo de interesses deusuário partindo de itens gostados ou não gostados no passado.

• Componente de Filtragem: Este módulo explora o perfil do usuário para suge-rir itens relevantes através da combinação da representação do perfil do usuáriocontra os itens a serem recomendados. O resultado é um binário ou contínuojulgamento de relevância (computado utilizando alguma métrica de similaridade(Herlocker et al., 2004)), neste último caso resultando em uma lista ranqueada deitens potencialmente interessantes.

A arquitetura de alto nível de um sistema de recomendação baseado em conteúdo estáretratada na Figura 2.2.

2.4.4 Comparação das Técnicas de Recomendação

Todas as técnicas de recomendação tem seus pontos fortes e fracos. Burke (2002) indicoualguns desses pontos, os quais são discutidos abaixo:

• Usuário Novo: Recomendações partem da comparação entre o usuário alvo eoutros usuários baseado unicamente na acumulação de classificações, assim umusuário com poucas classificações é difícil de categorizar.

• Item Novo: Do mesmo modo, um item novo que não tem recebido muitas classifi-cações também não pode ser facilmente recomendado: o problema do "item novo".É também conhecido como problema do "early rater", desde que a primeira pessoaa classificar um item recebe poucos benefícios por fazer isso. Isso torna necessárioque sistemas de recomendação forneçam outros incentivos para encorajar usuáriosa fornecer classificações.

13

Page 38: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

CAPÍTULO 2. SISTEMAS DE RECOMENDAÇÃO

Sistemas de recomendação colaborativos dependem das recomendações entre usuáriose tem problemas quando o espaço de classificações é esparso, onde poucos usuáriosclassificam os mesmos itens.

Estes três problemas sugerem que técnicas colaborativas puras são melhores paraproblemas onde a densidade de interesse do usuário é relativamente alta entre um pequenoe estático universo de itens. Se o conjunto de itens muda rapidamente, classificaçõesantigas serão de pouco valor para novos usuários que não serão capazes de ter suasclassificações comparadas com as dos usuários existentes. Se o conjunto de itens é grandee o interesse do usuário dissemina pouco, então a probabilidade de sobreposição comoutros usuários será pequena (Burke, 2002).

Sistemas de recomendação colaborativos funcionam melhor para um usuário quese encaixa em um nicho com muitos vizinhos de gosto semelhante. A técnica nãofunciona bem para o chamado "gray sheep" (Claypool et al., 1999), que cai na fronteiraentre panelinhas de usuários existentes. Isso também é um problema para sistemasdemográficos que tentam categorizar usuários em características pessoais. Por outro lado,sistemas de recomendação demográficos não tem o problema do "usuário novo", porqueeles não requerem um lista de classificações dos usuários. Ao invés, eles tem o problemade reunir as informações demográficas necessárias. (Burke, 2002).

2.5 Aplicações de Sistemas de Recomendação

O primeiro sistema de recomendação foi um sistema experimental de filtragem de email,Tapestry (Goldberg et al., 1992), desenvolvido por pesquisadores da Xerox Palo AltoResearch Center (Resnick and Varian, 1997).

O objetivo do Tapestry era filtrar e arquivar os e-mails que chegavam todos os dias, deacordo com as opniões dadas pelas que efetuavam a leitura. Assim, este sistema utilizavauma abordagem colaborativa.

2.5.1 TiVo

Com o desenvolvimento das smart TVs, os usuários passaram a poder fazer classificaçõespela TV. TiVo3 é um serviço de televisão muito utilizado nos Estados Unidos, que utilizaum sistema de recomendação para sugerir programas que sejam de interesse do usuário(Ali and van Stam, 2004). O TiVo permite que os usuários classifiquem os programas

3http://www.tivo.com

14

Page 39: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

2.5. APLICAÇÕES DE SISTEMAS DE RECOMENDAÇÃO

Figura 2.3 Lista de Recomendação do Sistema de Recomendação do TiVo (RCN, 2013).

utilizando o controle remoto 2.3.

O feedback implícito, por exemplo, se um filme está sendo gravado, é levado emconsideração em adição da explícita classificação dos programas feita pelos usuários.Pedir ao usuários para responder perguntas é entediante e levanta questões de segurança,então o sistema tenta coletar as informações necessárias em background.

O sistema do TiVo utiliza a Filtragem Colaborativa para fazer recomendações aousuário com base nas preferências de usuários que tem gostos semelhantes. Tambémé utilizada a Filtragem Baseada em Conteúdo para fazer recomendações com base nascaracterísticas (canal, título, gênero, atores) dos programas que o usuário já assistiuanteriormente.

2.5.2 Biblioteca Digital

Bibliotecas digitais são coleções de objetos digitais. Sistemas de Recomendação podemser utilizados em uma aplicação de biblioteca digital para ajudar os usuários a localizareme selecionarem informação e fontes de conhecimento (Porcel and Herrera-Viedma, 2010).

O CYCLADES4 (Elena and Straccia, 2005), mostrado na Figura 2.4, é um ambientecolaborativo de arquivo virtual distribuído e aberto, que fornece diversos serviços paradar suporte a pesquisadores individuais como também a comunidade de pesquisadores,

4http://www.ercim.org/cyclades

15

Page 40: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

CAPÍTULO 2. SISTEMAS DE RECOMENDAÇÃO

Figura 2.4 Página Web do CYCLADES. Figura elaborada pelo autor (2015).

de uma maneira altamente personalizável. Os algoritmos de recomendação utilizamFiltragem Baseada em Conteúdo e Filtragem Colaborativa.

2.5.3 Amazon

A Amazon5 utiliza sistemas de recomendação para ajudar seus clientes a encontrarprodutos para comprar (Schafer et al., 1999).

Customers Who Bought This Item Also Bought: a Amazon é estruturada comuma página de informação para cada livro, dando detalhes do texto e informação decompra. O recurso Clientes que compraram é encontrado na página de cada livro docatálogo, e recomenda livros frequentemente comprados por clientes que compraram olivro selecionado. Na Figura 2.5 pode ser visto um exemplo em que são recomendadoslivros que foram comprados por clientes que também compraram um determinado livro.

Amazon Delivers: Clientes selecionam em uma lista de categorias/gênero, e periodi-camente recebem e-mails com as últimas recomendações nas categorias escolhidas.

Book Matcher: Este recurso permite que clientes façam avaliação direta sobre livrosque eles leram, onde dão notas em uma escala de 0 a 5. Depois de avaliar uma amostra

5http://www.amazon.com

16

Page 41: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

2.6. SUMÁRIO

Figura 2.5 Recomendação de Livros no site da Amazon. Figura elaborada pelo autor (2015).

de livros, os clientes podem solicitar recomendações de livros que podem gostar. Nesseponto, uma meia dúzia de livros não-avaliados são apresentados os quais se relacionamcom o gosto do usuário.

Comentários dos Clientes: Este recurso permite que clientes recebam recomenda-ções de livros baseado nas opiniões de outros clientes. Está localizado na página deinformação de cada livro, e é uma lista de 1-5 estrelas de avaliação com comentáriosfornecidos por outros clientes que leram o livro em questão.

2.6 Sumário

Neste capítulo, vimos uma visão geral sobre os Sistemas de Recomendação. Começamosmostrando um histórico sobre Sistemas de Recomendação. Em seguida discutimos algunsconceitos sobre os dados utilizados em um sistema. Então, foi apresentado uma lista detarefas desempenhadas por sistemas de recomendação. Discutimos também as principaistécnicas de recomendação. Por fim, foi mostrado algumas aplicações de sistemas derecomendação. No capítulo 3 discutiremos sobre o Modelo de Usuário. Será introduzidodo que se trata, formas e requisitos de modelagem, e os principais algoritmos utilizados.

17

Page 42: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,
Page 43: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

3Modelo de Usuário

O conjunto finito de propriedades e características do candidato a receber recomendaçõesé o modelo do usuário. O modelo de usuário representa o usuário, ou seja, codifica suaspreferências e necessidades (Ricci et al., 2011). Várias abordagens para modelagem deusuário têm sido utilizadas e, de certo modo, um sistema de recomendação pode ser vistocomo uma ferramenta que gera recomendações construindo e explorando modelos deusuário (Berkovsky et al., 2009). Desde que não é possível fazer recomendações sem ummodelo de usuário, a não ser que a recomendação não seja personalizada, o modelo deusuário sempre terá um papel central.

A informação que constitui o modelo de usuário pode variar de acordo com o domíniodo sistema de recomendação. Por exemplo, no caso de um sistema de recomendação defilmes, o modelo será constituído pelos filmes que ele gosta de assistir, filmes que nãogosta, os atores dos filmes que assiste, gênero etc.

3.1 Feedback do Usuário

Seja qual for a tecnologia específica explorada pelo sistema de recomendação, ela podefornecer recomendações de alta qualidade apenas depois de ter modelado suas prefe-rências (Berkovsky et al., 2008). A tarefa de coletar dados de modelagem de usuário énormalmente realizada de duas maneiras:

• Explícita: Através do fornecimento das informações solicitadas explicitamentepelo usuário.

• Implícita: Através da aplicação de vários mecanismos de raciocínio que infereas informações necessárias com base no comportamento observável do usuário(Hanani et al., 2001).

19

Page 44: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

CAPÍTULO 3. MODELO DE USUÁRIO

A coleta explícita de dados de modelagem do usuário é considerada uma tarefaprecisa, mas que consome tempo e esforço, e por isso é normalmente evitada pelo usuário.Alternativamente, a coleta implícita envolve mecanismos de raciocínio automatizados, osquais podem interpretar errado o comportamento do usuário (Berkovsky et al., 2008). Naprática, as abordagens explícitas e implícitas podem também ser combinadas.

De modo geral, a qualidade das recomendações fornecidas pelo usuário dependemuito das características do modelo de usuário, por exemplo, quão preciso ele é, qual aquantidade de informação que ele armazena, e se essa informação está atualizada. Assim,como uma regra geral, quanto mais informação é armazenada no Modelo de Usuário,isto é, quanto mais conhecimento tem obtido sobre o usuário, melhor será a qualidade darecomendação. Neste contexto, qualidade refere-se à capacidade do sistema de sugerirexatamente aqueles produtos ou serviços que o usuário irá selecionar e comprar, oupredizer corretamente aqueles itens que o usuário irá gostar (Berkovsky et al., 2008). Naprática, obter dados de modelagem de usuário suficientes para entregar recomendações dealta qualidade é difícil. Isso é especialmente importante nos estágios iniciais de interaçãocom o usuário, quando pouca informação sobre o usuário está disponível. Nestes estágios,todas as técnicas de recomendação enfrentam o problema da "partida a frio", isto é, asituação onde a informação disponível sobre o usuário e/ou itens não é suficiente parafornecer recomendações de alta qualidade (Linden et al., 2003).

3.2 Modelagem

Cada sistema de recomendação constrói e mantém uma coleção proprietária de Mode-los de Usuário (Montaner et al., 2003). Praticamente, isto significa que os dados demodelagem de usuário coletados são adaptados para:

• o conteúdo específico (produtos ou categoria de produtos) oferecido pelo sistemade recomendação, por exemplo, filmes, músicas, notícias, etc.

• a técnica de recomendação sendo explorada pelo sistema, por exemplo, filtragemcolaborativa, filtragem baseada em conteúdo, ou alguma híbrida.

Assim, uma enorme quantidade de dados heterogêneos de modelagem de usuário sãodisseminados entre vários sistemas. Entretanto, sistemas de recomendações na prática(especialmente os comerciais) não permitem outro sistema de recomendação externoacessá-los, como também não compartilha seus dados de modelagem de usuário. Apesar

20

Page 45: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

3.2. MODELAGEM

disso, é razoável supor que sistemas de recomendação podem potencialmente beneficiar-se de enriquecer seus dados de modelagem de usuário importando e integrando dadosde modelagem de usuário coletados por outros sistemas de recomendação, e portantofornecer melhores recomendações para o usuário (Berkovsky et al., 2008).

Kobsa and Pohl (1994), para evitar caracterizar modelagem de usuário através deestruturas e processos, listou os seguintes serviços frequentemente encontrados nossistemas de modelagem de usuário:

• a representação de suposições sobre um ou mais tipos de características de usuárioem modelo de usuários individuais (por exemplo, suposições sobre seu conheci-mento, equívocos, objetivos, planos, preferências, tarefas, e habilidades);

• a representação de características relevantes comuns de usuários que pertencem aum específico subgrupo do sistema (o chamado, estereótipo);

• a classificação dos usuários como pertencentes a um ou mais destes subgrupos, e aintegração das características típicas destes subgrupos dentro do modelo de usuárioindividual atual;

• o registro do comportamento dos usuários, particularmente sua interação passadacom o sistema;

• a formação de suposições sobre o usuário baseado no histórico de interações;

• a generalização do histórico de interações de muitos usuários em estereótipos;

• o desenho de suposições adicionais sobre o usuário atual baseado em valoresiniciais.

• manutenção de consistência no modelo de usuário;

• o fornecimento da suposição atual sobre o usuário, como também justificativaspara estas suposições;

• a avaliação das entradas no modelo de usuário atual, e a comparação com padrões.

Segundo Kobsa (2001), os seguintes requisitos para os sistemas de modelagem deusuário são considerados importantes:

• Generalidade, incluindo independência de domínio: Os sistemas precisam serutilizáveis por quantas aplicações e domínios de conteúdo for possível, e dentrodestes domínios por quantas tarefas de modelagem de usuário for possível.

21

Page 46: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

CAPÍTULO 3. MODELO DE USUÁRIO

• Expressividade: Os sistemas precisam expressar quantos tipos de suposições sobreo usuário forem possíveis ao mesmo tempo.

• Capacidade Inferencial Forte: Os sistemas precisam realizar todo tipo de raci-ocínio que são tradicionalmente distinguidos em inteligência artificial e lógicaformal.

3.3 Modelos de Usuário Baseados em Múltiplos Domí-nios

Sistemas de recomendação é um campo de pesquisa ativo e vem sendo utilizado comsucesso em um grande número de sistemas como Netflix1, Youtube2, iTunes3. A grandemaioria destes sistemas oferecem recomendações apenas para itens pertencentes a umúnico domínio. Nestes casos, as recomendações são computadas utilizando feedbackdo usuário (avaliação) sobre itens no domínio alvo. Em sites de e-commerce, comoAmazon4, no entanto, seria útil explorar avaliações do usuário sobre diversos tipos deitens para gerar um modelo mais geral das preferências do usuário. De fato, pode existirdependências e correlações entre as preferências entre diferentes domínios e ao invés detratar cada tipo (por exemplo, eletrônicos e música) independentemente, o conhecimentodo usuário adquirido em um domínio pode ser transferido e explorado em muitos outrosdomínios (Fernández-Tobías et al., 2012).

Além disso, um sistema pode oferecer recomendações personalizadas de itens emmúltiplos domínios, por exemplo, sugerir não apenas um filme em particular, mas tambémCDs de música, livros ou videogames que de alguma maneira estejam relacionados como filme. Analogamente, em uma aplicação turística seria de grande valor sugerir umevento cultural para cliente que tenha reservado um quarto em um hotel recomendado,ou em sistema de e-learning, apresentar um estudante com referências bibliográficasrelacionadas a uma vídeo-aula que tenha sido recentemente recomendada (Fernández-Tobías et al., 2012).

Um dos primeiros estudos relacionados a recomendações em múltiplos domínios foiapresentado por (Winoto and Tang, 2008). Eles identificaram três importantes questões aserem investigadas:

1http://www.netflix.com2http://www.youtube.com3http://www.apple.com/itunes/4http://www.amazon.com

22

Page 47: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

3.4. RANKING PERSONALIZADO

• Verificar a existência de correlações globais das preferências do usuário para itensem diferentes domínios.

• Criar modelos capazes de explorar as preferências de usuário em um domínio fontepara predizer as preferências de usuário em domínio alvo

• Desenvolver avaliações apropriadas para recomendações em múltiplos domínios.

Winoto and Tang (2008) acreditavam que, embora recomendações entre múltiplosdomínios tendessem a ser menos precisas do que recomendações em um único domínio,a primeira seria mais diversificada, o que pode levar a uma maior satisfação do usuário(Adomavicius and Tuzhilin, 2005). Além disso, recomendações entre múltiplos domíniostem outras vantagens, como lidar com o problema da partida-a-frio (cold-start problem)(Abel et al., 2012), e também o problema da esparsidade (Li et al., 2009), (Pan et al.,2010). Ao identificar as relações entre itens em dois domínios diferentes, pode-se sugerirpara um usuário com itens em um domínio inexplorado, simplesmente explorando suaspreferências para os itens em outros domínios conhecidos.

3.4 Ranking Personalizado

O objetivo de um ranking personalizado é fornecer para um usuário uma lista ordenada deitens. Um exemplo é uma loja online que pretende recomendar uma lista personalizadae ranqueada de itens que o usuário poderia querer comprar. Em sistemas de feedbackimplícito, apenas observações positivas estão disponíveis. Os itens não avaliados pelousuário (por exemplo, um usuário que não tenha comprado um item ainda) são umamistura de feedback negativo real (o usuário não está interessado em comprar o item) efalta de valores (o usuário pode querer comprar o item no futuro).

3.4.1 Bayesian Personalized Ranking

Bayesian Personalized Ranking (BPR) é um framework genérico para otimizar diferentestipos de modelos baseado em treinar dados contendo apenas feedbacks implícitos. BPR ébaseado na ideia de reduzir a classificação para pares de classificação (Balcan et al., 2008).Foi proposto por (Rendle et al., 2009) para lidar com o problema ao treinar um modelode recomendação de itens utilizando apenas feedbacks implícitos baseado apenas emdados positivos e negativos. O modelo será levado a fornecer pontuações positivas paraos itens observados, enquanto considerará itens não visitados como negativo. Entretanto,

23

Page 48: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

CAPÍTULO 3. MODELO DE USUÁRIO

tal suposição é imprecisa porque um item não observado pode ser pelo fato de que não éconhecido pelo usuário.

Considerando este problema, ao invés de treinar o modelo utilizando apenas os paresusuário-item, Rendle et al. (2009) propôs considerar a ordem relativa entre um par deitens, de acordo com as preferências do usuário. Sendo N(u) o conjunto de itens para oqual o usuário u forneceu feedback implícito e N(u) o conjunto de itens desconhecidospelo usuário u, é inferido que se um item i foi visto por um usuário u e j não foi visto(i ∈ N(u) e j ∈ N(u)), então i >u j, o que significa que ele prefere i ao invés de j.

3.4.2 BPR-Linear

O BPR-Linear (Gantner et al., 2010) é um algoritmo baseado no framework BPR, queutiliza atributos de item em um mapeamento linear para estimar pontuação. A regra depredição é definida como:

rui = φ f (~ai) =n

∑g=1

wugaig ,� �3.1

onde φ f : Rn→ R é uma função que mapeia os atributos do item para as preferênciasgerais rui e ~ai é um vetor booleano de tamanho n onde cada elemento aig representaa ocorrência ou não de um atributo, e wug é uma matriz de peso gerado utilizandoLearnBPR, que é uma variação da técnica "stochastic gradient descent"Gantner et al.

(2011). Desta maneira, nós primeiro calculamos a importância relativa entre dois itens:

sui j = rui− ru j

=n

∑g=1

wugaig−n

∑g=1

wuga jg

=n

∑g=1

wug(aig−a jg) .

� �3.2

Finalmente, a derivada parcial de wug é feita:

∂wugsui j = (aig−a jg) ,

� �3.3

que é aplicada para o Algoritmo LearnBPR considerando que Θ = (w∗) para todo oconjunto de usuário e descrições.

24

Page 49: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

3.5. TRABALHOS RELACIONADOS

3.4.3 BPR-Mapping

O BPR-Mapping é um algoritmo proposto por (Gantner et al., 2010), baseado no fra-mework BPR, para personalizar um ranking de itens utilizando apenas feedback implícito.A principal diferença é que ele utiliza o mapeamento linear descrito em 3.4.2 para otimi-zar os fatores de item que serão utilizados depois em uma regra de predição de fatoraçãode matriz extendida. Essa fatoração de matriz extendida foi otimizada por BayesianPersonalized Ranking (BPR-MF) Rendle et al. (2009) que pode lidar com o problemada "partida a frio" (cold-start problem), produzindo de maneira rápida e precisa atributocontextual de item de recomendação.

Gantner et al. (2010) objetiva o caso onde novos usuários e itens são adicionadosprimeiramente calculando os vetores de característica latentes de atributos como a idadedo usuário ou o gênero do filme, e então utilizando os vetores de característica latentesestimados para calcular a pontuação do modelo da matriz de fatorização (MF) subjacente.

O modelo considera a regra de predição de fatoração de matriz:

rui = bui + pTu qi = bui +

k

∑f=1

pu f qi f ,� �3.4

onde cada usuário u é associado a um vetor usuário-fatores pu ∈ R f , e cada item i comum vetor qi ∈ R f . A base bui é definida como bui = µ +bu +bi e indica as estimativasdistintas de usuário e itens em comparação com a média de classificação global µ .

Deste modelo, os fatores de item são mapeados de acordo com seus atributos como:

rui = bui +k

∑f=1

pu f φ f (~ai) ,� �3.5

onde φ f (~ai) tem a mesma definição que a Equação 3.1.

3.5 Trabalhos Relacionados

Em um sistema de recomendação, como um de venda de livros, pode não haver registrossuficientes de classificações de usuário-item para um novo usuário ou um novo produto,isto é chamado de esparsidade de dados, onde a informação útil está dispersa e pouca.Uma solução seria pedir ao usuário que classificasse alguns itens, porém, isto poderiaprejudicar a experiência do usuário. Pesquisas tem sido feitas para descobrir métodosque permitam integrar informações de redes sociais ao processo de recomendação.

25

Page 50: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

CAPÍTULO 3. MODELO DE USUÁRIO

Normalmente, os Modelos de Usuário são específicos para o conteúdo oferecido porum serviço. Em 2005, Berkovsky et al. (2005) propôs um mecanismo de mediação deModelos de Usuário entre diferentes domínios de entretenimento, com o objetivo deenriquecer o Modelo de Usuário de um serviço através da importação e integração deModelos de Usuários parciais construídos por outros serviços, o que foi chamado deCross-Domain User Modeling. Um mediador cria um Modelo de Usuário de acordo coma necessidade do serviço alvo, onde deveria determinar uma representação do modelo,identificar os serviços que possam fornecer os dados necessários e integrar os Modelosde Usuário parciais e criar um Modelo de Usuário para o serviço alvo.

Em 2009, pesquisadores propuseram um método para resolver o problema da es-parsidade de dados (Li et al., 2009). Estes métodos tinham por objetivo utilizar dadosde outros sistemas de recomendação, chamados de domínio auxiliar, e transferir seusconhecimentos para um domínio alvo. Os padrões de classificação de usuário-item eramaprendidos através de uma matriz de classificação auxiliar densa e transferidas para umamatriz de classificação alvo esparsa. Essa coleção de padrões foi chamada de "codebook".

Um estudo realizado por Wang et al. (2010), utilizou conteúdo de redes sociais paraa recomendação de itens. Neste trabalho, eram recomendados usuários e atividadespara membros de redes sociais, misturando informação de várias redes sociais em que ousuário estava registrado. Diferentemente do nosso trabalho, o sistema deles envolviafeedback explícito do usuário, onde era necessário fornecer informações (gostou/nãogostou) sobre as atividades recomendadas. No trabalho realizado aqui, todo os dadosforam coletados de forma automática.

O trabalho realizado por Ma et al. (2011), extrai dados de preferências do usuário etambém suas amizades em redes sociais. No que diz respeito a extração dessas preferên-cias, o trabalho é semelhante ao nosso, porém eles extraem classificações explícitas desites de reviews de usuários. Em nosso trabalho, o interesse do usuário é inferido pelosfilmes que ele marcou no Facebook5 ter assistido, e livros que marcou ter lido. Outradiferença é que olhamos também as preferências do usuário em outros domínios, pararealizar a recomendação em múltiplos domínios.

O framework proposto por Tobías (2013) tinha por objetivo construir redes semânticasautomaticamente, que conectam itens de diferentes domínios através de relações explícitas.Essas redes forneceriam recomendações de itens em um domínio alvo considerando aspreferências do usuário em um outro domínio distinto. O funcionamento consistia de4 estágios: Representação do Conhecimento, Extração do Conhecimento, Parentesco

5http://www.facebook.com

26

Page 51: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

3.6. SUMÁRIO

Semântico e Recomendação. Contrário ao nosso trabalho, o usuário tinha que informarsuas preferências (por gêneros musicais) em um formulário disponível em uma aplicaçãoWeb.

Neste trabalho, nós implementamos um sistema que coleta informações de múltiplosdomínios sobre usuários a partir do Facebook6 de forma automática, para a criação deum Modelo de Usuário baseado em suas preferências por filmes e livros.

3.6 Sumário

Neste capítulo, fizemos uma visão geral sobre Modelos de Usuário. Inicialmente tratamossobre feedback do usuário, onde vimos como coletar dados do usuário. Em seguidadiscutimos sobre modelagem do usuário e suas especificidades. Abordamos aqui também,os modelos de usuário baseados em múltiplos domínios. Falamos sobre ranking persona-lizado, onde vimos os algoritmos BPR-Linear e BPR-Mapping baseados no frameworkBayesian Personalized Ranking. Por fim, discutimos trabalhos relacionados. No Capítulo4 falaremos sobre a proposta deste trabalho, Modelo de Usuário em Múltiplos Domí-nios Automatizado. Será introduzido do que se trata, arquitetura, tecnologias utilizadas,implementação.

6http://www.facebook.com

27

Page 52: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,
Page 53: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

4Análise e Desenvolvimento de Modelos

de Usuários Baseado em MúltiplosDomínios para Sistemas de

Recomendação

Os processos de software são um conjunto de atividades que levam ao desenvolvimentode um sistema. Esses processos são complexos e não são desenvolvidos necessariamentede uma única forma (Sommerville, 2010). O processo de software forma a base parao gerenciamento e controle de projetos de software e estabelecem o contexto no qualmétodos técnicos são aplicados, produtos do trabalho (modelos, documentos, dados,relatórios, formulários, etc.) são produzidos, os marcos são estabelecidos, a qualidade éassegurada e modificações são adequadamente geridas (Pressman, 2010).

Neste capítulo, nós apresentaremos os requisitos funcionais e não funcionais para umasistema que coleta informações de múltiplos domínios (filmes e livros) sobre usuáriosa partir do Facebook1 de forma automática. São discutidos aspectos de sua arquiteturae tecnologias utilizadas. Também é mostrada a ferramenta em operação, discutindoaspectos de seu funcionamento. Por fim, é apresentado um sumário do capítulo.

4.1 Requisitos

Os requisitos de software são as descrições do que o sistema deve fazer, os serviços queele fornece e as restrições em sua operação (Sommerville, 2010). O objetivo desta fase é

1http://www.facebook.com

29

Page 54: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

CAPÍTULO 4. ANÁLISE E DESENVOLVIMENTO DE MODELOS DE USUÁRIOSBASEADO EM MÚLTIPLOS DOMÍNIOS PARA SISTEMAS DE RECOMENDAÇÃO

coletar informações sobre o problema a ser resolvido, que refletem as necessidades docliente para um sistema.

Os requisitos de software são frequentemente classificados como requisitos funcionaise requisitos não funcionais:

1. Requisitos funcionais: São recursos que o sistema deve fornecer, como o sistemadeve reagir para entradas específicas, e como o sistema deve se comportar emdeterminadas situações.

2. Requisitos não funcionais: São restrições dos serviços ou funções fornecidas pelosistema. Inclui restrições de tempo, restrições no processo de desenvolvimento, erestrições impostas por padrões.

Esta seção especifica os requisitos do sistema desenvolvido como proposta destetrabalho, fornecendo informações necessárias para o projeto e implementação.

Para identificação dos requisitos foram adotadas as seguintes convenções: [RF0XX]para requisitos funcionais, e [RNF0XX] para requisitos não funcionais. Também foramatribuídas prioridades aos requisitos. As prioridades servem para indicar a relevância dorequisito para o sistema proposto, e foram classificadas em: a) Essencial, são requisitosque precisam ser implementados impreterivelmente, indicando que sem este requisitoo sistema não pode funcionar ou não atende o objetivo da proposta; b) Importante, sãorequisitos que o sistema pode funcionar, porém, de forma parcial; c) Desejável, sãorequisitos que não comprometem o funcionamento básico do sistema e que podem serdeixados para versões posteriores deste trabalho.

4.1.1 Requisitos Funcionais

A Tabela 4.1 apresenta os requisitos funcionais do sistema.

30

Page 55: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

4.1. REQUISITOS

Tabela 4.1 Requisitos Funcionais do Sistema.

Código Nome Descrição Prioridade

RF001Cadastrar Usuáriocom Facebook

Permitir que o usuário possa realizar cadas-tro, utilizando sua conta do Facebook.

Essencial

RF002Fazer Login peloFacebook

Permitir que o usuário tenha acesso às infor-mações e funcionalidades do sistema, utili-zando sua conta do Facebook.

Essencial

RF003 Fazer Logoff Permitir que o usuário saia do sistema. Importante

RF004Coletar filmes as-sistidos no Face-book

Coletar os filmes assistidos marcados pelousuário no Facebook.

Essencial

RF005Coletar livros li-dos no Facebook

Coletar os livros lidos marcados pelo usuá-rio no Facebook.

Essencial

RF006Coletar detalhesdos Filmes

O sistema deve permitir coletar detalhes dosfilmes não disponibilizados pelo Facebook.

Essencial

RF007Coletar detalhesdos Livros

O sistema deve permitir coletar detalhes doslivros não disponibilizados pelo Facebook.

Essencial

RF008 Filmes AssistidosMostrar todos os filmes assistidos pelo usuá-rio.

Importante

RF009 Livros Lidos Mostrar todos os livros lidos pelo usuário. Importante

RF010 Visualizar FilmePermitir que o usuário possa visualizar asinformações dos filmes.

Importante

RF011 Visualizar LivroPermitir que o usuário possa visualizar asinformações dos livros.

Importante

RF012Estatística de Gê-neros dos filmes

Mostrar os gêneros dos filmes mais assisti-dos pelo usuário.

Essencial

RF013Estatística de Gê-neros dos livros

Mostrar os gêneros dos livros mais lidospelo usuário.

Essencial

RF014Exportar dados dobanco

O sistema deve permitir exportar os dadospara ser utilizado em sistemas de recomen-dação.

Essencial

31

Page 56: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

CAPÍTULO 4. ANÁLISE E DESENVOLVIMENTO DE MODELOS DE USUÁRIOSBASEADO EM MÚLTIPLOS DOMÍNIOS PARA SISTEMAS DE RECOMENDAÇÃO

4.1.2 Requisitos Não Funcionais

A tabela 4.2 apresenta os requisitos não funcionais do sistema, classificados por suascaracterísticas. Todos os requisitos apresentados a seguir receberam prioridade essencial.

Tabela 4.2 Requisitos Não Funcionais do Sistema.

Código Descrição Característica

RNF001O sistema deve ser fácil e simples de usar sem a necessi-dade de manuais ou treinamento.

Usabilidade

RNF002O sistema deve exigir pouca interação explícita do usuá-rio.

Usabilidade

RNF003O sistema deve atualizar as informações sobre os filmese livros em background.

Funcionalidade

RNF004O sistema deve informar o usuário quando todas as infor-mações sobre o seu perfil estiverem prontas.

Funcionalidade

4.2 Arquitetura

Segundo Garlan and Shaw (1994), a arquitetura de um software define o sistema emtermos de componentes e interações entre estes componentes. Isto é, a arquitetura desoftware tem o objetivo de mostrar uma visão completa do sistema.

Para uma melhor estrutura, a aplicação foi desenvolvida utilizando o padrão ModelView Controller (MVC) que, segundo Sommerville (2010), tem como objetivo separar aapresentação da interação dos dados do sistema. Esta separação possibilita a realizaçãode alterações nos componentes do sistema de forma independente.

No padrão MVC o sistema é estruturado em três componentes que interagem entre si:

• Model: Gerencia os dados do sistema e operações associadas a estes dados.

• View: Define e gerencia como os dados são apresentados para o usuário.

• Controller: Gerencia as interações do usuário e passa essas interações para a View

e o Model.

A Figura 4.1 mostra a relação entre essas camadas. As próximas subseções tem oobjetivo de apresentar e explicar cada camada presente nesta arquitetura.

32

Page 57: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

4.2. ARQUITETURA

Figura 4.1 A organização do MVC (Sommerville, 2010).

4.2.1 Composição da Arquitetura

Nesta subseção serão descritos os componentes presentes na arquitetura proposta, mos-trando a função de cada um dentro da arquitetura, seus pontos de extensibilidade, bemcomo sua interação com elementos externos. Assim, facilitando o desenvolvimento daaplicação.

Camada View

A camada View contém as telas que mantêm a interação com o usuário. Esta camada é aresponsável por enviar os eventos do usuário para a camada Controller, onde os eventosserão tratados e o fluxo seguinte da aplicação será selecionado.

Camada Controller

A camada Controller tem a responsabilidade de coordenar o fluxo da aplicação e fazer aintegração entre as demais camadas. Responsável, também, por receber o processamentode um determinado componente e, com base no fluxo da aplicação, chamar o componentesubsequente para dar continuidade ao processamento.

33

Page 58: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

CAPÍTULO 4. ANÁLISE E DESENVOLVIMENTO DE MODELOS DE USUÁRIOSBASEADO EM MÚLTIPLOS DOMÍNIOS PARA SISTEMAS DE RECOMENDAÇÃO

Camada Model

A camada Model é a camada de persistência de dados que contém as regras de acesso àbase de dados e demais fontes de armazenamento de informações do sistema.

4.3 Tecnologias

Para o desenvolvimento do sistema foram utilizadas diversas tecnologias: linguagensde programação, servidores de aplicação e banco de dados, entre outras. A seguirapresentaremos estas tecnlogias.

4.3.1 HTML, CSS e JavaScript

HTML2 é uma linguagem de marcação utilizada para criação de páginas Web, criadapor Tim Berners-Lee na década de 1990 (Raggett et al., 1998). Sua sigla vem do inglês,abreviação para HyperText Markup Language, que significa Linguagem de Marcaçãode Hipertexto. O HTML é uma linguagem para publicação de conteúdo (texto, imagem,vídeo, áudio etc.) na Web (Brasil, 2011c). Ela foi utilizado para construir as páginas dosistema, que possibilitam a interação do usuário com o sistema. No framework Laravel3,as páginas HTML são escritas utilizando um mecanismo de templates chamado Blade. Avantagem deste mecanismo é o esquema de herança de templates e seções que ele fornece,evitando assim reescrever o mesmo código em diversas páginas.

O CSS, Cascade Style Sheet, é uma linguagem de folhas de estilo, responsávelpelo layout das páginas web escritas em linguagens de marcação como o HTML. OCSS formata a informação entregue pelo HTML. Essa informação pode ser: imagem,texto, vídeo, áudio ou qualquer outro elemento criado. Ele permite formatar algumascaracterísticas básicas: cores, background, fontes, margens, paddings, posição e assimcontrolamos de uma maneira muito artesanal e simples a estrutura do site (Brasil, 2011b).

Já o JavaScript é uma linguagem de programação utilizada para controlar o comporta-mento das páginas Web. A grande maioria dos websites modernos utilizam JavaScript,e todos os navegadores web modernos - em computadores, consoles de vídeo game, esmartphones - incluem interpretadores JavaScript (Flanagan, 2011). Ele foi desenvolvidopela Netscape em 1995, originalmente, chamado de LiveScript e fornecia uma linguagemde script simples para o navegador Netscape Navigator 2 (Brasil, 2011a). Ela permite que

2https://www.w3.org/html3https://laravel.com

34

Page 59: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

4.3. TECNOLOGIAS

Figura 4.2 Funcionamento de aplicações Web dinâmicas, utilizando PHP e Mysql (Ullman,2009).

scripts sejam executados do lado do cliente em navegadores Web. Assim, a linguagemJavascript é altamente dependente do navegador que chama a página web onde o scriptestá incorporado, mas, por outro lado, não requer nenhum compilador.

4.3.2 PHP/Laravel e MySQL

PHP4 é uma linguagem interpretada, utilizada para o desenvolvimento de aplicações querodam em servidores Web, capaz de gerar conteúdo dinâmico na Web. O código PHP éinterpretado no lado do servidor, que gera uma página web, devolve para o lado clientee então é exibida no navegador para o usuário. PHP originalmente era um acrônimopara Personal Home Page, quando foi criada em 1994 por Rasmus Lerdorf para rastrearos visitantes de sua página. Com o crescimento de suas capacidades e utilidade, já quepassou a ser utilizado em mais situações profissionais, veio a significar PHP: Hypertext

Preprocessor (Ullman, 2009).

O MySQL5, é um Sistema de Gerenciamento de Banco de Dados (SGBD), que utilizaa linguagem SQL (Structured Query Language) como interface. Um banco de dados éuma coleção de dados inter-relacionados, sejam texto, números, ou arquivos binários, quesão armazenados e mantidos organizados por um SGBD (Ullman, 2009). Ao incorporarum banco de dados em uma aplicação Web, alguns dos dados gerados pelo PHP podemser recuperados do MySQL, como ilustra a Figura 4.2.

O sistema foi desenvolvido utilizando o Laravel6, um framework de desenvolvimentoweb para a linguagem PHP, que utiliza o padrão MVC. Ele possui um sistema modularcom gerenciador de dependências, vários modos de acesso a bancos de dados e diversosutilitários que ajudam no desenvolvimento do sistema. Assim, o benefício de utilizar um

4http://www.php.net5https://www.mysql.com6https://laravel.com

35

Page 60: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

CAPÍTULO 4. ANÁLISE E DESENVOLVIMENTO DE MODELOS DE USUÁRIOSBASEADO EM MÚLTIPLOS DOMÍNIOS PARA SISTEMAS DE RECOMENDAÇÃO

framework em geral é que, além de trazer vários componentes individuais, também jáfornece uma integração entres esses componentes. Adicionalmente, fornecem convençõesque reduz a quantidade de código que um desenvolvedor novo em um projeto precisaentender (Stauffer, 2016).

O MySQL possui fácil integração com o PHP e, através do Laravel, a configuraçãose torna bastante trivial. O projeto possui um arquivo de configuração chamado "data-base.php", onde são informados os dados de conexão do banco de dados. Em relação aogerenciamento da estrutura do banco de dados, o Laravel utiliza Migrations para mantera estrutura das tabelas do banco de dados. Migrations possibilitam o controle de versãodo banco de dados, e assim permite a uma equipe facilmente modificar e compartilhar oesquema do banco, além de permitir facilmente criar todo o banco de dados através deuma comando. A Figura 4.3 ilustra os itens presentes no dataset.

4.3.3 SPARQL

SPARQL, acrônimo recursivo para SPARQL Protocol and RDF Query Language, é umalinguagem de consulta semiestruturada semântica para banco de dados, capaz de recuperare manipular dados armazenados em RDF, Resource Description Framework. RDF é ummodelo de dados em que você expressa fatos com declarações de três partes, conhecidascom triplas. Cada tripla é como uma pequena frase que afirma um fato. Essas triplas sãocompostas de sujeito, que é o identificador da coisa sendo descrita, predicado, representao nome da propriedade, e objeto, que é o valor da propriedade (DuCharme, 2011).

Para a realização do enriquecimento de informações sobre os filmes e livros do usuário,foi utilizada a SPARQL RDF Library for PHP7, que é uma biblioteca em PHP para realizarconsultas SPARQL. O Código Fonte 4.1 mostra a consulta utilizando SPARQL para obterinformações sobre um filme. A cláusula SELECT, na linha 7, é utilizada para extrairos valores da base RDF. O SELECT foi utilizado em combinação com DISTINCT, queelimina soluções duplicadas. Da linha 8 até a linha 15 estão as variáveis para cada umdos predicados que desejamos obter. Os resultados desta consulta serão apresentados emuma tabela.

Inicialmente definimos alguns prefixos, o que nos permite evitar ter que escrever asURIs, Uniform Resource Identifier completas nas triplas. A consulta utiliza algumastriplas dentro da cláusula WHERE para indicar o subconjunto de dados que queremos.Cada tripla termina com um ponto e tem um sujeito ?film_title. A primeira tripla, nalinha 18, consulta por todas as instâncias da classe Film. E das linhas 19 a 22 solicitamos

7http://graphite.ecs.soton.ac.uk/sparqllib/

36

Page 61: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

4.3. TECNOLOGIAS

Figura 4.3 Diagrama Entidade-Relacionamento do Sistema. Figura elaborada pelo autor (2015).

37

Page 62: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

CAPÍTULO 4. ANÁLISE E DESENVOLVIMENTO DE MODELOS DE USUÁRIOSBASEADO EM MÚLTIPLOS DOMÍNIOS PARA SISTEMAS DE RECOMENDAÇÃO

os predicados rdfs:comment, dct:subject, rdfs:label que representam a sinopse, gênero enome do filme, respectivamente. A palavra-chave OPTIONAL permite trazer resultadosopcionais, sem essa palavra-chave, um processador SPARQL irá retornar apenas dadosque correspondam a cada tripla da cláusula WHERE. No nosso caso, solicitamos como op-cionais dbo:director, dbpprop:country, dbpprop:released, dbo:runtime, que representamo diretor, país, data de lançamento e duração do filme, respectivamente.

Foi utilizada, também, a cláusula FILTER para filtrar os resultados apenas para oidioma inglês, linhas 28 a 30, e na linha 31 um filtro onde informamos o nome do filmeque desejamos consultar.

4.3.4 Facebook API

A API8 do Facebook é uma plataforma para construir aplicações que estarão disponíveispara usuários da rede social Facebook. A API permite que aplicações façam uso dasconexões sociais e informações do perfil do usuário. A API foi utilizada para a realizaçãode autenticação na aplicação e obtenção dos filmes e livros do usuário.

4.4 Telas e Funcionamento

O sistema foi desenvolvido para funcionar como um website, e possui um visual em queapresenta galerias de filmes e livros do usuário. A princípio utiliza-se de dados sobre ointeresse do usuário em filmes e livros obtidos no Facebook. A Figura 4.4 apresenta umfluxograma com uma visão geral do funcionamento do sistema.

Inicialmente (Passo 1 da Figura 4.4) o usuário deve realizar login no sistema utilizandosua conta do Facebook, como pode ser visto na Figura 4.5. Para realizar o login no sistema,o usuário precisa, necessariamente ter uma conta no Facebook. Neste momento serãoobtidos dados básicos do usuário, como nome, email e data de nascimento. Uma vezlogado, o usuário consegue ter acesso a todas as informações existentes no aplicativo esó precisará passar novamente pelo processo de login caso opte por se desconectar dosistema, processo popularmente conhecido como logout. Isso acontece porque o sistemaguarda o estado do usuário do sistema, o que significa dizer que se o mesmo está logadonão precisa passar pelo processo de autenticação novamente.

8https://developers.facebook.com

38

Page 63: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

4.4. TELAS E FUNCIONAMENTO

1 PREFIX r d f : < h t t p : / / www. w3 . org /1999/02 /22− r d f−syn t ax−ns #>2 PREFIX r d f s : < h t t p : / / www. w3 . org / 2 0 0 0 / 0 1 / r d f−schema #>3 PREFIX d b p e d i a : < h t t p : / / d b p e d i a . o rg / r e s o u r c e / >4 PREFIX dbo : < h t t p : / / d b p e d i a . o rg / o n t o l o g y / >5 PREFIX dbpprop : < h t t p : / / d b p e d i a . o rg / p r o p e r t y / >67 SELECT DISTINCT8 s t r ( ? name ) as ? f i l m _ t i t l e9 s t r ( ? f i l m _ d i r e c t o r ) a s ? f i l m _ d i r e c t o r

10 s t r ( ? f i l m _ c o u n t r y ) a s ? f i l m _ c o u n t r y11 s t r ( ? f i l m _ r e l e a s e d ) a s ? f i l m _ r e l e a s e d12 s t r ( ? f i l m _ a b s t r a c t ) a s ? f i l m _ a b s t r a c t13 ? f i l m _ r u n t i m e14 ( g r o u p _ c o n c a t ( d i s t i n c t ? f i l m _ g e n r e ; s e p a r a t o r =" , " )15 as ? f i l m _ g e n r e )1617 WHERE {18 ? f i l m _ t i t l e r d f : t y p e < h t t p : / / d b p e d i a . o rg / o n t o l o g y / Film > .19 ? f i l m _ t i t l e r d f s : comment ? f i l m _ a b s t r a c t .20 ? f i l m _ t i t l e d c t : s u b j e c t / r d f s : l a b e l ? f i l m _ g e n r e .21 ? f i l m _ t i t l e r d f s : l a b e l ?name22 OPTIONAL {23 ? f i l m _ t i t l e dbo : d i r e c t o r / r d f s : l a b e l ? f i l m _ d i r e c t o r .24 ? f i l m _ t i t l e dbpprop : c o u n t r y ? f i l m _ c o u n t r y .25 ? f i l m _ t i t l e dbpprop : r e l e a s e d ? f i l m _ r e l e a s e d .26 ? f i l m _ t i t l e dbo : r u n t i m e ? f i l m _ r u n t i m e .27 }28 FILTER (LANGMATCHES(LANG( ? name ) , " en " ) ) .29 FILTER (LANGMATCHES(LANG( ? f i l m _ d i r e c t o r ) , " en " ) ) .30 FILTER (LANGMATCHES(LANG( ? f i l m _ a b s t r a c t ) , " en " ) ) .31 FILTER c o n t a i n s ( s t r ( ? name ) , " T i t a n i c " )32 }

Código Fonte 4.1 Consulta SPARQL para um Filme.

39

Page 64: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

CAPÍTULO 4. ANÁLISE E DESENVOLVIMENTO DE MODELOS DE USUÁRIOSBASEADO EM MÚLTIPLOS DOMÍNIOS PARA SISTEMAS DE RECOMENDAÇÃO

Figura 4.4 Fluxo do Funcionamento do Sistema. Figura elaborada pelo autor (2015).

40

Page 65: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

4.4. TELAS E FUNCIONAMENTO

Figura 4.5 Tela de login de usuário. Figura elaborada pelo autor (2015).

Após ter acesso ao sistema, o usuário verá a opção de coletar seus dados de livrose filmes do Facebook, como visto na Figura 4.6. Quando o usuário acessar a opçãopara coletar seus dados do Facebook, o sistema irá coletar todos os filmes e livros queforam marcados pelo usuário como "assistidos" ou "lidos". Também, neste momentoé realizada uma consulta ao Facebook, nas páginas de cada filme, para obter a data delançamento de cada filme e livro. Esses dados são então armazenados em um bancode dados, relacionando-os ao usuário (Parte 3 da Figura 4.4), montando uma base deconhecimento inicial sobre o usuário.

Até este momento temos apenas uma relação com os nomes dos filmes e livrosdo usuário. Precisamos agora obter mais informações sobre esses itens, para poderentender o que eles representam, e o seu significado para o usuário. Assim, é feito umenriquecimento de informações sobe os itens do usuário (Parte 4 da Figura 4.4). Paraisso foi utilizado a base da DBpedia9 como fonte. Então, o sistema deve checar cadaitem que não possua detalhes e consultar a base da DBPedia para complementar essasinformações.

O sistema possui uma tela, ilustrada na Figura 4.7, onde o usuário pode acessar a9http://wiki.dbpedia.org

41

Page 66: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

CAPÍTULO 4. ANÁLISE E DESENVOLVIMENTO DE MODELOS DE USUÁRIOSBASEADO EM MÚLTIPLOS DOMÍNIOS PARA SISTEMAS DE RECOMENDAÇÃO

Figura 4.6 Tela do perfil do usuário com opção para coleta dos dados. Figura elaborada peloautor (2015).

página de um livro ou filme e visualizar os detalhes das informações deste item. Tambémé possível visualizar uma lista com todos os filmes e livros que foram coletados pelosistema, como pode ser visto na Figura 4.8.

Figura 4.7 Tela de visualização dos detalhes de um livro. Figura elaborada pelo autor (2015).

As consultas são realizadas através dos títulos de cada item. Antes de realizar aconsulta é realizado um processo de "limpeza" nos títulos dos itens para remover algunspadrões, com o objetivo de facilitar a descoberta do item. Por exemplo "O Poderoso

42

Page 67: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

4.4. TELAS E FUNCIONAMENTO

Figura 4.8 Tela de visualização dos filmes do usuário. Figura elaborada pelo autor (2015).

43

Page 68: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

CAPÍTULO 4. ANÁLISE E DESENVOLVIMENTO DE MODELOS DE USUÁRIOSBASEADO EM MÚLTIPLOS DOMÍNIOS PARA SISTEMAS DE RECOMENDAÇÃO

Chefão (1972)", nesse caso é removido o ano do filme ficando "O Poderoso Chefão". Osdetalhes buscados sobre os itens são: gêneros, sinopse, diretor, atores, data de lançamento,duração. Sendo considerado a informação mais importante o gênero do item, que seráutilizado como "ponte" entre os domínios.

Após todos os filmes e livros estarem com todas as informações preenchidas, o usuáriopoderá visualizar uma página com os gêneros de filmes e livros que ele mais costumaassistir e ler, respectivamente, conforme pode ser visto na Figura 4.9.

Figura 4.9 Tela do perfil com estatísticas de gêneros mais assistidos e lidos pelo usuário. Figura

elaborada pelo autor (2015).

4.5 Sumário

Neste capítulo, apresentamos uma visão geral sobre os aspectos do desenvolvimento dosistema. Inicialmente discutimos a arquitetura do sistema, onde vimos os aspectos daestrutura do sistema. Em seguida, vimos as ferramentas e tecnologias utilizadas e depoiso fluxo de funcionamento foi explicado. No capítulo 5 faremos uma avaliação do trabalhorealizado. Serão discutidas metodologia, métricas de avaliação e os resultados obtidos.

44

Page 69: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

5Avaliação

Neste capítulo será apresentado o processo de avaliação utilizado para verificar se osobjetivos previstos foram alcançados. Espera-se que com a criação do modelo de usuáriobaseados em múltiplos domínios, haja uma melhoria na qualidade das recomendações.Para isso, os experimentos aqui relatados utilizam o Facebook1 como fonte de dadosdo usuário e a DBpedia2 como fonte de dados para os domínios de filmes e livros.A avaliação consiste em comparar as combinações de diferentes tipos de metadados,utilizando o algoritmo BPR-Mapping, apresentado no Capítulo 3.

Este capítulo apresenta os detalhes da metodologia utilizada para desenvolver e avaliareste trabalho, bem como o conjunto de dados utilizados durante os experimentos. Emseguida são apresentadas as métricas utilizadas na avaliação e os resultados obtidos. Porfim, é feita uma discussão e apresentados pontos de melhoria.

5.1 Metodologia

Os testes realizados para a avaliação têm por objetivo mostrar que ao utilizar novos atribu-tos, os quais podem ser provenientes de diferentes domínios, o sistema de recomendaçãoconseguirá aumentar a precisão das recomendações.

Para avaliação do modelo serão realizadas comparações da combinação de diferentestipos de metadados. As combinações utilizadas são: anos de nascimento e países, livros epaíses, cidades e países, sexo e países, anos de nascimento e gêneros, livros e gêneros,cidades e gêneros e, por fim, sexo e gêneros. Essas combinações são descritas em umarquivo de texto que contém relações binárias entre as entidades. Os arquivos com asrelações contêm exatamente duas colunas, sendo que cada coluna tem o ID que identifica

1http://www.facebook.com2http://www.dbpedia.org

45

Page 70: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

CAPÍTULO 5. AVALIAÇÃO

Figura 5.1 Exemplo de arquivo da relação entre filme e gênero. Figura elaborada pelo autor(2015).

a entidade no banco de dados. Na Figura 5.1, por exemplo, é representada a relação entrefilme e gênero, em que a primeira linha corresponde ao filme 1 que é do gênero 3, asegunda linha ao filme 1 que é do gênero 5 e assim por diante.

Os arquivos com as relações serão utilizados como entrada para o algoritmo BPR-Mapping descrito em 3.4.3 através da biblioteca MyMediaLite (Gantner et al., 2011).Para medir a melhoria das recomendações, foram utilizadas as métricas Mean AveragePrecision (MAP) e Area Under the ROC Curve (AUC).

5.2 Conjunto de Dados

Todos os testes foram executados com dados de usuários do Facebook 3. De cada usuário,foram coletados os filmes e livros que este marcou no Facebook como assistido ou lido,respectivamente, e armazenados com identificador, título e URLs do Facebook. Como oFacebook fornece poucos dados sobre os filmes e livros, foram extraídas informaçõesadicionais da DBpedia, para enriquecer o conjunto de informações dos filmes e livros,com o objetivo de aumentar a precisão das recomendações.

Para coletar essas informações foi feita uma busca utilizando o nome de cada filme elivro do usuário na DBpedia, para então extrair as informações. Foi necessário modificaralguns dos nomes dos itens que vieram do Facebook, porque os nomes dos filmes estãoem português e os dados disponibilizados na DBpedia estão em inglês. Para cada filme,são consultados o diretor, país, data de lançamento, sinopse, gêneros. Para cada livrosão consultados autor, país, data de lançamento, sinopse, gêneros, número de páginas. Obanco de dados final foi composto de 37 usuários relacionados a 9 cidades, 1189 filmes e637 livros com relações entre 30 países e 39 gêneros, como pode ser visto na Tabela 5.1

3Facebook, http://www.facebook.com

46

Page 71: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

5.3. MÉTRICAS DE AVALIAÇÃO

Tabela 5.1 Conjunto de Dados.Conjunto de Dadosusuários 37cidades 9filmes 1189livros 637países 30

gêneros 39

Para os teste foi utilizado o processo de cross-validation, onde é criado conjuntosde treino e de teste, o modelo é treinado utilizando o conjunto de treino e testado comos exemplos do conjunto de teste. Em seguida, diferentes conjuntos de treino e testesão selecionados para iniciar o processo de treino e teste novamente, sendo repetido k

vezes (Ricci et al., 2011). Finalmente, a performance média é reportada. Existem váriastécnicas de cross-validation, aqui foi utilizada a técnica n-Fold, o conjunto de dados édividido em n grupos. Um dos grupos é utilizado para testar o modelo e os restantesn−1 grupos são utilizados para treino. O processo de cross-validation é então repetido n

vezes com cada uma das n subamostragens utilizadas exatamente uma vez como dado devalidação (Ricci et al., 2011).

O algoritmo utilizado foi o BPR-Mapping 3.4.3, o qual foi executado utilizandodiferentes conjuntos de entradas, totalizando oito execuções. A primeira execução foirealizada sem utilizar atributos de filmes, livros ou do usuário, e será utilizada como basepara avaliação de performance das outras sete execuções. Deste modo, são comparadasas notas de MAP e AUC obtidas ao utilizar os atributos dos filmes, livros e usuários coma nota gerada na primeira execução. Os resultados obtidos estão listados na Tabela 5.2.

5.3 Métricas de Avaliação

Em um cenário onde é fornecida uma lista de recomendações a um usuário em que elepode avaliar os itens como relevantes ou não-relevantes, métricas como Precisão 4 eCobertura 5, utilizadas na recuperação de informação, são úteis para avaliar a qualidadede um método de recomendação (Parra and Sahebi, 2013).

Por exemplo, recomendações baseadas em tag dependem fortemente dessas métricas,já que os usuários não costumam indicar sua preferência dando notas aos itens (Bogers,

4Em inglês, Precision.5Em inglês, Recall.

47

Page 72: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

CAPÍTULO 5. AVALIAÇÃO

Figura 5.2 Precisão e Cobertura (Barth, 2013).

2009).

Precisão é a fração dos itens recomendados que são relevantes (Manning et al., 2008),sendo definida como

precisao =itens relevantes recomendados

itens na lista,

� �5.1

Cobertura é definida como a fração de recomendações relevantes que são apresentadaspara o usuário (Manning et al., 2008)

cobertura =itens relevantes recomendados

itens relevantes,

� �5.2

Entretanto, como descrito por Herlocker et al. (2004), cobertura é inútil em seu purosentido para avaliar sistemas de recomendação, uma vez que exige conhecer todos ositens que são relevantes para um usuário central. A Figura 5.2 ilustra estes conceitos.

5.3.1 Precisão em n (Prec@n)

O número de itens recomendados em uma lista pode ser muito alto, dependendo dométodo de recomendação e do tamanho do conjunto de dados, e um usuário pode nãoser capaz de verificar e avaliar todos eles. Por esta razão, as métricas de avaliação irãoconsiderar apenas os top itens, que são chamados Top-N recomendações (Deshpandeand Karypis, 2004), e são normalmente apresentados como precisão em n (P@n). P@né utilizado para avaliar o sistema no contexto de um único usuário. A P@n mede a

48

Page 73: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

5.3. MÉTRICAS DE AVALIAÇÃO

relevância dos n primeiros itens de uma lista:

P@n =rn

,� �5.3

onde, n é o número de itens retornados e r é o número de itens considerados relevantese retornados até a posição n da lista.

5.3.2 Mean Average Precision (MAP)

A fim de obter uma métrica única que contribui para a precisão do método de recomenda-ção ao longo de todo o conjunto de usuários, utiliza-se o Mean Average Precision (MAP)

(Parra and Sahebi, 2013). MAP é obtida calculando a média sobre a precisão média dalista de recomendações de cada usuário, como:

MAP =N

∑n=1

AveP(n)N

,� �5.4

onde, AveP(n) é a precisão média para o usuário n, isto é, a média dos valores deprecisão obtidos para o conjunto de top-N recomendações depois que cada recomendaçãorelevante é recuperada (Manning et al., 2008).

5.3.3 Area Under the ROC curve (AUC)

Métricas de classificação são apropriadas para tarefas como "Encontrar Bons Itens",especialmente quando apenas avaliações implícitas estão disponíveis, isto é, nós sabemosquais itens um usuário gostou, mas não o quanto eles gostaram. Para avaliar este tipo desistemas, uma métrica popular é AUC, onde ROC significa Receiver Operating Charach-

teristics (Hanley and Mcneil, 1982). A métrica AUC tenta medir como um sistema derecomendação pode distinguir com sucesso os itens relevantes (aqueles apreciados pelousuário) dos itens irrelevantes (todos os outros) (Lü et al., 2012).

A maneira mais fácil de calcular AUC é comparando a probabilidade que os itensrelevantes serão recomendados com a dos itens irrelevantes (Lü et al., 2012). Para n

comparações independentes (cada comparação refere-se a escolher um item relevantee um irrelevante), se existem n′ vezes em que o item relevante tem uma nota alta emrelação ao irrelevante e n′′ vezes em que as notas são iguais, então de acordo com Zhouet al. (2009):

AUC =n′ + 0.5n′′

n,

� �5.5

49

Page 74: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

CAPÍTULO 5. AVALIAÇÃO

Tabela 5.2 Resultados para AUC, prec@5 e [email protected] do Filme Atributos do Usuário AUC prec@5 prec@10 MAP

sem atributos sem atributos 0,76189 0,01888 0,02120 0,06719países sem atributos 0,77813 0,02388 0,02370 0,07261

gêneros sem atributos 0,77977 0,02388 0,02390 0,07899países ano de nascimento 0,78743 0,03244 0,02616 0,08193países livros 0,79902 0,03544 0,02916 0,08838países cidades 0,78898 0,03494 0,02491 0,08683países sexo 0,77762 0,03244 0,02366 0,07984

gêneros ano de nascimento 0,78450 0,01888 0,02120 0,05977gêneros livros 0,80516 0,02388 0,02370 0,09154gêneros cidades 0,78079 0,03612 0,02845 0,08231gêneros sexo 0,78602 0,02388 0,02370 0,07414

Claramente, se todos os itens relevantes tiverem nota maior do que os irrelevantes,AUC = 1 o que significa uma lista de recomendação perfeita. Para uma lista de recomen-dação aleatória, AUC = 0,5. Portanto o grau em que AUC excede 0,5 indica a habilidadede um algoritmo de recomendação em identificar itens relevantes.

5.4 Resultados

Para avaliar os resultados foram utilizadas as seguintes métricas de avaliação:

(a) Precisão, que calcula o percentual de itens recomendados que são relevantes;

(b) MAP, que calcula a precisão considerando a respectiva posição na lista ordenadade itens recomendados e;

(c) AUC, que especifica a probabilidade de que, ao tirar um exemplo negativo e outropositivo aleatoriamente, a função de decisão atribua um valor mais alto para opositivo do que o exemplo negativo.

5.4.1 Prec@5

O prec@5 considera a precisão dos cinco primeiros itens na lista, pontuando mais osacertos no início. Analisando os resultados obtidos, o nível de melhoria chegou a 91,31%,o que é um valor bem expressivo.

O maior valor alcançado com o prec@5 foi obtido ao utilizar os atributos gênerodo filme e cidade do usuário, alcançando um valor de 0,03612, como pode ser visto na

50

Page 75: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

5.4. RESULTADOS

Figura 5.3 Resultados da métrica MAP utilizando o algoritmo BPR-Mapping. Figura elaboradapelo autor (2015).

Tabela 5.2. Isto se deve provavelmente ao fato de que muitos dos usuários registrados naaplicação pertenciam a cidades em comum ou eram amigos na rede social Facebook, oque nos leva a acreditar que podem ter interesses em comum por filmes.

Porém, houve um caso em que não houve melhoria, o valor obtido ficou igual ao valordo teste sem atributos. Foi o caso em que se utilizou os atributos gênero do filme e datade nascimento do usuário, obtendo uma nota de 0,01888. Isto pode ser devido ao fato deque o ano de nascimento entre os usuários é esparso, ou seja, em alguns casos não foiinformado.

5.4.2 Prec@10

No prec@10 a performance não foi tão grande comparada ao prec@5, já que esteconsidera os dez primeiros itens da lista. O nível de melhoria alcançado com o prec@10foi de 37,55% e, mesmo sendo mais baixo que o prec@5, ainda assim é um bom resultado.

O maior valor alcançado pelo prec@10 foi obtido ao utilizar os atributos país do filmee livros do usuário, obtendo um valor de 0,2916. Podemos deduzir, neste caso, o interessedos usuários por filmes e livros de uma mesma nacionalidade, sendo os itens de maiorinteresse de nacionalidade estadunidense.

Como no prec@5, o prec@10 também não mostrou melhoria ao utilizar os atributosgênero do filme e data de nascimento do usuário, obtendo uma nota de 0,01888, mesma

51

Page 76: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

CAPÍTULO 5. AVALIAÇÃO

nota do teste sem atributos.

5.4.3 MAP

A métrica MAP foi utilizada para medir a precisão do algoritmo. Analisando os resultadosobtidos pelo MAP na Tabela 5.2, o nível de melhoria ficou entre 8,07% e 36,24%. Estasmelhorias são significativas, já que aumentar o MAP é um problema difícil, e cadaaumento é difícil de se alcançar.

Os valores obtidos ao utilizar os atributos dos filmes, livros e usuário são geralmentemuito melhores. O maior valor alcançado com o MAP foi obtido ao utilizar os atributosgênero do filme e livros do usuário, alcançando um valor de 0,09154, visto na Figura 5.3.Isso se deve provavelmente ao fato de que as relações entre filmes e livros podem serfacilmente conectadas, como por exemplo, um usuário que gostou de um livro de terrortende a gostar de filmes de terror.

Contudo, houve um caso em que o valor foi mais baixo que o do teste sem utilizaratributos, que foi ao utilizar os atributos gênero do filme e data de nascimento do usuário,que obteve um valor de 0,05977, valor 11% menor. Isto deve-se, provavelmente, ao fatode que o ano de nascimento pode influenciar no interesse em determinados gêneros defilmes, por exemplo, pessoas mais velhas tendem a gostar mais de filmes clássicos do queum jovem.

5.4.4 AUC

Para a métrica AUC o melhor valor possível a ser obtido seria 1, e qualquer ranking nãoaleatório que faça sentido tem valores AUC > 0,5. Nos testes realizados, todos os valoresobtidos pela métrica AUC estiveram acima de 0,5.

Analisando os valores na Tabela 5.2, obtidos com a métrica AUC, mais uma veztemos o maior valor alcançado ao utilizar os atributos gênero do filme e livros do usuário,atingindo um valor de 0,80516. Portanto o algoritmo foi capaz de identificar itensrelevantes para recomendar ao usuário.

5.5 Discussão

Neste trabalho foi mostrado a modelagem de perfis de usuários em múltiplos domínios, ede forma automatizada, com o objetivo de transferir conhecimento sobre o usuário em umdomínio para um outro domínio relacionado. Este conhecimento adicional pode ajudar a

52

Page 77: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

5.5. DISCUSSÃO

Figura 5.4 Resultados da métrica AUC utilizando o algoritmo BPR-Mapping. Figura elaboradapelo autor (2015).

aliviar o problema da partida-a-frio, principalmente em casos de usuários novos, em quenão há conhecimento sobre ele o suficiente para começar a gerar recomendações.

Após analisar os resultados obtidos com as métricas utilizadas, podemos concluirque compartilhar informações entre domínios aumenta a performance da recomendaçãoconsideravelmente. Combinar atributos dos filmes com os dos livros sempre produziumelhores resultados. Todos os testes realizados apresentaram melhorias significativas,como podem ser visto nas Figuras 5.3 e 5.4, ao utilizar os atributos de livros do usuáriopara realizar recomendações de filmes. Assim, podemos perceber o quanto a utilização dedados sobre outros domínios pode ajudar na precisão da recomendação, principalmenteno que diz respeito ao problema da partida-a-frio (cold-start problem), já que o modelode usuário é criado de forma automática com dados do usuário já disponíveis em redessociais.

Uma rede social de filmes, como o Filmow6, por exemplo, pode fazer uso da abor-dagem proposta neste trabalho para melhorar as recomendações de filmes que faz aosusuários de sua rede. Ao utilizar os dados sobre livros que seus usuários leram, noFacebook, ela pode fazer uso dessas informações adicionais para aumentar a precisãode suas recomendações, principalmente para novos usuários, em que começam sem terfilmes no perfil da rede.

6Filmow, http://www.filmow.com.br

53

Page 78: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

CAPÍTULO 5. AVALIAÇÃO

5.6 Pontos de Melhoria

Os principais problemas na criação automática do modelo de usuário foram na etapa decoleta de outros dados sobre os itens a partir da DBpedia, após obter os filmes e livros dousuário do Facebook. Como o Facebook fornece apenas o nome do filme ou livro, a buscana DBpedia precisou ser realizada através do nome, o que trouxe problemas relacionadosa erros de grafia ou ruídos, como em casos em que o ano do filme aparecia concatenadoao título. Muitos casos foram resolvidos, mas ainda restam muitos pontos para melhoriasneste quesito.

Outro problema deve-se às informações dos filmes e livros estarem muitas vezesincompletas ou com pouca informação útil. Isso pode ser melhorado com a obtençãode dados sobre os itens em sites especializados, como IMDB7, por exemplo. Outrapossibilidade é a utilização de outras fontes de conhecimento sobre o usuário, comooutras redes sociais que possam fornecer mais conhecimento sobre o usuário, comoTwitter8, Google Plus9, e outras.

O modelo do usuário ainda tem possibilidade de ser alimentado com muito maisinformações que podem ser obtidas criando novas relações entre os domínios. Entãoexiste muito espaço para explorar e gerar novos dados seguindo a abordagem apresentadaneste trabalho.

5.7 Sumário

Este capítulo apresentou os principais resultados obtidos durante o desenvolvimentodos experimentos para avaliar a implementação de modelos de usuários baseados emmúltiplos domínios, utilizando extração automática de informações dos usuários. Inici-almente foram apresentadas as metodologias de avaliação utilizadas no estudo, dataset,e métricas utilizadas. O estudo apresentado neste capítulo mostrou que a proposta decruzar informações entre domínios foi efetivas em obter melhores recomendações para ousuário.

7IMDB, http://www.imdb.com8Twitter, http://www.twitter.com9Google+, https://plus.google.com/

54

Page 79: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

Referências Bibliográficas

Abel, F., Herder, E., Houben, G.-J., Henze, N., and Krause, D. (2012). Cross-system usermodeling and personalization on the social web. User Modeling and User-Adapted

Interaction, 23(2), 169–209.

Adomavicius, G. and Tuzhilin, A. (2005). Toward the next generation of recommendersystems: A survey of the state-of-the-art and possible extensions. IEEE Trans. on

Knowl. and Data Eng., 17(6), 734–749.

Ali, K. and van Stam, W. (2004). Tivo: Making show recommendations using a distri-buted collaborative filtering architecture. In Proceedings of the Tenth ACM SIGKDD

International Conference on Knowledge Discovery and Data Mining, KDD ’04, pages394–401, New York, NY, USA. ACM.

Amini, B., Ibrahim, R., and Othman, M. S. (2011). Discovering the impact of knowledgein recommender systems: A comparative study. CoRR, abs/1109.0166.

Balcan, M.-F., Bansal, N., Beygelzimer, A., Coppersmith, D., Langford, J., and Sorkin, G.(2008). Robust reductions from ranking to classification. Machine Learning, 72(1-2),139–153.

Barth, F. J. (2013). Uma introdução ao tema recuperação de informações textuais. RITA,20(2), 247–272.

Berkovsky, S., Kuflik, T., and Ricci, F. (2005). Entertainment personalization mechanismthrough cross-domain user modeling. In Proceedings of the First International Confe-

rence on Intelligent Technologies for Interactive Entertainment, INTETAIN’05, pages215–219, Berlin, Heidelberg. Springer-Verlag.

Berkovsky, S., Kuflik, T., and Ricci, F. (2008). Mediation of user models for enhanced per-sonalization in recommender systems. User Modeling and User-Adapted Interaction,18(3), 245–286.

Berkovsky, S., Kuflik, T., and Ricci, F. (2009). Cross-representation mediation of usermodels. User Modeling and User-Adapted Interaction, 19(1-2), 35–63.

Bogers, T. (2009). Recommender Systems for Social Bookmarking. Ph.D. thesis, TilburgUniversity.

55

Page 80: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

REFERÊNCIAS BIBLIOGRÁFICAS

Brasil, C. (2011a). Javascript - introdução à linguagem ja-vascript. Disponível em: http://br.ccm.net/faq/

2680-javascript-introducao-a-linguagem-javascript. Últimoacesso em 23 de Abril de 2016.

Brasil, W. (2011b). Curso de css3. Disponível em: http://www.w3c.br/Cursos/CursoCSS3. Último acesso em 23 de Abril de 2016.

Brasil, W. (2011c). Curso html5. Disponível em: http://www.w3c.br/Cursos/CursoHTML5. Último acesso em 23 de Abril de 2016.

Burke, R. (2002). Hybrid recommender systems: Survey and experiments. User Modeling

and User-Adapted Interaction, 12(4), 331–370.

Burke, R. (2007). The adaptive web. chapter Hybrid Web Recommender Systems, pages377–408. Springer-Verlag, Berlin, Heidelberg.

Claypool, M., Gokhale, A., Miranda, T., Murnikov, P., Netes, D., and Sartin, M. (1999).Combining content-based and collaborative filters in an online newspaper. In Proce-

edings of the ACM SIGIR ’99 Workshop on Recommender Systems: Algorithms and

Evaluation, Berkeley, California. ACM.

Deshpande, M. and Karypis, G. (2004). Item-based top-n recommendation algorithms.ACM Trans. Inf. Syst., 22(1), 143–177.

DuCharme, B. (2011). Learning SPARQL. O’Reilly Media.

Elena, M. and Straccia, U. (2005). A personalized collaborative digital library environ-ment: a model and an application. Information Processing and Management, 41(1),5–21.

Fernández-Tobías, I., Cantador, I., Kaminskas, M., and Ricci, F. (2012). Cross-domainrecommender systems: A survey of the state of the art. Spanish Conference on

Information Retrieval.

Flanagan, D. (2011). JavaScript: The Definitive Guide. Definitive Guides. O’ReillyMedia.

Gantner, Z., Drumond, L., Freudenthaler, C., Rendle, S., and Schmidt-Thieme, L. (2010).Learning attribute-to-feature mappings for cold-start recommendations. In 2010 IEEE

10th International Conference on Data Mining (ICDM), pages 176–185.

56

Page 81: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

REFERÊNCIAS BIBLIOGRÁFICAS

Gantner, Z., Rendle, S., Freudenthaler, C., and Schmidt-Thieme, L. (2011). MyMediaLite:A free recommender system library. In Proceedings of the 5th ACM Conference on

Recommender Systems, RecSys ’11, pages 305–308, New York, NY, USA.

Gantz, J. and Reinsel, D. (2012). The digital universe in 2020: Big data, bigger digitalshadows, and biggest growth in the far east. IDC Analyze The Future.

Garlan, D. and Shaw, M. (1994). An introduction to software architecture. Technicalreport, Pittsburgh, PA, USA.

Goldberg, D., Nichols, D., Oki, B. M., and Terry, D. (1992). Using collaborative filteringto weave an information tapestry. Commun. ACM, 35(12), 61–70.

Hanani, U., Shapira, B., and Shoval, P. (2001). Information filtering: Overview of issues,research and systems. User Modeling and User-Adapted Interaction, 11(3), 203–259.

Hanley, J. A. and Mcneil, B. J. (1982). The meaning and use of the area under a receiveroperating characteristic (ROC) curve. Radiology, 143, 29–36.

Herlocker, J. L., Konstan, J. A., Terveen, L. G., and Riedl, J. T. (2004). Evaluatingcollaborative filtering recommender systems. ACM Trans. Inf. Syst., 22(1), 5–53.

ITU (2015). Itu releases 2015 ict figures. Disponível em: https://www.itu.int/net/pressoffice/press_releases/2015/17.aspx. [Último acesso em06 de Maio de 2016].

Kobsa, A. (2001). Generic user modeling systems. User Modeling and User-Adapted

Interaction, 11(1-2), 49–63.

Kobsa, A. and Pohl, W. (1994). The user modeling shell system bgp-ms. User Modeling

and User-Adapted Interaction, 4(2), 59–106.

Li, B., Yang, Q., and Xue, X. (2009). Can movies and books collaborate?: Cross-domaincollaborative filtering for sparsity reduction. In Proceedings of the 21st International

Jont Conference on Artifical Intelligence, IJCAI’09, pages 2052–2057, San Francisco,CA, USA. Morgan Kaufmann Publishers Inc.

Linden, G., Smith, B., and York, J. (2003). Amazon.com recommendations: Item-to-itemcollaborative filtering. IEEE Internet Computing, 7(1), 76–80.

57

Page 82: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

REFERÊNCIAS BIBLIOGRÁFICAS

Lops, P., de Gemmis, M., and Semeraro, G. (2011). Content-based recommender systems:State of the art and trends. In F. Ricci, L. Rokach, B. Shapira, and P. B. Kantor, editors,Recommender Systems Handbook, pages 73–105. Springer US.

Lü, L., Medo, M., Yeung, C. H., Zhang, Y., Zhang, Z., and Zhou, T. (2012). Recommendersystems. CoRR, abs/1202.1112.

Ma, H., Zhou, D., Liu, C., Lyu, M. R., and King, I. (2011). Recommender systems withsocial regularization. In Proceedings of the Fourth ACM International Conference

on Web Search and Data Mining, WSDM ’11, pages 287–296, New York, NY, USA.ACM.

Manning, C. D., Raghavan, P., and Schütze, H. (2008). Introduction to Information

Retrieval. Cambridge University Press, New York, NY, USA.

Mladenic, D. (1999). Text-learning and related intelligent agents: A survey. IEEE

Intelligent Systems, 14(4), 44–54.

Montaner, M., López, B., and De La Rosa, J. L. (2003). A taxonomy of recommenderagents on theinternet. Artif. Intell. Rev., 19(4), 285–330.

Pan, W., Xiang, E., Liu, N., and Yang, Q. (2010). Transfer learning in collaborativefiltering for sparsity reduction.

Parra, D. and Sahebi, S. (2013). Recommender systems: Sources of knowledge andevaluation metrics. In J. D. Velásquez, V. Palade, and L. C. Jain, editors, Advanced

Techniques in Web Intelligence-2, volume 452 of Studies in Computational Intelligence,pages 149–175. Springer Berlin Heidelberg.

Porcel, C. and Herrera-Viedma, E. (2010). Dealing with incomplete information in afuzzy linguistic recommender system to disseminate information in university digitallibraries. Know.-Based Syst., 23(1), 32–39.

Pressman, R. (2010). Software Engineering: A Practitioner’s Approach. McGraw-Hill,Inc., New York, NY, USA, 7 edition.

Raggett, D., Lam, J., Alexander, I., and Kmiec, M. (1998). Raggett on HTML 4 (2Nd

Ed.). Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA.

58

Page 83: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

REFERÊNCIAS BIBLIOGRÁFICAS

RCN (2013). Tivo premiere tours. Disponível em: http://www.rcn.com/tivo/features/premiere-tour-details/. [Último acesso em 02 de Maio de2016].

Rendle, S., Freudenthaler, C., Gantner, Z., and Schmidt-Thieme, L. (2009). Bpr: Bayesianpersonalized ranking from implicit feedback. In Proceedings of the Twenty-Fifth Con-

ference on Uncertainty in Artificial Intelligence, UAI ’09, pages 452–461, Arlington,Virginia, United States. AUAI Press.

Resnick, P. and Varian, H. R. (1997). Recommender systems. Commun. ACM, 40(3),56–58.

Ricci, F., Rokach, L., Shapira, B., and Kantor, P. B., editors (2011). Recommender

Systems Handbook. Springer.

Schafer, J. B., Konstan, J., and Riedl, J. (1999). Recommender systems in e-commerce.In Proceedings of the 1st ACM Conference on Electronic Commerce, EC ’99, pages158–166, New York, NY, USA. ACM.

Shani, G. and Gunawardana, A. (2009). Evaluating recommender systems. TechnicalReport MSR-TR-2009-159.

Sommerville, I. (2010). Software Engineering. Addison-Wesley, Harlow, England, 9edition.

Stauffer, M. (2016). Laravel: Up & Running. O’Reilly Media.

Tobías, I. F. (2013). A semantic-based framework for building cross-domain networks:Application to item recommendation.

Ullman, L. (2009). PHP 6 and MySQL 5 for Dynamic Web Sites: Visual QuickPro Guide.Visual QuickPro Guide. Pearson Education.

Wang, Y., Zhang, J., and Vassileva, J. (2010). Artificial Intelligence: Methodology, Sys-

tems, and Applications: 14th International Conference, AIMSA 2010, Varna, Bulgaria,

September 8-10. 2010. Proceedings, chapter Towards Effective Recommendation ofSocial Data across Social Networking Sites, pages 61–70. Springer Berlin Heidelberg,Berlin, Heidelberg.

59

Page 84: Marivaldo Bispo Rodrigues Junior - repositorio.ufba.br · Análise e Desenvolvimento de Modelos de Usuários Baseado em Múltiplos Domínios para Sistemas de ... your gut, destiny,

REFERÊNCIAS BIBLIOGRÁFICAS

Winoto, P. and Tang, T. (2008). If you like the devil wears prada the book, will you alsoenjoy the devil wears prada the movie? a study of cross-domain recommendations.New Generation Computing, 26(3), 209–225.

Zhou, T., Lü, L., and Zhang, Y.-C. (2009). Predicting missing links via local information.The European Physical Journal B, 71(4), 623–630.

60