Dissertação

Transcrição

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