Você está na página 1de 88

Ricardo Batista Rodrigues

RECCLOUD: UM MODELO DE RECOMENDAÇÃO DE ARQUIVOS
PARA SISTEMAS DE ARMAZENAMENTO EM NUVEM

Dissertação de Mestrado

Universidade Federal de Pernambuco
posgraduacao@cin.ufpe.br

www.cin.ufpe.br/~posgraduacao

RECIFE
2014

Universidade Federal de Pernambuco
Centro de Informática
Pós-graduação em Ciência da Computação

Ricardo Batista Rodrigues

RECCLOUD: UM MODELO DE RECOMENDAÇÃO DE ARQUIVOS
PARA SISTEMAS DE ARMAZENAMENTO EM NUVEM

Trabalho apresentado ao Programa de Pós-graduação em
Ciência da Computação do Centro de Informática da Universidade Federal de Pernambuco como requisito parcial para
obtenção do grau de Mestre em Ciência da Computação.

Orientador: Vinicius Cardoso Garcia
Co-Orientador: Frederico Araujo Durão

RECIFE
2014

Ricardo Batista Rodrigues
RecCloud: Um Modelo de Recomendação de Arquivos Para Sistemas de Armazenamento em Nuvem/ Ricardo Batista Rodrigues. – RECIFE, 201484 p. : il. (algumas color.) ; 30 cm.
Orientador Vinicius Cardoso Garcia
Dissertação de Mestrado – Universidade Federal de Pernambuco, 2014.
1. Palavra-chave1. 2. Palavra-chave2. I. Orientador. II. Universidade xxx. III.
Faculdade de xxx. IV. Título
CDU 02:141:005.7

Dissertação de mestrado apresentada por Ricardo Batista Rodrigues ao programa de PósGraduação em Ciência da Computação do Centro de Informática da Universidade Federal
de Pernambuco, sob o título RecCloud: Um Modelo de Recomendação de Arquivos Para
Sistemas de Armazenamento em Nuvem, orientada pelo Prof. Vinicius Cardoso Garcia e
aprovada pela banca examinadora formada pelos professores:

———————————————————————–
Prof. Bernadette Farias Lóscio
Centro de Informática/UFPE
———————————————————————–
Prof. Rodrigo Elia Assad
Departamento de Estatística e Informática/UFRPE
———————————————————————–
Prof. Vinicius Cardoso Garcia
Centro de Informática/UFPE

A meu pai, Jose de Almeida Rodrigues Ferreira,
A minha mãe, Boaventura Batista Rodrigues,
Aos meus irmãos, Renata Batista e Rodrigo Batista.

Agradecimentos
Agradeço. . .     

Em primeiro lugar a Deus por sua graça e pelas bênçãos derramadas constantemente
sobre mim de maneira maravilhosa;
A minha família, meus pais e meus irmãos, pelo amor e por fornecer o suporte
emocional imprescindível em todos os momentos de minha vida;
Aos professores Vinicius Garcia e Frederico Durão pela paciência e dedicação na
orientação deste trabalho;
A todos os meus amigos e colegas que contribuíram direto e indiretamente para a
realização deste sonho;
A Fundação de Amparo à Ciência e Tecnologia de Pernambuco (FACEPE) por
apoiar, financia e conceder bolsa para o desenvolver desta pesquisa, sob o processo
IBPG-0483-1.03/11.

Muito Obrigado!

"Algo só é impossível até que alguém duvide e acabe provando o contrário."
—EINSTEIN (Albert Einstein, 1929)

Resumo
O desenvolvimento tecnológico vivenciado nos últimos anos proporcionou o crescimento
do universo digital de forma exponencial, e parte desse universo digital encontra-se armazenado
em sistemas de armazenamento em nuvem. A cada dia surgem mais destes sistemas, que
oferecem o armazenamento de dados de forma distribuída com alta taxa de disponibilidade,
o que tem impucionado cada vez mais usuários a migrarem seus dados para a nuvem. No
entanto, a grande quantidade de arquivos armazenada nestes sistemas dificulta a filtragem de
conteúdo relevante, demandando tempo e trabalho por parte do usuário na busca por arquivos
com conteúdo similar as suas preferências. Diante deste cenário, esta pesquisa propõe um
modelo de recomendação para sistemas de armazenamento em nuvem, que tem como objetivo
utilizar características da nuvem associadas à técnica de recomendação baseada em conteúdo
para filtrar e recomendar arquivos com o conteúdo similar as preferências dos usuários, além
disso, recomendar arquivos que proporcione a melhor utilização dos recursos do ambiente em
nuvem.
Palavras-chave: Sistema de recomendação, modelo de recomendação, computação em nuvem,
sistema de armazenamento em nuvem.

Abstract
The technological development in recent years has experienced the exponentially growth
of the digital universe, and part of this digital universe lies stored in cloud storage systems. With
each day, more of these systems come out, offering data storage in a distributed manner with
the proposal to provide high availability rate, what has driven more and more users who have
migrated your data to the cloud. However, the large amount of files stored in these systems
makes it difficult to filter relevant content, requiring time and labor by the user in searching
for files with similar content to your preferences. Face of this scenario, this study proposes a
model for recommendation of files in cloud storage systems, which aims to use cloud features
associated with the technique of content-based recommendation for filtering and recommending
files with similar content preferences of users, furthermore, recommend files that provide the
best use of the cloud environment resources.
Keywords: Recommendation system, recommendation model, cloud computing, cloud storage.

Lista de Figuras
Expectativa de crescimento da quantidade de dados digitais gerados GANTZ;
REINSEL (2011). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23

2.1

Arquitetura em camadas para computação em nuvem MACHADO (2013) . . .

30

2.2

Modelo do Processo de Recomendação. . . . . . . . . . . . . . . . . . . . . .

34

2.3

Opiniões dos usuários do site Netshoes sobre um item da loja NETSHOES.
DISPONíVEL EM: <HTTP://WWW.NETSHOES.COM.BR/> (2013) . . . . .

35

Lista dos livros mais vendidos do site Submarino SUBMARINO. DISPONíVEL
EM: <HTTP://WWW.SUBMARINO.COM.BR/> (2013) . . . . . . . . . . . .

36

Exemplo de uso da Amazon.com em que o sistema sugere outros produtos
relevantes para o usuário interessado no disco Kind Of Blue SAMPAIO (2006) .

36

Recomendação gerada pelo sistema do IMDB a partir do filme As Good As It
Gets SAMPAIO (2006) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

37

3.1

Processo de Recomendação Baseado em Conteúdo. . . . . . . . . . . . . . . .

55

3.2

Processo de Recomendação RecCloud. . . . . . . . . . . . . . . . . . . . . . .

55

3.3

Arquitetura do JXTA HEISS (2005). . . . . . . . . . . . . . . . . . . . . . . .

57

3.4

Arquitetura do Ustore SILVA A.; MEIRA (2012). . . . . . . . . . . . . . . . .

57

3.5

Índice invertido no Apache Lucene HATCHER; GOSPODNETIC (2004). . . .

59

3.6

Arquitetura do Apache Lucene HATCHER; GOSPODNETIC (2004). . . . . .

60

3.7

Arquitetura do Apache Tika MATTMANN; ZITTING (2011). . . . . . . . . .

61

3.8

Processo do Critério Disponibilidade. . . . . . . . . . . . . . . . . . . . . . .

62

4.1

Gráfico comparando a taxa de precisão variando a quantidade de artigos recomendados para cada ranque de recomendação gerado. . . . . . . . . . . . . . .

68

Gráfico comparando a taxa de precisão nos 3 (níveis) de variação na quantidade
de artigos recomendados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

68

Gráfico comparando a taxa de recall variando a quantidade de artigos recomendados para cada ranque de recomendação gerado. . . . . . . . . . . . . . . . .

69

Gráfico apresentando a comparação da taxa de recall obtida nos 3 (níveis) de
variação na quantidade de artigos recomendados. . . . . . . . . . . . . . . . .

69

Gráfico comparando a taxa de F-Measure variando a quantidade de artigos
recomendados para cada ranque de recomendação gerado. . . . . . . . . . . .

70

Gráfico apresentando a comparação da taxa de F-Measure obtida nos 3 (níveis)
de variação na quantidade de artigos recomendados. . . . . . . . . . . . . . . .

70

Tempo gasto no download dos arquivos recomendados pelo modelo RecCloud.

71

1.1

2.4
2.5
2.6

4.2
4.3
4.4
4.5
4.6
4.7

4.8

Tempo gasto no download dos arquivos recomendados pelo modelo baseado em
conteúdo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.9 Comparação do tempo gasto no download dos arquivos recomendados pelos
dois modelos avaliados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.10 Média, mínimo e máximo do tempo gasto no download das recomendações. . .

71
72
72

Lista de Tabelas
3.1
3.2
3.3

Pesos dos Critérios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exemplo do Cálculo de Recomendação do Modelo RecCloud. . . . . . . . . .
Arquivos Recomendados . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

51
54
54

4.1

Níveis utilizados para avaliar as métricas definidas . . . . . . . . . . . . . . .

67

Lista de Acrônimos
CB

Content-based . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

CF

Filtragem Colaborativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

DTV

Televisão Digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

IAAS

Infrastructure-as-a-Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

JDK

Java Development Kit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

SAAS

Software-as-a-Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

SR

Sistemas de Recomendação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

SRN

Sistema de Recomendação em Nuvem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

Sumário
1

2

Introdução

23

1.1

Contextualização e Motivação . . . . . . . . . . . . . . . . . . . . . . . . . .

23

1.2

Definição do Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25

1.3

Solução Proposta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

26

1.4

Estrutura deste Documento . . . . . . . . . . . . . . . . . . . . . . . . . . . .

27

Fundamentação teórica e Trabalhos Relacionados

29

2.1

Computação em Nuvem . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

29

2.1.1

Armazenamento de Dados em Nuvem . . . . . . . . . . . . . . . . . .

32

Sistemas de Recomendação . . . . . . . . . . . . . . . . . . . . . . . . . . . .

33

2.2.1

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

35

Técnicas de Sistemas de Recomendação . . . . . . . . . . . . . . . . . . . . .

37

2.3.1

Sistemas de Recomendação por Filtragem Colaborativa . . . . . . . . .

38

2.3.2

Sistemas de Recomendação Baseados em Conteúdo . . . . . . . . . . .

39

Trabalhos Relacionados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

40

2.4.1

Sistemas de Recomendação de Arquivos . . . . . . . . . . . . . . . . .

40

2.4.2

Sistemas de Recomendação em Nuvem . . . . . . . . . . . . . . . . .

41

2.4.3

Sistemas de Armazenamento em Nuvem . . . . . . . . . . . . . . . .

44

Considerações Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

44

2.2
2.3

2.4

2.5
3

RecCloud

47

3.1

Proposta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

47

3.2

O Modelo de Recomendação . . . . . . . . . . . . . . . . . . . . . . . . . . .

48

3.2.1

Pesos dos Critérios . . . . . . . . . . . . . . . . . . . . . . . . . . . .

51

3.2.2

Cálculo de Recomendação . . . . . . . . . . . . . . . . . . . . . . . .

53

3.2.3

Exemplo do Cálculo de Recomendação . . . . . . . . . . . . . . . . .

53

3.2.4

O Processo de Recomendação . . . . . . . . . . . . . . . . . . . . . .

55

Detalhes da Implementação . . . . . . . . . . . . . . . . . . . . . . . . . . . .

56

3.3.1

Ustore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

56

3.3.2

Arquitetura do Ustore . . . . . . . . . . . . . . . . . . . . . . . . . .

56

3.3.3

Sistema de Recomendação do Ustore . . . . . . . . . . . . . . . . . .

58

3.3.4

Implementação dos Critérios . . . . . . . . . . . . . . . . . . . . . . .

60

Considerações Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

62

3.3

3.4

22
4

5

Avaliação
4.1 Testes . . . . . . . . . . . . . .
4.2 Coleção de Dados . . . . . . . .
4.3 Julgamento de Relevâncias . . .
4.4 Ambiente de Teste . . . . . . .
4.5 Métricas de Avaliação . . . . . .
4.6 Cenários de Avaliação . . . . .
4.7 Resultados . . . . . . . . . . . .
4.7.1 Resultados do Cenário I
4.7.2 Resultados do Cenário II
4.8 Discussão dos Resultados . . . .
4.9 Possíveis Ameaças à Validade .
4.10 Considerações Finais . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.

63
63
64
64
64
65
66
67
67
70
73
74
74

Conclusões e Trabalhos Futuros
5.1 Contribuições . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

77
77
78

Referências

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

81

23

1
Introdução
Neste capítulo, é apresentada a contextualização sobre a tématica abordada nesta pesquisa,
além de descrever os objetivos e as motivações que conduziram esse trabalho.

1.1

Contextualização e Motivação

Vivemos em uma era de efervescência informacional, a cada dia se produz mais informação e, geralmente, estas informações são armazenadas em meios digitais. O tamanho do universo
digital cresce de forma exponencial. Segundo relatório publicado pela EMC Corporation 1
GANTZ; REINSEL (2011), em 2005, o volume de dados chegou a 130 exabytes2 ; em 2010,
superou 1 zettabyte e a previsão é que em 2015 chegue a quase 8 zettabytes 3 MACHADO (2013),
conforme mostrado na Figura 1.1.

Figura 1.1: Expectativa de crescimento da quantidade de dados digitais gerados GANTZ;
REINSEL (2011).

Este universo digital citado em Gantz e Reinsel GANTZ; REINSEL (2011) expande
1 http://www.emc.com

Acessado em: 07/09/2013
1.000.000.000 GB
3 Aproximadamente, 1.000.000.000.000 GB
2 Aproximadamente,

24

CAPÍTULO 1. INTRODUÇÃO

e torna cada vez mais complexa a tarefa de filtragem de conteúdo relevante que atenda às
preferências do usuário.
De acordo com Lopes a escassez de informação disponível deu lugar a uma imensa
massa de dados ao alcance de todos LOPES (2012). Entretanto, esta inversão também acabou
gerando um problema: onde e como armazenar essa massa de dados digitais? Uma opção que
atende a está demanda é a computação em nuvem.
Com o desenvolvimento tecnológico surgiram diversas tecnologias como, a computação
em nuvem que, dentre as suas inovações, trouxe os sistemas de armazenamento. Com o crescimento da utilização dos sistemas de armazenamento em nuvem, a massa de dados disponível
na base destes sistemas aumenta a cada dia. Este cenário implica na ocultação de informações
relevantes aos usuários, que deixam de descobrir novos conteúdos e gastão uma maior quantidade
de tempo na filtragem de conteúdo, por não disporem de meios eficientes que os auxiliem na
filtragem de conteúdo.
Outro problema gerado com a explosão de dados armazenados em nuvem, é como encontrar e extrair informação relevante em tempo hábil no meio desta quantidade de informações?
Dentre as técnicas utilizadas na filtragem de conteúdo podemos citar os sistemas de busca que,
permitem ao usuário realizar buscas por informações similares as suas preferências SAMPAIO
(2006). Nesta pesquisa é proposto como resposta para este questionamento o uso dos sistemas
de recomendação.
Quando é preciso filtrar um grande conjunto de dados, podemos utilizar técnicas de
recomendação para facilitar o processo de filtragem de informações relevantes e similares com
as preferências do usuário. Para isto, é necessário informações sobre o indivíduo alvo da
recomendação ou sobre o ambiente que influenciará na geração da recomendação. A partir daí,
um sistema de recomendação poderá localizar os arquivos que apresentem maior similaridade
com as preferências ou características do usuário, ou do seu ambiente.
No desenvolvimento de Sistemas de Recomendação (SR) existem variadas técnicas, mas
duas delas possuem destaque na literatura: sistemas de recomendação Content-based (CB) e
sistemas de recomendação por Filtragem Colaborativa (CF) SU; KHOSHGOFTAAR (2009).
Sistemas de recomendação pela técnica CB apóiam-se no princípio de que os usuários
tendem a interessar-se por itens similares aos que demonstraram interesse no passado, como,
por exemplo, visualização de um item em uma loja virtual. A preocupação deste tipo de sistema
é definir a similaridade entre o conteúdo dos itens e uma das suas dificuldade é conseguir
representar estes conteúdos.
Os sistemas de recomendação por CF foram desenvolvidos para superar as dificuldades
da abordagem baseada em conteúdo, uma das principais diferenças entre as técnicas é justamente
por não exigir a compreensão dos conteúdos dos itens, baseando apenas nas características do
usuário, normalmente disponibilizadas por ele mesmo ao sistema. A natureza desta técnica
está na troca de experiência entre os usuários, baseando-se na teoria de que usuários com
características semelhantes demostram intresses pelos mesmos itens. O objetivo desta técnica

25

1.2. DEFINIÇÃO DO PROBLEMA

é definir a proximidade entre os usuários a partir de suas interações com o sistema, como, por
exemplo, avaliação de itens.
Um dos principais problemas da técnica por filtragem colaborativa é a de existir poucos
usuários, informações ou participação no sistema, este problema também é conhecido como
esparsidade dos dados HERLOCKER (2000). Este problema foi um dos motivos que levaram
está pesquisa a não utilizar a técnica de recomendação baseada em filtragem colaborativa, e sim
optar pela técnica baseada em conteúdo para compor o modelo proposto. A esparsidade de dados
pode ser considerada frequente em sistemas de armazenamento em nuvem, observando que, no
momento em que um novo usuário entra no sistema, este pode disponibilizar poucas ou nenhuma
informação a seu respeito ou que represente suas preferências e interesses. Isso torna complexa
a atividade de recomendar conteúdo que atenda às expectativas do usuário, sem informações que
possibilitem o processo.
Tomando este cenário como base, esta pesquisa propõe um modelo para recomendação
de arquivos baseado em características da nuvem e em conteúdo. O modelo foi desenvolvido de
forma que seja possível ser utilizado em diferentes sistemas de armazenamento em nuvem.

1.2

Definição do Problema

A maioria dos sistemas de armazenamento em nuvem, como: Amazon S3 4 , Dropbox5 ,
SugarSync6 , entre outros, não oferecem serviços de recomendação de arquivos ao usuário. A
maioria somente permite que o usuário faça consultas por um determinado arquivo a partir de
palavras-chave. Isso torna a busca por conteúdo relevante, repetitiva e trabalhosa, demandando
certa quantidade de tempo na filtragem de conteúdo, considerando uma grande massa de dados.
E nem sempre o arquivo encontrado pelo usuário em uma busca manual, proporciona a melhor
utilização dos recursos do sistema em nuvem e de seus recursos computacionais, como, por
exemplo, o download deste arquivo, que pode demandar mais tempo do que o disponível pelo
usuário e mais recursos computacionais de que os disponíveis para realizar esta tarefa.
A utilização de sistemas de recomendação tem como objetivo recomendar ao usuário
o conteúdo que melhor se adeque a necessidade, preferência e expectativas do usuário alvo da
recomendação. Visto que a utilização de sistemas de armazenamento em nuvem permite que o
usuário armazene uma grande quantidade de dados, o problema que esta dissertação se propõe a
resolver pode ser definido como:
Com a disponibilidade para que usuários armazenem grandes quantidades de arquivos
em nuvem, tornou-se complexa a filtragem de conteúdo relevante em meio a essa massa de dados.
Demandando maior tempo e utilizando mais recursos computacionais para a realização desta
tarefa.
4 http://aws.amazon.com/pt/s3/

Acessado em: 07/09/2013
Acessado em: 07/09/2013
6 https://www.sugarsync.com/googtrans(en|pt) Acessado em: 07/09/2013
5 https://www.dropbox.com/

26

CAPÍTULO 1. INTRODUÇÃO

1.3

Solução Proposta

O estudo apresentado neste trabalho investiga qual a melhor forma de utilizar características de sistemas de armazenamento em nuvem na geração de recomendação de arquivos
nestes sistemas. Assim assume-se que ao associar as características do ambiente à técnica de
recomendação baseada em conteúdo, podem ser geradas recomendações de arquivos por meio
de um modelo que atenda as preferências do usuário e proporcione uma melhor utilização dos
recursos disponíveis pelos sistemas de armazenamento em nuvem.
Definida a proposta que solucione os problemas de pesquisa, apresentados ao longo
desse trabalho, é investigada a aplicabilidade da proposta em um sistema de armazenamento em
nuvem “Ustore7 ”. Desta forma, pode-se definir que o objetivo geral deste trabalho é propor e
avaliar um modelo de recomendação de arquivos para sistemas de armazenamento em nuvem
que utilize características da nuvem no processo de recomendação.
Ao final deste trabalho, espera-se propor um modelo de recomendação de arquivos
para sistemas de armazenamento em nuvem. Esse modelo permitirá recomendar conteúdo que
atenda as preferências do usuário e que proporcionem amenização do tempo gasto na filtragem
por conteúdo relevante e no tempo gasto no download desses arquivos, além de recomendar
arquivos que apresentem as melhores taxas de disponibilidade. Para alcançar o objetivo principal
apresentado nesta seção, os seguintes passos foram definidos:   

Realizar uma revisão bibliográfica sobre Sistema de Recomendação em Nuvem
(SRN), agregando maior entendimento teórico ao tema. A partir desta revisão, pôdese identificar limitações nos trabalhos relacionados.
Identificar as propostas adotadas hoje pelos sistemas de armazenamento em
nuvem para realizar recomendações e quais técnicas e critérios são utilizados na
geração destas recomendações.
Realizar um levantamento de características de sistemas de armazenamento
em nuvem para que sejam propostos critérios a serem utilizados pelo modelo na
geração de recomendações. 

Definir os critérios que serão utilizados na geração de recomendações. 

Definir a relevância de cada critério na geração de recomendações.  

Definir o modelo do cálculo de recomendação para a geração de novas recomendações.
Realizar um estudo para avaliar o modelo proposto em um cenário real.

7 http://usto.re/

27

1.4. ESTRUTURA DESTE DOCUMENTO

O modelo proposto neste trabalho tem como objetivo possibilitar a recomendação de
conteúdo em sistemas de armazenamento em nuvem, e para isto, primeiramente, foi executado a
revisão da literatura disponível sobre sistemas de recomendação, sistemas de armazenamento e
computação em nuvem, analisando as propostas disponíveis na literatura. Como complementos
foram analisados os modelos de filtragem de conteúdo utilizados por sistemas de armazenamento em nuvem, que apresentem em suas características alguma semelhança com a proposta
desta pesquisa. Este processo de revisão gerou conteúdo e conhecimento que auxiliaram o
desenvolvimento deste projeto.
Foi realizada uma revisão detalhada da bibliografia referente ao tema desta pesquisa,
os trabalhos relacionados ao trabalho foram encontrados em bibliotecas ou repositórios de
publicações. Todos os trabalhos relacionados ao tema da pesquisa foram armazenados como
resultados das buscas, bem como catalogadas todas as referências utilizadas na dissertação. Com
toda a revisão da literatura já realizada sobre o tema desta pesquisa, em seguida foi modelada a
proposta apresentada neste trabalho.
Na modelagem da proposta foram realizadas atividades de definição do modelo de
recomendação, para isso foram realizadas análises e estudos em trabalhos encontrados na revisão da literatura. Para avaliar a proposta, foi desenvolvido um protótipo de um sistema
de recomendação utilizando o modelo RecCloud, com o objetivo de simular a aplicação
do modelo em um ambiente real de armazenamento em nuvem, para isso foram utilizadas
ferramentas de apoio ao desenvolvimento, tais como Eclipse (THE ECLIPSE FOUNDATION - ECLIPSE PROJECTS. DISPONíVEL, 2013), com auxílio do Java Development
Kit (JDK) da linguagem de programação Java (JAVA PLATFORM, STANDARD EDITION
<TTP://WWW.ORACLE.COM/TECHNETWORK/JAVA>, 2013). O protótipo foi desenvolvido
como parte integrante do sistema de recomendação baseado em conteúdo do sistema de armazenamento em nuvem Ustore 8 . O desenvolvimento do protótipo possibilitou a coleta de resultados,
e para isto alguns dados sobre o cenário de execução foram simulados.

1.4

Estrutura deste Documento

Neste capítulo foi apresentada uma breve introdução sobre esta pesquisa, foram mostrados problemas que justificam e motivam a execução de tal pesquisa, bem como apresentado os
objetivos da mesma. O resto deste trabalho está dividido nos seguintes capítulos:
Capítulo 2 apresenta a Fundamentação Teórica acerca da pesquisa, recursos que contribuíram para este trabalho e os trabalhos relacionados.
Capítulo 3 apresenta o modelo RecCloud como desenvolvimento desta pesquisa e os
detalhes da implementação.
Capítulo 4 apresenta a avaliação do modelo proposto e os resultados obtidos.
Capítulo 5 apresenta a conclusão da pesquisa apontando possíveis trabalhos futuros.
8 http://usto.re/

29

2
Fundamentação teórica e Trabalhos Relacionados
Neste capítulo serão apresentados os conceitos de computação em nuvem, sistemas de
armazenamento em nuvem, sistemas de recomendação e suas principais técnicas, conceitos-chave
desta dissertação, bem como alguns trabalhos relacionados ao tema desta pesquisa.

2.1

Computação em Nuvem

O National Institute of Standards and Technology (NIST) define computação em nuvem
como um modelo que permite que um conjunto de recursos computacionais possam ser fornecidos
sob demanda de forma a permitir que os mesmos sejam fornecidos e liberados rapidamente com
o mínimo de esforço de gestão ou interação do fornecedor MELL; GRANCE (2009). Vaquero et
al.VAQUERO et al. (2008) define computação em nuvem como um grande conjunto de recursos
virtualizados (hardware, plataformas de desenvolvimento e/ou serviços) facilmente usáveis e
acessíveis. A arquitetura da computação nas nuvens é comumente representada em camadas:
Software como serviço, Plataforma como Serviço e Infraestrutura como serviço. Nesse modelo
cada camada está construída sobre os serviços oferecidos pela camada de baixo LENK et al.
(2009), conforme apresentado na Figura 2.1. 

Infrastructure-as-a-Service (IAAS): É o fornecimento de recursos computacionais
como: capacidade de processamento, armazenamento e conectividade. Tomando
armazenamento como um exemplo, quando o usuário usa um serviço de armazenamento em computação em nuvem, ele somente paga a parte que foi efetivamente
consumida sem comprar nenhum disco rígido ou até mesmo sem nem conhecer a
localização dos seus dados armazenados. Um exemplo de IaaS é o Amazon Web
Services (Amazon AWS)1 , principalmente, através do Amazon Elastic Compute
Cloud (Amazon EC2) 2 ;

1 http://aws.amazon.com/

Acessado em: 16/09/2013
Acessado em: 16/09/2013

2 http://aws.amazon.com/ec2/

30

CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA E TRABALHOS RELACIONADOS

Figura 2.1: Arquitetura em camadas para computação em nuvem MACHADO (2013)  

paas! (paas!): Fornece a infraestrutura e dá suporte a um conjunto de interfaces de
programação para aplicações em nuvem. É o meio entre o hardware e as aplicações.
Um bom exemplo de PaaS é a plataforma de serviços do Microsoft Azure 3 ;
Software-as-a-Service (SAAS): Em SaaS o objetivo é substituir as aplicações que
rodam nos computadores. Ao invés de comprar o software por um preço relativamente
alto, o usuário paga pelo que é usado do SaaS, o que pode gerar economia, observando
que o usuário só pagará pelo que usar. Um dos pincipais problemas é a baixa taxa de
transmissão de dados na rede em determinadas localidades o que é fatal para algumas
aplicações, como sistemas de tempo real. Um exemplo muito conhecido de SaaS é o
Dropbox 4 ;

A computação em nuvem traz três novos aspectos em Hardware VOGELS (2008):
a) A ilusão de recursos computacionais infinitos disponíveis sob demanda, eliminando
assim a necessidade dos usuários planejarem muito à frente para provisionamento de
recursos;
b) A eliminação de um compromisso antecipado por parte dos usuários da nuvem,
permitindo que as empresas comecem pequeno e aumentem os recursos de hardware
apenas quando há um aumento de suas necessidades;
3 http://www.windowsazure.com/
4 http://www.dropbox.com

Acessado em: 16/09/2013
Acessado em: 18/09/2013

31

2.1. COMPUTAÇÃO EM NUVEM
c) A capacidade de pagar somente pelo que foi usado dos recursos computacionais (por
exemplo, os processadores por hora e armazenamento por dia), e liberar recursos
contratados facilmente quando não são mais necessários;

A computação em nuvem é composta por Software e Hardware, do ponto de vista de
implementação, a computação em nuvem se destaca em 4 (quatro) vertentes:    

Nuvem Privada: oferece serviços para a própria organização, sendo operada e
utilizada apenas pela mesma.
Nuvem Comunitária: baseia-se em um ambiente de computação em nuvem compartilhado entre organizações com interesses em comum.
Nuvem Pública: é um modelo que disponibiliza ambientes para o público em
geral e são normalmente comercializadas por corporações com grande poder de
armazenamento e processamento.
Nuvem Híbrida: basea-se na composição entre dois ou mais ambientes de estruturas
distintas, nuvem privada e nuvem pública, por exemplo, gerando uma única nuvem,
porém a conexão entre essas é feita a partir de tecnologias proprietárias.

De acordo com Mell e Grance (2009) MELL; GRANCE (2009), computação em nuvem
possui algumas características que se destacam, são elas:     

Serviço sob demanda: o provimento automatizado de funcionalidades computacionais, não necessitando de intervenção humana com o provedor do serviço;
Amplo acesso a serviços: permite a disponibilização de recursos através da rede,
habilitando o acesso a clientes de diferentes e diversos dispositivos que podem ser
computadores, smartphones, dentre outros;
Multitenância: permite o provimento de serviços a múltiplos usuários, e tais serviços
podem ser alocados dinamicamente de acordo com a demanda;
Elasticidade: correspondente à escalabilidade. Oferece ao usuário a sensação de ter
os recursos disponíveis de forma ilimitada e a qualquer instante;
Tarifação: segue o conceito pay-as-you-go, ou seja, o usuário paga somente pelo
que for usado.

Dentre os principais desafios da computação em nuvem, destacam-se os desafios de
prover segurança e a instável conexão de Internet de lugares geograficamente remotos. A
segurança em ambientes em nuvem é constantemente contestada e se torna tema frequente de
discursos científicos, questionando sempre sobre a segurança e o sigilo de dados armazenados

32

CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA E TRABALHOS RELACIONADOS

principalmente em nuvens públicas. Locais geograficamente remotos apresentam baixas taxas
de transferências de dados pela Internet, impossibilitando o uso eficiente de serviços em nuvem,
em contraste de grandes centros com altas taxas de conexão com a Internet, possibilitando o uso
de serviços em nuvem em sua total capacidade.

2.1.1

Armazenamento de Dados em Nuvem

Na Seção anterior, apresentamos que a utilização da computação em nuvens permite que
os usuários possam alocar recursos dinamicamente, de acordo com sua necessidade. Entre esses
recursos está o de armazenamento, o qual provê recursos e serviços de armazenamento baseados
em servidores remotos que utilizam os princípios da computação em nuvem ZENG et al. (2009).
Armazenamento em nuvem tem duas características básicas: a primeira trata da infraestrutura da
nuvem, a qual baseia-se em clusters de servidores baratos; a segunda tem o objetivo de, através
dos clusters de servidores, armazenamento distribuído e redundância de dados, fazer múltiplas
cópias dos dados armazenados para alcançar dois requisitos: alta escalabilidade e alta usabilidade.
A alta escalabilidade significa que o armazenamento em nuvem pode ser dimensionado para um
grande aglomerado com centenas de nós ou peers de processamento. Alta usabilidade significa
que o armazenamento em nuvem pode tolerar falhas de nós e que estas falhas não afetam todo o
sistema DENG et al. (2010).
Com a popularização da computação em nuvem, cresceu o número de sistemas utilizados
para armazenamento em nuvem. O serviço oferecido por estes sistemas baseiam-se no software
que é executado em um cluster de servidores, os quais armazenam em seus discos rígidos os
arquivos dos clientes. Normalmente, cada cliente possui um processo que controla a transferência
de arquivos entre a máquina do usuário e os servidores na nuvem. Este processo também tem a
função de se certificar que os dados enviados sejam espalhados por outros servidores no cluster
e manter a sincronia dos dados na máquina do cliente e os dados armazenados, ou seja, novos
dados gerados na máquina do cliente deverão ser salvos na nuvem e, caso os dados locais sejam
perdidos, recuperá-los MACHADO (2013).
Com a expansão do mercado e das tecnologias em nuvem surgiram diversos sistemas
de armazenamento de dados em nuvem, como, por exemplo, DropBox5 , Box6 , Mozy Review7 ,
JustCloud Review8 e Ustore9 , estes são alguns dentre os diversos sistemas de armazenamento
em nuvem existentes.
Os sistemas de armazenamento em nuvem se mostram bastantes atrativos aos usuários,
por fornecerem as opções de acesso, recuperação e armazenamento de arquivos de qualquer
lugar e a qualquer hora. Desta forma, os usuários desses serviços podem armazenar arquivos em
5 https://www.dropbox.com/

Acessado em: 18/09/2013
Acessado em: 18/09/2013
7 http://www.mozy.com/ Acessado em: 18/09/2013
8 http://www.justcloud.com/ Acessado em: 18/09/2013
9 http://usto.re/ Acessado em: 18/09/2013
6 https://www.box.com/

33

2.2. SISTEMAS DE RECOMENDAÇÃO

diversos formatos e tamanhos (.pdf, .doc, HTML, XML, RTF, arquivos compactados, imagens,
arquivos de áudio e diversos outros formatos de arquivos), alguns desses serviços limitam o
tamanho máximo de um único arquivo que pode ser armazenado, normalmente esta limitação
acontece em sistemas públicos. Os sistemas de armazenamento em nuvem, em sua maioria
baseiam-se nos princípios de pay-as-you-go, ou seja, o usuário paga pelo espaço que utilizar no
sistema.
As vantagens e atrativos apresentados por este tipo de sistemas atraem cada vez mais
usuários, o que acaba contribuindo para o crescimento da massa de dados na nuvem. O que torna
a atividade de filtragem de conteúdo considerado relevante, complexa e trabalhosa, fazendo com
que usuários demandem mais tempo na busca por conteúdo de seu interesse. Observando este
cenário é possível afirmar que a utilização de mecanismos de recomendação em sistemas de
armazenamento em nuvem torna-se imprescindível, devido ao crescimento constante no volume
de dados nesses sistemas.
O sistema de armazenamento em nuvem Ustore utilizado como ambiente de avaliação da
proposta desta pesquisa pode ser classificado como PaaS (Plataforma como um serviço). Por
ser um software que oferece ao usuário um serviço para armazenamento e backup de dados em
nuvem privada ou pública de forma mais barata por meio da utilização de recursos ociosos já
existentes nas estações de trabalho ou servidores SILVA A. MACHADO (2013).

2.2

Sistemas de Recomendação

(SR) são softwares e técnicas que fornecem sugestões de itens que podem ser úteis ao
usuário. As sugestões apresentadas têm como objetivo apoiar os seus utilizadores em vários
processos de tomada de decisão, tais como que produto comprar, qual música ouvir, ou que
notícia ler. Sistemas de recomendação provaram ser, meios valiosos para os usuários on-line
para lidar com a sobrecarga de informação e tornaram-se uma das ferramentas mais poderosas
e populares do comércio eletrônico. Correspondentemente, várias técnicas para a geração de
recomendação foram propostas durante a última década RICCI et al. (2011).
Os mecanismos de recomendação tentam automatizar a filtragem de dados buscados por
um item a partir dos dados desse mesmo usuário ou de outros similares que o sistema já tenha
incorporado. Esses dados costumam ser: visitas a determinadas páginas, dados geográficos, sexo,
preferências, entre outros. Devido a essa propriedade, mecanismos de recomendação têm sido
muito utilizados por empresas para tentar conhecer as preferências de seus consumidores, assim
podendo encontrar sempre a melhor sugestão para um determinado cliente ADOMAVICIUS;
TUZHILIN (2005) CHAKOO; GUPTA; HIREMATH (2008).
Um sistema de recomendação normalmente se concentra em um tipo específico de item
e usuário, por exemplo artigos acadêmicos para professores e, consequentemente, a sua técnica
de recomendação usada para fazer as recomendações, são todas personalizadas para fornecer
informações úteis e eficazes para um tipo específico de item e usuário RICCI et al. (2011).

34

CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA E TRABALHOS RELACIONADOS

Uma recomendação pode se basear nas preferências de quem a faz e pode ser dirigida a
um indivíduo específico, ou para um público maior. Para a pessoa que recebe a recomendação,
ela funciona como um filtro ou uma visão particular de um universo de possibilidades geralmente
inacessível. Ela pode levar em consideração também a preferência de quem está à procura de
sugestões e não apenas de quem a faz. É possível até mesmo fazer recomendação baseada nas
opiniões de outras pessoas. Alguém que não é admirador do gênero Rock pode recomendar discos
baseado no que seus amigos que apreciem tal estilo costumam ouvir. Ainda, a recomendação
pode incluir explicações sobre como ela foi gerada para permitir que o seu recebedor a avalie
SAMPAIO (2006) .
A Figura 2.2 ilustra o modelo geral para o processo de recomendação apresentado por
Terveen et al. TERVEEN; HILL (2001). Esta Figura será útil para entendermos o funcionamento
e a utilização dos sistemas de recomendação.

Figura 2.2: Modelo do Processo de Recomendação.

Os elementos envolvidos no processo são:    

Alvo da recomendação: principal ator do processo e destinatário da recomendação.
O usuário pode apenas receber as sugestões ou pode fornecer também suas opiniões
sobre os itens da base de informação, gerando conteúdo para novas recomendações;
Base de informação: local onde se encontram todas as escolhas e informações de
interesse do usuário;
Provedor de Recomendação: agente que seleciona e recomenda os itens da base
de informação que têm maior similaridade com as preferências do usuário. Para
identificar quais são esses itens, o provedor da recomendação pode se basear nas
preferências informadas pelo próprio usuário, nas preferências de outras pessoas e/ou
no conteúdo dos itens;
Provedores de preferência: todo processo de recomendação está baseado em indicadores humanos de preferência. Assim, os provedores de preferência podem ser um

35

2.2. SISTEMAS DE RECOMENDAÇÃO
conjunto de pessoas ou um único indivíduo cujas opiniões podem ser utilizadas pelo
provedor de recomendações para gerar as sugestões;

2.2.1

Tarefas de um Sistema de Recomendação

É importante entendermos quais são as principais tarefas realizadas por sistemas de
recomendação. As tarefas de um SR dizem respeito à sua comunicação com o usuário e a
satisfação dos objetivos do usuário ao utilizá-lo SAMPAIO (2006).
A seguir descrevemos algumas das principais atividades realizadas por sistemas de
recomendações juntamente com exemplos em sistemas reais. 

Mostrar as opiniões dos usuários do sistema acerca de um item de informação:
Sistemas de informação on-line possibilitam que usuários forneçam suas opiniões
a respeito de: produtos de consumo, artigos científicos, negociadores de leilão e
etc. Essas opiniões tornam-se visíveis a outros usuários do sistema, permitindo-lhes
embasar a sua decisão nas opiniões de outras pessoas da comunidade. A indicação
de preferência é geralmente feita através de uma nota que o usuário atribui a um
item podendo também anexar uma descrição textual de seu ponto de vista SAMPAIO
(2006). Na Figura 2.3 é apresentado um exemplo de como a indicação de preferência
é feita pelo usuário;

Figura 2.3: Opiniões dos usuários do site Netshoes sobre um item da loja NETSHOES.
DISPONíVEL EM: <HTTP://WWW.NETSHOES.COM.BR/> (2013) 

Mostrar os itens mais comumente acessados da base: Essa é uma das tarefas
mais comumente presentes em sistemas de recomendação. É comum em sites de
comércio eletrônico haver uma lista de itens mais vendidos ou mais populares. Essa
característica apoia-se no fato de que as pessoas frequentemente procuram saber a
opinião da maioria no momento de tomar uma decisão SAMPAIO (2006). Na Figura
2.4 apresentamos um exemplo de livros mais vendidos no site Submarino;

36

CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA E TRABALHOS RELACIONADOS

Figura 2.4: Lista dos livros mais vendidos do site Submarino SUBMARINO.
DISPONíVEL EM: <HTTP://WWW.SUBMARINO.COM.BR/> (2013)  

Mostrar uma lista de itens relevantes para um usuário com base no contexto
visualizado por ele em dado momento: Atualmente vários sites de comércio eletrônico como por exemplo, Mercado Livre10 , Amazon11 e Netshoes12 , são capazes de
identificar os itens nos quais o usuário demonstra interesse ao longo de uma sessão
de uso do sistema e, com base nisto, selecionar outros itens que podem ser relevantes
para ele. Geralmente, os itens que o sistema assume como sendo do interesse do
usuário são os que os usuários procuram, visualizam ou compram SAMPAIO (2006).
A Figura 2.5 mostra um exemplo em que um sistema fornece recomendações de
outros discos, DVDs e livros que podem interessar a um usuário que está procurando
por um determinado álbum;

Mostrar ao usuário uma lista de itens interessantes levando em consideração
o seu perfil: Neste caso, o sistema de recomendação é capaz de manter um perfil
contendo os interesses demonstrados pelo usuário no decorrer dos uso que ele fez
do sistema. Com essa característica, o sistema é capaz de fornecer um alto grau
de personalização nas recomendações feitas, apresentando ao usuário uma visão
bastante particular da base de informações. A Figura 2.6 mostra a lista de filmes
sugeridos a partir do filme As Good As It Gets;

10 http://www.mercadolivre.com.br/

Acesso em 21/01/2014
Acesso em 21/01/2014
12 http://www.netshoes.com.br/Acesso em 21/01/2014
11 http://www.amazon.com.br/

37

2.3. TÉCNICAS DE SISTEMAS DE RECOMENDAÇÃO

Figura 2.5: Exemplo de uso da Amazon.com em que o sistema sugere outros produtos
relevantes para o usuário interessado no disco Kind Of Blue SAMPAIO (2006)

Figura 2.6: Recomendação gerada pelo sistema do IMDB a partir do filme As Good As It
Gets SAMPAIO (2006)

2.3

Técnicas de Sistemas de Recomendação

O desenvolvimento de sistemas de recomendação é um esforço multidisciplinar, que envolve especialistas de diversas áreas, como a inteligência artificial, interação Humano-Computador,
mineração de dados, estatística, sistemas de apoio à decisão e marketing RICCI et al. (2011).

38

CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA E TRABALHOS RELACIONADOS

Com o objetivo de implementar a sua função principal, identificando os itens similares
aos interesses do usuário, um sistema de recomendação deve prever se vale a pena recomendar
um item. O sistema deve ser capaz de prever a utilidade dos itens recomendados, ou, pelo menos,
comparar a utilidade de alguns itens, e então decidir quais itens recomendar RICCI et al. (2011).
As duas técnicas de recomendação mais utilizadas e destacadas na literatura são sistemas
de recomendação por filtragem colaborativa e sistemas de recomendação baseado em conteúdo
SU; KHOSHGOFTAAR (2009). Na prática essas duas técnicas normalmente são usadas combinadas com outras técnicas de recomendação ADOMAVICIUS; TUZHILIN (2005) BURKE
(2002) PALAU et al. (2004).

2.3.1

Sistemas de Recomendação por Filtragem Colaborativa

A abordagem de recomendação por filtragem colaborativa foi proposta inicialmente para
suprir as deficiências da abordagem baseada em conteúdo. Com o passar dos anos, conquistou
tamanha aceitação que hoje é provavelmente a técnica mais amplamente conhecida, implementada e utilizada para sistemas de recomendação ANSARI; ESSEGAIER; KOHLI (2000)
HERLOCKER (2000) RICCI et al. (2011).
Na abordagem colaborativa, em contraste com a recomendação baseada em conteúdo,
a compreensão ou conhecimento do conteúdo dos itens é totalmente prescindível. Ao invés
de buscar itens disponíveis com conteúdos similares aos previamente avaliados positivamente
pelo usuário para indicá-los, ela se apoia inteiramente na similaridade entre os usuários do
sistema para o processo de sugestão. Partindo do princípio de que as melhores recomendações
para um indivíduo são aquelas feitas por pessoas com preferências similares às dele, o sistema
identifica estas pessoas para sugerir itens que as mesmas tenham aprovado e ainda não tenham
sido consumidos pelo indivíduo SAMPAIO (2006).
Dentro da categoria de mecanismos de recomedação colaborativa, existem ainda duas
outras subtécnicas: Baseado em Modelo e Baseado em Memória ADOMAVICIUS; TUZHILIN
(2005) BURKE (2002).  

Filtro Colaborativo Baseado em Modelo: O objetivo desta técnica é de fazer predições de agrupamento de usuários, criando modelos, para realizar as recomendações.
Para criar os agrupamentos, utilizam-se técnicas como redes neurais;
Filtro Colaborativo Baseado em Memória: A técnica Baseada em Memória é um
mecanismo que gera recomendações a partir de avaliações anteriores dadas pelos
usuários e outros dados do sistema. Para isso, utiliza-se algoritmos de correlação
como a correlação de cossenos;

Normalmente estas duas técnicas se complementam na implementação de sistemas de
recomendação, para situações onde agrupamentos são viáveis, utiliza-se a técnica baseada em

39

2.3. TÉCNICAS DE SISTEMAS DE RECOMENDAÇÃO

modelo. Quando agrupamentos não são viáveis, utiliza-se a técnica baseada em memória VIEIRA
(2013).
De acordo com Sampaio (2006) SAMPAIO (2006), o processo de recomendação por
filtragem colaborativa pode ser definido em três etapas, explicadas a seguir:   

Coleta de dados: nesta etapa é coletado as preferências do usuário para a definição
do seu perfil. As preferências podem ser obtidas tanto de forma explícita como
implícita. Na primeira, o sistema espera do usuário avaliações objetivas e diretas
dos itens. São dados fáceis para se trabalhar, entretanto a desvantagem deste tipo de
coleta é que a responsabilidade fica na mão do usuário, que pode não querer dispor do
seu tempo para avaliar os itens. Na segunda forma, o sistema aprende sobre o usuário
a partir das suas ações, do seu comportamento. Por exemplo, o acesso voluntário
de um arquivo pode ser visto como uma aprovação. Esta forma não depende da boa
vontade do usuário, entretanto oferece dados difíceis para se trabalhar e por vezes
esbarra na barreira da privacidade;
Formação de vizinhança: o objetivo desta etapa é identificar os usuários mais
similares ao usuário alvo, baseando-se nas suas preferências em comum. Este grupo
de usuários recebe o nome de vizinhança;
Recomendação: nesta etapa a recomendação é realizada com base na vizinhança do
usuário, o qual receberá como sugestões os itens mais bem avaliados pela mesma;

De acordo com McLaughlin e Herlocker (2004) MCLAUGHLIN; HERLOCKER (2004)
a abordagem por filtragem colaborativa é simples e eficiente na geração de recomendações
personalizadas, e pode ser aplicada em diversos domínios, e perfeitamente alinhada com a
definição da evolução da Internet.
Existem desvantagens em utilizar o Filtro Colaborativo. Um dos principais problemas é
o do novo item ou novo usuário, em que um item pode ter poucas avaliações ou um usuário pode
ter poucos itens que gosta ADOMAVICIUS; TUZHILIN (2005). Outra questão ocorre devido à
diversidade humana é a ovelha negra, em que os usuários são iguais em alguns aspectos, mas
não necessariamente querem sempre o mesmo item BURKE (2002).
Na utilização da técnica de recomendação por filtragem colaborativa em sistemas de
armazenamento em nuvem, o principal problema pode ser considerado o do novo item, que
pode gerar reflexos negativos nas recomendações. Pelo fato que em sistemas de armazenamento
sempre são adicionados novos arquivos que podem ser relevantes ao usuário, porém por ser
um novo item no sistema, este pode ter poucas ou nenhuma avaliação. Este cenário motivou a
utilização da técnica de recomendação baseada em conteúdo para compor o modelo proposto
nesta pesquisa.

40

2.3.2

CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA E TRABALHOS RELACIONADOS

Sistemas de Recomendação Baseados em Conteúdo

Esta categoria de sistemas recomenda ao usuário itens semelhantes àqueles em que ele
demonstrou interesse no passado. Para tanto, o sistema analisa as descrições dos conteúdos dos
itens avaliados pelo usuário para montar o seu perfil, o qual é utilizado para filtrar os demais
itens da base BLANCO-FERNANDEZ et al. (2008) PAZZANI; BILLSUS (1997) RICCI et al.
(2011). Esse conteúdo no qual ele se baseia são elementos explícitos como nome, descrição, tags,
conteúdo, categorização ou rating do item a ser recomendado VIEIRA (2013). Os resultados são
o julgamento da relevância daqueles itens para o usuário, e a consequente recomendação ou não
SAMPAIO (2006).
Uma das vantagem de implantar o Filtro Baseado em Conteúdo é que a quantidade de
usuários no sistemas não interfere na eficácia do SR, já que se baseia somente no histórico do
que o usuário já acessou. Em contrapartida, um sistema assim precisa de itens bem descritos,
com informação suficiente para categorizá-los STORMER H.; WERRO; RISCH (2006). Outro
problema encontrado nesse tipo de recomendação é a sugestão de itens sempre muito parecidos,
limitando os usuários de conhecer itens diferentes VIEIRA (2013).
O melhor uso do Filtro Baseado em Conteúdo descrito até agora se aplica em sistemas
com poucos usuários e muita informação sobre os itens. Quando um usuário é novo em
um sistema, o Filtro Baseado em Conteúdo também possui muita utilidade, pois não temos
muita informação sobre aquele novo usuário e outras técnicas como o Filtro Colaborativo, que
mostremos anteriormente, são pouco eficientes quando há pouca informação sobre o usuário
ADOMAVICIUS; TUZHILIN (2005) BURKE (2002).
O modelo proposto nesta pesquisa utiliza a técnica de recomendação por filtragem
baseada em conteúdo associada às características da nuvem. Está técnica foi a que mais se
encaixou no cenário de aplicação desta proposta, onde sistemas de armazenamento em nuvem
nem sempre contém uma grande quantidade de usuários, e o sistema necessita recomendar
arquivos a partir das informações de apenas um único usuário. Outro ponto que motivou
a escolha desta técnica foram os itens, que na maioria das vezes, são bem descritos nestes
ambientes, a partir do conteúdo dos mesmos. Além destes aspectos, a partir desta proposta
pode-se amenizar um dos principais problemas desta técnica, ponderando os critérios propostos
evitando assim a recomendação de itens muitos similares e não ocultando novos conteúdos ao
usuário.

2.4

Trabalhos Relacionados

Nesta seção, serão analisados os trabalhos relacionados com sistemas de recomendação
baseados em conteúdo, e demonstra como os principais sistemas de recomendação utilizam as
características da nuvem para prover recomendações. Os trabalhos selecionados são os que mais
se aproximam da proposta desta pesquisa.

41

2.4.1

2.4. TRABALHOS RELACIONADOS

Sistemas de Recomendação de Arquivos

Sistemas de recomendação de arquivos são amplamente utilizados em bibliotecas digitais
e ambientes de ensino e pesquisa. Na implementação destes sistemas são utilizadas as mais
variadas técnicas de recomendação, como, por exemplo, recomendações baseadas em conteúdo,
onde os arquivos são recomendados de acordo com a similaridade entre o arquivo e as preferências
do alvo da recomendação. Outra forma utilizada na recomendação de arquivos é a recomendação
por filtragem colaborativa, recomendado arquivos a usuários pela similaridade entre os próprios
usuários. A seguir, são apresentados alguns trabalhos encontrados na literatura que apresentam
propostas de sistemas de recomendação de arquivos.
JIANG et al. (2012) apresenta um sistemas de recomendação de artigos acadêmicos
utilizando a técnicas de recomendação baseada em conteúdo. A proposta tem como objetivo
recomendar artigos científicos que tenham o conteúdo do seu resumo similar ao conteúdo de
artigos que o usuário tenha demostrado preferência. A preferência do usuário é medida de acordo
com os artigos que ele realizou a leitura. Neste caso, se o usuário leu um determinado artigo,
o sistema entende que este artigo representa as suas preferências. Para calcular a similaridade
entre o artigo que representa às preferências do usuário e os artigos candidatos à recomendação,
é utilizada a técnica de similaridade do cosseno, esta abordagem é amplamente utilizada em
sistemas de recomendação para calcular a similaridade entre itens.
O trabalho de JIANG et al. (2012), se assemelha com a proposta desta pesquisa, por
propor um sistema de recomendação baseado em conteúdo, utilizando a técnica de similaridade
do cosseno, e também propõe uma contribuição relevante em sua avaliação, que é a utilização da
técnica NDCG, técnica que é utilizada para avaliar este tipo de sistema. O modelo RecCloud se
diferencia desta abordagem, por propor a utilização de características do ambiente em nuvem
associadas à técnica de recomendação baseada em conteúdo.
TIAN; JING (2013) propõe um sistema de recomendação híbrido (baseado em conteúdo
e que utilize características da técnica de recomendação por filtragem colaborativa). Este trabalho
tem como objetivo amenizar um dos principais problemas da técnica CB, que é a recomendação
de conteúdo sempre muito similar às preferências do usuário, o que pode ocultar novos conteúdos.
Outro problema que esta proposta objetiva amenizar, é a recomendação sempre de artigos muito
antigos, por serem artigos bem citados e referenciados, ocultando novos artigos que podem trazer
contribuições relevantes aos usuários. Na avaliação da proposta é utilizada a métrica Recall. Este
trabalho se diferencia da proposta desta pesquisa por apresentar um sistema de recomendação
híbrido e por não utilizar características do ambiente em nuvem na geração de recomendações.

2.4.2

Sistemas de Recomendação em Nuvem

Existem alguns trabalhos na literatura que discutem e apresentam sistemas de recomendação em nuvem. Nesta seção, serão apresentados alguns SRs destacando o modelo de
recomendação utilizado, objetivando avaliar as contribuições e diferenciais desta pesquisa.

42

CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA E TRABALHOS RELACIONADOS
a) LEE; LEE; LEE (2010), apresentam um sistema de recomendação de canais Televisão
Digital (DTV) em um ambiente em nuvem. Estes propõem a análise, a utilização dos
padrões de visualizações do usuário no ambiente para personalizar a recomendação
de canais e o uso eficiente dos recursos computacionais do contexto. As recomendações desta proposta são geradas por meio da técnica de recomendação baseada
em conteúdo, onde o sistema analisa as interações passadas do usuário no ambiente,
tornando essas as preferências do usuário. Nesse trabalho, são utilizadas tecnologias
de computação em nuvem para realizar a análise de padrões de visualizações dos
consumidores, com o objetivo de personalizar a recomendação de canais.
A proposta de LEE; LEE; LEE (2010), se assemelha a proposta desta pesquisa por
apresentar um modelo de recomendação em um sistema em nuvem e por ter como
objetivo prover o uso eficiente dos recursos computacionais da nuvem. O sistema de
recomendação para canais de TV Digital poderia ter melhorias significativas fazendo
uso dos critérios propostos nesta pesquisa, como o critério disponibilidade, desta
forma os canais recomendados seriam os canais que apresentassem as melhores
taxas de disponibilidade podendo utilizar como parâmetro de acesso a localidade
e a conexão do usuário. Outro ponto que poderia ser agregado à proposta seria
disponibilizar ao próprio usuário a opção de solicitar suas recomendações para as
preferências que ele escolhesse e não apenas receber recomendações de acordo com
suas interações no sistema. Diante destas observações, observamos a importância
de utilizar a disponibilidade dos arquivos na nuvem e a conexão do usuário com o
sistema, para proporcionar a melhor utilização dos recursos computacionais pelo
usuário.
b) Outro trabalho que pode ser mencionado é o de LAI et al. (2011) que apresentam um
sistema de recomendação de programas de televisão (TV) baseado em computação
em nuvem e um framework map-reduce. Esta proposta de arquitetura tem como
objetivo ofertar um backend escalável para suportar a demanda de processamento de
dados em larga escala para um sistema de recomendação. No que tange os usuários,
LAI et al. (2011), os agrupam de acordo com suas preferências, cada programa de
TV recebe um peso, que é atribuído de acordo com o período de tempo que o usuário
o assistiu. A popularidade de um programa é indicada pelo seu peso, os programas
populares em um grupo de usuários, são recomendados para usuários de outros
grupos que tenham semelhanças de preferências entre si. Nesta pesquisa os autores
propõe a utilização de técnicas de computação em nuvem para lidar com grandes
conjuntos de dados, devido ao seu poder computacional e de estrutura escalável.
O trabalho de LAI et al. (2011), se torna interessante para está pesquisa por propor
a utilização de recursos de computação em nuvem para filtrar grandes conjuntos de
dados, com o objetivo de recomendar canais de TV. Uma característica interessante

43

2.4. TRABALHOS RELACIONADOS
desta proposta é a relevância dada a cada canal candidato a ser recomendado. A relevância é atribuída de acordo com a quantidade de tempo que o usuário permaneceu
assistindo um canal, ou seja, o canal será mais relevante que os demais se o usuário
tiver passado um período maior de tempo assistindo-o. Diante desta observação, propomos como critério de relevância para os artigos candidatos a serem recomendados,
a quantidade de downloads realizados de um arquivo na nuvem, assim sendo, quanto
mais downloads um arquivo tiver mais relevante socialmente ele será na nuvem.
c) Outro trabalho relacionado é o de KONG; ZHAI (2012) que apresentam um sistema
de recomendação de serviços em nuvem, que tem por finalidade recomendar a
usuários da nuvem serviços similares as suas preferências. O sistema é baseado em
confiança e orientado a serviços de computação em nuvem. A ideia básica do SR
proposto é calcular a confiança de serviços em nuvem disponíveis, onde o valor da
confiança é a combinação de confiança direta e a recomendação de confiança por
parte do usuário.
KONG; ZHAI (2012) utiliza a confiança direta com a recomendação de confiança dos
usuários para gerar recomendações de serviços em nuvem, onde o principal objetivo é
recomendar serviços que atendam as necessidades e características do usuário, como,
custo benefício e segurança. A partir da análise desse trabalho, foi observado que o
critério de recomendação de confiança do usuário pode ser utilizado como indicado
de relevância social, desta forma, um arquivo seria relevante se fosse indicado por
vários usuários, como indicação nesta pesquisa propomos a utilização dos downloads
feitos por um usuário. Se um determinado usuário realizar download de um arquivo
em nuvem, então esse arquivo pode ser recomendado como conteúdo relevante. Um
ponto a ser discutido na proposta de KONG; ZHAI (2012), é a utilização de ações
comuns em sistemas em nuvem, como por exemplo, o compartilhamento de arquivos,
que pode ser um indicador de recomendação de segurança, baseando-se na hipótese
que um usuário apenas compartilharia conteúdo relevante e seguro com um contato
seu.
d) JUNG et al. (2013), apresentam a plataforma CloudAdvisor de recomendação em
nuvem. A proposta desta plataforma é recomendar configurações de nuvem de
acordo com as preferências do usuário como orçamento, expectativa de desempenho
e economia de energia para determinada carga de trabalho. Permitindo ainda que o
usuário faça comparação das recomendações recebidas, como qual é o melhor preço
para a carga de serviço desejada. A plataforma tem como objetivo auxiliar o usuário
na escolha dos melhores serviços e proporcionar aos provedores de serviço em nuvem
à oportunidade de adequação as expectativas e preferências dos usuários.
A proposta de JUNG et al. (2013) recomenda serviços a usuários baseando-se em
características fornecidas pelo próprio usuário, como a expectativas de desempenho,

44

CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA E TRABALHOS RELACIONADOS
expectativa de preço e carga de trabalho. A utilização de características de serviços
em nuvem que o usuário tenha utilizado pode ser um critério interessante a ser
adicionado no modelo CloudAdvisor, desta forma, não exigiria que o usuário tivesse
que dedicar certo tempo fornecendo informações para poder receber a recomendação
do serviço em nuvem que melhor se adeque as suas expectativas. O trabalho de JUNG
et al. (2013) motivou está pesquisa a não utilizar o modelo de solicitar características
e informações ao usuário para poder montar o seu perfil de preferências, com o
objetivo de evitar a cansativa e repetitiva tarefa de responder formulários. Como
preferências do usuário, adotamos os arquivos salvos na nuvem pelo próprio usuário,
com a tendência de que se um usuário salva um arquivo em sua conta na nuvem,
isso significa que o conteúdo deste arquivo de certa forma representa uma de suas
preferências.

Existem diversos sistemas de recomendação disponíveis na Internet, e boa parte destes
sistemas estão relacionados à nuvem, seja como parte de sistemas em nuvem ou hospedados
em servidores em nuvem. Muitos deste utilizam dados da nuvem em suas recomendações ou
características da nuvem para gerar recomendações. A proposta desta pesquisa se diferencia
das demais descritas nesta seção por utilizar características da nuvem na geração de suas
recomendações, atribuindo pesos a cada característica. Desta forma, cada critério é parte da
recomendação, que tem como objetivo proporcionar aos usuários a melhor utilização dos recursos
em nuvem disponíveis.

2.4.3

Sistemas de Armazenamento em Nuvem

As maiores empresas da Internet que atuam como fornecedoras de serviços em nuvem
e Amazon14 apostam na tecnologia de sistemas de recomendação, a primeira para
recomendar conteúdo personalizado a seus usuários e a segunda para vender produtos, como
livros e eletrônicos. Por sua vez os serviços de armazenamento em nuvem oferecido por
estas empresas, Google Drive15 e Amazon S316 (Simple Storage Systems), não dispõem desta
tecnologia para auxiliar os usuários na filtragem de conteúdo relevante.
Google13

O Amazon S3 só permite que o usuário realize buscas e consultas, ou seja, ele não
oferece o serviço de recomendação de arquivos. O mesmo acontece com o Google Drive, que
não disponibiliza o serviço de recomendação aos seus usuários. Desta forma, torna-se difícil
e complexa a tarefa de filtragem de conteúdo relevante em meio à imensidão de dados que se
forma nos sistemas de armazenamento em nuvem.
13 https://www.google.com.br,

Acessado em 05/12/2013
Acessado em 05/12/2013
15 https://drive.google.com, Acessado em 05/12/2013
16 http://aws.amazon.com/s3/, último acesso em 05/12/2013
14 http://www.amazon.com/,

45

2.5. CONSIDERAÇÕES FINAIS

Outros sistemas de armazenamento em nuvem como Dropbox17 , SugarSync18 , Wuala19 ,
iCloud20 , ZipCloud21 , não disponibilizam serviços de recomendação de arquivos, o que dificulta
a filtragem de conteúdo. A partir da análise realizada, é perceptível que a maioria dos sistemas não
permite e não oferece o serviço de recomendação de arquivos. Diante deste cenário, propomos
um modelo de recomendação voltado para ambientes de armazenamento em nuvem.

2.5

Considerações Finais

Neste capítulo, foi apresentada uma revisão dos conceitos de sistemas de recomendação,
computação em nuvem e sistemas de armazenamento de dados em nuvem. Além disso, foi
detalhado o processo de um sistema de recomendação, as principais técnicas utilizadas em
SR, suas principais funcionalidades e alguns sistemas de recomendações que são utilizados
atualmente no mercado, assim como, alguns dos principais sistemas de armazenamento de dados
em nuvem.
Ainda neste capítulo, foram apresentados alguns trabalhos relacionados à sistemas de
recomendação em nuvem. A partir da revisão da literatura, foram analisados trabalhos que
apresentam relação com o modelo proposto neste trabalho ou que, de alguma forma, apresentem
contribuições para o desenvolvimento desta pesquisa. Foram realizadas análises minuciosas na
literatura e nos trabalhos relacionados, com o objetivo de elencar as relações entre o modelo
proposto, os modelos já validados e em uso na indústria e na comunidade acadêmica.
Durante o decorrer desta pesquisa, não foram encontrados trabalhos que proponham
um modelo de recomendação que utilize as mesmas características da nuvem propostas neste
trabalho. Desta forma, podemos afirmar que esta proposta é inédita na literatura referente à área
de sistemas de recomendação para ambientes de armazenamento em nuvem.
A pesquisa bibliográfica ocorreu durante os anos de 2012 e 2013, onde foram selecionados trabalhos relacionados ou com características semelhantes a proposta desta pesquisa. As
seleções foram realizadas nas bibliotecas digitais ACM Library22 , IEEE Xplore Digital Library23 ,
Scopus 24 e Science Direct25 , de onde foram extraídos os trabalhos que embasaram o desenvolver
da pesquisa.
Na maioria dos trabalhos analisados, são apresentados modelos e sistemas de recomendação que funcionam em ambientes em nuvem ou que recomendam arquivos e informações
que estão armazenadas em nuvem. Este trabalho se diferencia dos demais por apresentar uma
17 http://www.dropbox.com,

Acessado em 05/12/2013
Acessado em 05/12/2013
19 http://www.wuala.com/, Acessado em 05/12/2013
20 https://www.icloud.com/, Acessado em 05/12/2013
21 http://www.zipcloud.com/, Acessado em 05/12/2013
22 http://dl.acm.org/, último acesso em 08/12/2013
23 http://ieeexplore.ieee.org/, último acesso em 08/12/2013
24 http://www.scopus.com/, último acesso em 08/12/2013
25 http://www.sciencedirect.com/, último acesso em 08/12/2013
18 http://www.sugarsync.com/,

46

CAPÍTULO 2. FUNDAMENTAÇÃO TEÓRICA E TRABALHOS RELACIONADOS

proposta de modelo para recomendação de arquivos em sistemas de armazenamento em nuvem
que, utilize características da nuvem associadas à técnica de recomendação baseada em conteúdo.
No próximo capítulo será apresentado o modelo proposto por este trabalho.

47

3
RecCloud
Durante todo o período de execução deste trabalho, foram realizados estudos e pesquisas
que tiveram como principal finalidade elaborar uma modelo capaz de gerar recomendações de
arquivos para ambientes de armazenamento em nuvem. Para isto, foram realizados estudos
nas bibliografias pertinentes a este tema e os resultados destes estudos serviram para que fosse
possível elaborar o modelo baseado em características da nuvem. Deste modo, este capítulo é
destinado a descrever o modelo proposto nesta pesquisa.

3.1

Proposta

A partir da análise da literatura e dos sistemas de armazenamento em nuvem mais
populares e utilizados atualmente, é notório que esses sistemas não fornecem ao usuário o
serviço de recomendação de arquivos. Na maioria dos sistemas de armazenamento em nuvem, a
filtragem de conteúdo é realizada por sistemas de busca, onde o usuário fornece termos chaves
e o sistema retorna arquivos com o título ou conteúdo similar aos termos apresentados pelo
usuário.
Por outro lado, a enorme quantidade de sistemas de recomendação que rodam em nuvem,
não utilizam características da nuvem na geração de suas recomendações. Esses sistemas
normalmente possuem como objetivo recomendar itens que atendam as preferências dos usuários,
sem considerar requisitos do ambiente. Neste trabalho investiga-se a utilização de características
da nuvem que podem ser usadas no processo de recomendação de arquivos em ambiente de
armazenamento em nuvem.
O modelo proposto nesta pesquisa foi denominado de RecCloud: Um Modelo de Recomendação de Arquivos Para Sistemas de Armazenamento em Nuvem. O processo de recomendação modelado neste trabalho é formado por características da nuvem associadas a técnica de
recomendação baseada em conteúdo.

48

3.2

CAPÍTULO 3. RECCLOUD

O Modelo de Recomendação

O modelo de recomendação proposto é composto por cinco critérios, que foram utilizados
no processo de recomendação. Os critérios propostos foram definidos a partir da observação de
sistemas de armazenamento em nuvem. Os critérios são: Similaridade, Disponibilidade, Taxa de
Download, Tamanho do Arquivo e Popularidade do Arquivo.
A seguir foram detalhados cada critério e o seu respectivo cálculo: 

critério Similaridade: Este critério atende ao requisito referente às preferências do
usuário, neste critério é calculado a similaridade entre o conteúdo de um arquivo
no qual o usuário tenha demostrado preferência e arquivos armazenados em nuvem,
que são candidatos a serem recomendados. Para calcular a similaridade entre os
conteúdos dos arquivos, é proposto a utilização da técnica de similaridade do cosseno,
que retorna um valor entre 0 (zero) e 1 (um) BAEZA-YATES; RIBEIRO-NETO
(1999). Esta abordagem foi proposta por ser bastante utilizada e citada na literatura
para a avaliação de semelhança entre dois itens CHEN; HUANG; HUANG (2009)
LEE; LEE; LEE (2010) YU; ZHOU (2004). O cálculo de similaridade do cosseno é
apresentado pela Equação 3.1:
St = cos(θ ) =

A·B
kAk·kBk


3.1

Na Equação 3.1 é calculada a similaridade entre dois arquivos onde o conteúdo de
cada um é representando por um vetor (vetores A e B), de onde se obtém o produto de
A e B e calcula-se a magnitude dos vetores A e B. Tais magnitudes são multiplicadas
e divididas pelo produto escalar dos vetores A e B. Os arquivos que sejam similares
ao arquivo que represente as preferências do usuário serão ranqueados de acordo
com o seu grau de similaridade, ou seja, quanto maior o score de similaridade do
arquivo, melhor ranqueado ele será em referência aos demais similares a ele. Por
exemplo, caso o SR encontre dois arquivos “A” e “B”, estes similares às preferências
do usuário e com score de similaridade igual a “arquivo A = 0.8” e “arquivo B = 0.5”,
neste cenário o “arquivo A” será melhor ranqueado que o “arquivo B” no critério
similaridade. A similaridade entre o conteúdo dos arquivos a serem recomendados
com um arquivo que o usuário tenha demostrando interesse, torna-se imprescindível
neste modelo de recomendação. Para tanto objetiva atender as preferências dos
usuários em relação à filtragem por conteúdo relevante em meio a uma grande massa
de dados. 

Critério Disponibilidade: Refere-se ao tempo em que um arquivo estará disponível
para o usuário. A disponibilidade, neste modelo, é medida em horas, ou seja a
quantidade de horas em que um arquivo a ser recomendado está disponível na nuvem.

49

3.2. O MODELO DE RECOMENDAÇÃO
Um arquivo só deve ser recomendado ao usuário se o mesmo estiver disponível
e possibilitando o seu download. O critério disponibilidade representa uma das
principais características e anseios quanto à tecnologia de computação em nuvem. A
maioria dos usuários que migram para a nuvem são atraídos pela oferta de altas taxas
de disponibilidade, elasticidade e mobilidade, que torna possível armazenar arquivos
em grande quantidade e que estejam disponíveis e acessíveis a qualquer momento a
partir da conexão com a Internet CARVALHO (2012) MELL; GRANCE (2009). O
cálculo do critério disponibilidade é apresentado na Equação 3.2: 

1
Dp = Dh ·
n


3.2

No cálculo do critério disponibilidade, Dh é a quantidade horas em que um arquivo
está disponível na nuvem, e n representa a quantidade de horas em que um arquivo
pode ficar disponível na nuvem. Caso a nuvem fique online durante todo o dia, n
será igual a 24 (vinte e quatro) horas, a quantidade de horas de disponibilidade é
normalizada em um valor entre 0 (zero) e 1 (um). O exemplo a seguir demonstra como
o critério disponibilidade contribui para a geração de uma recomendação. Considere
que dois arquivos A e B são similares, o arquivo A está disponível na nuvem no
intervalo de tempo 14 às 16 horas, totalizando duas horas de disponibilidade. O
arquivo B está disponível na nuvem de 14 às 18 horas, totalizando quatro horas de
disponibilidade. Desta maneira, o arquivo que será melhor ranqueado é o arquivo B,
por estar disponível na nuvem por um tempo superior que o arquivo A, permitindo o
seu download em um espaço de tempo maior. O objetivo central é diminuir o risco
de o usuário não poder realizar o download e garantir que um arquivo recomendado
esteja sempre acessível ao usuário. 

Critério Taxa de Download: Refere-se à taxa disponível para a realização do download de um arquivo na nuvem. O objetivo é que arquivos que proporcionam melhores
condições para a redução no tempo gasto no download sejam melhor ranqueados
que os demais arquivos. A contribuição deste critério na redução do tempo gasto
no download de um arquivo recomendado é produzida em conjunto com o critério
“Tamanho do Arquivo”, apresentado no próximo item. Por exemplo, no caso de
termos dois arquivos similares às preferências do usuário, onde o arquivo A tem o seu
tamanho igual a 10 (dez) Gigabytes e o arquivo B tem o seu tamanho igual a 2 (dois)
Gigabytes, o arquivo A será melhor ranqueado que o arquivo B, por proporcionar
uma maior economia no tempo gasto em seu download. A taxa de download pode
modificar o ranque de recomendações dependendo do momento em que a recomendação for calculada, principalmente em ambientes onde a taxa de download é oscilante.
Este critério tem valor de 0 (zero) a 3 (três) Megabits por segundo (Mbps), este valor

50

CAPÍTULO 3. RECCLOUD
representa a media global de taxa de downloads apresentada pela Akamai 1 . Este
critério é calculado pela Equação 3.3: 

1
T d = ns ·
n


3.3

Na Equação 3.3 a “Taxa de Download” é representada por T d, onde ns representa à
taxa de download em Mbps, em seguida este valor é normalizado em um valor entre
0 (zero) e 1 (um), onde n representa o valor da media global de taxa de downloads
em Mbps. 

Critério Tamanho do Arquivo: Este critério corresponde ao tamanho do arquivo
candidato a ser recomendado, e tem como objetivo contribuir na tarefa de amenizar
o tempo gasto no download de um arquivo recomendado. Como explicado no item
critério “Taxa de Download”, o critério Tamanho do Arquivo, está diretamente
relacionado com o critério que mensura a taxa de download disponível. O ranque
de recomendação mudará de acordo com a taxa disponível para download, caso a
taxa de download seja baixa, os arquivos com tamanho menores devem ser melhor
ranqueados que seus similares que são maiores. Da mesma forma, quando a taxa de
download é alta, os arquivos com tamanhos maiores devem ser recomendados no
topo do ranking. Exemplificando sobre o ranqueamento deste critério considerando
que, um arquivo A é similar ao arquivo B, o arquivo A tem o tamanho igual a 9
(nove) Gigabytes. O arquivo B tem tamanho igual a 2 (dois) Gigabytes. Desta forma,
o arquivo B será mais bem ranqueado por apresentar melhores condições para a
realização do seu download (menor tamanho), considerando que a taxa de download
seja baixa. O cálculo deste critério é realizado pela Equação 3.4: 

1
S=T·
n


3.4

Na Equação 3.4 o critério “Tamanho do Arquivo” é representado por S. O tamanho
do arquivo é medido em Gigabytes (GB), pelo fato de que boa parte dos sistemas de
armazenamento em nuvem limita o tamanho máximo de um arquivo que pode ser
salvo em nuvem e o espaço disponível para o usuário no sistema em Gigabytes. O
tamanho do arquivo é multiplicado por 1n , para que seja normalizado por um valor
de 0 (zero) a 1 (um), o valor 1 (um) é divido por n que é o tamanho máximo de um
arquivo aceito no sistema de armazenamento em nuvem utilizado para implantação
do modelo. 

Critério Popularidade do Arquivo: Este critério representa a importância social
de um arquivo na nuvem, avaliado por meio da quantidade de downloads que foram

1 http://www.akamai.com/stateoftheinternet/

Acessado em 27/11/2013

51

3.2. O MODELO DE RECOMENDAÇÃO
realizados de um mesmo arquivo. Quanto maior é a quantidade de downloads
realizados de um arquivo, maior será a popularidade desse arquivo na rede, resultando
em um melhor ranqueamento deste arquivo. Um exemplo sobre o ranqueamento
deste critério: um arquivo A é similar ao arquivo B, o arquivo A já teve 10 (dez)
downloads realizados, e o arquivo B já teve 16 (dezesseis) downloads realizados.
Desta forma, o arquivo B será melhor ranqueado, por obter um número maior de
downloads efetuados no sistema de armazenamento em nuvem que o arquivo A. O
cálculo deste critério é representado pela Equação 3.5: 

1
R = Qd ·
n


3.5

Na Equação 3.5 o critério “Popularidade do Arquivo” é representado por R. A cada
download realizado de um determinado arquivo, o contador de downloads desse
arquivo é incrementado em 1 (um). Este valor é medido de 0 (zero) a n, onde n é a
maior quantidade de downloads realizados em um único arquivo no sistema, o valor
de n é obtido na observação do histórico de downloads de arquivos no sistema de
armazenamento em nuvem. No cálculo do critério, a quantidade de downloads de um
arquivo Qd é normalizada, multiplicando Qd por 1n , desta forma o valor resultante
deste critério será entre 0 (zero) e 1 (um).

3.2.1

Pesos dos Critérios

Em um mecanismo de recomendação os critérios devem ser ponderados por pesos, para
compor o score de recomendação, resultando em um ranking com os itens que devem ser
recomendados ao usuário. No modelo proposto nesta pesquisa, foram definidos pesos para cada
critério, com base na relevância do critério na construção do objetivo da proposta do modelo. A
partir da realização de testes de execução no cálculo de recomendação que será apresentado na
subseção 3.2.2, com diferentes pesos, propomos a utilização dos pesos descritos na Tabela 3.1.
Os testes realizados tiveram como objetivo verificar a variação no resultado do score final de
recomendação e quais pesos apresentaria a menor variação no score. Desta forma, os arquivos
recomendados não apresentariam uma grande variação de similaridade com as preferências dos
usuários. Os pesos propostos para cada critério são apresentados na Tabela 3.1.
Tabela 3.1: Pesos dos Critérios

Critério
Similaridade
Disponibilidade
Taxa de Download
Tamanho do Arquivo
Popularidade do Arquivo

Peso
4
2
2
1
1

52

CAPÍTULO 3. RECCLOUD
A seguir detalhamos a ponderação dos pesos para cada critério.    

Similaridade: tem peso 4 (quatro), para garantir que o conteúdo de um arquivo
recomendado ao usuário seja similar as suas preferências. Outro ponto motivador para
o critério similaridade corresponder a 40% do score de recomendação é o objetivo de
amenizar ou solucionar um dos principais problemas da técnica de recomendação
baseada em conteúdo, que é a sugestão de itens sempre muito parecidos, limitando os
usuários de conhecer novos conteúdos RICCI et al. (2011) STORMER H.; WERRO;
RISCH (2006) VIEIRA (2013). Desta forma, o nosso modelo de recomendação
atenderá as preferências do usuário e ao mesmo tempo estará recomendando novos
conteúdos que são relacionados aos conteúdos de preferência do usuário. O critério
Similaridade é medido de 0 (zero) a 1 (um), um arquivo que possua similaridade igual
a 0 (zero) em comparação as preferências do usuário, somente será recomendado
caso ele tenha uma alta taxa de popularidade na rede, e mesmo assim, o arquivo não
será bem ranqueado em relação aos demais que apresentem alguma similaridade com
as preferências do usuário.
Disponibilidade: tem peso 2 (dois), este é um dos critério mais importante do
modelo proposto, por representar o tempo em que um arquivo está disponível na
nuvem, tornando possível o download de um arquivo recomendado. Este critério é
relevânte para a recomendação de arquivos baseada em características da nuvem, por
representar uma das principais características e vantagens da utilização de sistemas
de armazenamento em nuvem. O valor do critério Disponibilidade será de 0 (zero) a
1 (um), um arquivo somente poderá ser recomendado ao usuário, se o mesmo estiver
disponível.
Taxa de Download: tem peso 2 (dois). Este critério terá o seu valor medido de
0 (zero) a 1 (um). Um arquivo que possua uma baixa taxa de download e seu
tamanho seja maior que o tamanho dos demais arquivos similares a ele, o seu score
de recomendação será menor, e consequentemente ele não será tão bem ranqueado
quanto seus similares, porque o seu processo de download demandará mais tempo e
processamento. Um arquivo com baixa taxa de download poderá aparecer no topo do
ranking de recomendação, desde que seu tamanho seja proporcional. Para que um
arquivo na nuvem se torne recomendável, esse critério deve ser maior que 0 (zero),
desta forma será possível realizar o download do arquivo.
Tamanho do Arquivo: possui peso 1 (um). Este critério tem peso inferior aos
demais critérios, por não ser um critério crítico. Assim, um arquivo que tenha o
tamanho igual ao máximo aceito pelo ambiente, poderá ser recomendado se a sua
taxa de download for alta, garantindo bom desempenho no download do arquivo.

53

3.2. O MODELO DE RECOMENDAÇÃO 

3.2.2

Popularidade do Arquivo: é atribuído o peso 1 (um). Este critério tem o seu peso
inferior aos demais critérios, por não ser um critério crítico. Portanto, um arquivo
que não seja popular na nuvem poderá ser recomendado ao usuário, o mesmo ocorre
com os arquivos novos na rede, se o arquivo for bem ranqueado nos outros critérios
do modelo.

Cálculo de Recomendação

Nesta subseção apresentamos o cálculo de recomendação, que consiste na ponderação
dos critérios com os seus pesos. O cálculo das recomendações é representado pela Equação 3.6: 

1
RecScore = (((Dp · ωd) · (T d · ωt) − (Ta · ωa)) · ((S · ωs) + (R · ωr))) ·
n


3.6

No cálculo apresentado, o score de recomendação é igual ao resultado da ponderação dos
critérios por seus respectivos pesos. A partir dos critérios ponderados por seus pesos, o modelo
multiplica o critério Disponibilidade Dp pelo critério Taxa de Download T d, o produto desta
multiplicação é subtraído pelo critério Tamanho do Arquivo Ta, o resultado é multiplicado pelo
critério Similaridade S somado ao critério Popularidade do Arquivo R. Após este processo o 

resultado obtido é normalizado entre 0 (zero) e 1 (um) por 1n , onde n é o valor total que a
primeira parte da equação pode atingir antes da normalização, neste caso n será igual a 20 (vinte).
Desta forma, o score de recomendação será sempre um valor entre 0 (zero) e 1 (um).
O critério Popularidade do Arquivo é somado ao critério Similaridade, com o objetivo
de recomendar arquivos que atendam aos requisitos propostos no modelo e, que arquivos que
sejam mais relevantes na nuvem, sejam melhores ranqueados no ranking de recomendação. O
critério Tamanho do Arquivo penaliza os critérios Disponibilidade e Taxa de Download, com
o objetivo de proporcionar ao usuário melhores condições para a realização do download do
arquivo recomendado. Resultando na diminuição do tempo gasto no download e recomendando
arquivos que tenham maior taxa de disponibilidade na nuvem. Cada arquivo candidato a
recomendação receberá um score, em seguida será criado um ranque de recomendação com os
arquivos ordenados do maior para o menor score, destes, os arquivos que obtiverem os maiores
scores serão recomendados ao usuário.

3.2.3

Exemplo do Cálculo de Recomendação

Nesta subseção, será abordado um exemplo da aplicação do cálculo de recomendação
do modelo apresentado neste capítulo. Na tabela ??, apresentamos um exemplo utilizando um
usuário. Neste cenário, temos o cálculo de 10 (dez) recomendações, com a participação de um
usuário “A”, as preferências do usuário são representadas pelo “arquivo 01”. O sistema calcula
o score de recomendação a partir dos valores de cada critério. São calculadas recomendações
utilizando 10 (dez) arquivos distintos: arquivo 02, arquivo 03, arquivo 04, arquivo 05, arquivo

54

CAPÍTULO 3. RECCLOUD

06, arquivo 07, arquivo 08, arquivo 09, arquivo 10 e arquivo 11. A seguir na Tabela ??, consta o
valor de cada critério utilizado neste exemplo e o resultado do score de recomendação após a
aplicação da Equação 3.6, que calcula as recomendações do modelo RecCloud.
Tabela 3.2: Exemplo do Cálculo de Recomendação do Modelo RecCloud.

Arquivos em Nuvem
Arquivo 02
Arquivo 03
Arquivo 04
Arquivo 05
Arquivo 06
Arquivo 07
Arquivo 08
Arquivo 09
Arquivo 10
Arquivo 11

Dp
1.0
0.9
0.0
0.5
0.4
0.2
0.6
0.9
1.0
1.0

Td
1.0
1.0
0.6
0.2
0.5
0.7
0.9
0.1
1.0
1.0

S
0.5
1.0
0.4
0.2
0.1
0.3
0.3
0.0
1.0
0.0

Sd
1.0
0.9
0.6
0.4
0.0
0.2
0.8
0.0
1.0
1.0

R
1.0
0.6
0.0
0.8
0.4
0.5
0.0
0.7
1.0
1.0

Score
0.8
0.5
0.0
0.0
0.0
0.0
0.2
0.0
0.7
1.0

Na Tabela ??, foram apresentados os valores utilizados neste exemplo e o resultado do
score de recomendação de cada arquivo. A partir da análise dos resultados apresentados, podemos
inferir que, o ranking de recomendações para as preferências do usuário “A”, representado pelo
“Arquivo 01”, seria apresentado da seguinte forma:
Tabela 3.3: Arquivos Recomendados

Critério
Arquivo 11
Arquivo 02
Arquivo 10
Arquivo 03
Arquivo 08

Peso
1
0.8
0.7
0.5
0.2

Na Tabela 3.3, foi apresentada a ordenação em forma decrescente das recomendações
geradas, esta é a ordem dos arquivos em que o usuário “A” receberia como resultado da sua
solicitação por recomendações a partir das preferências apresentadas por ele. Na ordenação
apresentada na Tabela 3.3, são apresentados 5 (cinco) dos 10 (dez) arquivos utilizados no cálculo
de recomendações.
O “Arquivo 04” não foi apresentado na lista de recomendações porque o seu score foi
igual a 0 (zero), porque a sua taxa de disponibilidade é igual a 0 (zero), desta forma o arquivo
não está indisponível na nuvem. Arquivos com score de recomendação igual a 0 (zero), não
devem ser recomendados.
O “Arquivo 05” não foi apresentado na lista de recomendações porque o seu score foi
igual a 0 (zero), justifica-se por sua baixa taxa de download que foi desproporcional ao tamanho
do arquivo.

55

3.3. DETALHES DA IMPLEMENTAÇÃO

O “Arquivo 06” não foi apresentado na lista de recomendações porque o seu score foi
igual a 0 (zero), isso por não possuir similaridade com as preferências do usuário e por apresentar
uma baixa taxa de disponibilidade.
O “Arquivo 07” não foi apresentado na lista de recomendações porque o seu score foi
igual a 0 (zero), por sua baixa taxa de disponibilidade e, pouca similaridade com as preferências
do usuário.
O “Arquivo 09” não foi apresentado na lista de recomendações porque o seu score
foi igual a 0 (zero), por sua baixa taxa de download e, por não possuir similaridade com as
preferências do usuário.

3.2.4

O Processo de Recomendação

Nesta seção, é apresentado o processo de recomendação do modelo proposto e do
modelo baseado puramente em conteúdo. Na Figura 3.1, é apresentado parte do processo de
recomendação do modelo RecCloud, o processo apresentado corresponde ao critério Similaridade,
que utiliza a técnica de recomendação baseada em conteúdo.

Figura 3.1: Processo de Recomendação Baseado em Conteúdo.

Na Figura 3.1, o usuário elícita suas preferências através do “Arquivo A”, o mecanismo
de recomendação compara o conteúdo do “Arquivo A” com o conteúdo dos demais arquivos no
ambiente e recomenda ao usuário o “Arquivo C”, por possuir o conteúdo mais similar ao conteúdo
do arquivo de sua preferência. Na Figura 3.2, apresentamos o processo de recomendação
completo do modelo RecCloud.
Na Figura 3.2, o usuário elícita suas preferência através do “Arquivo Y”, em seguida o
modelo começa a calcular o score de recomendação de um arquivo da nuvem “Arquivo X”. O
score de recomendação é composto por 5 (cinco) critérios de recomendação, após ser calculados
o modelo gera um score final de recomendação e em seguida é recomendado um arquivo (Arquivo
X) ao usuário.

3.3

Detalhes da Implementação

O modelo foi implementado a partir do sistema de recomendação baseado em conteúdo
do sistema Ustore. Foram implementados os critérios propostos no modelo RecCloud e o cálculo

56

CAPÍTULO 3. RECCLOUD

Figura 3.2: Processo de Recomendação RecCloud.

de recomendação do modelo.

3.3.1

Ustore

O Ustore é uma ferramenta de armazenamento em nuvem baseada em uma arquitetura
P2P híbrida que tem como objetivo armazenar dados com baixo custo e de forma que os mesmos
não se tornem indisponíveis com eventuais problemas na rede ASSAD R. MACHADO (2012).
Os dados a serem armazenados são quebrados em pedaços menores de tamanho pré-definido,
chamados de chunks. Os chunks são armazenados em outros peers da rede, utilizando para isto
os recursos ociosos disponíveis na rede. Estes peers podem, por exemplo, ser computadores da
própria empresa utilizados para outros fins, mas que possuam espaço livre em disco, suficientes
para serem compartilhados. A utilização deste modelo faz com que o Ustore garanta um baixo
custo para o armazenamento em nuvem MACHADO (2013).

3.3.2

Arquitetura do Ustore

A arquitetura do Ustore consiste de uma arquitetura P2P híbrida em três camadas, onde
há peers representando papéis distintos compondo a solução final. Os peers são agrupados
em federações de dados, o que traz diversas vantagens, como, minimizar a sobrecarga na rede,
em cada peer e reduzir a quantidade de mensagens trocadas. Este agrupamento permite uma
maior escalabilidade do sistema, já que não há limites para a quantidade de federações criadas
DURãO F. ASSAD (2013) MACHADO (2013) SILVA A. MACHADO (2013).
A comunicação entre as entidades internas do sistema é feita através da plataforma
JXTA2 . O JXTA é um projeto de software livre de protocolos P2P baseados em mensagens
XML para o desenvolvimento de aplicativos distribuídos, permitindo que qualquer dispositivo
conectado em uma rede, independente de sua plataforma, natureza, ou protocolo de rede possa
interagir, compartilhar recursos, e formar uma rede distribuída, descentralizada e cooperativa.
Os peers podem possuir capacidades computacionais distintas, uma das grandes vantagens de
2 http://java.net/projects/jxta,

Acesso em 20/03/2014

57

3.3. DETALHES DA IMPLEMENTAÇÃO

JXTA é garantir o uso racional e adequado dos recursos sem abrir mão da portabilidade HEISS
(2005). A Figura 3.3 representa a arquitetura do JXTA.

Figura 3.3: Arquitetura do JXTA HEISS (2005).

Cada peer JXTA cria uma rede sobreposta virtual, permitindo a interação com outros
pares normalmente inacessíveis, como os protegidos por dispositivos reguladores de tráfego ou
que utilizem outro tipo de transporte de rede. Estes peers também podem ser organizados em
grupos de uma forma descentralizada BAROLLI; XHAFA (2011). Na Figura 3.4 é apresentada
os tipos de peers do Ustore SILVA A.; MEIRA (2012):

Figura 3.4: Arquitetura do Ustore SILVA A.; MEIRA (2012). 

Cliente Ustore: Os clientes são os responsáveis por armazenar os chunks dos arquivos, é através deles que os usuários podem solicitar operações de backup e recuperação de arquivos. Cada cliente possui um horário de funcionamento determinado

58

CAPÍTULO 3. RECCLOUD
inicialmente, que é utilizado para garantir a disponibilidade dos dados. No Ustore os
clientes para armazenar os chunks são escolhidos através de um algoritmo estatístico
que localiza os clientes que possuem o horário de funcionamento similar ao horário
determinado inicialmente ao cliente, desta forma o Ustore garante a disponibilidade
dos arquivos no horário determinado DUARTE (2010). Com o objetivo de garantir
uma maior taxa de disponibilidade, os chunks são replicados dentro da própria rede
MACHADO (2013).  

3.3.3

Servidor Ustore: Os servidores são os peers que disponibilizam os serviços para
serem utilizados pelos clientes e compõem as federações. O Ustore adota uma
proposta de criação de níveis hierárquicos que implementam serviços bem definidos
e que podem crescer horizontalmente MACHADO (2013).
Super peer: responsável por informar aos clientes, onde estão os servidores e
permite a troca de mensagens entre clientes que estejam em redes diferentes. O
papel do super peer é definir as federações de dados quando cada cliente solicita
conexão à rede. Outra função deste peer é escolher dinamicamente os clientes e
servidores das federações baseando-se em um algoritmo de proximidade DUARTE
(2010) MACHADO (2013).

Sistema de Recomendação do Ustore

O mecanismo de recomendação do Ustore é baseado em conteúdo, onde são realizadas
recomendações com base nas preferências que o usuário tenha demonstrado interesse no passado.
No SR do Ustore, as preferências do usuário são representadas por arquivos que o usuário salvou
em sua conta no sistema. O SR apresenta recomendações baseada na similaridade entre o arquivo
de preferência do usuário e os arquivos armazenados na nuvem. Para que o usuário receba uma
recomendação, ela deve ser solicitada a partir de um arquivo em sua conta.
O usuário solicita recomendações para um determinado arquivo, e recebe recomendações
de arquivos armazenados no sistema, assim, o sistema de recomendação entende que o arquivo
para qual foi solicitado recomendações representa as preferências do usuário.
No Ustore as recomendações são ordenadas de forma decrescente, de acordo com o
grau de similaridade entre os arquivos recomendados e as preferências do usuário, que é obtida
pela técnica de Similaridade do Cosseno. A similaridade é calculada a partir do conteúdo dos
arquivos, que são extraídos pelo Apache Lucine versão 3.63 e o Apache Tika versão 1.24 . 

Apache Lucene: O Apache Lucene é uma biblioteca de código aberto para consultas
full-text desenvolvida em Java. O principal objetivo do Lucene é adicionar a funcionalidade de busca de forma fácil para uma aplicação ou páginas web. A biblioteca

3 https://lucene.apache.org/core/
4 http://tika.apache.org/

Acesso em 15/03/2014
Acesso em 15/03/2014

59

3.3. DETALHES DA IMPLEMENTAÇÃO
é composta por 2 (dois) módulos principais (indexação e busca). Na indexação são
processados os dados originais gerando uma estrutura de dados inter-relacionada para
a pesquisa por palavras-chave. No módulo de busca é realizada a consulta ao índice
pelas palavras inseridas em uma consulta e organiza os resultados pela similaridade
do texto com as palavras da consulta. O Lucene permite que o desenvolvedor crie um
sistema de busca sem a necessidade de conhecer as rotinas e algoritmos de indexação
e busca, sendo necessário utilizar apenas a API do Lucene MACHADO (2013). O
Apache Lucene utiliza uma estrutura de dados conhecida como índice invertido, desta
forma, cada termo adicionado possui uma referência para o documento que o contém.
Os índices invertidos são estruturas compostas por duas partes, são o vocabulário
e as ocorrências. O vocabulário incorpora o conjunto de todas as palavras distintas
existentes no documento, para cada palavra do vocabulário são construídas listas que
contêm as exatas posições nas quais aparecem dentro do texto. A ocorrência é o
conjunto de todas as listas, em uma coleção de documentos, para cada palavra existente é armazenado também o número do documento no qual ocorre. A busca em um
arquivo invertido se dá através da verificação das entradas do arquivo e a recuperação
de todos os documentos que contêm em seu corpo o termo usado BAEZA-YATES;
RIBEIRO-NETO (1999). Para cada documento no resultado de uma busca é atribuído

Figura 3.5: Índice invertido no Apache Lucene HATCHER; GOSPODNETIC (2004).

uma pontuação que representa a similaridade do documento com os termos usados na
consulta. O cálculo dessa pontuação é feito baseando-se no modelo de recuperação
de informação escolhido. O Apache Lucene suporta alguns modelos, como, por
exemplo, Modelo Espaço Vetorial, Modelo Probalístico (Exemplo: Okapi BM25 e
DFR) e o Modelo baseado em Linguagem Natural. Na Figura 3.6, é apresentada a
arquitetura do Apache Lucene.
O Apache Lucene não possui um parser próprio, desta forma, foi necessário utilizar
outra biblioteca que tivesse parser próprio. No Ustore foi utilizado o Apache Tika,
que é um detector e extrator de conteúdo e texto estruturado em arquivos de diversos

60

CAPÍTULO 3. RECCLOUD

Figura 3.6: Arquitetura do Apache Lucene HATCHER; GOSPODNETIC (2004).

formatos arquivos. 

Apache Tika: É um kit de ferramentas para a extração de metadados e conteúdo de
diversos tipos de arquivos. A extração do conteúdo é feita por parsers específicos
para cada tipo de arquivo. O Apache Tika fornece uma API padrão e faz uso de
bibliotecas de terceiros para fazer a extração do conteúdo, como as bibliotecas POI5
e a PDFBox6 , que são utilizadas para extrair conteúdo de arquivos Word, Excel,
PowerPoint e PDF.
A Figura 3.7, apresenta a arquitetura do Apache Tika, nela é possível identificar a
camada “Tika Facade” que é responsável por receber o arquivo que será processado,
identificar o tipo do mesmo, o seu idioma e selecionar um parser adequado para
extrair seu conteúdo.

3.3.4

Implementação dos Critérios

Os critérios propostos no modelo RecCloud, foram implementados e adicionados ao
sistema de recomendação do Ustore. A seguir é descrito como ocorreu à implementação de cada
critério do modelo proposto: 

Critério Similaridade: o critério Similaridade utilizado foi do SR do sistema Ustore,
onde é feita o uso da técnica de Similaridade do Cosseno para comparar o conteúdo
dos artigos.

5 http://poi.apache.org/

Acessado em 15/03/2014
Acessado em 15/03/2014

6 http://pdfbox.apache.org/

61

3.3. DETALHES DA IMPLEMENTAÇÃO

Figura 3.7: Arquitetura do Apache Tika MATTMANN; ZITTING (2011). 

Critério Disponibilidade: No Ustore cada cliente possui um horário de funcionamento determinado inicialmente, que é utilizado para garantir a disponibilidade. Para
chegar ao valor da taxa de disponibilidade de um cliente, subtraímos o tempo total
possível para um cliente estar disponível em um dia (24 horas), pelo tempo em que o
cliente ficou off-line. Desta forma, obtemos a quantidade de horas em que um cliente
esteve disponível durante o dia. O cálculo é apresentado na Equação 3.7:
Dh = (Ht − Ho)


3.7

Na Equação 3.7, Dh é a disponibilidade do cliente em horas, é igual há Ht total de
horas em que o cliente pode ficar on-line em determinado espaço de tempo, subtraído
pela quantidade de horas que o cliente ficou off-line Ho.
No Ustore consideramos a utilização de um sistema de replicação de dados, desta
forma, enquanto estiverem clientes on-line na nuvem, os arquivos armazenados nela
estarão disponíveis. Diante disso, calculamos a média de disponibilidade para os
clientes da nuvem. O cálculo da média de disponibilidade é apresentado na Equação
3.8:

∑n Dh
Md = i=0
3.8

n
A média de disponibilidade é igual à soma da disponibilidade em horas Dh de todos
os clientes, dividida pela quantidade de clientes n. Desta forma, a disponibilidade
em horas de um arquivo Dh será igual a média de disponibilidade da nuvem Md.

62

CAPÍTULO 3. RECCLOUD
Na Figura 3.8 é ilustrado o processo do cálculo do critério Disponibilidade, onde é
calculada a média da disponibilidade dos clientes no Ustore.

Figura 3.8: Processo do Critério Disponibilidade.   

Critério Taxa de Download: A Taxa de Download é obtida a partir da observação
do download de um arquivo qualquer, a partir de informações sobre o tempo gasto
no download do arquivo e seu tamanho, chegamos à taxa de download da rede em
Kilobits. Para termos de avaliação, a taxa máxima de download utilizada foi a média
global de taxa de downloads 3 (três) Megabits por segundo. Caso a taxa do usuário
apresente um valor maior que a média global, o critério Taxa de Download será
igual a 1 (um), representa que este critério recebeu o valor máximo no cálculo da
recomendação.
Critério Tamanho do Arquivo: O tamanho do arquivo é obtido na base do Ustore
em Kilobytes e convertido em GigaBytes. Para termos de avaliação da proposta, o
tamanho máximo de um único arquivo no ambiente foi estabelecido em 10 Gigabytes,
desta forma, se um arquivo apresentar tamanho superior ao limite máximo estabelecido, este receberá o valor 1 (um), que representa a maior taxa ponderada do critério
Tamanho do Arquivo.
Critério Popularidade do Arquivo: A popularidade do arquivo é representada pela
quantidade de vezes em que foram realizados download de um arquivo. No Ustore a
quantidade de vezes em que foi realizado o download de um arquivo pode ser obtida
diretamente na base de dados do sistema. Para termos de avaliação desta proposta,
atribuímos a quantidade de 10 downloads, como a maior quantidade de downloads
realizados de um único arquivo na rede.

Após calculado o valor de todos os critérios, o SR calcula o score de recomendação pela
Equação 3.6.

63

3.4

3.4. CONSIDERAÇÕES FINAIS

Considerações Finais

Este capítulo apresentou um modelo de recomendação de arquivos para sistemas de
armazenamento em nuvem, que faz uso da técnica de recomendação baseada em conteúdo
associada a características da nuvem. Foram abordados ainda, o cálculo de recomendação, o
processo de recomendação e os detalhes da implementação do protótipo utlizado para testar e
avaliar o modelo proposto. No próximo capítulo serão apresentados os testes realizados e seus
resultados.

65

4
Avaliação
Neste capítulo, será apresentada uma série de testes realizados com o objetivo de avaliar
o modelo de recomendação proposto. A avaliação consiste em diversos testes visando avaliar
diferentes aspectos do modelo RecCloud como, o desempenho do mecanismo de recomendação.
Na literatura podem ser encontradas diversas métricas para avaliação de mecanismos de
recomendação, algumas das mais conhecidas são precisão, recall, F-measure, curva Roc, métrica
de Breese, Npdm e o feedback do destinatário da recomendação SAMPAIO (2006) YAO (1995).
Estas são algumas das opções dentre uma vasta lista de métricas para avaliar recomendações.
Herlocker (2000) HERLOCKER (2000) apresenta um estudo avançado sobre esses tipos de
métricas. Neste trabalho, foram utilizadas as métricas de precisão, recall, F-measure e também
foi avaliado o tempo gasto no download dos artigos recomendados. As técnicas utilizadas nesse
trabalho foram as que mais se adequaram ao modelo proposto, por analisarem a precisão de cada
ranking de recomendação gerado, além de mostrar a eficiência do modelo.

4.1

Testes
Os testes foram divididos em 3 (três) partes:
a) Inicialmente, realizou-se uma análise das recomendações geradas, com o objetivo de
avaliar se os arquivos recomendados atendem as preferências de conteúdo do usuário;
b) Foram realizados downloads dos arquivos recomendados pelo SR utilizando o modelo
RecCloud e pelo SR baseado puramente em conteúdo do Ustore. O objetivo foi observar se houve a amenização do tempo gasto no download dos arquivos recomendados
pelo modelo RecCloud em relação ao SR baseado puramente em conteúdo;
c) Realizou-se também uma análise das recomendações para avaliar o desempenho do
mecanismo de recomendação utilizando o modelo proposto.

O objetivo destes experimentos foram avaliar o desempenho do mecanismo de recomendação em um sistema de armazenamento em nuvem, levando em consideração o modelo baseado
em características da nuvem.

66

CAPÍTULO 4. AVALIAÇÃO

4.2

Coleção de Dados

Para avaliação deste trabalho, foi utilizada uma base de dados composta por 469 (quatrocentos e sessenta e nove) artigos acadêmicos publicados nos anos de 2012 e 2013, período no
qual se deu o desenvolver desta pesquisa. Os artigos utilizados foram publicados no Simpósio
Brasileiro de Sistemas de Informação e na conferência ACM Conference on Recommendation
System, disponíveis respectivamente nas bibliotecas BDBComp1 e ACM Digital Lybrari2 .
Estes artigos foram utilizados por serem de caráter público e de fácil acesso, em sua
totalidade formando uma base de dados que tornou possível a execução dos testes desse trabalho.
Outro critério que motivou a utilização destes artigos foi à similaridade entre o contexto dos
artigos publicados na RecSys com os artigos utilizados para representar as preferências do
usuário, este critério foi utilizado na geração da lista de artigos mais relevantes para o ranque de
recomendação.

4.3

Julgamento de Relevâncias

Para a realização dos testes é necessário que os arquivos tenham uma classificação que
indique quais são os mais relevantes para o ranque de recomendação que será gerado. Para fazer
essa classificação no conjunto de dados foi utilizada a similaridade entre o contexto dos artigos
com o conteúdo dos artigos utilizados para representar as preferências do usuário. Desta forma,
todos os artigos que forem relacionados ao termo sistemas de recomendação, foram considerados
relevantes para o ranque de recomendação. As preferências do avaliador foram representadas
por artigos acadêmicos que descrevem sistemas de recomendação. A quantidade de artigos
relevantes utilizados foi de 156 (cento e cinquenta e seis) artigos, representando 33% (trinta e
três) da base de dados utilizada na realização dos testes.

4.4

Ambiente de Teste

Os testes foram realizados em um ambiente controlado onde alguns valores foram
simulados (Critério Popularidade do Arquivo), este critério foi simulado por não dispormos
de um histórico de utilização do ambiente utilizado na validação. A principal desvantagem
deste cenário é a não disponibilidade de um histórico real de utilização do ambiente, porém vale
ressaltar que este cenário mostrou que a utilização do modelo proposto pode ser bem sucedida
em novos ambientes com poucas informações sobre os usuários. Com objetivo de deixar o
ambiente o mais próximo do real, para realização dos testes foi utilizada uma máquina com 2
(dois) clientes Ustore.
1 http://www.lbd.dcc.ufmg.br/bdbcomp/sbsi
2 http://recsys.acm.org/

67

4.5. MÉTRICAS DE AVALIAÇÃO

Foram armazenados 479 (quatrocentos e setenta e nove) artigos em uma conta de usuário
no sistema de armazenamento Ustore. Em seguida solicitamos recomendações para 10 (dez)
arquivos diferentes e foram recomendados 100 (cem) artigos pelo sistema. Para representar as
preferências do usuário foram utilizados artigos escritos sobre esta pesquisa, discorrendo sobre
sistemas de recomendações.

4.5

Métricas de Avaliação

Para avaliação deste trabalho foi utilizada a metodologia proposta por Jain em 1991 JAIN
(1991), onde é defendido que para realizar uma avaliação é preciso definir objetivos, métricas,
fatores e níveis MACHADO (2013).
As métricas escolhidas para avaliar o desempenho do modelo RecCloud, estão descritas
a seguir:
a) Precisão: é a taxa de itens relevantes recomendados no resultado. É dada através da
proporção entre o número de arquivos relevantes recomendados e o número total de
arquivos recomendados BAEZA-YATES; RIBEIRO-NETO (1999) LEE; LEE; LEE
(2010), é representada pela Equação 4.1:
| {arquivos relevantes} {arquivos recomendados} |
Preciso =
{arquivos recomendados}
T


4.1

Na Equação 4.1, arquivos relevantes é a quantidade de arquivos recomendados que fazem parte do ranking de relevância apresentado na Tabela ??, e arquivos recomendados
é a quantidade de arquivos recomendados para cada solicitação de recomendação. O
resultado é representado por valores entre 0 (zero) e 1 (um). Quanto mais próximo
de 1 (um) mais preciso é o sistema.
b) Recall: é a taxa de itens relevantes recomendados em relação a quantidade total de
itens relevantesLEE; LEE; LEE (2010), é dado pela Equação 4.2:
| {arquivos relevantes} {arquivos recomendados} |
Recall =
{arquivos relevantes}
T


4.2

Na Equação4.2, arquivos relevantes é a quantidade de arquivos recomendados que fazem parte do ranking de relevância apresentado no anexo??, e arquivos recomendados
é a quantidade de arquivos recomendados para cada solicitação de recomendação. O
resultado é representado por valores entre 0 (zero) e 1 (um). Quanto mais próximo
de 1 (um) mais o sistema satisfaz a solicitação da recomendação.
c) F-measure: É a média ponderada da precisão e recall. Pode ser representada pela

68

CAPÍTULO 4. AVALIAÇÃO
Equação 4.3 BAEZA-YATES; RIBEIRO-NETO (1999) LEE; LEE; LEE (2010).
F − measure α =

(1 + α) · preciso · recall
(α · preciso) + recall


4.3

Neste teste as taxas de precisão e recall têm o mesmo fator de importância, desta
forma o valor de α é igual a 1 (um). Logo, esta função só retornará um valor no
intervalo entre 0 (zero) e 1 (um). Maiores valores para a taxa F-measure representa
que o sistema de recomendação oferece resultados mais precisos DURãO (2008)
GARCIA et al. (2006) LEE; LEE; LEE (2010).

d) Tempo gasto no Download: foram efetuados downloads dos arquivos recomendados
e medido o tempo gasto para realizar cada download. Os resultados obtidos serão
comparados com o tempo gasto no download de arquivos recomendados utilizando
um modelo baseado em conteúdo. O tempo total economizado no download na
comparação entre os dois modelo é dado pela Equação 4.4.
n

n

T = ∑ Tc− ∑ Tn
i=0

i=0


4.4

O tempo total amenizado no download dos arquivos recomendados é dado pela subtração do resultado da soma do tempo gasto no download de todas as recomendações
realizadas pelo modelo RecCloud ∑ni=0 T n pela soma do tempo gasto no download de
todas as recomendações do modelo utilizado para comparação de resultado ∑ni=0 T c.
É Calculada a média do tempo economizado no download por recomendação, dado
pela Equação 4.5.

∑ni=0 T c − ∑ni=0 T n
T=
4.5

Nrec
A média do tempo amenizado no download de cada arquivo recomendado é dada pelo
resultado da soma do tempo gasto em todos os downloads baseadas em características
da nuvem ∑ni=0 T n subtraido pelo resultado da soma do tempo gasto no download
de todos os arquivos recomendados do modelo utilizado para avaliação ∑ni=0 T c,
dividido pelo número total de recomendações utilizado para a avaliação Nrec.

Como parâmetros para comparação, nesta avaliação foram consideradas satisfatórias
taxas de precisão de 0.40 e recall de 0.42, resultados semelhantes obtidos por Blank et al.
(2013)BLANK; ROKACH; SHANI (2013) e Zhang et al. (2013)ZHANG et al. (2013). A partir
destas taxas, foi calculada a taxa de F-Measure. Esta teve como melhor resultado alcançado
0.42, obtido no “nível 3”.

69

4.6

4.6. CENÁRIOS DE AVALIAÇÃO

Cenários de Avaliação

A avaliação foi dividida em 2 (dois) cenários. A divisão em cenários tem como objetivo
detalhar o que está sendo avaliado e torna mais fácil o entendimento de todo o processo. Todos
os cenário e testes deste trabalho foram realizados em um ambiente controlado simulando uma
nuvem. Na execução dos experimentos em todos os cenários não foram utilizados usuários reais.
Todos os experimentos foram realizados somente pelo avaliador, em alguns pontos a utilização
do sistema por usuários foi simulada, para melhor se aproximar do cenário real. Na execução, os
cenários foram montados da seguinte forma: 

Cenário I: no primeiro cenário o objetivo foi avaliar o desempenho do modelo
RecCloud. Foram solicitadas recomendações para 10 (dez) diferentes arquivos
e avaliada a quantidade de arquivos recomendado para cada solicitação. Neste
cenário foram avaliadas as métricas precisão, recall e F-Measure observando os
arquivos recebidos como recomendação, os ranques de recomendação analisados
foram divididos em níveis, apresentados na Tabela 4.1.
Tabela 4.1: Níveis utilizados para avaliar as métricas definidas

Quantidade de artigos recomendados 

4.7

Níveis
5, 10, 15

Cenário II: o objetivo foi medir o tempo gasto no download de arquivos recomendados e comparar os resultados com um modelo baseado em conteúdo. Com isso,
foi possível avaliar se o modelo proposto atingiu um dos objetivos que é amenizar o
tempo gasto no download dos arquivos recomendados. Neste cenário avaliamos a
métrica 4 (quatro), analisando o tempo gasto no download de 100 artigos recomendados, 50 artigos de cada modelo avaliado. Nesta métrica foi utilizado ranques de
recomendação com 5 (cinco) artigos retornado para cada solicitação de recomendação.

Resultados

Os testes foram executados nos 2 (dois) cenários de avaliação e a seguir são apresentados
os resultados obtidos.

4.7.1

Resultados do Cenário I

No primeiro cenário a avaliação foi dividida em 3 (três) níveis, cada nível retorna uma
quantidade diferente de artigos para cada solicitação de recomendação, o primeiro nível retornou

70

CAPÍTULO 4. AVALIAÇÃO

5 (cinco) artigos, o segundo 10 (dez) artigos e o terceiro 15 (quize) artigos. Foram solicitadas recomendações para 10 (dez) artigos no modelo RecCloud, estas solicitações resultaram
respectivamente em 50 (cinquenta), 100 (cem) e 150 (cento e cinquenta) artigos recomendados.

Figura 4.1: Gráfico comparando a taxa de precisão variando a quantidade de artigos
recomendados para cada ranque de recomendação gerado.

A Figura 4.1, apresenta a precisão alcançada utilizando o modelo RecCloud para cada
solicitação de recomendação e variando a quantidade de artigos recomendados 5 (cinco), 10
(dez) e 15 (quinze). Os resultados apresentados mostraram que as maiores taxas de precisão
foram obtidas no “nível 1”, e o “nível 3” apresentou as menores taxas de precisão. Na Figura
4.2, é apresentada uma comparação da taxa de precisão atingida por cada nível.

Figura 4.2: Gráfico comparando a taxa de precisão nos 3 (níveis) de variação na
quantidade de artigos recomendados.

A partir dos resultados apresentados nos gráficos das Figuras 4.1 e 4.2, percebemos
que a taxa de precisão obtida no “nível 1” (0.68) foi maior que a taxa obtida no “nível 2”

71

4.7. RESULTADOS

(0.46) e “nível 3” (0.44), onde são recomendados 5 (cinco) artigos para cada solicitação de
recomendação. Diante destes resultados, observamos que a maior parte dos artigos relevantes
foram recomendados no início dos ranques. Este resultado se justifica pelo peso do critério
similaridade ser superior ao peso dos demais critérios utilizados na geração das recomendações,
desta forma os arquivos com maior similaridade foram recomendados no início dos ranques
e os artigos que se mostraram recomendáveis, mas que não apresentaram uma alta taxa de
similaridade foram recomendados no final dos ranques de recomendação. Na Figura 4.3 são
apresentados os resultados da taxa de recall obtidos nesta avaliação.

Figura 4.3: Gráfico comparando a taxa de recall variando a quantidade de artigos
recomendados para cada ranque de recomendação gerado.

A Figura 4.3, Apresenta a taxa de recall alcançada utilizando o modelo RecCloud para
cada solicitação de recomendação e variando a quantidade de artigos recomendados 5 (cinco),
10 (dez) e 15 (quinze).

Figura 4.4: Gráfico apresentando a comparação da taxa de recall obtida nos 3 (níveis) de
variação na quantidade de artigos recomendados.

Na Figura 4.4, são apresentados os resultados da taxa de recall de cada nível de variação

72

CAPÍTULO 4. AVALIAÇÃO

na quantidade de artigos recomendados. A partir dos resultados apresentados nos gráficos das
Figuras 4.3 e 4.4, percebemos que a taxa de recall obtida no “nível 3” (0.42) foi maior que a taxa
obtida no nível 1 (0.21) e nível 2(0.29).
A partir das taxas de precisão e recall definidas calculamos a taxa F-measure. A Figura
4.5, apresenta a taxa de F-Measure alcançada para cada solicitação de recomendação e variando
a quantidade de artigos recomendados.

Figura 4.5: Gráfico comparando a taxa de F-Measure variando a quantidade de artigos
recomendados para cada ranque de recomendação gerado.

Na Figura 4.6, são apresentados os resultados da taxa F-Measure para cada nível de
variação na quantidade de artigos recomendados.

Figura 4.6: Gráfico apresentando a comparação da taxa de F-Measure obtida nos 3
(níveis) de variação na quantidade de artigos recomendados.

A partir dos resultados apresentados nos gráficos das Figuras 4.5 e 4.6, observamos que
a taxa de F-Measure obtida no “nível 3” (0.42) foi maior que a taxa obtida no “nível 2” (0.35) e
“nível 1” (0.32).

73

4.7.2

4.7. RESULTADOS

Resultados do Cenário II

No segundo cenário foram solicitadas recomendações para 10 (dez) artigos diferentes no
modelo RecCloud e no modelo baseado em conteúdo do Ustore, estas solicitações resultaram
em 100 (cem) artigos recomendados. Foi analisado o tempo gasto no download de cada arquivo
recomendado utilizando os 5 (cinco) primeiros arquivos do ranking de recomendações retornado
em cada solicitação. Para avaliação e comparação entre os modelos, o tempo gasto no download
dos arquivos recomendados pelo modelo RecCloud são apresentados na Figura 4.7.

Figura 4.7: Tempo gasto no download dos arquivos recomendados pelo modelo
RecCloud.

Na Figura 4.7 é apresentado o tempo gasto no download de 50 (cinquenta) arquivos
recomendados pelo modelo RecCloud, o tempo gasto no download foi apresentando em milissegundos. O tempo médio gasto no download de um arquivo foi de 959,56 ms, variando de
410 ms a 2.203 ms. A seguir, na Figura 4.8, é apresentado o tempo gasto no download dos
arquivos recomendados no modelo baseado puramente em conteúdo do Ustore. Para efeitos de
comparação dos resultados, foram realizadas as mesmas solicitações nos dois modelos.
Na Figura 4.8 foi apresentado o tempo gasto no download de 50 (cinquenta) arquivos
recomendados pelo modelo baseado em conteúdo. O tempo médio gasto no download de um
arquivo foi de 1.166,42 ms, variando de 129 ms a 2.717 ms.
Na Figura 4.9, foi apresentada a variação do tempo gasto no download de cada arquivo
recomendado pelos dois modelos em análise neste experimento. O tempo gasto no download
dos arquivos foi apresentado em milissegundos. A partir dos resultados apresentados na Figura
4.9, percebe-se que no modelo RecCloud apresenta as menores taxas de download.
Na Figura 4.10, foi apresentada uma comparação entre a média, o máximo e o mínimo
de tempo gasto nos downloads realizados pelos modelos RecCloud e o modelo baseado em
conteúdo (CB). O modelo baseado em conteúdo obteve o menor tempo gasto nos downloads,

74

CAPÍTULO 4. AVALIAÇÃO

Figura 4.8: Tempo gasto no download dos arquivos recomendados pelo modelo baseado
em conteúdo.

Figura 4.9: Comparação do tempo gasto no download dos arquivos recomendados pelos
dois modelos avaliados.

porém, também obteve o maior tempo, enquanto o modelo RecCloud teve uma menor variação
no tempo dos downloads. A partir dos resultados apresentados na Figura 4.10, pode ser afirmado
que o modelo proposto nesta pesquisa proporcionou redução no tempo gasto no download das
recomendações. A redução média de tempo gasto nos downloads foi de 207,06 milissegundos, o
que representa uma redução de 17,8%. Está amenização aplicada a ambientes onde são realizados
centenas ou até milhares de downloads por hora, pode proporcionar ganhos significativos na
economia de tempo gasto em downloads de arquivos armazenados em nuvem e ao mesmo tempo
recomendar conteúdo relevante aos usuários do sistema.

75

4.8. DISCUSSÃO DOS RESULTADOS

Figura 4.10: Média, mínimo e máximo do tempo gasto no download das recomendações.

4.8

Discussão dos Resultados

Os testes mostraram que o modelo RecCloud obteve resultados satisfatórios de acordo
com os valores obtidos por BLANK; ROKACH; SHANI (2013) e ZHANG et al. (2013). Na
execução da avaliação, os testes foram divididos em 3 (três) níveis, cada nível retornou uma
quantidade diferente de artigos recomendados para uma solicitação de recomendação. A melhor
taxa de precisão obtida foi de 0.68 no “nível 1”, onde foram retornados 5 (cinco) artigos para
cada solicitação de recomendação, os níveis 2 e 3 obtiveram as respectivas taxas 0.46 e 0.44.
Diante destes resultados, podemos concluir que o “nível 1” obteve melhores taxas de precisão.
Os resultados obtidos na métrica de precisão foram superiores aos resultados utilizados como
referência para termos de comparação.
A melhor taxa de recall foi obtida no “nível 3” (0.42) onde são retornados 15 (quinze)
artigos para cada solicitação de recomendação. Os níveis 1 e 2 apresentaram respectivamente
0.21 e 0.29. A melhor taxa de recall obtida nesta avaliação foi similar à taxa obtida no trabalho
de Zhang et al. (2013). Desta forma podemos considerar como satisfatória à avaliação realizada
neste trabalho. A partir das taxas de precisão e recall, calculamos a taxa de F-Measure onde
obtivemos como melhor taxa o valor 0.42, este valor foi obtido no “nível 3”.
A partir dos resultados apresentados observamos que o melhor resultado da taxa de
precisão foi obtido em nível diferente do nível onde foi obtida a melhor taxa de recall, e que
a maioria dos artigos relevantes recomendados estava no início dos ranques de recomendação.
Este cenário se justifica pelo critério de similaridade que representa 40% de cada recomendação.
Desta forma, os artigos com maiores taxas de similaridade ficaram no início dos ranques e os
artigos que mesmo tendo a sua taxa de similaridade baixa se mostraram recomendáveis foram
recomendados no final dos ranques de recomendação.

76

CAPÍTULO 4. AVALIAÇÃO

Os resultados obtidos no cenário II mostraram que o modelo RecCloud proporcionou
uma redução no tempo gasto no download de arquivos recomendados. A redução é obtida em
comparação com o tempo gasto no download de recomendações geradas pelo SR baseado em
conteúdo do Ustore. A média de tempo economizado ficou em 207,6 milissegundos. Desta
forma, pode-se inferir que o modelo proposto nesta pesquisa ameniza o tempo gasto no download
de arquivos recomendados em relação ao modelo baseado em conteúdo.
A partir da comparação dos resultados apresentados no decorrer deste capítulo com
resultados encontrados na literatura como, por exemplo, os trabalhos de BLANK; ROKACH;
SHANI (2013) e ZHANG et al. (2013), pode-se concluir que a proposta apresentada por está
pesquisa apresentou resultados satisfatórios na geração de recomendações de arquivos em
sistemas de armazenamento em nuvem, utilizando características do ambiente associadas à
técnica de recomendação baseada em conteúdo.

4.9

Possíveis Ameaças à Validade

Os resultados encontrados na presente pesquisa possuem algumas ameaças, as quais
devem ser levadas em consideração:   

Conjunto de dados utilizados: a primeira ameaça refere-se à relevância dos dados
utilizados na realização dos experimentos descritos neste trabalho. No que tange
a quantitatividade. O volume de dados utilizados pode ser considerado pequeno
em comparação a quantidade de dados que podem ser encontrados em sistemas de
armazenamento em nuvem. No entanto, acredita-se que a quantidade de artigos
utilizados não desmereça os resultados obtidos nesta pesquisa.
Ambiente controlado: o ambiente de teste utilizado na realização dos experimentos
foi parcialmente controlado, onde os valores que representam os fatores oriundos da
nuvem foram simulados. Este cenário se deu devido à dificuldade em utilizar uma
estrutura real em nuvem para a realização dos experimentos.
Métricas de avaliação: diante de inúmeras técnicas apresentadas na literatura para a
avaliação de sistemas de recomendações foram escolhidas as métricas de precisão,
recall e F-measure, que são utilizadas na avaliação de SR’s de acordo com BLANK;
ROKACH; SHANI (2013), ZHANG et al. (2013), LEE; LEE; LEE (2010). Diante
disto, em trabalhos futuros podem ser utilizadas novas técnicas de avaliação de
sistemas de recomendações, como, por exemplo, Validação cruzada. Com o objetivo
de confrontar os resultados aqui apresentados e propor melhorias no modelo proposto.

77

4.10

4.10. CONSIDERAÇÕES FINAIS

Considerações Finais

Neste capítulo foram apresentados os experimentos realizados com o objetivo de avaliar
o modelo proposto. A avaliação foi realizada para analisar o impacto de sua adoção em sistemas
de armazenamento em nuvem: a amenização do tempo gasto no download de arquivos recomendados, bem como os níveis de precisão, recall e F-Measure obtidos, os quais foram utilizados
para analisar o desempenho do modelo proposto na geração de recomendações.
O modelo de recomendação baseado em características na nuvem foi comparado com o
modelo de recomendação baseado em conteúdo. Os resultados mostraram que o modelo proposto
se mostra eficiente na recomendação de conteúdo relevante, ameniza o tempo gasto no download
de arquivos recomendados, e se mostra viável a sua utilização em sistemas de armazenamento
em nuvem.
No próximo capítulo serão apresentadas as conclusões, as contribuições alcançadas e
possíveis trabalhos futuros desta pesquisa.

79

5
Conclusões e Trabalhos Futuros
Esta dissertação abordou o problema de filtragem de conteúdo em meio à imensidão de
dados em sistemas de armazenamento em nuvem. A identificação de características da nuvem
possibilita gerar recomendações similares as preferências dos usuários, como também proporcionem a melhor utilização de recursos da nuvem. Com o objetivo de amenizar este problema, foi
apresentado um modelo para a geração de recomendações em sistemas de armazenamento em
nuvem, formado por características da nuvem somadas a técnica de recomendação baseada em
conteúdo.
Os testes realizados neste trabalho foram executados em um sistema real de armazenamento em nuvem, o Ustore. Na execução dos testes foi observado o tempo gasto no download de
arquivos recomendados, com objetivo de avaliar se o modelo RecCloud proporciona amenização
desse tempo, em comparação a técnica baseada em conteúdo. Na execução dos testes também
foi avaliado o desempenho do modelo proposto.

5.1

Contribuições
A seguir apresentamos as principais contribuições deste trabalho:   

Um estudo sobre modelos de recomendação baseados em nuvem. Embora existam
muitos trabalhos sobre recomendação em nuvem, este trabalho propôs a utilização de
características da nuvem na geração de recomendação de arquivos em sistemas de
armazenamento em nuvem.
Um modelo de recomendação de arquivos para sistemas de armazenamento em
nuvem, composto por características da nuvem e a técnica de recomendação baseada
em conteúdo. O modelo por completo foi apresentado no decorrer desta dissertação.
A implementação do modelo proposto no sistema de armazenamento em nuvem
Ustore, que possibilitou avaliar a abordagem proposta nesta pesquisa.

Cinco artigos foram escritos com o objetivo de difundir o conhecimento produzido nesta
pesquisa, os quais foram aceitos para publicação:

80

CAPÍTULO 5. CONCLUSÕES E TRABALHOS FUTUROS
Publicados:    

Rodrigues, Ricardo B., Silva, C., Ferreira, W., Campos, G., Assad, R., Durão, F.,
Garcia, V. A Cloud-based Recommendation System. IADIS International Conference
WWW-INTERNET (ICWI), Out., 2013, Fort Worth, Texas.
Rodrigues, Ricardo B., Assad, R., Durão, F., Garcia, V. RecCloud: Um Sistema de
Recomendação Baseado em Nuvem. Workshop de Teses e Dissertações do Congresso
Brasileiro de Software (WTDSoft). Set., 2013, Brasília, Distrito Federal, Brasil.
Rodrigues, Ricardo B., Durão, F., Assad, R., Garcia, V. Um Sistema de Recomendação Baseado em Nuvem. III Escola Regional de Informática de Pernambuco (ERIPE).
Nov., 2013, Garanhuns, Pernambuco, Brasil.
Rodrigues, Ricardo B., Durão, F., Assad, R., Garcia, V. A Cloud-based Recommendation Model. 7th Euro American Association on Telematics and Information Systems,
2014, Valparaíso, Chile.

Aceito para publicação: 

5.2

Rodrigues, Ricardo B., Durão, F., Assad, R., Garcia, V. RecCloud: A Recommendation Model for Cloud Storage Systems. 10th International Conference on Web
Information Systems and Technologies, 2014, Barcelona, Espanha.

Trabalhos Futuros

Este trabalho objetiva utilizar características da nuvem na geração de recomendações
de arquivos aos usuários de sistemas de armazenamento em nuvem. Desta forma, o escopo
desta dissertação não abrange todas as possíveis características da nuvem e de sistemas de
armazenamento em nuvem que podem ser utilizadas na geração de recomendações. Os testes
realizados para avaliar o modelo proposto foram realizados no ambiente Ustore, fazendo uso de
técnicas de avaliação de sistemas de recomendação. Estes são alguns aspectos que podem ser
inclusos em trabalhos futuros:   

Realizar experimentos com usuários reais, afim de, avaliar o conteúdo recomendado
pelo modelo proposto.
Aplicar outras técnicas de avaliação de sistemas de recomendação ao modelo, com
objetivo de comparar os resultados obtidos neste trabalho.
Realizar os experimentos com pesos diferentes para cada fator do modelo proposto,
com o objetivo de comparar os resultados e propor a melhor combinação de pesos,
para proporcionar os melhores resultados ao modelo RecCloud.

81

5.2. TRABALHOS FUTUROS   

Expansão dos critérios utilizados: podem ser adicionados ao modelo novos critérios
oriundos da nuvem, assim como, características de sistemas de armazenamento em
nuvem.
Utilizar a técnica de recomendação por filtragem colaborativa, que associada aos
critérios propostos neste modelo podem trazer resultados positivos.
Propor um modelo de recomendação híbrido, utilizando as duas técnicas de recomendação mais populares entre os sistemas de recomendação (Filtragem colaborativa e
filtragem baseada em conteúdo), associadas às características da nuvem.

83

Referências
ADOMAVICIUS, G.; TUZHILIN, A. Toward the next generation of recommender systems: a
survey of the state-of-the-art and possible extensions. Knowledge and Data Engineering,
IEEE Transactions on, [S.l.], v.17, n.6, p.734–749, 2005.
ANSARI, A.; ESSEGAIER, S.; KOHLI, R. Internet recommendation systems. JOURNAL OF
MARKETING RESEARCH, [S.l.], v.37, n.3, p.363–375, 2000.
ASSAD R. MACHADO, M. S. P. S. A. S. T. G. V. Desafios em cloud computing:
armazenamento, banco de dados e big data. Tópicos em Multimídia, Hipermídia e Web,
[S.l.], p.76–11, 2012.
BAEZA-YATES, R. A.; RIBEIRO-NETO, B. Modern Information Retrieval. Boston, MA,
USA: Addison-Wesley Longman Publishing Co., Inc., 1999.
BAROLLI, L.; XHAFA, F. JXTA-Overlay: a p2p platform for distributed, collaborative, and
ubiquitous computing. Industrial Electronics, IEEE Transactions on, [S.l.], v.58, n.6,
p.2163–2172, June 2011.
BLANCO-FERNANDEZ, Y. et al. Providing entertainment by content-based filtering and
semantic reasoning in intelligent recommender systems. IEEE Trans. Consumer Electronics,
[S.l.], v.54, n.2, p.727–735, 2008.
BLANK, I.; ROKACH, L.; SHANI, G. Leveraging the Citation Graph to Recommend
Keywords. In: ACM CONFERENCE ON RECOMMENDER SYSTEMS, 7., New York, NY,
USA. Proceedings. . . ACM, 2013. p.359–362. (RecSys ’13).
BURKE, R. Hybrid Recommender Systems: survey and experiments. User Modeling and
User-Adapted Interaction, [S.l.], v.12, n.4, p.331–370, 2002.
CARVALHO, J. F. S. Um Mapeamento Sistematico de Estudos em Cloud Computing. 2012.
Dissertação (Mestrado em Ciência da Computação) — Universidade Federal de Pernambuco
(UFPE).
CHAKOO, N.; GUPTA, R.; HIREMATH, J. Towards Better Content Visibility in Video
Recommender Systems. In: FRONTIER OF COMPUTER SCIENCE AND TECHNOLOGY,
2008. FCST ’08. JAPAN-CHINA JOINT WORKSHOP ON. Anais. . . [S.l.: s.n.], 2008.
p.181–185.
CHEN, Y.-C.; HUANG, H.-C.; HUANG, Y.-M. Community-based program recommendation for
the next generation electronic program guide. Consumer Electronics, IEEE Transactions on,
[S.l.], v.55, n.2, p.707–712, 2009.
DENG, J. et al. Research and Application of Cloud Storage. In: INTELLIGENT SYSTEMS
AND APPLICATIONS (ISA), 2010 2ND INTERNATIONAL WORKSHOP ON. Anais. . .
[S.l.: s.n.], 2010. p.1–5.
DUARTE, M. Um algoritmo de disponibilidade em sistemas de backup distribuído seguro
usando a plataforma peer-to-peer. 2010. Dissertação (Mestrado em Ciência da Computação)
— Centro de Informática UFPE.

84

REFERÊNCIAS

DURãO, F. A. Applying a semantic layer in a source code retrieval tool. 2008. Dissertação
(Mestrado em Ciência da Computação) — Centro de Informática, Universidade Federal de
Pernambuco (UFPE).
DURãO F. ASSAD, R. F. A. F. J. G. V. T. F. USTO.RE: a private cloud storage software system.
In: DANIEL, F.; DOLOG, P.; LI, Q. (Ed.). Web Engineering. [S.l.]: Springer Berlin
Heidelberg, 2013. p.452–466. (Lecture Notes in Computer Science, v.7977).
GANTZ, J.; REINSEL, D. Extracting Value from Chaos State of the Universe : an
executivesummary. 1-12.
GARCIA, V. C. et al. From Specification to Experimentation: a software component search
engine architecture. In: GORTON, I. et al. (Ed.). Component-Based Software Engineering.
[S.l.]: Springer Berlin Heidelberg, 2006. p.82–97. (Lecture Notes in Computer Science, v.4063).
HATCHER, E.; GOSPODNETIC, O. Lucene in Action (In Action Series). Greenwich, CT,
USA: Manning Publications Co., 2004.
HEISS, J. J. Jxta technology brings the internet back to its origin. [S.l.]: Oracle, 2005.
HERLOCKER, J. L. Understanding and improving automated collaborative filtering
systems. 2000. Tese (Doutorado em Ciência da Computação) — University of Minnesota.
AAI9983577.
JAIN, R. K. The Art of Computer Systems Performance Analysis: techniques for
experimental design, measurement, simulation, and modeling. 1.ed. [S.l.]: Wiley, 1991.
JAVA Platform, Standard Edition <ttp://www.oracle.com/technetwork/java>. ultimo acesso em
07/06/2013.
JIANG, Y. et al. Recommending Academic Papers via User’s Reading Purposes. In: SIXTH
ACM CONFERENCE ON RECOMMENDER SYSTEMS, New York, NY, USA.
Proceedings. . . ACM, 2012. p.241–244. (RecSys ’12).
JUNG, G. et al. CloudAdvisor: a recommendation-as-a-service platform for cloud configuration
and pricing. In: SERVICES (SERVICES), 203 IEEE NINTH WORLD CONGRESS ON.
Anais. . . [S.l.: s.n.], 2013. p.456–463.
KONG, D.; ZHAI, Y. Trust Based Recommendation System in Service-oriented Cloud
Computing. In: CLOUD AND SERVICE COMPUTING (CSC), 2012 INTERNATIONAL
CONFERENCE ON. Anais. . . [S.l.: s.n.], 2012. p.176–179.
LAI, C.-F. et al. CPRS: a cloud-based program recommendation system for digital tv platforms.
Future Gener. Comput. Syst., Amsterdam, The Netherlands, The Netherlands, v.27, n.6,
p.823–835, June 2011.
LEE, S.; LEE, D.; LEE, S. Personalized DTV Program Recommendation System Under a Cloud
Computing Environment. IEEE Trans. on Consum. Electron., Piscataway, NJ, USA, v.56, n.2,
p.1034–1042, May 2010.
LENK, A. et al. What’s inside the Cloud? An architectural map of the Cloud landscape. In:
SOFTWARE ENGINEERING CHALLENGES OF CLOUD COMPUTING, 2009.
CLOUD.ICSE WORKSHOP ON, Washington, DC, USA. Anais. . . IEEE, 2009. p.23–31.
(CLOUD ’09, v.0).

85

REFERÊNCIAS

LOPES, A. R. S. Sistemas de Recomendação Utilizando Similaridade Globais para Aliviar
o Problema da Esparcidade. 2012. Dissertação (Mestrado em Ciência da Computação) —
Universidade Federal de Pernambuco (UFPE).
MACHADO, M. A. S. Uma Abordagem para Indexacao e Buscas Full-Text Baseadas em
Conteúdo em Sistemas de Armazenamento em Nuvem. 2013. Dissertação (Mestrado em
Ciência da Computação) — Universidade Federal de Pernambuco (UFPE).
MATTMANN, C.; ZITTING, J. Tika in Action. Greenwich, CT, USA: Manning Publications
Co., 2011.
MCLAUGHLIN, M. R.; HERLOCKER, J. L. A collaborative filtering algorithm and evaluation
metric that accurately model the user experience. In: ACM SIGIR CONFERENCE ON
RESEARCH AND DEVELOPMENT IN INFORMATION RETRIEVAL, 27., New York, NY,
USA. Proceedings. . . ACM, 2004. p.329–336. (SIGIR ’04).
MELL, P.; GRANCE, T. The NIST Definition of Cloud Computing. [S.l.]: National Institute
of Standards and Technology, Information Technology Laboratory, 2009.
NETSHOES. Disponível em: <http://www.netshoes.com.br/>. Ultimo acesso em 05/12/2013.
PALAU, J. et al. Collaboration Analysis in Recommender Systems Using Social Networks. In:
KLUSCH, M. et al. (Ed.). Cooperative Information Agents VIII. [S.l.]: Springer Berlin
Heidelberg, 2004. p.137–151. (Lecture Notes in Computer Science, v.3191).
PAZZANI, M. J.; BILLSUS, D. Learning and Revising User Profiles: the identification of
interesting web sites. Machine Learning, [S.l.], v.27, n.3, p.313–331, 1997.
RICCI, F. et al. (Ed.). Recommender Systems Handbook. [S.l.]: Springer, 2011.
SAMPAIO, I. A. Apredizagem Ativa em Sistemas de Filtragem Colaborativa. 2006.
Dissertação (Mestrado em Ciência da Computação) — Universidade Federal de Pernambuco,
UFPE.
SILVA A., M. M. S. P. J. T. G. V. A. R.; MEIRA, S. Usto.re uma plataforma descentralizada para
storage de conteúdo em nuvens privadas. In: CBSOFT2012 - INDUSTRIA. Anais. . . [S.l.: s.n.],
2012.
SILVA A. MACHADO, M. S. P. J. T. G. V. A. R. Desenvolvendo aplicativos peer-to-peer (p2p)
no contexto de data storage para ambientes de cloud computing. Computação, S. B., editor,
SBSI., [S.l.], 2013.
STORMER H.; WERRO, N.; RISCH, D. Recommending Products with a Fuzzy Classification.
CollECTeR Europe, [S.l.], 2006.
SU, X.; KHOSHGOFTAAR, T. M. A survey of collaborative filtering techniques. Adv. in Artif.
Intell., New York, NY, United States, v.2009, p.4:2–4:2, Jan. 2009.
SUBMARINO. Disponível em: <http://www.submarino.com.br/>. Ultimo acesso em
05/12/2013.
TERVEEN, L.; HILL, W. Beyond Recommender Systems: helping people help each other. In:
HCI IN THE NEW MILLENNIUM. Anais. . . Addison-Wesley, 2001. p.487–509.

86

REFERÊNCIAS

THE Eclipse Foundation - Eclipse projects. Disponível. Ultimo acesso em 07/06/2013.
TIAN, G.; JING, L. Recommending Scientific Articles Using Bi-relational Graph-based
Iterative RWR. In: ACM CONFERENCE ON RECOMMENDER SYSTEMS, 7., New York,
NY, USA. Proceedings. . . ACM, 2013. p.399–402. (RecSys ’13).
VAQUERO, L. M. et al. A break in the clouds: towards a cloud definition. SIGCOMM
Comput. Commun. Rev., New York, NY, USA, v.39, n.1, p.50–55, Dec. 2008.
VIEIRA, D. M. Sobre a interdependencia da recomendacao de conteúdo e do desempenho
da rede. 2013. Dissertação (Mestrado em Ciência da Computação) — Universidade Federal do
Rio de Janeiro, UFRJ.
VOGELS, W. A head in the clouds - the power of infrastructure as a service. First workshop
on Cloud Computing and in Applications (CCA 2008), [S.l.], 2008.
YAO, Y. Y. Measuring Retrieval Effectiveness Based on User Preference of Documents. J. Am.
Soc. Inf. Sci., New York, NY, USA, v.46, n.2, p.133–145, Mar. 1995.
YU, Z.; ZHOU, X. TV3P: an adaptive assistant for personalized tv. Consumer Electronics,
IEEE Transactions on, [S.l.], v.50, n.1, p.393–399, 2004.
ZENG, W. et al. Research on cloud storage architecture and key technologies. In:
INTERNATIONAL CONFERENCE ON INTERACTION SCIENCES: INFORMATION
TECHNOLOGY, CULTURE AND HUMAN, 2., New York, NY, USA. Proceedings. . . ACM,
2009. p.1044–1048. (ICIS ’09).
ZHANG, Z. et al. Improving Augmented Reality Using Recommender Systems. In: ACM
CONFERENCE ON RECOMMENDER SYSTEMS, 7., New York, NY, USA. Proceedings. . .
ACM, 2013. p.173–176. (RecSys ’13).