Ricardo Batista Rodrigues



Documentos relacionados
Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores

A computação na nuvem é um novo modelo de computação que permite ao usuário final acessar uma grande quantidade de aplicações e serviços em qualquer

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V

Infraestrutura: devo usar a nuvem? Prof. Artur Clayton Jovanelli

SISTEMAS DISTRIBUÍDOS

Núvem Pública, Privada ou Híbrida, qual adotar?

Processos Técnicos - Aulas 4 e 5

Armazenamento em nuvem é feito em serviços que poderão ser acessados de diferentes lugares, a qualquer momento e utilizando diferentes dispositivos,

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

Introdução a Computação nas Nuvens

Instituto de Educação Tecnológica Pós-graduação Gestão em Tecnologia da Informação - Turma nº 25 08/04/2015. Computação em Nuvem

Introdução à Computação

ANÁLISE COMPARATIVA ENTRE APLICAÇÕES GRATUITAS EM NUVEM

Administração de Sistemas de Informação Gerenciais

Fernando Seabra Chirigati. Universidade Federal do Rio de Janeiro EEL879 - Redes de Computadores II Professores Luís Henrique Costa e Otto Duarte

Engenharia de Software III

Multiplexador. Permitem que vários equipamentos compartilhem um único canal de comunicação

Proposta de Avaliação de Empresas para o uso do SAAS

Novas Tecnologias no Ensino de Física: discutindo o processo de elaboração de um blog para divulgação científica

Disciplina de Banco de Dados Introdução

CLOUD. tendências CLOUD. entendendo e contratando assertivamente. Agosto/2012 INFORMATIVO TECNOLÓGICO DA PRODESP EDIÇÃO 02

Segurança da Informação

No mundo atual, globalizado e competitivo, as organizações têm buscado cada vez mais, meios de se destacar no mercado. Uma estratégia para o

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

COMPUTADORES NAS EMPRESAS Cloud Computing Prof. Reginaldo Brito

Relatório de Progresso

FATEC Cruzeiro José da Silva. Ferramenta CRM como estratégia de negócios

MRP II. Planejamento e Controle da Produção 3 professor Muris Lage Junior

Escolha seu serviço Cloud O melhor do Cloud

ADM041 / EPR806 Sistemas de Informação

Computação em Nuvem. Alunos: Allan e Clayton

GIS Cloud na Prática. Fabiano Cucolo 26/08/2015

1

Instituto de Educação Tecnológica Pós-graduação Gestão e Tecnologia da Informação - Turma 25 20/03/2015. Big Data Analytics:

Solitaire Interglobal

ÍNDICE O QUE É... 2 COMO FUNCIONA Acervo Meus Livros Livros em destaque Fórum Notícias Ajuda Suporte...

SERVIÇO DE ANÁLISE DE REDES DE TELECOMUNICAÇÕES APLICABILIDADE PARA CALL-CENTERS VISÃO DA EMPRESA

METODOLOGIA PARA ANÁLISE DE DESEMPENHO

Soluções em. Cloud Computing. Midia Indoor. para

Firewall. Alunos: Hélio Cândido Andersson Sales

CONCEITOS E APLICAÇÕES DA COMPUTAÇÃO EM NUVEM

5 Mecanismo de seleção de componentes

Planejamento Estratégico de TI. Felipe Pontes

1 INTRODUÇÃO Internet Engineering Task Force (IETF) Mobile IP

Thalita Moraes PPGI Novembro 2007

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

PARANÁ GOVERNO DO ESTADO

Simple Storage. Storage Orientado ao objeto: Armazenamento de arquivos com a segurança e a economia que sua empresa precisa

Participação Critérios de participação - Elegibilidade Procedimento para participar da chamada: Número de propostas/aplicações

Computação nas Nuvens

2 Diagrama de Caso de Uso

Apresentação. Vitae Tec Tecnologia a Serviço da Vida!

Gestão do Conhecimento A Chave para o Sucesso Empresarial. José Renato Sátiro Santiago Jr.

ABCEducatio entrevista Sílvio Bock

João Víctor Rocon Maia Engenharia de Computação - UFES

Alexandre Malveira, Wolflan Camilo

Introdução ao EBSCOhost 2.0

DAS Inteligência Artificial Aplicada à Controle de Processos e Automação Industrial

Programa de Pós-Graduação em Comunicação e Cultura Contemporâneas. Grupo de Pesquisa em Interação, Tecnologias Digitais e Sociedade - GITS

SISTEMAS DISTRIBUÍDOS

Plataformas de BI Qual é a mais adequada para o meu negócio?

Mídias sociais como apoio aos negócios B2C

Fundamentos de Sistemas de Informação Sistemas de Informação

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?

Computação em Nuvens. Professor: Dr. Rogério Vargas 2015/1

Admistração de Redes de Computadores (ARC)

Uma aplicacação de privacidade no gerenciamento de identidades em nuvem com uapprove

Rivolta Cloud Backup

Profissionais de Alta Performance

COMPUTAÇÃO EM NUVEM: UM FUTURO PRESENTE

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

TRIBUTAÇÃO NA NUVEM. Tax Friday 21 de outubro de 2011 AMCHAM - RJ

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

3 SCS: Sistema de Componentes de Software

ISO/IEC 12207: Gerência de Configuração

UNIVERSIDADE FEDERAL DE SANTA CATARINA GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA DATA MINING EM VÍDEOS

Software livre: solução ou problema? Autores: Prates, C. F., Souza, C. H. F. B., Castro, C. V., Vilela, D. R. G., Almeida, N. M

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

PÚBLICA, PRIVADA OU HÍBRIDA: QUAL É A MELHOR NUVEM PARA SEUS APLICATIVOS?

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.

Introdução ao Modelos de Duas Camadas Cliente Servidor

Virtualização de Sistemas Operacionais

Perícia forense computacional aplicada a dispositivos de armazenamento e smartphones android

Profs. Deja e Andrei

IW10. Rev.: 02. Especificações Técnicas

Palavras-chave: i3geo, gvsig, Mapserver, integração, plugin. Contato: ou

Sugestão de Roteiro para Elaboração de Monografia de TCC

Orientação a Objetos

INSTITUTO FLORENCE DE ENSINO COORDENAÇÃO DE PÓS-GRADUAÇÃO CURSO DE PÓS-GRADUAÇÃO EM (TÍTULO DO PROJETO) Acadêmico: Orientador:

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

GT Computação Colaborativa (P2P)

Anexo I Formulário para Proposta

Transcrição:

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

Catalogação na fonte Bibliotecária Joana D Arc L. Salvador, CRB 4-572 Rodrigues, Ricardo Batista. RecCloud: um modelo de recomendação de arquivos para sistemas de armazenamento em nuvem / Ricardo Batista Rodrigues. Recife: O Autor, 2014. 73 f.: fig., tab. Orientador: Vinicius Cardoso Garcia. Dissertação (Mestrado) - Universidade Federal de Pernambuco. CIN. Ciência da Computação, 2014. Inclui referências. 1. Engenharia de software. 2. Inteligência artificial. 3. Computação em nuvem. I. Garcia, Vinicius Cardoso (orientador). II. Título. 005.1 (22. ed.) MEI 2014-99

Dissertação de Mestrado apresentada por Ricardo Batista Rodrigues à Pós-Graduaçã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 para Sistemas de Armazenamento em Nuvem orientada pelo Prof. Vinicius Cardoso Garcia e aprovada pela Banca Examinadora formada pelos professores: Profa. 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 Visto e permitida à impressão. Recife, 27 de fevereiro de 2014. Profa. Edna Natividade da Silva Barros Coordenadora da Pós-Graduação em Ciência da Computação do Centro de Informática da Universidade Federal de Pernambuco.

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 1.1 Expectativa de crescimento da quantidade de dados digitais gerados GANTZ; REINSEL (2011).................................. 14 2.1 Arquitetura em camadas para computação em nuvem MACHADO (2013)... 20 2.2 Modelo do Processo de Recomendação...................... 24 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)..... 25 2.4 Lista dos livros mais vendidos do site Submarino SUBMARINO. DISPONíVEL EM: <HTTP://WWW.SUBMARINO.COM.BR/> (2013)............ 26 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). 27 2.6 Recomendação gerada pelo sistema do IMDB a partir do filme As Good As It Gets SAMPAIO (2006).............................. 27 3.1 Processo de Recomendação Baseado em Conteúdo................ 45 3.2 Processo de Recomendação RecCloud....................... 46 3.3 Arquitetura do JXTA HEISS (2005)........................ 47 3.4 Arquitetura do Ustore SILVA A.; MEIRA (2012)................. 47 3.5 Índice invertido no Apache Lucene HATCHER; GOSPODNETIC (2004).... 49 3.6 Arquitetura do Apache Lucene HATCHER; GOSPODNETIC (2004)...... 50 3.7 Arquitetura do Apache Tika MATTMANN; ZITTING (2011).......... 51 3.8 Processo do Critério Disponibilidade....................... 52 4.1 Gráfico comparando a taxa de precisão variando a quantidade de artigos recomendados para cada ranque de recomendação gerado............... 59 4.2 Gráfico comparando a taxa de precisão nos 3 (níveis) de variação na quantidade de artigos recomendados.............................. 59 4.3 Gráfico comparando a taxa de recall variando a quantidade de artigos recomendados para cada ranque de recomendação gerado................. 60 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................. 60 4.5 Gráfico comparando a taxa de F-Measure variando a quantidade de artigos recomendados para cada ranque de recomendação gerado............ 61 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................ 61 4.7 Tempo gasto no download dos arquivos recomendados pelo modelo RecCloud. 62

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

Lista de Tabelas 3.1 Pesos dos Critérios................................ 41 3.2 Exemplo do Cálculo de Recomendação do Modelo RecCloud.......... 44 3.3 Arquivos Recomendados............................. 44 4.1 Níveis utilizados para avaliar as métricas definidas............... 58

Lista de Acrônimos CB Content-based.......................................................... 15 CF Filtragem Colaborativa...................................................15 DTV Televisão Digital........................................................ 32 IAAS Infrastructure-as-a-Service............................................... 19 JDK Java Development Kit....................................................18 SAAS Software-as-a-Service....................................................20 SR Sistemas de Recomendação.............................................. 15 SRN Sistema de Recomendação em Nuvem..................................... 17

Sumário 1 Introdução 14 1.1 Contextualização e Motivação.......................... 14 1.2 Definição do Problema.............................. 16 1.3 Solução Proposta................................. 17 1.4 Estrutura deste Documento............................ 18 2 Fundamentação teórica e Trabalhos Relacionados 19 2.1 Computação em Nuvem............................. 19 2.1.1 Armazenamento de Dados em Nuvem.................. 22 2.2 Sistemas de Recomendação............................ 23 2.2.1 Tarefas de um Sistema de Recomendação................ 25 2.3 Técnicas de Sistemas de Recomendação..................... 27 2.3.1 Sistemas de Recomendação por Filtragem Colaborativa......... 28 2.3.2 Sistemas de Recomendação Baseados em Conteúdo........... 30 2.4 Trabalhos Relacionados.............................. 30 2.4.1 Sistemas de Recomendação de Arquivos................. 31 2.4.2 Sistemas de Recomendação em Nuvem................. 31 2.4.3 Sistemas de Armazenamento em Nuvem................ 34 2.5 Considerações Finais............................... 35 3 RecCloud 37 3.1 Proposta...................................... 37 3.2 O Modelo de Recomendação........................... 38 3.2.1 Pesos dos Critérios............................ 41 3.2.2 Cálculo de Recomendação........................ 43 3.2.3 Exemplo do Cálculo de Recomendação................. 43 3.2.4 O Processo de Recomendação...................... 45 3.3 Detalhes da Implementação............................ 45 3.3.1 Ustore................................... 46 3.3.2 Arquitetura do Ustore.......................... 46 3.3.3 Sistema de Recomendação do Ustore.................. 48 3.3.4 Implementação dos Critérios....................... 50 3.4 Considerações Finais............................... 53

4 Avaliação 54 4.1 Testes....................................... 54 4.2 Coleção de Dados................................. 55 4.3 Julgamento de Relevâncias............................ 55 4.4 Ambiente de Teste................................ 55 4.5 Métricas de Avaliação............................... 56 4.6 Cenários de Avaliação.............................. 58 4.7 Resultados..................................... 58 4.7.1 Resultados do Cenário I......................... 58 4.7.2 Resultados do Cenário II......................... 62 4.8 Discussão dos Resultados............................. 64 4.9 Possíveis Ameaças à Validade.......................... 65 4.10 Considerações Finais............................... 66 5 Conclusões e Trabalhos Futuros 67 5.1 Contribuições................................... 67 5.2 Trabalhos Futuros................................. 68 Referências 70

14 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 exabytes 2 ; 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 2 Aproximadamente, 1.000.000.000 GB 3 Aproximadamente, 1.000.000.000.000 GB

15 1.1. CONTEXTUALIZAÇÃO E MOTIVAÇÃ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

16 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, Dropbox 5, SugarSync 6, 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 5 https://www.dropbox.com/ Acessado em: 07/09/2013 6 https://www.sugarsync.com/googtrans(en pt) Acessado em: 07/09/2013

17 1.3. SOLUÇÃO PROPOSTA 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 Ustore 7. 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/

18 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 FOUNDA- TION - 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/

19 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 2 http://aws.amazon.com/ec2/ Acessado em: 16/09/2013

20 2.1. COMPUTAÇÃO EM NUVEM 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/ Acessado em: 16/09/2013 4 http://www.dropbox.com Acessado em: 18/09/2013

21 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

22 2.1. COMPUTAÇÃO EM NUVEM 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, DropBox 5, Box 6, Mozy Review 7, JustCloud Review 8 e Ustore 9, 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 6 https://www.box.com/ 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

23 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).

24 2.2. SISTEMAS DE RECOMENDAÇÃO 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

25 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;

26 2.2. SISTEMAS DE RECOMENDAÇÃO 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 Livre 10, Amazon 11 e Netshoes 12, 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 11 http://www.amazon.com.br/ Acesso em 21/01/2014 12 http://www.netshoes.com.br/acesso em 21/01/2014

27 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).

28 2.3. TÉCNICAS DE SISTEMAS DE RECOMENDAÇÃO 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

29 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.

30 2.4. TRABALHOS RELACIONADOS 2.3.2 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.

31 2.4. TRABALHOS RELACIONADOS 2.4.1 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.

32 2.4. 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

33 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,

34 2.4. 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 Google 13 e Amazon 14 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 Drive 15 e Amazon S3 16 (Simple Storage Systems), não dispõem desta tecnologia para auxiliar os usuários na filtragem de conteúdo relevante. 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 14 http://www.amazon.com/, 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

35 2.5. CONSIDERAÇÕES FINAIS Outros sistemas de armazenamento em nuvem como Dropbox 17, SugarSync 18, Wuala 19, icloud 20, ZipCloud 21, 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 Library 22, IEEE Xplore Digital Library 23, Scopus 24 e Science Direct 25, 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 18 http://www.sugarsync.com/, 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

36 2.5. CONSIDERAÇÕES FINAIS 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.

37 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.

38 3.2. O MODELO DE RECOMENDAÇÃO 3.2 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 A B 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.

39 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: Dp = Dh ( ) 1 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

40 3.2. O MODELO DE RECOMENDAÇÃO representa a media global de taxa de downloads apresentada pela Akamai 1. Este critério é calculado pela Equação 3.3: T d = ns ( ) 1 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: S = T ( ) 1 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 1 n, 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

41 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: R = Qd ( ) 1 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 1 n, 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 Peso Similaridade 4 Disponibilidade 2 Taxa de Download 2 Tamanho do Arquivo 1 Popularidade do Arquivo 1

42 3.2. O MODELO DE RECOMENDAÇÃO 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.

43 3.2. O MODELO DE RECOMENDAÇÃO 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. 3.2.2 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: RecScore = (((Dp ωd) (T d ωt) (Ta ωa)) ((S ωs) + (R ωr))) ( ) 1 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 ( 1 n ), 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

44 3.2. O MODELO DE RECOMENDAÇÃO 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 Dp Td S Sd R Score Arquivo 02 1.0 1.0 0.5 1.0 1.0 0.8 Arquivo 03 0.9 1.0 1.0 0.9 0.6 0.5 Arquivo 04 0.0 0.6 0.4 0.6 0.0 0.0 Arquivo 05 0.5 0.2 0.2 0.4 0.8 0.0 Arquivo 06 0.4 0.5 0.1 0.0 0.4 0.0 Arquivo 07 0.2 0.7 0.3 0.2 0.5 0.0 Arquivo 08 0.6 0.9 0.3 0.8 0.0 0.2 Arquivo 09 0.9 0.1 0.0 0.0 0.7 0.0 Arquivo 10 1.0 1.0 1.0 1.0 1.0 0.7 Arquivo 11 1.0 1.0 0.0 1.0 1.0 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 Peso Arquivo 11 1 Arquivo 02 0.8 Arquivo 10 0.7 Arquivo 03 0.5 Arquivo 08 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.

45 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

46 3.3. DETALHES DA IMPLEMENTAÇÃO 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 JXTA 2. 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

47 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

48 3.3. DETALHES DA IMPLEMENTAÇÃO 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). 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). 3.3.3 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.6 3 e o Apache Tika versão 1.2 4. 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/ Acesso em 15/03/2014 4 http://tika.apache.org/ Acesso em 15/03/2014

49 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

50 3.3. DETALHES DA IMPLEMENTAÇÃO 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 POI 5 e a PDFBox 6, 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 6 http://pdfbox.apache.org/ Acessado em 15/03/2014

51 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: Md = n i=0 Dh n 3.8 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.

52 3.3. DETALHES DA IMPLEMENTAÇÃO 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. Equação 3.6. Após calculado o valor de todos os critérios, o SR calcula o score de recomendação pela

53 3.4. CONSIDERAÇÕES FINAIS 3.4 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.

54 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.

55 4.2. COLEÇÃO DE DADOS 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 BDBComp 1 e ACM Digital Lybrari 2. 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/

56 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: Preciso = {arquivos relevantes} {arquivos recomendados} {arquivos recomendados} 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: Recall = {arquivos relevantes} {arquivos recomendados} {arquivos relevantes} 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

57 4.5. MÉTRICAS DE 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. T = n i=0 T c n i=0 T n 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 n i=0 T n pela soma do tempo gasto no download de todas as recomendações do modelo utilizado para comparação de resultado n i=0 T c. É Calculada a média do tempo economizado no download por recomendação, dado pela Equação 4.5. T = n i=0 T c n i=0 T n Nrec 4.5 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 n i=0 T n subtraido pelo resultado da soma do tempo gasto no download de todos os arquivos recomendados do modelo utilizado para avaliação n i=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.

58 4.6. CENÁRIOS DE AVALIAÇÃO 4.6 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 Níveis Quantidade de artigos recomendados 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. 4.7 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

59 4.7. RESULTADOS 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

60 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

61 4.7. RESULTADOS 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).

62 4.7. RESULTADOS 4.7.2 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,

63 4.7. RESULTADOS 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.

64 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.