big social data: princípios sobre coleta, tratamento e análise de

Click here to load reader

Post on 06-Jan-2017

214 views

Category:

Documents

1 download

Embed Size (px)

TRANSCRIPT

  • Captulo

    1

    Big Social Data: Princpios sobre Coleta,

    Tratamento e Anlise de Dados Sociais

    Tiago Cruz Frana, Fabrcio Firmino de Faria, Fabio Medeiros Rangel,

    Claudio Miceli de Farias e Jonice Oliveira

    Abstract

    Online social networks have become a popular mean of sharing and disseminating data.

    From these data one can extract information about patterns of interpersonal interactions

    and opinions, aiding in the understanding of a phenomenon, an event prediction or

    decision making. Nowadays, the studies and techniques for social network analysis need

    to work with the increase of variety and volume of data besides quickly processing them.

    Therefore, new approaches are required to be employed in those analyzes. Data that have

    such characteristics (volume, variety and velocity) are called Big Data. This short course

    aims to present an approach for analyzing Big Data in online social networks (Social Big

    Data), including the collection and processing of large volumes of social data mining and

    analysis principles of social interactions.

    Resumo

    Os dados das redes sociais online podem ser usados para extrair informaes sobre

    padres de interaes interpessoais e opinies. Esses dados podem auxiliar no

    entendimento de fenmenos, na previso de um evento ou na tomada de decises. Com a

    ampla adoo dessas redes, esses dados aumentaram em volume, variedade e precisam

    de processamento rpido, exigindo, por esse motivo, que novas abordagens no

    tratamento sejam empregadas. Aos dados que possuem tais caractersticas (volume,

    variedade e necessidade de velocidade em seu tratamento), chamamo-los de Big Data.

    Este minicurso visa apresentar uma abordagem de anlise de Big Data em redes sociais

    online (Big Social Data), incluindo a coleta e tratamento de grande volume de dados

    sociais, minerao e princpios de anlise de interaes sociais.

    Topicos em Gerenciamento de Dados e Informacoes 2014 SBC, 1a ed. ISBN 978-85-7669-290-4

    cap:1

    8

  • 1.1. Introduo

    A redescoberta da importncia da anlise de redes sociais se deu pelo uso intensivo das

    mdias sociais. Nesta seo entenderemos os conceitos bsicos de redes sociais,

    aplicaes da anlise de redes sociais e como a coleta e tratamento de dados das redes

    sociais online (ou mdias sociais) podem ser caracterizados como um problema de Big

    Data.

    1.1.1 Conceitos de Redes Sociais e a Aplicabilidade da Anlise de Redes Sociais

    Por definio, uma rede social um conjunto de atores que pode possuir relacionamentos

    uns com os outros [Wasserman 1994].

    Redes Sociais so como um organismo vivo, onde cada clula uma pessoa.

    Como em todo organismo, vemos toda a sorte de clulas: as que permanecem nele por

    alguns dias, outras por alguns meses e aquelas que perduram por anos. Porm,

    invariavelmente, essas clulas acabam por deixar de existir, dando lugar a clulas novas

    ou muitas vezes nem isso. Se sairmos do campo metafrico e buscarmos algo mais

    concreto, do nosso dia-a-dia, podemos observar o mesmo padro: pessoas que ficam

    desempregadas, se aposentam, so promovidas, empresas que se fundem, falecimentos,

    novas amizades, namoros e muito mais.

    Em nosso dia-a-dia no faltam exemplos prticos de redes sociais: nossa famlia,

    nossos amigos de faculdade, de academia, de trabalho ou at mesmo encontros casuais,

    imprevistos. Eles podem ser vistos e caracterizados como a criao de um relacionamento

    entre dois indivduos (ns), ligando assim as redes j existentes de ambos. Tal

    relacionamento pode nunca mais ser nutrido ou, como em alguns casos, vir a se tornar

    algo mais forte do que todos os relacionamentos j existentes. A estrutura que advm

    dessas inmeras relaes, normalmente, se mostra complexa.

    A anlise das redes sociais feita do todo para a parte; da estrutura para a relao

    do indivduo; do comportamento para a atitude. Para isto estudada a rede como um todo,

    usando uma viso sociocntrica (com todos os elos contendo relaes especficas em uma

    populao definida) ou como redes pessoais, em uma viso egocntrica (com os elos que

    pessoas especficas possuem, bem como suas comunidades pessoais) [Hanneman 2005].

    Podemos citar alguns cenrios onde aplicada a anlise de redes sociais. No caso

    de uma empresa, por exemplo, importante saber como os seus funcionrios se

    organizam, pois assim possvel evitar problemas caractersticos que dificultam a

    disseminao de conhecimento [Wasserman 1994]. No campo da Cincia, as redes sociais

    podem auxiliar no estudo de propagaes de endemias ou mesmo de epidemias [Pastor-

    Satorras 2001; Mikolajczyk 2008], bem como serem utilizadas para entender

    [Albuquerque 2014; Stroele 2011] ou melhorar a formao de grupos [Souza et al. 2011;

    Monclar et al. 2012; Melo e Oliveira 2014; Zudio et al. 2014]. Como ttica de propaganda

    e marketing podemos us-las como uma ferramenta para ajudar a propagar uma

    determinada marca ou conceito, podendo servir, tambm, para o estudo de um pblico-

    alvo relacionado, verificando em quais ns aquelas informaes morrem e em quais elas

    seguem em frente [Kempe 2003; Santos e Oliveira 2014]. Alm disso, podemos

    aproveitar uma das grandes questes do incio do sculo XXI desde os eventos de 11 de

    setembro de 2001, os atentados, para pensar na deteco e identificao de terroristas.

    Topicos em Gerenciamento de Dados e Informacoes 2014 SBC, 1a ed. ISBN 978-85-7669-290-4

    9

  • Pode-se realizar uma verificao de pessoas com as quais os terroristas costumam se

    relacionar, traando um padro de redes que auxilie futuras investigaes [Svenson

    2006]. Outra aplicao advm do levantamento de relacionamentos entre Weblogs1 que

    realizam propaganda de ideais terroristas, montando a respectiva rede social representada

    por eles, como visto em [Yang 2007].

    A tendncia de pessoas se unirem e formarem grupos uma caracterstica de

    qualquer sociedade [Castells 2000]. Esse comportamento retratado, nos dias atuais,

    atravs do avano das mdias sociais e comunidades online que evidenciam o poder de

    unir usurios ao redor do mundo. Contedos gerados por seus usurios atingiram alto

    grau de alcance atravs de seus comentrios, relatos de acontecimentos quase em tempo

    real, experincias, opinies, crticas e recomendaes que so lidos, compartilhados e

    discutidos, de forma quase instantnea, em diversas plataformas disponveis na Web.

    1.1.2 Redes Sociais no Mundo Digital: Redes Sociais Online

    O crescimento de usurios de telefones celulares e tablets com acesso rede permite que

    as pessoas permaneam conectadas ao longo do dia, aumentando a quantidade de

    informaes disponibilizadas na Internet. De acordo com o relatrio do instituto de

    pesquisa tecnolgica Cozza et al. [2011], 428 milhes de dispositivos mveis, incluindo

    celulares, smartphones e tablets foram vendidos ao redor do mundo no primeiro semestre

    do ano de 2011 com 19% por cento de crescimento em relao ao ano anterior. Grande

    parte do acesso e disponibilizao do contedo se deve popularizao das mdias

    sociais.

    Mdias Sociais um tipo de mdia online que permite que usurios ao redor do

    mundo se conectem, troquem experincias e compartilhem contedo de forma instantnea

    atravs da Internet. Elas so fruto do processo de socializao da informao nos ltimos

    anos representado pela extenso do dilogo e do modo como as informaes passaram a

    ser organizadas atravs da Web.

    As mdias sociais e consequentemente o crescimento do seu uso pela populao

    implicaram numa mudana de paradigma em relao disseminao da informao. As

    grandes mdias como jornais, revistas e portais passaram a no ser os mais importantes

    provedores de informaes para a populao, ou seja, o modelo de disseminao um

    para muitos foi sendo substitudo pelo modelo muito para muitos [Stempel 2000]. As

    mdias sociais deram espao para que usurios gerassem e compartilhassem contedo de

    forma expressiva, deixando de lado o comportamento passivo de absoro da informao

    que possuam, caracterizando uma forma de democratizao na gerao de contedo.

    Segundo Solis (2007), o termo mdia social descreve tecnologias e prticas online

    que pessoas usam para compartilhar opinies, experincias e perspectivas, podendo se

    manifestar em diferentes formatos incluindo texto, imagens, udio e vdeo. A expanso

    dessas mdias tornou mais simples encontrar amigos, compartilhar ideias e opinies e

    obter informaes, ou seja, uma democratizao do contedo em que todos participam na

    construo de uma comunidade virtual.

    Existem diversos tipos de mdias sociais com os mais diferentes focos. As

    categorias mais conhecidas so:

    1 Weblogs so pginas pessoais, ou sites sem fim lucrativos, dedicados a trazer informaes sobre um determinado tema [Blood 2002].

    Topicos em Gerenciamento de Dados e Informacoes 2014 SBC, 1a ed. ISBN 978-85-7669-290-4

    10

  • Colaborao: est relacionada s redes sociais colaborativas, ou seja, sites em

    que importante a interao de diferentes usurios compartilhando informaes a fim de

    atingir um objetivo comum. Como exemplo destacam-se a Wikipedia, Yelp e Digg.

    Comunicao: est relacionada ao fenmeno da conversao entre pessoas e o

    modo como essa conversa percebida por seus participantes, que podem participar de

    forma direta, atravs da realizao de comentrios e produo de contedo, ou indireta,

    compartilhando e divulgando contedo e, consequentemente, ajudando a promover

    discusses. Podem-se citar, neste contexto, os blogs e microblogs, as redes sociais online

    (RSO) e os fruns. Como exemplo, possvel mencionar WordPress2, Twitter3,

    Facebook4 e GoogleGroups5, respectivamente.

    Multimdia: refere-se aos componentes audiovisuais que ficam alm do texto

    puro e simples como fotos, vdeos, podcasts e msicas. Alguns exemplos dessas mdias,

    respectivamente, so Flickr6, YouTube7, JustinTV8 e Lastfm9.

    Entretenimento: diz respeito aos contedos que geram um mundo virtual

    favorecendo o desenvolvimento da gamificao, ou seja, ambientes focados em games

    online ou ainda atividades que podem ser transformadas em algum tipo de competio,

    nos quais seus usurios se juntam com o objetivo de jogarem juntos ou compartilharem

    informaes a respeito do tema. Como exemplo podem ser citados o Second Life10 e

    TvTag11.

    A popularidade dessas plataformas pode ser evidenciada atravs da capacidade

    que possuem de produzir enormes volumes de contedo. Conforme as estatsticas do

    Facebook [Statistics Facebook 2011], este possui mais de 800 milhes de usurios ativos

    e 50% destes usurios acessam o site todo dia. De acordo com o Compete12, o Twitter

    possua em Setembro de 2012 cerca de 42 milhes de usurios nicos registrados

    representando o vigsimo primeiro site da Internet em nmero de visitantes nicos e

    segundo Dale [2007], o YouTube concentra 20% de todo o trfego de dados da Internet.

    A monitorao destas mdias sociais tornou-se um problema de Big Data, onde

    precisamos tratar um volume grande de dados, variedade (j que tais mdias apresentam

    caractersticas distintas no que se relaciona estrutura, dinmica, uso e modelagem) e

    necessidade de velocidade em seu tratamento para que diferentes anlises sejam viveis.

    1.2 Redes Sociais Online: Coleta de dados e Tcnicas de Anlise

    Nesta seo, apresentamos os princpios da coleta dos dados e a anlise das redes sociais

    extradas a partir destes dados.

    2 https://wordpress.com 3 http://www.twitter.com 4 https://www.facebook.com 5 https://groups.google.com 6 https://www.flickr.com/ 7 https://www.youtube.com/ 8 http://www.justin.tv/ 9 http://www.lastfm.com.br/ 10 http://secondlife.com/ 11 http://tvtag.com/ 12 http://www.compete.com

    Topicos em Gerenciamento de Dados e Informacoes 2014 SBC, 1a ed. ISBN 978-85-7669-290-4

    11

  • 1.2.1 A informao dos dados coletados na Web

    A Web composta por uma grande quantidade de dados que no possuem uma estrutura

    definida ou que no possuem uma semntica explcita. Por exemplo, uma pgina HTML

    possui uma estrutura, mas esta estrutura pouco atribui informaes sobre os dados

    presentes na pgina. Sendo assim, ao encontrar uma tag em um determinado

    ponto do arquivo HTML possvel afirmar que se trata de uma imagem, porm pouco se

    pode afirmar sobre o contedo desta imagem. Ainda que a tag possua um

    atributo que seja um texto relativo a essa imagem, textos so dados no estruturados e

    necessrio aplicar tcnicas em minerao de dados para extrair informaes do texto.

    Segundo Chen (2001), estima-se que 80% de todo contedo mundial online so

    textos. Considerando que dados no estruturados englobam textos, imagens, vdeos e

    msicas, pode-se perceber que realmente grande parte da Web composta de dados no

    estruturados.

    Devido necessidade de aperfeioar os mecanismos de busca e utilizar a Web

    como plataforma de integrao, por meio de servios, h uma busca crescente em

    estruturar os dados. Essa estruturao, entretanto, deve ter uma flexibilidade dado a

    prpria natureza da Web em que h uma vasta variedade de dados. Com base nesse

    problema, alguns padres foram criados. Entre eles, os padres XML e JSON so os mais

    utilizados. Entretanto, nada impede de que outros padres sejam criados ou aplicados.

    Essa diversidade cria um problema no processamento dos dados, pois necessrio criar

    uma aplicao para cada padro de representao. Alm disso, um mesmo padro de

    representao pode estruturar o mesmo conjunto de dados de diferentes formas, como

    ilustrado na Figura 1.1.

    1.2.2 Coleta de Dados: Crawler de pginas e APIs de RSO

    Atualmente, as principais redes sociais online (RSO) provem interfaces ou servios para

    a captura parcial ou total de seus dados. Nesta seo, comentaremos os principais desafios

    e recursos para se trabalhar com as principais (RSO) existentes atualmente.

    1.2.2.1 Coletando Dados de Pginas Estticas e Dinmicas da Web: Ferramentas e Desafios

    Considera-se dinmica uma pgina cuja atualizao dependa de uma aplicao Web,

    enquanto pginas estticas costumam no ter seu contedo modificado. Quando se faz

    necessrio coletar dados de pginas, sejam estticas ou dinmicas, necessrio entender

    a estrutura dos dados contidos nessa pgina a fim de desenvolver um crawler capaz de

    buscar e armazenar esses dados. Quando a pgina no possui API de consumo ou a API

    possui limites indesejados, possvel utilizar ferramentas para capturar as pginas e

    extrair os dados sem a utilizao de APIs. Um exemplo dessas ferramentas o Node.js.

    O Node.js uma plataforma construda na mquina virtual Javascript do Google para a

    fcil construo de aplicaes de rede rpidas e escalveis [Node 2014].

    Topicos em Gerenciamento de Dados e Informacoes 2014 SBC, 1a ed. ISBN 978-85-7669-290-4

    12

  • Figura 1.1. Exemplos de conjuntos de dados em diferentes representaes.

    1.2.2.2 Coletando Dados do Twitter, Facebook, YouTube e Foursquare

    Normalmente, h duas formas diferentes de coleta de dados das redes sociais online. A

    primeira forma consiste em determinar termos e coletar por citaes destes termos no

    passado. Desta forma, existe a possibilidade de restries na obteno de dados antigos,

    pois normalmente h um perodo de tempo vivel para a coleta dos dados. A segunda se

    baseia em um conceito de streaming, onde a aplicao criada funciona como um

    ouvinte da rede e captura os dados medida que estes surgem.

    Twitter

    O Twitter uma rede social online que possui duas APIs diferentes para a captura dos

    seus dados: REST API e Streaming API. Para a utilizao de ambas APIs necessrio

    inicialmente que o usurio tenha uma conta no Twitter. Acessando a pgina

    https://dev.twitter.com, possvel autenticar-se com a conta do Twitter e cadastrar uma

    aplicao. Aps o cadastro da aplicao necessrio gerar o Access Token da mesma.

    Importante destacar que, tanto o API Secret como o Access Token Secret da sua aplicao

    no devem ser divulgados por questes de segurana. Essas chaves sero utilizadas na

    autenticao da sua aplicao de captura de dados.

    O Twitter trabalha com o padro de arquivo JSON. Todos os dados so recebidos

    nesse formato. Um exemplo da utilizao do Streaming API pode ser visto na Figura 1.2.

    Os programas usados como exemplo de crawlers para o Twitter foram codificados

    em Python 2.7. No primeiro exemplo (Figura 1.3), foram utilizadas as bibliotecas

    Auth1Session e json. A Auth1Session responsvel pelo estabelecimento da

    conexo com o Twitter e a biblioteca JSON responsvel por transformar o texto

    recebido em um objeto Python cuja estrutura no formato JSON. Assim, possvel

    manipular o arquivo JSON. Um exemplo utilizando a REST API do Twitter pode ser visto

    na Figura 1.3.

    Topicos em Gerenciamento de Dados e Informacoes 2014 SBC, 1a ed. ISBN 978-85-7669-290-4

    13

  • import json

    from requests_oauthlib import OAuth1Session

    key = "{sua API key}"

    secret = "{sua API secret}"

    token = "{seu Acess Token}"

    token_secret = "{seu Acess Token Secret}"

    requests = OAuth1Session(key, secret, token, token_secret)

    r = requests.post('https://stream.twitter.com/1/statuses/filter.json',

    data={'track': 'bom dia'},

    stream=True)

    for line in r.iter_lines():

    if line:

    print json.loads(line) # tweet retornado

    Figura 1.2. Exemplo usando a Streaming API.

    import oauth2 as oauth

    import json

    import time

    CONSUMER_KEY = "{sua API key}"

    CONSUMER_SECRET = "{sua API secret}"

    ACCESS_KEY = "{seu Acess Token}"

    ACCESS_SECRET = "{seu Acess Token Secret}"

    consumer = oauth.Consumer(key=CONSUMER_KEY, secret=CONSUMER_SECRET)

    access_token = oauth.Token(key=ACCESS_KEY, secret=ACCESS_SECRET)

    client = oauth.Client(consumer, access_token)

    q = 'israel' #termo a ser buscado

    url = "https://api.twitter.com/1.1/search/tweets.json?q="+str(q)+"&count=100"+"&lang=pt"

    response, data = client.request(URL, "GET")

    tweets = json.loads(data)

    for tweet in tweets['statuses']:

    print str(tweet)

    Figura 1.3. Exemplo usando a REST API.

    No cdigo apresentado na Figura 1.3, a varivel q representa a consulta buscada

    no Twitter. Neste caso, buscou-se pelo termo israel. A API retorna os 100 tweets mais

    recentes que possuem esse termo, que foi passado como parmetro na URL de requisio

    atravs do parmetro count igual a 100. Ainda sobre a consulta, a API retorna tweets

    com todos os termos presentes na string q separados por espaos. Ou seja, se q possui

    israel guerra, todos os tweets retornados possuiro as duas palavras. Exemplo: H

    guerra em Israel seria um possvel texto do tweet retornado.

    Utilizando a REST API, existem algumas restries impostas pelo Twitter. Ao

    que se sabe, o Twitter no permite que a API busque por tweets mais antigos do que 7

    Topicos em Gerenciamento de Dados e Informacoes 2014 SBC, 1a ed. ISBN 978-85-7669-290-4

    14

  • dias e ainda bloqueia a aplicao caso ultrapasse o nmero de requisies permitidas,

    sendo necessrio um intervalo de 15 minutos para que a aplicao seja desbloqueada.

    Facebook

    Uma das APIs de consumo disponibilizadas pelo Facebook se chama Graph API. Existe

    outra API chamada Public Feed API, porm esta possui acesso restrito a um conjunto de

    editores de mdia e seu uso requer aprovao prvia do Facebook [Facebook 2014].

    import httplib

    app_id = "{sua app id}"

    app_secret = "{seu app secret}"

    client_credentials = "{label para de identificao do cliente}"

    url =

    "/oauth/access_token?client_id="+app_id+"&client_secret="+app_secret+"&grant_type=client_credentials"

    conn = httplib.HTTPSConnection("graph.facebook.com")

    conn.request("GET", str(url))

    response = conn.getresponse()

    print response.read() #access token

    Figura 1.4. Exemplo usando a Graph API.

    Primeiramente, para utilizar a Graph API necessrio criar uma aplicao. Essa

    aplicao pode ser criada no site https://developers.facebook.com/ e ser vinculada a uma

    conta no Facebook. A segunda etapa consiste em gerar um access token para aquela

    sesso. Um exemplo, utlizando Python 2.7, de como adquirir o access token pode ser

    visto na Figura 1.4. Neste exemplo, utilizou-se a biblioteca httplib para executar a

    requisio.

    importante destacar que algumas requisies necessitam de um app access

    token e outros necessitam do user access token. Este ltimo deve ser criado no prprio

    site do Facebook atravs do endereo https://developers.facebook.com/tools

    /accesstoken/.

    Com o Graph API possvel buscar no Facebook por certos objetos que possuam

    um determinado termo. Esses objetos podem ser usurio, pginas, eventos, grupos e

    lugares. Porm, uma limitao da API que no possvel procurar por posts pblicos

    onde um determinado termo aparece. Entretanto, a busca por pginas e lugares requer um

    app access token, enquanto buscas pelos outros objetos utilizam o user access token.

    A Figura 1.5 mostra a utilizao do Graph API na busca por usurios com o termo

    Fabio, codificado utilizando Python 2.7.

    As requisies ao Facebook do tipo search retornam objetos no formato JSON.

    Topicos em Gerenciamento de Dados e Informacoes 2014 SBC, 1a ed. ISBN 978-85-7669-290-4

    15

  • import httplib

    user_access_token = "{seu user access token}"

    q = "Fabio"

    url_consulta = "/search?q="+str(q)+"&type=user&access_token="+str(user_access_token)

    conn = httplib.HTTPSConnection("graph.facebook.com")

    conn.request("GET", str(url_consulta))

    response = conn.getresponse()

    print response.read()

    Figura 1.5. Segundo exemplo usando a Graph API.

    Youtube

    A API do Youtube atual a verso 3.0. Nesta verso, possvel buscar por informaes

    de vdeos e canais com base nos seus ids. Entretanto, no possvel buscar por usurios

    que comentaram em um determinado vdeo ou mesmo por comentrios de um vdeo. Isso

    pode ser uma grande limitao quando se pensa em anlises utilizando o Youtube. Mesmo

    assim, dado um id de um determinado vdeo e requisies feitas em determinados

    intervalos de tempo, possvel conhecer a progresso de visualizaes de um vdeo e

    acompanhar sua divulgao em outra rede social, correlacionando esses dados e

    estudando a interatividade entre as redes.

    Para utilizar a API do youtube, necessrio a criao de uma aplicao na Google, no

    site https://console.developers.google.com/. Aps a criao, necessrio a ativao da

    API do Youtube v3.0. Para a consulta de dados de vdeos ou vdeos de um determinado

    canal, utiliza-se o protocolo HTTPS. Uma uri exemplo para uma consulta :

    https://www.googleapis.com/youtube/v3/videos?part=statistics&id=ZKugnwXU5_s&ke

    y={Key da sua aplicao}.

    Nesse caso, sero retornadas as estatsticas do vdeo cujo id foi passado como

    parmetro, no formato JSON. Mais informaes e exemplos de requisies esto

    disponveis em https://developers.google.com/youtube/v3/docs/.

    Foursquare

    O Foursquare pode ser definido como uma rede geossocial, onde seus usurios podem

    indicar onde se encontram ou procurar por outros usurios que estejam prximos

    geograficamente. A API de consumo do Foursquare permite buscas por uma determinada

    latitude e longitude a fim de retornar locais de interesse pblico daquela regio. No

    retorno das requisies possvel verificar a quantidade de check-in desses locais, alm

    da quantidade de pessoas que recentemente efetuaram um check-in naquele local. Alm

    desta busca, a API permite outra busca por tips (dicas), que tem como retorno dicas dos

    usurios sobre locais em uma determinada regio. A API pode ser acessada no site

    https://developer.foursquare.com e o usurio precisa criar uma aplicao no site para

    comear a utilizar. Um exemplo de requisio da API do Foursquare, codificada em

    Python 2.7, pode ser visto na Figura 1.6.

    Dentre os parmetros da requisio HTTP, v um apenas um controle de verso,

    onde o desenvolvedor da aplicao pode informar ao foursquare se est utilizando uma verso

    anterior da API. No caso, este parmetro recebe uma data no formato YYYYMMDD.

    Topicos em Gerenciamento de Dados e Informacoes 2014 SBC, 1a ed. ISBN 978-85-7669-290-4

    16

  • import urllib2

    client_id = "{seu client id}"

    client_secret = "{seu client secret}"

    par_v = "20141107"

    location = "40.7,-74"

    query = "sushi"

    response = urllib2.urlopen("https://api.foursquare.com/v2/tips/search"+

    "?client_id="+client_id+

    "&client_secret="+client_secret+

    "&v="+par_v+

    "&ll="+location+

    "&query="+query)

    html = response.read()

    print str(html)

    Figura 1.6. Exemplo usando a API do Foursquare.

    1.2.3 Princpios de Anlises de Redes Sociais

    Aps a leitura, desambiguao13 dos ns e montagem do sociograma (grafo de

    relacionamentos), chegou a hora de analisarmos a rede social.

    Em um sociograma, podemos representar os relacionamentos como arestas, as

    quais podem ser direcionadas (Joo envia um e-mail para Maria) ou no (Joo e Maria

    participaram de uma reunio). Nesta seo, apresentamos apenas mtricas de grafos no

    direcionados. Vale lembrar que para todas as mtricas apresentadas neste captulo existem

    suas respectivas verses para grafos direcionados. Maiores detalhes sobre tais mtricas

    podem ser encontradas em [Newman 2010]. Casos e exemplos de uso podem ser obtidos

    em [Easley e Kleinberg 2010].

    1.2.3.1 Principais Mtricas de Anlise de Redes Sociais

    A seguir, resumidamente foram descritas algumas mtricas divididas naquelas que so

    referentes aos ns de modo individual e aquelas que medem o comportamento da rede

    como um todo.

    13 Quando estamos lidando com mdias sociais, normalmente temos diferentes usurios associados uma nica entidade. Por exemplo, imagine o Joo da Silva (entidade) que possui vrias contas. No Twitter pode ser reconhecido como JS_RJ. No Facebook ele possui duas contas, uma de carter profissional (Prof. Joo da Silva) e outra pessoal (Joo Carioca). O processo de desambiguao dos ns significa identificar as diferentes contas de uma mesma entidade e associ-las. Neste exemplo, identificaramos que JS_RJ, Prof. Joo da Silva e Joo Carioca so diferentes contas de uma mesma pessoa.

    Topicos em Gerenciamento de Dados e Informacoes 2014 SBC, 1a ed. ISBN 978-85-7669-290-4

    17

  • Mtricas Individuais

    A importncia de um vrtice pode ser identificada atravs do clculo de centralidade.

    Uma destas centralidades o grau do vrtice (tambm conhecida como grau de

    centralidade ou ainda centralidade local por Wasserman e Faust (1994)), ou seja, o

    nmero de arestas conectadas diretamente a ele. A centralidade global de um vrtice,

    tambm conhecida como closeness ou grau de proximidade a soma do menor caminho

    entre um vrtice e os demais vrtices da rede. Um vrtice que tenha a menor soma das

    menores distncias est mais perto dos demais. Ou seja, quanto maior a centralidade

    global, maior ser a distncia de um membro para com os demais. Isto significa que o

    trajeto de um dado, informao ou conhecimento para chegar a um destes membros

    isolados maior, e consequentemente, pode demorar mais, como tambm podem chegar

    deturpados e com rudo.

    Outra medida de centralidade muito utilizada o betweenness ou grau de

    intermediao, que est relacionado ao nmero de caminhos mnimos aos quais um

    vrtice pertence. O grau de intermediao revela o quanto um vrtice est no caminho

    entre os outros vrtices numa rede. Quanto maior for o valor deste grau, significa que este

    vrtice uma passagem obrigatria, muitas vezes conectando diferentes grupos.

    Seja xi a quantidade de todos os caminhos mnimos entre s e t (caso exista mais de

    um) cujo vrtice i est includo, ento, sendo nsti um destes caminhos mnimos entre os

    vrtices s e t, nsti =1, se o vrtice i pertence a este caminho mnimo e nsti =0 caso contrrio

    [5], como est representado na equao (3.2):

    st

    i

    sti n=x

    Seja gst o nmero total de caminhos mnimos entre s e t, ento o grau de

    intermediao do vrtice i ser Xi calculado atravs da equao (3.3):

    st

    ii

    g

    x=X

    Outra mtrica, conhecida como coeficiente de agrupamento, pode informar para

    cada vrtice e para a rede como um todo, como uma rede se apresenta em termos de

    grupos. Desta anlise vem a definio de coeficiente de agrupamento: a probabilidade de

    que dois vizinhos de um vrtice sero vizinhos entre si. Para calcular o coeficiente de

    agrupamento Ci, so contados todos os pares de vrtice que so vizinhos de i e sejam

    conectados entre si, ento, divide-se este valor pelo nmero total de vizinhos de i, ou ki,

    que o grau de i:

    hoDeiresdeVizinNmerodePa

    osoConectadhosDeiQueSresDeVizinNmeroDePa=Ci

    Outras centralidades igualmente importantes so o PageRank e o clculo de Hubs,

    que podem ser encontrados em [Newman 2010].

    Mtricas da Rede

    Watts e Strogatz (1998) propuseram o clculo do coeficiente de agrupamento mdio, Cm,

    para a rede atravs da mdia do coeficiente de agrupamento local para cada vrtice. Ou

    seja, Cm o somatrio dos coeficientes de agrupamento de cada vrtice do grafo,

    normalizado pelo nmero total de vrtices.

    Topicos em Gerenciamento de Dados e Informacoes 2014 SBC, 1a ed. ISBN 978-85-7669-290-4

    18

  • n

    im Cn=C1

    /1

    Outra medida o dimetro da rede, que a distncia mxima entre dois vrtices,

    o maior caminho mnimo (geodsico) entre dois vrtices da rede, simbolizando o nvel de

    ligao entre os vrtices da rede. Newman (2010) define a densidade de uma rede

    utilizando o grau mdio da rede em questo. Primeiramente calculando o valor de M, o

    nmero mximo possvel de arestas numa rede de n vrtices.

    1n2

    1

    2

    n=

    nM

    Sendo G o grau mdio j calculado para esta rede com m arestas, a densidade

    obtida fazendo-se:

    112m

    2

    n

    G=

    nn=

    n

    m=

    Se a densidade de uma rede varia no intervalo [0,1], quanto mais prximo de zero,

    menos conectada a rede. O contrrio vlido, quanto mais prximo de um, a rede

    mais densa. A vantagem do uso desta medida est na simplicidade de seu clculo, no

    entanto, para redes com extenso nmero de ns, torna-se custoso realizar tal clculo.

    1.2.3.2 Principais Ferramentas

    Existem diversas ferramentas (muitas delas gratuitas!) que automatizam a anlise, possuindo

    as principais mtricas implementadas e ferramentas de visualizao e extrao de relatrios.

    Vrias delas lem e exportam para diferentes formatos. Em [Huisman e Van Duijn 2005]

    vocs tm uma anlise comparativa destas principais ferramentas. Os autores mantm o site

    http://www.gmw.rug.nl/~huisman/sna/software.html atualizado com novos programas

    destinados anlise de redes sociais.

    Neste curso a ferramenta Gephi14 ser utilizada. Essa ferramenta se apresentou como

    uma boa opo quando se analisa redes no muito grandes.

    1.2.4 Princpios de Minerao de Informao

    Minerao de dados o processo de explorar dados procura de padres consistentes. Na

    anlise de redes sociais, esses padres descrevem como os indivduos interagem ou as

    caractersticas (regras) que do origem s redes sociais. Identificar fatores e as tendncias-

    chave dos dados que a rede produz tambm so aplicaes possveis de minerao de

    dados em redes sociais.

    Grafos representam estruturas de dados genricas que descrevem componentes e

    suas interaes, sendo assim so adotados para representar as redes sociais. Como

    consequncia, os mtodos de minerao de dados apresentados a seguir tero como foco

    a minerao em grafos. Segundo a taxonomia apresentada por Getoor e Diehl [Getoor e

    Diehl 2005], a minerao para grafos pode ser dividia em trs grandes grupos: minerao

    orientados a objetos; minerao orientada a links; e minerao orientada a grafos. Os

    grupos e os mtodos de cada grupo so: (i) Tarefas relacionadas a objetos; (ii) Tarefas

    14 https://gephi.github.io/

    Topicos em Gerenciamento de Dados e Informacoes 2014 SBC, 1a ed. ISBN 978-85-7669-290-4

    19

  • relacionadas a ligaes e (iii) Tarefas relacionadas a grafos. Por sua vez Tarefas

    relacionadas a objetos se dividem em: (i) Ranking baseado em ligao de objetos (RBLO);

    (ii) Classificao baseada em ligao de objeto (CBLO); (iii) Agrupamento de objetos e

    (iv) Identificao de objetos. As tarefas relacionadas a ligaes resumem-se predio

    de ligaes. Por fim, as tarefas relacionadas a grafos se dividem em: (i) Descoberta de

    subgrafos e (ii) Classificao de grafos. Nas prximas subsees ser feito o

    detalhamento de cada mtodo. Essa taxonomia de tarefas de minerao em grafos foi

    retirada de [Getoor e Diehl 2005].

    1.2.4.1 Ranking baseado em link de objetos

    Uma das tarefas mais comuns na minerao de dados em grafos, o ranking baseado em

    link de objetos explora a estrutura dos links de um grafo para ordenar e priorizar o

    conjunto de vrtices. Dentre os mtodos para RBLO, os algoritmos HITS [Kleinberg

    1999] e PageRank [Ranking e Order 1998] so os mais conhecidos.

    O PageRank funciona contando o nmero de ligaes entre os vrtices de um

    grafo orientado para estimar a importncia desse vrtice. Ligaes de vrtices importantes

    (onde a importncia definida pelo valor de PageRank desse vrtice) para um vrtice,

    fazem com que esse ltimo melhore seu ranking. As ligaes que um vrtice faz com

    outros, ponderado pela importncia desse vrtice, faz com que o primeiro diminua sua

    importncia. O balano entre quais vrtices apontam e so apontados determinam o grau

    de importncia de um n.

    O algoritmo HITS um processo mais complexo se comparado com o PageRank,

    modelando o grafo com dois tipos de vrtices: hubs e entidades. Hubs so vrtices que

    ligam muitas entidades e por consequncia, entidades so ligadas por hubs. Cada vrtice

    do grafo nesse mtodo recebe um grau de hub e de entidade. Esses valores so calculados

    por um processo iterativo que atualiza os valores de hub e entidade de cada vrtice do

    grafo baseado na ligao entre os vrtices. O algoritmo de HITS tem relao com o

    algoritmo de PageRank com dois loops separados: um para os hubs e outro para as

    entidades, correspondendo a um grafo bi-partido.

    1.2.4.2 Classificao baseada em ligao de objetos

    A classificao baseada em ligao de objetos (CBLO) tem como funo rotular um

    conjunto de vrtices baseado nas suas caractersticas, diferindo dessa forma das tcnicas

    de classificao tradicionais de minerao de dados por trabalhar com estruturas no

    homogneas. Apesar da sua importncia, uma rea de minerao no consolidada,

    apresentando como desafio o desenvolvimento de algoritmos para classificao coletiva

    que explorem as correlaes de objetos associados [Getoor e Diehl 2005].

    Dentre as propostas da CBLO, destacam-se os trabalhos de Lafferty et al (2001),

    que uma extenso do modelos de mxima entropia em casos restritos onde os grafos

    so cadeias de dados. Taskar et al. (2002) estenderam o modelo Lafferty et al (2001) para

    o caso em que os dados formam um grafo arbitrrio. Lu e Getoor (2003) estenderam um

    classificador simples, introduzindo novas caractersticas que medem a distribuio de

    classes de rtulos em uma cadeia de Markov.

    Topicos em Gerenciamento de Dados e Informacoes 2014 SBC, 1a ed. ISBN 978-85-7669-290-4

    20

  • 1.2.4.3 Agrupamento de objetos

    O objetivo do Agrupamento de Objetos o agrupamento de vrtices de um grafo por

    meio de caractersticas comuns. Vrias tcnicas foram apresentadas em vrias

    comunidades para essa finalidade. Entretanto, o desenvolvimento de mtodos escalveis

    adequados para explorao de grafos complexos em tempo hbil ainda um desafio.

    Para grafos com arestas e vrtices de um nico tipo e sem atributos, pode-se

    utilizar tcnicas de agrupamento aglomerativo ou divisivos. A tarefa de agrupamento

    envolve o particionamento de redes sociais em conjuntos de indivduos que possuam um

    conjunto similar de links entre si. Uma medida de similaridade entre o conjunto de arestas

    e o agrupamento aglomerativo definida e usada para identificar as posies. Mtodos

    de separao espectral do grafo resolvem o problema de deteco de grupo, identificando

    um conjunto mnimo aproximado de arestas que devem ser removidas do grafo para

    atingir um determinado nmero de grupos.

    Outras abordagens para deteco de grupo fazem uso das medidas de betweenness

    dos vrtices. Um exemplo o mtodo Girva-Newman (2002), o qual detecta uma

    comunidade removendo progressivamente arestas do grafo original. Esses autores

    consideram que se dois vrtices possuem uma aresta ligando-os e se esses ns apresentam

    um valor de betweenness alto, provavelmente a aresta que os liga uma ponte. Se a ponte

    for removida, os agrupamentos tornam-se visveis.

    1.2.4.4 Identificao de Entidades

    Denominada tambm de resoluo de objetos, a identificao de entidades tem como

    objetivo determinar quais dados que fazem referncia a entidades do mundo real.

    Tradicionalmente, a resoluo de entidades vista como um problema de semelhana

    entre atributos de objetos. Recentemente, houve significante interesse em usar links para

    aperfeioar a resoluo de entidades com o uso de ligaes entre vrtices [Getoor e Diehl

    2005].

    A ideia central considerar, em adio aos atributos dos vrtices de um grafo que

    representa uma rede social, os atributos dos outros vrtices que esto ligados com ele.

    Essas ligaes podem ser, por exemplo, coautorias em uma publicao cientfica, onde

    os atributos dos indivduos (nome, rea de pesquisa) seriam utilizados em conjunto com

    os atributos dos coautores que trabalham com ele [Alonso et al. 2013].

    1.2.4.5 Predio de Ligaes

    A predio de links trata do problema de predizer a existncia de ligaes entre dois

    vrtices baseado em seus atributos e nos vrtices existentes. Exemplos incluem predizer

    ligaes entre atores de uma rede social, como amizade, participao dos atores em

    eventos, o envio de email entre atores, chamadas de telefone, etc. Na maior parte dos

    casos, so observados alguns links para tentar predizer os links no observados ou se

    existe algum aspecto temporal.

    O problema pode ser visto como uma simples classificao binria: dado dois

    vrtices v1 e v2, preveja quando um vrtice entre v1 e v2 ser 1 ou 0. Uma abordagem

    fazer a predio ser inteiramente baseada em propriedades estruturais da rede. Liben-

    Nowell e Kleinberg (2007) apresentaram um survey sobre predio de links baseado em

    diferentes medidas de proximidade. Outra abordagem fazendo uso de informaes dos

    Topicos em Gerenciamento de Dados e Informacoes 2014 SBC, 1a ed. ISBN 978-85-7669-290-4

    21

  • atributos a de Popescul et al (2003), que prope um modelo de regresso logstica

    estrutural que faz uso das relaes para predizer a existncia de novas ligaes.

    OMadadhain et al (2005) prope a construo de um modelo local de probabilidades

    condicionais, baseado nos atributos e na estrutura. A respeito de predio de ligaes,

    podemos ainda referenciar o minicurso de Appel e Hruschka (2011), ministrado no

    prprio SBBD.

    1.2.4.6 Descoberta de subgrafos

    A determinao de subgrafoss frequentes um importante instrumento para a anlise de

    redes sociais, pois permite caracterizar e discretizar conjuntos de grafos, criar

    mecanismos de classificao e agrupamento, criar ndices de busca, etc. Por exemplo, em

    um conjunto de grafos que representam uma rede colaborativa de coautoria em trabalhos

    cientficos, os subgrafos frequentes podem identificar os grupos de pesquisas ou grupos

    de um mesmo laboratrio.

    Um grafo g definido como subgrafo de um grafo g se existir um padro

    isomrfico entre g e g, ou seja, o conjunto de vrtices e arestas de g so subconjuntos

    dos conjuntos de vrtices e arestas de g respectivamente. Dentre os mtodos de minerao

    de subgrafoss frequentes, duas abordagens so as mais empregadas: a abordagem baseada

    no mtodo apriori e a abordagem baseada em padres de crescimento. Ambas possuem

    em comum buscar estrutura frequentes nas bases de grafos. A frequncia mnima que um

    subgrafo deve ocorrer na base D para que seja considerado frequente recebe o nome de

    suporte.

    A busca por grafos frequentes, utilizando o mtodo apriori, comea por subgrafos

    de menor tamanho e procede de modo bottom-up gerando candidatos que possuam um

    vrtice, aresta ou caminho extra que possuam um valor de suporte maior do que um valor

    pr-definido (min_sup). Para determinar se um grafo de tamanho k+1 frequente,

    necessrio checar todos os subgrafos correspondentes de tamanho k para obter o limite

    superior de frequncia (busca em largura).

    A abordagem baseada em padres de crescimento mais flexvel se comparada

    com as abordagens baseadas no mtodo apriori, pois possvel tanto fazer buscas em

    largura quanto busca em profundidade. Essa abordagem permite um menor consumo de

    memria, de acordo com o mtodo de busca empregado, pois no preciso gerar todo o

    conjunto de grafos candidatos de mesmo tamanho antes de expandir um grafo. Entretanto,

    a abordagem apresenta como limitao ser menos eficiente j que um mesmo grafo pode

    ser gerado mais de uma vez durante o processo de busca. O mtodo inicia com um

    conjunto de subgrafos iniciais que so expandidos por meio da adio de arestas vlidas.

    Grafos frequentes, com suporte igual ou maior que um valor pr-definido, so

    selecionados para dar origem prxima gerao de grafos frequentes. A busca continua

    at que seja gerado um grafo com suporte inferior ao mnimo definido, o ltimo grafo

    gerado armazenado para ser apresentado no conjunto de respostas. A busca prossegue

    com os outros candidatos.

    1.2.4.7 Classificao de Grafos

    Classificao de grafos um processo supervisionado de aprendizagem. O objetivo

    caracterizar um grafo como todo como uma instncia de um conceito. A classificao de

    Topicos em Gerenciamento de Dados e Informacoes 2014 SBC, 1a ed. ISBN 978-85-7669-290-4

    22

  • grafos no exige inferncia coletiva - como necessrio para classificar vrtices e arestas

    - devido ao grafo ser geralmente gerado de forma independentemente.

    Existem basicamente trs abordagens que foram exploradas pelas comunidades

    de minerao de dados: Programao de Lgica Indutiva (PLI); Minerao de

    Caractersticas (MC); e definio de Kernel do Grafo (DK). A MC est relacionada com

    as tcnicas de descoberta de grafo. A MC usualmente feita encontrando as subestruturas

    informativas do grafo. Essas subestruturas so usadas para transformar os dados do grafo

    em uma tabela de dados e ento aplicar classificadores tradicionais. A PLI usa relaes

    como vrtice (grafo_id, vrtice_id, vrtice_label, vrtice_atributos) e aresta (grafo_id,

    vrtice_id_1,vrtice_id_3,aresta_label) para ento aplicar em um sistema de PLI para

    encontrar um hiptese no espao.

    Encontrar todas as subestruturas frequentes em um grafo pode ser um processo

    computacionalmente proibitivo. Uma abordagem alternativa faz uso dos mtodos de

    kernel. Gartner [2002] e Kashima e Inokuchi [2002] proporam mtodos baseado em

    medidas de caminhos no grafo para obter o kernel. Gartner [2002] conta caminhos com

    rtulos iguais no inicio e no fim, enquanto Kashima e Inokuchi [2002] faz uso da

    probabilidade de caminhar aleatoriamente em uma sequncia de rtulos identicos.

    1.3 Redes Sociais Online e Big Data: Mtodos de Tratamento de Grande Volume de Dados

    Redes Sociais Online (RSOs) como Facebook, YouTube e Twitter esto conectando

    pessoas que esto produzindo exabytes de dados em suas interaes [Tan et al. 2013]. O

    volume, a velocidade de gerao e processamento dos dados de diferentes fontes criam

    grandes desafios isolados ou combinados a serem superados, tais como: armazenamento,

    processamento, visualizao e, principalmente anlise dos dados.

    A quantidade de dados produzidas na rede aumenta a cada dia e novas unidades

    de medida surgem para to grande volume de dados. Para ilustrar este fato, previu-se que

    o valor chegue prximo a uma dezena de zettabytes em 2015 [Oliveira et al. 2013].

    Tamanho crescimento faz com que muitas das solues existentes para manipulao de

    dados (armazenamento, visualizao e transmisso) no sejam teis nesse cenrio.

    Somadas as RSOs, outras fontes de dados tambm contribuem para o aumento do volume

    de dados: sensores, medidores eltricos inteligentes, dados convencionais de aplicaes

    da Internet, dentre outros.

    O grande volume de dados heterogneos produzidos por diferentes fontes

    autnomas, distribudas e descentralizadas que geram rapidamente dados com relaes

    complexas e em evoluo chamado Big Data [Silva et al. 2013]. O termo Big Data

    frequentemente associado a 3Vs: i) Volume, relacionado a um grande conjunto de dados;

    ii) Velocidade, relacionado a necessidade de processo rpido dos dados; e iii) Variedade

    por provir de fontes diversas de dados [Kwon 2013 apud Oliveira 2013].

    A grande quantidade de usurios das RSOs tem atrado a ateno de analistas e

    pesquisadores que desejam extrair ou inferir informaes, podendo estar relacionadas a

    diversas reas como predio de comportamento, marketing, comrcio eletrnico, entre

    outras interaes [Tan et al. 2013]. As anlises devem ser eficientes, realizadas quase em

    tempo real e capazes de lidar com grafos com milhes de ns e arestas. Alm disso,

    existem outros problemas, como falhas e redundncias.

    Topicos em Gerenciamento de Dados e Informacoes 2014 SBC, 1a ed. ISBN 978-85-7669-290-4

    23

  • Esta seo aborda algumas das principais questes relacionadas ao tratamento de

    grandes massas de dados produzidas nas RSOs mais utilizadas no Brasil e no mundo. So

    apresentadas discusses sobre termos relacionados Big Data, tecnologias utilizadas e

    caractersticas particulares das RSOs.

    1.3.1 Armazenamento e Gerncia de Grandes Volumes de Dados de RSO

    Quando se fala da gerncia dos dados, o volume varia de acordo com a capacidade das

    ferramentas utilizadas em cada rea de aplicao. Por exemplo, as informaes de um

    grafo com milhes de ns e bilhes de arestas podem ser armazenadas em um arquivo de

    alguns gigabytes. O tamanho desse arquivo pode no ser grande do ponto de vista de

    armazenamento, porm o processamento desse grafo (a aplicao de tcnicas de anlises)

    pode exceder a capacidade das ferramentas utilizada com tal finalidade. Percebe-se que,

    apesar do tamanho ser a parte mais evidente do problema, a definio de Big Data deve

    observar outras caractersticas, as quais podem no estar diretamente associados ao

    tamanho absoluto dos dados [Costa et al. 2012].

    Alm de observar a capacidade das ferramentas utilizadas, segundo [Costa et al.

    2012] h outros pontos a serem observados no cenrio de Big Data, tais como: a

    velocidade de gerao e de processamento dos dados, alm da quantidade de fontes de

    gerao desses dados. Sob este ponto de vista, pode-se citar como exemplo o Twitter com

    milhes de usurios ao redor do mundo. O Twitter recebe mensagens enviadas em uma

    frequncia muito alta. Apesar de uma mensagem individual ser pequena, a quantidade de

    mensagens enviadas por diferentes usurios (fontes) gera um grande volume de dados.

    Cada dado precisa ser armazenado, disponibilizado e publicado para outros usurios dessa

    mdia. Ou seja, o dado precisa ser armazenado, processado, relacionado a outras

    informaes (que usurios seguem?, quem publicou o dado?) e transmitido. O mesmo

    pode ser observado em outras RSOs como Facebook ou YouTube.

    Outro aspecto a ser observado a estrutura (ou a sua ausncia) dos dados das

    RSOs, os quais possuem formatos diferentes. O Twitter armazena mensagens textuais

    pequenas (de 140 caracteres, no mximo), alm de outras informaes como identificao

    da mensagem, data da postagem, armazena uma cpia das hashtags em um campo

    especfico, posio geogrfica do usurio ao enviar a mensagem (quando disponvel),

    entre outros. A prpria mdia trata com dados heterogneos. O Facebook por, outro lado,

    armazena mensagens textuais, imagens, etc. O YouTube, alm dos vdeos, mantm os

    comentrios dos usurios relacionados ao contedo de multimdia. Alm, dessas

    informaes, essas mdias armazenam dados sobre os usurios, sobre suas interaes na

    rede (seus amigos, curtidas, favoritismo, comentrios, citaes, dentre outros) e pginas

    ou canais mais acessados (no caso do Facebook e YouTube, respectivamente). Do ponto

    de vista da estrutura, percebe-se que as informaes dessas redes podem ser armazenadas,

    parcialmente, em estruturas/formatos e tipos pr-definidos, enquanto outra parte no tem

    um tipo pr-estabelecido (no so estruturados). Do ponto de vista do relacionamento de

    dados de diferentes fontes, observa-se que as dificuldades so aumentadas. Um exemplo

    seria identificar, relacionar e analisar contedo dos perfis dos usurios do Twitter e do

    Facebook.

    A observao sobre o contedo de mdias sociais permite que se perceba que os

    dados gerados so diversificados, esto relacionados (ex: um vdeo no YouTube est

    relacionado aos comentrios, curtidas, etc.) e fazem parte de um repositrio comum de

    Topicos em Gerenciamento de Dados e Informacoes 2014 SBC, 1a ed. ISBN 978-85-7669-290-4

    24

  • cada mdia. Ou seja, o YouTube possui a sua base, o Twitter a sua e assim por diante.

    Antes da correlao dos dados, necessrio extrair os dados das fontes heterogneas,

    cada uma com suas particularidades.

    Trs exemplos de RSOs cujos dados so utilizados em muitos estudos so o

    Facebook, o YouTube e o Twitter. Segundo o servio Alexa15, no ranking dos sites mais

    acessados no mundo, essas trs mdias esto entre as 10 mais: O Facebook o segundo

    site mais acessado no mundo atualmente, o YouTube o terceiro e o Twitter ocupa o

    stimo lugar. No Brasil, o Facebook o segundo mais acessado, o YouTube o quarto e o

    Twitter o dcimo segundo, segundo o ranking do Alexa Brasil16. Alm dessas mdias

    digitais, existem outras redes bastante utilizadas no Brasil como LinkedIn17, Google+18 e

    o Foursquare19.

    Os dados das RSOs so abundantes. Para se ter uma ideia, o Facebook acessado

    por mais 1 bilho de usurios a cada ms [Zuckerberg 2012; Facebook Data Center 2013]

    e registrou uma mdia de 829 milhes de usurios ativos por dia no ms de junho de 2014

    (624 milhes em dispositivos mveis), chegando a passar de 1,32 bilhes no dia 30 de

    junho [Facebook NewsRoom 2014]. A mdia de likes (curtidas) registrada por dia passa

    de 2,7 bilhes e quantidade total de itens (texto ou contedo multimdia como fotos e

    vdeos) compartilhados entre amigos superior a 2,4 bilhes. Em 2011, o espao ocupado

    pelas fotos compartilhadas no Facebook j ultrapassava 1,5 petabyte de espao, sendo

    mais de 60 bilhes de fotos. Em 2013, o Instagram (aplicativo de compartilhamento de

    fotos e vdeos curtos, pertencente ao Facebook) registrou uma mdia de 100 milhes de

    usurios por ms. Diferentes tipos de relacionamentos acontecem entre os usurios do

    Facebook formando redes. Por exemplo, rede amizades, citaes em mensagens ou

    marcaes em imagens [Facebook NewsRoom 2014].

    Outro exemplo que pode ser citado o YouTube, o qual possui uma taxa de

    upload de vdeo superior a 100 horas de vdeo por minuto, sendo acessado por milhes

    de usurios mensalmente [ComScore 2014; YouTube Statistics 2014]. O contedo de 60

    dias do YouTube equivale a 60 de vdeos televisionado pela emissoras norte-americanas

    NBC, CBS e ABS juntas [Benevenuto et al. 2011]. Dados mais recentes sobre essa mdia

    informam que mais de 1 bilho de usurios visitam o YouTube mensalmente, e mais de

    6 bilhes de horas de vdeo so assistidas a cada ms. A identificao de mais de 400 anos

    de vdeo so verificados diariamente devido as buscas por contedo e milhes de novas

    assinaturas feitas todos os meses [YouTube Statistics 2014].

    O Twitter, por sua vez, possui mais de 600 milhes de usurios, recebe mais de

    500 milhes de mensagens por dia e tem uma mdia de 271 milhes de usurios ativos

    por ms. Em julho, o total de atividades registradas era de 646 milhes e 2,1 bilhes de

    consultas foram realizadas em mdia. No Twitter, as redes podem ser formadas

    observando quem segue quem, quem mencionou quem ou quem fez um retweet

    (republicou a mensagem de) quem [Twitter Statistics 2014; About Twitter 2014].

    As grandes empresas como Facebook, Google (proprietria do YouTube) e

    Twitter possuem centros de dados espalhados pelo mundo. Alguns desses centros de

    15 http://www.alexa.com/topsites 16 http://www.alexa.com/topsites/countries/BR 17 https://linkedin.com/ 18 https://plus.google.com 19 https://foursquare.com/

    Topicos em Gerenciamento de Dados e Informacoes 2014 SBC, 1a ed. ISBN 978-85-7669-290-4

    25

  • dados ocupam grandes reas e custam milhes para serem implantados e mantidos. Por

    exemplo, o centro de dados do Facebook em Iowa (o quarto da empresa) foi construdo

    aps o centro de dados da empresa na Carolina do Norte nos Estados Unidos, o qual

    custou aproximadamente 450 milhes [Online Tech 2011]. Empresas como as

    mencionadas acima possuem polticas prprias de gerncia dos dados e definem as

    tecnologias a serem utilizadas. Alm disso, elas tambm impem uma srie de restries

    para acesso aos dados da sua base. Por esse motivo, os interessados em realizar anlises

    precisam coletar (geralmente em perodos prximos publicao), armazenar e gerenciar

    os dados do seu interesse [Costa et al. 2013]. Um exemplo so os dados publicados pelo

    Facebook sobre as publicaes relacionadas Copa do Mundo de Futebol de 2014.

    Segundo dados do prprio Facebook, mais de 1 bilho de interaes (publicaes,

    comentrios e curtidas) ocorreram durante este evento [Facebook World Cup 2014].

    Aqueles que conseguiram coletar dados sobre esse evento nessa mdia precisam

    armazenar e gerenciar esses dados (um desafio parte).

    Costa et al. (2012) apresentam uma discusso sobre o ciclo de vida dos dados por

    meio da comparao com o ciclo de vida biolgico. Os autores observaram as seguintes

    fases: gerao (nascimento), agregao (crescimento com a agregao de valores ao

    dado), anlise (reproduo, quando a combinao de novos dados traz significado sobre

    os dados iniciais) e apagamento (morte). O apagamento pode no ser uma tarefa to

    simples, pois no simples definir quando um conjunto de dados no possui mais valor

    para ser analisado. Esse valor pode ser finalizado em um contexto, mas sob outros pontos

    de vista os dados podem possuir valor em novas anlises. Por esse motivo, definir quanto

    tempo os dados devem permanecer armazenados (ou pelo menos parte dele) no trivial,

    um dado pode ficar armazenado mais do que o seu valor consumindo recursos valiosos.

    Porm, descartar um dado valioso por causa das restries de infraestrutura pode ser

    lamentvel. Finalmente, no possvel definir valores fixos (prazos ou perodos exatos)

    de validade dos dados. Cabe aquele que gerencia o dado tomar a deciso de descart-lo

    ou no. um consenso que sempre que possvel os dados devem ser mantidos (ou seja, a

    sua remoo deve ser evitada).

    Somadas aos desafios de armazenar esses volumes de dados, tambm existe o

    desafio de recuperar e analisar os dados dessas mdias digitais. Os problemas relacionados

    ao armazenamento, recuperao e anlise so agravados por novas variaes dos dados

    decorrente das alteraes nas mdias digitais ocasionadas por novas tendncias, pelo

    surgimento de novas mdias digitais com caractersticas novas e por comportamentos

    diferentes por parte dos usurios. Vale ressaltar que outras caractersticas desses dados

    so: redundncias, inconsistncias, dados com algum tipo de falha, etc. Todavia, apesar

    de todas essas dificuldades, as grandes massas de dados impulsionam a necessidade de

    extrair sentido dos mesmos. Correlacion-los para compreend-los apesar das constantes

    alteraes dos dados podem trazer a tona informaes preciosas, podendo se tornar

    essencial no futuro.

    Observamos que as tecnologias de bancos de dados utilizados nas RSOs devem

    ser capazes de atender os requisitos de armazenamento e processamento de Big Data,

    como alta velocidade e a capacidade de lidar com dados no relacionais, executando

    consultas em paralelo [Oliveira et al. 2013a]. Pesquisadores ou qualquer interessado em

    analisar esses dados tambm precisam de tecnologias adequadas. Do ponto de vista do

    armazenamento, os Sistemas de Gerenciamento de Banco de Dados (SGBDs)

    convencionais disponveis comercialmente no so capazes de lidar com volumes de

    Topicos em Gerenciamento de Dados e Informacoes 2014 SBC, 1a ed. ISBN 978-85-7669-290-4

    26

  • dados na ordem de petabytes [Madden 2012]. Ao observar a velocidade e variedade os

    sistemas de banco de dados tambm podem no ter um bom desempenho, sobretudo

    quando so feitas recuperaes textuais, de imagens ou vdeos. A anlise de grandes

    volumes de dados requer SGBDs especializados capazes de processar dados estruturados

    e no estruturados distribuindo dados a fim de escalar grandes tamanhos [Begoli 2012

    apud Oliveira et al. 2013a]. Dados como grafos, documentos hierrquicos e dados geo-

    espaciais so dados teis para diversos tipos de anlise no contexto das RSOs, mas no

    podem ser modelados em bancos de dados relacionais. Para esses dados existem

    ferramentas especializadas como: PostGIS 20e GeoTools21 para dados geo-espaciais;

    HBase22 ou Cassandra23 para organizao hierrquica de dados no formato chave-valor;

    e um exemplo de ferramenta para analisar grafos o Neo4j24.

    Porm, mesmos essas tecnologias ainda no so suficientes para suprir todos os

    desafios citados at aqui. Faz-se necessrio explorar devidamente e de forma plena as

    informaes disponveis nas RSOs. Vrias tecnologias esto sendo desenvolvidas e

    adaptadas para manipular, analisar e visualizar Big Data. As sees 1.3.2 e 1.3.3

    apresentam uma discusso sobre tcnicas e tecnologias apropriadas para se trabalhar com

    grandes volumes de dados.

    Neste trabalho, abordaremos em maiores detalhes o Hadoop (uma implementao

    do MapReduce) no domnio do armazenamento e anlise de dados. O Hadoop permite

    que aplicaes escalveis sejam desenvolvidas provendo um meio de processar os dados

    de forma distribuda e paralela [White 2012; Shim 2012 apud Oliveira et al. 2013a].

    1.3.2 Tratamento de Grande Volume de Dados: Quando Processar se Torna Difcil?

    Uma srie de desafios vem tona quando o volume de dados excede os tamanhos

    convencionais, quando esses dados so variados (diferentes fontes, formatos e estruturas)

    e so recebidos em uma velocidade maior do que a capacidade de processamento. Por

    exemplo, ao extrair uma rede de retweets do Twitter e formar uma rede a partir desses

    retweets de um grande volume de dados, pode-se obter um grafo que excede a capacidade

    de tratamento em ferramentas convencionais de anlise de redes sociais (como Gephi, por

    exemplo). Ou quando se deseja realizar processamento de linguagem natural de um texto

    muito grande a fim de realizar anlises estatsticas do texto, o processamento e memria

    necessrios excede a capacidade de computadores pessoais convencionais. Ou seja, os

    recursos de hardware (como a memria RAM, por exemplo) no comportam o volume

    dos dados [Jacobs 2009].

    Jacobs (2009) apresentou um exemplo de difcil tratamento de um grande volume

    de dados usando um banco de dados relacional com 6,75 bilhes de linhas, com sistema

    de banco de dados PostgreSQL25 em uma estao com 20 megabytes de memria RAM

    e 2 terabytes de disco rgido. O autor apresentou que obteve vrios problemas de falhas e

    um alto tempo de processamento para as consultas realizadas.

    20 http://postgis.net/ 21 http://www.geotools.org/ 22 http://hbase.apache.org/ 23 http://cassandra.apache.org/ 24 http://www.neo4j.org/ 25 http://www.postgresql.org/

    Topicos em Gerenciamento de Dados e Informacoes 2014 SBC, 1a ed. ISBN 978-85-7669-290-4

    27

  • A velocidade do processamento, armazenamento, leitura e transferncia de dados

    nos barramentos frequentemente fazem com que apenas extratos (amostras) dos dados

    sejam analisados o que no permite que todos os detalhes daquele conjunto de dados

    sejam observados [DiFranzo et al. 2013]. O desejo dos analistas estudar as bases de

    dados por completo, no apenas uma amostra, ou ao menos aumentar as amostras o

    mximo possvel. A necessidade de novas tcnicas e ferramentas reforada pelo atual

    interesse em se empregar tcnicas de anlises que excedam as tcnicas tradicionais de

    business intelligence. Extrair conhecimento a partir de grandes massas de dados de fato

    desafiador como discutido at aqui, pois alm de serem heterogneos em sua

    representao, os dados das RSOs so de contedo multidisciplinar [Lieberman 2014].

    As tcnicas convencionais so utilizas em dados estruturados com formatos

    padronizados. As solues de Big Data tratam com dados brutos, heterogneos com e

    sem estrutura e sem padro. Entender como tratar os desafios de Big Data mais difcil

    do que entender o que significa o termo e quando empreg-lo. Apesar dos bancos de dados

    convencionais apresentam bons desempenhos no tratamento de dados estruturados e

    semiestruturados, as anlises no contexto de Big Data requerem um modelo iterativo (de

    consultas recursivas) para anlise de redes sociais e emprego de tcnicas de clusterizao

    como K-Mean ou PageRank [Silva et al. 2013]. O desafio do processamento dos grandes

    volumes de dados est relacionado a trs aspectos: armazenamento dos dados na memria

    principal, a grande quantidade de iteraes sobre os dados e as frequentes falhas (diferente

    dos bancos de dados convencionais onde as falhas so tratadas como excees, no

    contexto de Big Data, as falhas so regras) [Silva et al. 2013].

    O processamento intensivo e iterativo dos dados excede a capacidade individual

    de uma mquina convencional. Nesse contexto, clusters (arquiteturas de aglomerao)

    computacionais possibilitam a distribuio das tarefas e processamento paralelo dos

    dados. Em alguns cenrios, no ser possvel processar e armazenar todos os dados. Nesse

    caso, possvel utilizar tcnicas de minerao de dados para manipular os dados,

    sumarizando-os, extraindo conhecimento e fazendo predies sem interveno humana,

    visto que o volume dos dados, seus tipos e estruturas no permitem tal interveno.

    Muitas empresas tm apresentado requisitos de gerenciar e analisar grande

    quantidade de dados com alto desempenho. Esses requisitos esto se tornando cada vez

    mais comuns aos trabalhos de anlise de redes sociais [DiFranzo et al. 2013]. Diferentes

    solues tm surgido como proposta para esses problemas. Dentre as propostas, destaca-

    se o paradigma MapReduce implementado pelo Hadoop, o qual permite o processamento

    distribudo de grandes conjuntos de dados em clusters de computadores [White 2012]. O

    Hadoop uma poderosa ferramenta para a construo de aplicaes paralelas que fornece

    uma abstrao da aplicao do paradigma do MapReduce para processar dados

    estruturados e no estruturados em larga escala, sendo essa sua grande vantagem [Silva

    et al. 2013].

    Muitos algoritmos de minerao de dados utilizados na descoberta automtica de

    modelos e padres utilizam tcnicas como classificao, associao, regresso e anlise

    de agrupamento podem ser paralelizados com MapReduce [Shim 2012 apud Oliveira et

    al. 2013]. Segundo Silva et al. (2013), os projetos de minerao de dados no contexto de

    Big Data precisam de trs componentes principais. O primeiro um cenrio de aplicao

    que permita que a demanda por descoberta de conhecimento seja identificada. O segundo

    um modelo que realize a anlise desejada. O terceiro uma implementao adequada

    Topicos em Gerenciamento de Dados e Informacoes 2014 SBC, 1a ed. ISBN 978-85-7669-290-4

    28

  • capaz de gerenciar um grande volume de dados. Alm desses componentes fatores como

    a complexidade do dado, o tamanho da massa de dados, a dificuldade de transporte dos

    dados e a possibilidade de paralelizao dos algoritmos empregados no processamento

    devem ser observados.

    O processamento do volume de dados variados em tempo hbil exige tecnologias

    de software e hardware adequados. O Hadoop pode ser utilizado para distribuir e

    paralelizar dados em diferentes estaes de trabalhos comuns, aumentando a capacidade

    de hardware por meio da clusterizao de mquinas comuns. Devido a essas

    caractersticas e as demais utilizadas, o Hadoop tem sido adotado em muitos trabalhos.

    1.3.2.1 Capacidade de Processamento de Hardware vs Volume de Dados

    Como apresentado, o volume de dados na Internet cresce vertiginosamente. No

    diferente, as RSOs acompanham esse crescimento medida que novas mdias surgem e

    novos usurios comeam a participar de RSOs possuindo contas em diferentes redes. As

    empresas que gerenciam as grandes RSOs possuem centros de dados gigantescos,

    distribudos e gerenciam os seus dados contando com equipes especializadas. O sucesso

    dessas mdias permite que elas alcancem grandes ganhos financeiros, possibilitando-lhes

    a manuteno dessa estrutura.

    Empresas como a IBM, EMC, entre outras, so fornecedores de hardware e

    tecnologias para tratar grandes volumes de dados. Apesar de tratarem com volumes de

    dados na ordem de petabytes ou at exabytes, as grandes mdias sociais possuem

    condies para adquirir, criar e manter tecnologias para armazenar e gerenciar essas

    grandes massas de dados.

    Os analistas que coletam dados nas RSOs para analis-los, como discutido nas

    sees anteriores, desejam armazenar, gerenciar e analisar esses dados. Todavia quando

    o volume dos dados ultrapassa a medida de gigabytes e passa a ser medida em terabytes

    ou dezenas de terabytes, muitos grupos j se veem na necessidade de excluir partes dos

    dados ou armazenar parte dos seus dados em tecnologias de mais baixo custo que

    normalmente tornam o acesso a esses dados mais difceis. Sob o ponto de vista da anlise,

    outros fatores se somam ao volume, como o tipo de anlise que realizada: grafos com

    milhes de ns e de centenas de milhes ou bilhes de reas, processamento de linguagem

    natural de textos diferentes que exigem grande quantidade de processamento, entre outros

    exemplos. Nesses casos a dificuldade saber qual (ou quais) plataforma(s) de hardware

    se deve utilizar para lidar com grandes massas de dados, os quais superam a capacidade

    de tratamento possibilitada pelos sistemas tradicionais.

    Para serem mais abrangentes (analisar maiores amostras de dados), as anlises de

    redes sociais precisam tratar com amostras que podem ser consideradas Big Data sob a

    tica apresentada neste trabalho. Essas anlises exigem mais capacidade de hardware do

    que um computador pessoal comum pode oferecer. Por esse motivo, a capacidade do

    hardware utilizado nas anlises, assim como os softwares utilizados, um aspecto que

    no pode ser ignorado.

    O simples uso de servidores convencionais, antes empregados para abrigarem

    banco de dados relacionais, servidores Web, sistemas de intranet, entre outros, no so

    adequados para as tarefas de tratamento de enormes quantidades de dados. Estes

    servidores, ainda que possuam hardware superior aos computadores pessoais

    convencionais, podem ainda no ter a capacidade de hardware suficiente para algumas

    Topicos em Gerenciamento de Dados e Informacoes 2014 SBC, 1a ed. ISBN 978-85-7669-290-4

    29

  • anlises, no fornecendo um rendimento adequado. Aumentar a capacidade desses

    servidores pode significar sua substituio. Quando adquirir equipamentos e softwares

    especficos para tratar grandes massas dados no so viveis para os analistas por causa

    dos custos associados ou por causa da mo de obra para trabalhar com essas solues,

    possveis opes so: usar infraestruturas de nuvens privadas ou por contratao de

    provedores de servios por meio do pagamento sob demanda de uso ou contratando

    pacotes de servios especficos. Outra opo distribuir e paralelizar o processamento e

    armazenamento dos dados que desejam manipular em cluster usando solues como o

    Hadoop. A verdade que qualquer soluo exige conhecimento e investimento, porm o

    que deve ser considerado o menor esforo e o menor custo de cada possvel soluo.

    As solues de nuvem exigem, no caso da nuvem privada, esforos por parte dos

    analistas para criar e manter suas nuvens de dados, alm de custos relacionados compra

    de ferramentas especficas (quando proprietrias) ou de hardware. Quando se contrata

    um servio de nuvem de terceiros, alm dos custos para pagar esses servios, existem

    desafios relacionados movimentao dos dados (download ou upload) quando, por

    exemplo, necessrio manipular dados com ferramentas especficas no fornecidas pelo

    provedor contratado. No caso de uma soluo de cluster como o Hadoop, a infraestrutura

    j existente pode ser aproveitada, fazendo com que a capacidade de hardware subutilizada

    seja direcionada para o processamento e armazenamento de dados. Faz-se necessrio

    elaborar algoritmos adequados de MapReduce, tolerar rudos e falhas existentes no

    mundo real. O Hadoop o primeiro passo para a anlise dos dados [Silva et al. 2013;

    Oliveira et al. 2013 a].

    1.3.2.2 Processamento Paralelo e Distribudo: Tcnicas e Ferramentas

    Essa seo visa apresentar algumas tcnicas e ferramentas para o processamento

    distribudo de dados de RSO. Entre elas podemos citar o uso de clusters, sensoriamento

    participativo, computao em nuvem e tcnicas de fuso de dados.

    Entre as tcnicas de processamento distribudo, o sensoriamento participativo

    ganha destaque. Os telefones celulares, cada vez mais se tornando dispositivos multi-

    sensores, acumulando grandes volumes de dados relacionados com a nossa vida diria.

    Ao mesmo tempo, os telefones celulares tambm esto servindo como um importante

    canal para gravar as atividades das pessoas em servios de redes sociais na Internet. Estas

    tendncias, obviamente, aumentam o potencial de colaborao, mesclando dados de

    sensores e dados sociais em uma nuvem mvel de computao de onde os aplicativos em

    execuo na nuvem so acessados a partir de thin clients mveis. Tal arquitetura oferece

    poder de processamento praticamente ilimitado. Os dois tipos de dados populares, dados

    sociais e de sensores, so de fato mutuamente compensatrios em vrios tipos de

    processamento e anlise de dados. O Sensoriamento Participativo, por exemplo, permite

    a coleta de dados pessoais via servios de rede sociais (por exemplo, Twitter) sobre as

    reas onde os sensores fsicos no esto disponveis. Simultaneamente, os dados do sensor

    so capazes de oferecer informaes de contexto preciso, levando a anlise eficaz dos

    dados social. Obviamente, o potencial de combinar dados sociais e de sensores alta. No

    entanto, eles so normalmente processados separadamente em aplicaes em nuvem

    mvel e o potencial no tem sido investigado suficientemente. Um trabalho que explora

    essa capacidade o Citizen Sensing [Nagarjaran et al. 2011]. O estudo introduz o

    paradigma da Citizen Sensing, ativada pelo sensor do celular e pelos seres humanos nos

    Topicos em Gerenciamento de Dados e Informacoes 2014 SBC, 1a ed. ISBN 978-85-7669-290-4

    30

  • computadores - os seres humanos agindo como cidados na Internet onipresente, que

    atuam como sensores e compartilham suas observaes e viso atravs de Web 2.0.

    Outra tcnica promissora o uso de Sistemas de fuso de dados escalveis. Muitos

    trabalhos buscam o uso de tcnicas de fuso de dados distribudas para o processamento

    de dados de RSOs. Os autores em [Lovett et al. 2010] apresentam mtodos heursticos e

    probabilsticos para a fuso de dados que combinam calendrio pessoal do usurio com

    mensagens das RSOs, a fim de produzir uma interpretao em tempo real dos

    acontecimentos do mundo real. O estudo mostra que o calendrio pode ser

    significativamente melhorado como um sensor e indexador de eventos do mundo real

    atravs de fuso de dados.

    Outra tendncia o uso da Nuvem (Cloud) que est comeando a se expandir a

    partir da aplicao das TIC (Tecnologias da Informao e Comunicao) aos processos

    de negcios para a inovao, que se destina a aumentar as vendas e otimizar sistemas,

    identificando informaes valiosas atravs de anlise de dados das RSO agregados em

    nuvens. A inovao torna-se significativamente til quando aplicada diretamente no

    cotidiano das pessoas, auxiliando os usurios a tomarem decises (por exemplo, que

    caminho tomar em um dia de engarrafamento [Lauand 2013; Sobral 2013]), e isso torna-

    se gradualmente claro enquanto os grandes dados coletados so analisados de diversas

    maneiras. Por essa razo, a anlise dos dados deve ser repetida muitas vezes a partir de

    diferentes perspectivas e necessria alta velocidade e processamento de baixo custo em

    todas as fases de desenvolvimento e operao. Os benefcios oferecidos pela nuvem,

    como a disponibilidade temporria de grandes recursos de computao e de reduo de

    custos atravs da partilha de recursos tm o potencial de atender a essa necessidade.

    Apesar dos clusters HPC tradicionais (High Performance Computing) serem mais

    adequados para os clculos de alta preciso, um cluster HPC orientado a lotes ordenados

    oferece um potencial mximo de desempenho por aplicativos, mas limita a eficincia dos

    recursos e flexibilidade do usurio. Uma nuvem HPC pode hospedar vrios clusters HPC

    virtuais, dando flexibilidade sem precedentes para o processamento de dados das RSO.

    Neste contexto, existem trs novos desafios. O primeiro o das despesas gerais de

    virtualizao. A segunda a complexidade administrativa para gerenciar os clusters

    virtuais. O terceiro o modelo de programao. Os modelos de programao HPC

    existentes foram projetados para processadores paralelos homogneos dedicados. A

    nuvem de HPC tipicamente heterognea e compartilhada. Um exemplo de um cluster

    HPC tpico o projeto Beowulf (2014).

    1.3.3 Exemplo Prtico: Analisando Dados de RSP Usando Processamento Paralelo e Distribudo com Hadoop

    Hadoop uma plataforma de software escrita em Java para computao distribuda. Essa

    plataforma voltada para armazenar e processar grandes volumes de dados, tem como

    base o processamento com MapReduce [Dean e Ghemawat 2004] e um sistema de

    arquivos distribudo denominado Hadoop File System (HFS), baseado no GoogleFS

    (GFS) [Ghemawat et al. 2003]. Para a anlise de redes sociais, o Hadoop apresenta como

    benefcio: i) capacidade de armazenar grandes volumes de dados utilizando commodity

    hardware (no contexto de TI, um dispositivo ou componente que e relativamente barato

    e disponvel); ii) armazenar dados com formatos variados; iii) alm de trazer um modelo

    de alto nvel para processar dados paralelamente.

    Topicos em Gerenciamento de Dados e Informacoes 2014 SBC, 1a ed. ISBN 978-85-7669-290-4

    31

  • A arquitetura bsica de um cluster Hadoop est apresentada na Figura 1.7. Nessa

    figura, cada retngulo representa um computador em um cluster fictcio. No primeiro

    computador, da esquerda para direita, recebe a notao de NameNode, enquanto os

    demais recebem a denominao de DataNode. O NameNode responsavel por gerenciar

    o espao de nomes do sistema de arquivos e por regular o acesso de arquivos pelos

    clientes. O DataNode compe a unidade de armazenamento do cluster, onde os arquivos

    esto distribudos e replicados. Na imagem tambm esto apresentados os servios de

    JobTracker, que gerencia as tarefas de MapReduce, coordenando sua execuo e o

    TaskTracker que o servio de execuo de tarefas do MapReduce.

    Figura 1.7: Arquitetura bsica de um cluster Hadoop, adaptado de [Menon 2013].

    O MapReduce um modelo de programao para processar grandes volumes de

    dados de forma paralela. Um programa MapReduce construdo seguindo princpios de

    programaao funcional para processar lista de dados. Nesse modelo, deve existir uma

    funo de Mapeamento que processa partes de uma lista de dados paralelamente, ou seja,

    a funo de mapeamento executada por vrios ns do cluster, processando partes

    independentes dos dados e uma funo de Reduo, que recebe os dados dos ns do

    cluster que esto executando a funo de mapeamento, combinando-as. Por exemplo,

    considere um corpus textual onde se deseja obter as freqncias das palavras. Um

    programa em pseudocdigo, descrevendo a funo de mapeamento e de reduo, pode

    ser visto na Figura 1.8.

    Topicos em Gerenciamento de Dados e Informacoes 2014 SBC, 1a ed. ISBN 978-85-7669-290-4

    32

  • function map(String document):

    for each word w in document:

    emit (w, 1)

    function reduce(String word, Iterator partialCounts):

    // word: a word

    // partialCounts: a list of aggregated partial counts

    sum = 0

    for each pc in partialCounts:

    sum += ParseInt(pc)

    emit (word, sum)

    Figura 1.8: Exemplo Hadoop

    1.3.3.1 Ecossistema Hadoop

    Alm da capacidade de armazenar grande volume de dados de forma distribuda, permitir

    que esses dados apresentem diferentes formatos e prover mecanismos para processamento

    desses dados por meio de programas MapReduce, o Hadoop apresenta um ecossistema

    de ferramentas e bibliotecas que auxiliam em tarefas administrativas para o cluster, no

    processamento e anlise de dados e no prprio armazenamento de dados. A Figura 1.9

    apresenta algumas ferramentas que compem esse ecossistema.

    As ferramentas apresentadas so:

    D3: uma biblioteca JavaScript para visualizao de dados [http://d3js.org/] .

    Tableau: plataforma de visualizaao e anlise de dados proprietria, entretanto, possui verses gratuitas para estudantes e para universidades.

    [http://www.tableausoftware.com/pt-br]

    Mahout: um projeto da Apache Software Foundation para produzir implementaes livres de algoritmos de aprendizado de mquina escalveis,

    focados principalmente nas reas de filtragem colaborativa, clustering e

    classificao [https://mahout.apache.org/].

    R: ambiente para anlise estatsticas [http://www.r-project.org/]

    Java/Python/...: Java a linguagem oficial para criar programas em um cluster Hadoop, entretanto, possvel utilizar outras linguagens como Python

    e Ruby.

    Pig: uma plataforma para anlise de dados que consiste de uma linguagem de alto nvel para expressar uma anlise de dados e a infraestrutura para

    executar essa linguagem. [http://pig.apache.org/]

    Topicos em Gerenciamento de Dados e Informacoes 2014 SBC, 1a ed. ISBN 978-85-7669-290-4

    33

  • Figura 1.9: Ecossistema Hadoop, adaptado de [Bidoop Layes 2014]

    Hive: fornece um mecanismo para projetar, estruturar e consultar os dados usando uma linguagem baseada em SQL, chamado HiveQL

    [http://hive.apache.org/]

    HDFS: No uma ferramenta nem uma biblioteca, mas o cerne da plataforma Hadoop. HDFS um sistema de arquivos distribudo projetado

    para ser executado em commodity hardware

    HBASE: um banco de dados orientado a colunas e foi construdo para fornecer pedidos com baixa latncia sob Hadoop HDFS.

    [http://hbase.apache.org/]

    MongoDB: banco de dados orientado a documentos no formato JSON. [http://www.mongodb.org/]

    Kettle: ferramenta de ETL que permite tratamento de dados construindo workflows grficos. [http://community.pentaho.com/projects/data-

    integration/]

    Flume: ferramenta de coleta e agregao eficiente de streams de dados. [http://flume.apache.org/]

    Sqoop: ferramenta que permite a transferncia de dados entre bancos relacionais e a plataforma Hadoop. [http://sqoop.apache.org/]

    Chukwa: sistema de coleta de dados para monitoramento de sistemas [https://chukwa.apache.org/]

    Oozie: um sistema gerenciador de workflows para gerenciar tarefas no Hadoop. [http://oozie.apache.org/]

    Nagios: ferramenta para monitorar aplicativos e redes [http://www.nagios.org/]

    Zoo Keeper: um servio centralizador para manter informaes de configurao. [http://zookeeper.apache.org/]

    Topicos em Gerenciamento de Dados e Informacoes 2014 SBC, 1a ed. ISBN 978-85-7669-290-4

    34

  • 1.3.3.2 Exemplo de Anlise de Redes Sociais

    Como exemplo ser apresentado um algoritmo baseado em MapReduce para contagem

    de frequncia em grafos. Algoritmos como APRIORI necessitam contar a frequncia de

    cada subgrafo em uma base de grafos. Como esse processo computacionalmente custoso

    e deve ser executado em cada etapa do APRIORI, abaixo est apresentado um exemplo

    simplificado para contagem de frequncia. Considere uma base de Grafos D e a sua

    representao como uma lista de vrtices e arestas como exemplificado na Figura 1.10.

    1 a,b,c,d,e,f,g | ab,de,gf,dc

    2 h,i,c,d,e,f,n | hc,dc,ef, en

    N a,g,h,j,n,r,h | ag,ah,aj,rh

    Figura 1.10: Base de grafos D, contendo N grafos. O formato da base id do grafo, vrtices, arestas.

    Topicos em Gerenciamento de Dados e Informacoes 2014 SBC, 1a ed. ISBN 978-85-7669-290-4

    35

  • #MAP

    import sys

    sub_graf = #representao do subgrafo aqui

    for ling in sys.stdin:

    is_subgraph = True

    lista_vertices, lista_arestas = parser_grafo(line) # transformando o arquivo do grafo em uma lista de vrtices e

    outra lista de arestas

    #checando se todos os vrtices de sub_graf_input so vrtices em graf

    for v in sub_graf.vertices:

    if v not in lista_vertices:

    is_subgraph = False

    break

    #checando se todas arestas de sub_graf_input so arestas em graf

    if is_subgraph:

    for a in sub_graf.arestas:

    if a not in lista_arestas:

    is_subgraph = False

    if is_subgraph:

    print "%d\t%d"%(sub_graf.id, 1)

    else:

    print "%d\t%d"%(sub_graf.id, 0)

    Figura 1.11: Algoritmo de mapeamento.

    O primeiro passo criar o algoritmo para mapeamento. Ele deve processar um

    conjunto de subgrafos, com representao idntica da Figura 1.11, comparando cada um

    com um dos subgrafos representados na varivel sub_graf. Esses subgrafos poderiam ser

    provenientes de arquivos ou outras estruturas de armazenamento, mas foram postos

    diretamente no cdigo apenas para simplicar o exemplo. Para definir se um grafo

    subgrafo de outro est sendo feito a comparao dos vrtices e das arestas. Quando todos

    vrtices e arestas esto contidos no grafo, o algoritmo de mapamento retorna o id do

    subgrafo e o valor 1. Quando existe uma ou mais arestas ou vrtices que no fazem parte

    do grafo, o algoritmo retorna o id do sub_grafo e valor 0.

    O algoritmo de reduo agrega os resultados das tarefas de mapeamento,

    retornando o somatrio dos valores para cada id do subgrafo (Figura 1.12).

    Topicos em Gerenciamento de Dados e Informacoes 2014 SBC, 1a ed. ISBN 978-85-7669-290-4

    36

  • #Reducer

    import sys

    current_graph = None

    current_count = 0

    subgraph_id = None

    for line in sys.stdin:

    # removendo espaos em branco

    line = line.strip()

    # parseando o resultado produzido pelo mapper

    subgraph_id, count = line.split('\t')

    #convertento o contador para um inteiro

    count = int(count)

    #conta enquanto existirem valores para serem reduzidos

    if current_graph == subgraph_id:

    current_count += count

    else:

    #imprime o resultado caso outro id de sub_grafo esteja sendo processado

    if current_graph:

    print '%s\t%s' % (current_graph, current_count)

    current_count = count #zerando o contador

    current_graph = subgraph_id #atribuindo o novo id de sub_grafo

    #necessrio para imprimir o ultimo resultado

    if current_graph == subgraph_id:

    print '%s\t%s' % (current_graph, current_count)

    Figura 1.12: Reducer.

    1.4 Principais Desafios e oportunidades de pesquisa

    Analisar grandes volumes de dados extrados das redes sociais online permite que novas

    informaes sejam obtidas, as quais no eram possveis de serem verificadas devido s

    amostras desses tipos de dados ser menor. Porm, o aumento dos dados a serem

    analisados somam novos desafios aos j existentes na rea de anlise de redes sociais.

    Agora esses desafios so tanto do ponto de vista da anlise de redes sociais quanto do

    ponto de vista do avano das tecnologias de Big Data. O aumento das massas de dados

    das redes sociais est fazendo com que as tcnicas, metodologias e ferramentas de

    minerao de dados e anlise de grafos sejam adaptadas, melhoradas ou solues novas

    sejam criadas.

    Alguns dos principais desafios (que