• Save
Crawling Orkut
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Crawling Orkut

  • 1,402 views
Uploaded on

Serviços de Redes sociais são aplicações web que proporcionam aos seus usuários interação e relacionamento com outras pessoas. Seus dados podem revelar comportamentos importantes da vida em......

Serviços de Redes sociais são aplicações web que proporcionam aos seus usuários interação e relacionamento com outras pessoas. Seus dados podem revelar comportamentos importantes da vida em sociedade. Neste artigo descreveremos o funcionamento de um coletor web (crawling web). Mostraremos as principais características dos grafos gerados a partir das coletas discutiremos a necessidade de modificação do processo de recuperação dos dados em busca de melhores resultados.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,402
On Slideshare
1,402
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. 1 Coletando relações sociais na rede Orkut Rogério Minhano, Universidade Federal do ABC (UFABC), Mestrado em Engenharia da Informação. grafo social em que os usuários são os vértices e suas relações Resumo — Vários indícios sugerem a existência de uma rede de amizade são as arestas. social por trás das redes geradas nos sistemas de recomendações. Os vértices de um grafo social é frequentemente associado a Como provar a existência delas? Serviços de Redes sociais são um conjunto de informações inerentes ao usuário. As mais aplicações web que proporcionam aos seus usuários interação e relacionamento com outras pessoas. Seus dados podem revelar comuns são as informações pessoais (perfil), fotos, vídeos, comportamentos importantes para a vida em sociedade. Neste publicações, lista de amigos, mensagens e recados. Nosso artigo descrevemos o funcionamento de um coletor web (crawling objetivo é a recuperação do grafo, buscamos apenas a lista de web). Mostramos também as principais características dos grafos amigos de cada vértice. O processo de coleta inicialmente gerados a partir das coletas. formará grafos esparsos em formato de árvore. A cada vez que o coletor executa um ciclo completo mais arestas são Índice de termos — grafos, redes sociais, redes complexas, adicionadas. Logo, espontaneamente os grafos esparsos aplicações web, coletores web. começam a se agrupar formando um único grafo conectado. I. INTRODUÇÃO Demonstramos as primeiras impressões que tivemos do grafo gerado pelo coletor. Calculamos algumas métricas Em abril de 2010 submetemos um trabalho intitulado “Uma estruturais em três estágios. Os grafos gerados possuem visão do marketing viral através da análise de redes aproximadamente um (1M), dois (2M) e três (3M) milhões de complexas.” Nesse artigo estudamos como ocorrem as vértices, respectivamente. interações e troca de recomendações entre assinantes de Ao final, mostramos que conforme aumenta o tamanho do revistas. Durante a pesquisa foi foram demonstrados vários grafo coletado mais próximo o resultado fica dos resultados indícios da existência de uma rede social por trás das alcançados por outros pesquisadores. recomendações. Isto é, os assinantes não recomendavam O Artigo está organizado da seguinte forma. A sessão II apenas para ganharem os bônus ou benefícios oferecidos. Mais apresenta alguns trabalhos relacionados e suas implicações que isso, eles recomendavam porque existe realmente uma para nossos experimentos. A sessão III trata efetivamente das relação de troca de recomendações entre o que faz a características e estratégias utilizadas no processo de coleta recomendação e o recomendado. Dessas suposições surgiram dos dados. A sessão IV discute os resultados extraídos dos os seguintes interesses de pesquisa: Existe realmente uma rede primeiros três milhões de usuários coletados e, finalmente, a social por trás das recomendações? Como provar essa sessão V expõe algumas discussões e trabalhos futuros. existência? A forma que escolhemos para responder essas perguntas é a comparação das redes de recomendação com II. TRABALHOS RELACIONADOS uma rede social real. Serviços de redes sociais (SRS) são aplicações web que Antes de tudo, dados de redes sociais são as informações de proporcionam aos seus usuários interação e formas de maior valor para os provedores de SRS. Eles são protegidos relacionamento com outras pessoas que também sejam regras de privacidades do próprio SRS e por leis usuárias do mesmo serviço. Essas interações são na forma de governamentais, portanto, é difícil conseguir os dados vídeos, mensagens instantâneas, fotos, depoimentos, e etc. diretamente dos provedores. Em segundo lugar, é um grande Nos SRS estão disponíveis muitas características desafio computacional coletar dados de milhões de usuários comportamentais de seus usuários e, extrapolando essa visão, das redes sociais. Muitas aplicações utilizam recursos por trás dos dados armazenados podemos descobrir também dinâmicos nas páginas (Ajax e DHTML) e, por isso não é características de grupos. Por isso existe tanto interesse de trivial desenvolver um tradutor eficiente. Além disso, essas pesquisa nessa área. Entretanto, os SRS não disponibilizam aplicações possuem várias formas de customização de suas seus dados para pesquisa principalmente por questões interfaces. Por último, a maioria dos SRS possui mecanismos relacionadas a privacidades. Logo, existe o problema da coleta próprios de defesa contra coletas robotizadas, portanto, a dessas informações. dificuldade é ainda maior. Um coletor web (ou web crawler) é uma aplicação que Desta forma, relacionamos aqui os trabalhos de coletas que efetua buscas na web com um objetivo especifico. Como o julgamos mais significativos e que estão mais próximos do Google, que coleta informações de páginas para depois coletor que desenvolvemos. indexá-las. Nesse artigo descreveremos o funcionamento de A pesquisa conduzida por Mislove et al. [7] é, até onde um coletor para recuperação de dados do SRS Orkut. Mais temos conhecimento, o maior estudo baseado em dados especificamente, esse coletor tem como objetivo montar um coletados de SRS já publicado. Foram coletados 11.3 milhões
  • 2. 2 de usuários e 328 milhões de relações. Suas análises Naturalmente, nosso objetivo pode ser divido em duas partes: confirmaram grande parte das propriedades conhecidas das a coleta dos vértices e a coleta das arestas. redes sociais, como distribuição dos graus segundo a lei da Os vértices de um grafo social é frequentemente associado a potência e agrupamentos fortemente conectados. Leskovec et um conjunto de informações inerentes ao usuário. As mais al. [1] analisou vários algoritmos de amostragem para grafos e comuns são as informações pessoais (perfil), fotos, vídeos, mostrou o quanto uma coleta pode ser viciada. Gjorka et al. publicações, lista de amigos, mensagens e recados. Todas elas, propôs um método para amostragem que seleciona os vértices com um nível maior ou menor de dificuldade, podem ser uniformemente sem necessidade de conhecimento sobre a rede recuperadas. Como nosso objetivo é a recuperação do grafo, inteira. buscamos apenas a lista de amigos de cada vértice. Por outro Entretanto, todos esses trabalhos selecionam os vértices que lado, poucas informações são associadas às arestas do grafo. irão iniciar as coletas com alguma probabilidade. Fazem isso Na maioria dos casos as informações tratam apenas da forma com o objetivo de diminuir o viés do resultado. Porém, em como o usuário categoriza seus amigos, por exemplo, amigos, nosso caso, o objetivo é exatamente o contrário. Como nosso companheiros de trabalho, familiares, etc. Logo, a única ponto de partida é a rede de recomendações, buscamos formar informação referente às arestas que nos interessa é a sua o grafo mais conectado possível ao redor dos usuários da rede própria existência. de recomendações. Escolha dos vértices iniciais A escolha dos alimentadores é um passo importante no III. COLETOR DE REDES SOCIAIS processo de coleta. É denominado alimentador o vértice pelo Definição qual o processo de coleta é iniciado. A maioria dos coletores O que é um web crawler, ou coletor web? Em primeira que estudamos escolhe aleatoriamente seus alimentadores. instância estamos falando de uma aplicação que faz buscas e Essa abordagem é interessante quando o objetivo é capturar captura de informações na rede com um objetivo determinado. um exemplo do grafo. Contudo, existem evidencias de que O Google, por exemplo, busca páginas (no contexto mais algumas características do grafo resultante não são fieis ao amplo de uma página web) para depois indexá-las. No nosso grafo real [1][2]. caso estamos falando especificamente de coletas em serviços Em nosso caso, a pilha inicial de alimentadores é composta de redes sociais (SRS). Logo, nosso objetivo é fazer busca nas de uma coleção de usuários já estabelecida. Nossa pesquisa redes e capturar informações específicas dentro de suas consiste em demonstrar empiricamente a existência de uma páginas. rede social por trás de uma rede de indicações, portanto, a lista Grande parte dos SRS fornece bibliotecas de código aberto de indicações é nosso ponto de partida para formarmos o grafo que auxiliam no processo de coleta dos dados. Algumas delas social. Logo, se nosso grafo está de alguma forma diferindo da são Facebook1, Flirck 2 e Twitter3. Entretanto, nosso objetivo é realidade, isto ocorre propositalmente. efetuar coletas na rede social Orkut4. O Orkut fornece uma Algoritmo utilizado biblioteca para desenvolvimento de aplicações chamada Open Quatro algoritmos para coleta dos vértices são vastamente Social. Essa, por sua vez, não permite a captura de utilizados na prática. informações da rede. Logo, uma característica preponderante em nosso coletor é a simulação de um paginador (web • BFS (breadth-first search): É o algoritmo mais browser) e o tratamento das páginas recuperadas. popular, faz seleção simples do primeiro item da pilha. Qual a finalidade do coletor? • Greedy: O coletor seleciona o vértice com o maior Toda rede social pode ser modelada como um grafo. Um grau5 na pilha, desde que o vértice não tenha sido grafo é um formalismo matemático que serve para representar coletado ainda. objetos e relações entre eles. Esta simples estrutura encontra- • Lottery: O coletor seleciona o vértice com maior se em uma grande diversidade de aplicações como circuitos probabilidade proporcional ao seu grau. Este algoritmo elétricos, estradas, vários tipos de redes, ecossistemas, prefere os vértices com os graus maiores, mas ele relações sociais, interação molecular, bases de dados, também seleciona os de graus menores para reduzir o estruturas de controle de programas e sistemas de permissões viés da amostra. de sistemas de segurança. Estes são alguns exemplos da • Hypothetical greedy: O coletor sempre seleciona o grande variedade de aplicações da teoria dos grafos. vértice com maior grau na pilha, dado que o maior grau Da perspectiva de um grafo, os usuários dos SRS podem ser aqui é o maior grau no grafo real, isto é, o maior grau modelados como vértices e suas relações sociais como arestas. verdadeiro. Um cenário típico para aplicação desse O objetivo deste artigo é discutir o processo de busca e algoritmo é a amostragem de um subgrafo de um grafo recuperação de dados do grafo social por trás do Orkut. maior. 1 http://www.facebook.com/ 5 2 http://www.flickr.com/ Grau de um vértice é a quantidade de arestas conectadas a ele. Geralmente 3 são divididos em graus direcionados de entrada e graus de saída. Porém, como http://www.twitter.com/ na SRS Orkut uma pessoa adicionada como amigo precisa necessariamente 4 http://www.orkut.com/ aceitar o convite, o vértice criado não é direcionado.
  • 3. 3 O algoritmo utilizado em nosso coletor é o BFS por ser o Da mesma forma, podemos observar que a média do que melhor se encaixa em nossas necessidades. coeficiente de agrupamento7 também é crescente. Sendo assim, o processo de coleta do grafo social pode ser Tabela 1: Métricas gerais sobre as redes. (G) Nome do grafo, (V) resumido nos seguintes passos: Número de vértices, (A) Número de arestas, (MV) Média dos 1. Organizar os vértices alimentadores em uma pilha (a graus dos vértices, (CA) Média do coeficiente de agrupamento e (α) Parâmetro de escala. ordem é indiferente porque de qualquer forma todos serão coletados); G V A MV CA α 2. Selecionar o primeiro vértice alimentador; 3. Coletar o vértice no SRS; 1M 924.764 996.575 2,155 0,000246 1,041 4. Armazenar a lista de amigos do vértice; 2M 1.741.084 996.575 2,289 0,000514 1,129 5. Voltar para o passo dois até que toda lista de amigos 3M 2.479.609 3.479.396 2,806 0,000782 1,463 dos alimentadores seja coletada; 6. Categorizar os vértices coletados como alimentadores e Distribuição Lei da Potência voltar para o primeiro passo até que o sexto nível seja A teoria das redes complexas tem sido usada vastamente no alcançado. estudo de interações humanas. Vários autores mostraram que essas redes frequentemente seguem uma distribuição chamada O processo de coleta inicialmente formará grafos esparsos Power-law, ou lei da potência [5]. Esta distribuição possui em formato de árvore. A cada vez que o coletor executa um uma função de densidade de probabilidade (FDP) da forma ciclo completo mais arestas são adicionadas. Logo, , onde é a probabilidade de encontrarmos o espontaneamente os grafos esparsos começam a se agrupar valor , é uma constante e é um parâmetro da distribuição formando um único grafo conectado. Isso acontece devido ao chamado de parâmetro de escala. De forma geral, para todas efeito mundos pequenos, que demonstra que as pessoas em um as redes encontradas na natureza, o parâmetro de escala grafo real estão sempre a menos de seis passos de separação encontra-se próximo dos limites dois e três, isto é, . [3]. O coletor será finalizado ao final da coleta do sexto nível. Um outro termo, que também caracteriza essas redes, muito comum encontrado na literatura é redes de escala livre. IV. PRIMEIROS RESULTADOS Nosso objetivo nesta sessão é demonstrar as primeiras impressões que tivemos do grafo gerado pelo coletor. Para isso calculamos algumas métricas estruturais de interesse geral para a rede gerada em três estágios. Os grafos gerados possuem aproximadamente um (1M), dois (2M) e três (3M) milhões de vértices, respectivamente. Utilizaremos como exemplo grafos com no máximo três milhões devido ao custo computacional dos algoritmos executados. Métricas de interesse Nós usamos apenas métricas para medidas estruturais das redes. Como todas elas são utilizadas e discutidas vastamente na literatura não iremos defini-las uma a uma. Apenas nos momentos essenciais para o entendimento do texto explicaremos o significado. Contudo, para um melhor entendimento dos cálculos empregados na obtenção das Figura 1: Distribuição de probabilidade em função da medidas, indicamos a seguinte leitura [6]. conectividade dos vértices para os grafos 1M, 2M e 3M. Na Tabela 1 podemos observar a progressão na Existem várias formas de se estimar o parâmetro de escala conectividade6 dos vértices. A métrica MV é a média de de uma lei da potência. Uma abordagem bastante utilizada é conectividade dos vértices. Aqui, podemos traduzir como a construir um histograma dos dados e traçar um gráfico em média de amigos de um usuário. Em todos os três casos escala logarítmica (log-log) dos valores. O resultado é uma estudados a média deu abaixo de três, o que está muito longe linha muito próxima de uma reta. Contudo, em vários casos do esperado. Isso acontece porque o coletor faz buscas em esse método não é eficiente e a maioria de seus resultados são largura, logo, como explicamos na sessão III, os resultados pobres comparado a técnicas mais precisas como o Maximum serão sempre em formato de árvores. Mesmo assim podemos Likelihood Estimation (MLE), ou estimação da máxima observar que a progressão na conectividade está acontecendo. verossimilhança[5]. Utilizaremos à técnica MLE. 7 Coeficiente de agrupamento representa a probabilidade de existir uma relação entre A e C, dado que A conhece B e B conhece C. Logo, quanto mais 6 Conectividade de um vértice representa a quantidade de vértices que são próximo o coeficiente chegar de 1 maior é a probabilidade de A, B e C se adjacentes a ele. conhecerem.
  • 4. 4 A Figura 1 mostra a diferença entre as FDPs nos três grafos. resultado. Portanto, esperamos constatar em trabalhos futuros Como podemos perceber a quantidade de vértices com que nossas suposições estejam corretas. probabilidade parecida é preponderante. Isso é resultado do processo de coleta. A cada nível coletado no grafo, os vértices V. DISCUSSÃO E TRABALHOS FUTUROS que são coletados invariavelmente possuem poucas arestas. O tamanho do grafo coletado até abril de 2010 é de Isto é, certamente ele possuirá uma aresta ligada ao aproximadamente 15 milhões de vértices e 40 milhões de alimentador e, além dessa, algumas arestas a mais que são arestas. A quantidade de arestas cresce mais rápido que a de referentes aos seus amigos que já foram coletados e vértices, como é esperado. É difícil estimar a quantidade atual armazenados. Conforme o processo de coleta avança, avança de usuários ativos no SRS Orkut. Nas páginas oficiais sobre também a quantidade de arestas em relação aos vértices. Logo, estatísticas estão disponíveis apenas informações sobre a como nesse estágio os três grafos possuem quantidades de porcentagem de usuários por país. O Brasil é o primeiro da vértices e arestas próximas, a probabilidade de um vértice que lista e representa 50,6% dos usuários ativos [4]. Porém, acabou de ser coletado tende a ser pequena. Com o passar do baseados apenas nessas informações não é possível quantificar tempo esperamos que essa linha formada na Figura 1 chegue a porcentagem de usuários já coletados na rede. cada vez mais próximo de uma reta. O parâmetro de escala Isso é uma grande preocupação, pois não temos formas de mostrado Tabela 1 também está abaixo do esperado para uma estimar o final do processo de coleta. No estágio atual, o rede social ( ), mas também demonstra avanços coletor já recuperou aproximadamente metade do segundo conforme o tamanho do grafo aumenta. nível, isto é, utilizando os vértices do primeiro nível como alimentadores. Então, ao final dessa fase, teremos dois níveis completos e um apenas com as arestas do alimentador e dos amigos que já haviam sido coletados. Como nosso objetivo é coletarmos um grafo altamente conectado, modificaremos a estratégia de coleta. O coletor passará recuperar as relações entre os usuários armazenados no segundo nível. Isso será o estágio final de nossa coleta. Contudo, os dados atualizados da coleta mostram que todos os resultados mostrados nesse artigo estão cada vez mais coerentes com os resultados apontados por outros pesquisadores. REFERÊNCIAS [1] J. Leskovec and C. Faloutsos, “Sampling from large graphs,” in KDD’06: Proceedings of the 12th ACM SIGKDD international conference on Knowledge discovery and data mining, 2006, pp. 631– 636. Figura 2: A conectividade média (knn) dos vizinhos mais [2] S. H. Lee, P.-J. Kim, and H. Jeong, “Statistical properties of sampled próximos em função da conectividade do vértice (k) para os networks,” Phys. Rev. E, no. 73, p. 016102, 2006. grafos 1M, 2M e 3M. [3] D. J. Watts and S. H. Strogatz, “Collective dynamics of ‘small-world’ networks,” Nature, vol. 393, pp. 440–442, 1998. [4] Orkut (2010). All Members. http://www.orkut.com/MembersAll, Correlação entre os vértices Acessado em 05/05/2010. A Figura 2 mostra qual é a relação preponderante entre os [5] A. Clauste, C. R. Shalizi, and M. E. J. Newman. Power-law distributions vértices do grafo. Para isso mostramos uma correlação entre in empirical data. SIAM Review, 2009. os valores obtidos pelo algoritmo k-vizinhos mais próximos, [6] Luciano F. Costa, Francisco A. Rodrigues, Gonzalo Travieso, and P.R. Villas Boas, Characterization of complex networks: A survey of ou k-nearest neighbors knn e o grau dos vértices k . Logo, measurements, Advances in Physics, volume 56, pp 167-242, 2007. obtemos dessa correlação a frequência em que os vértices de [7] A. Mislove, M. Marcon, K. P. Gummadi, P. Druschel, and B. diferentes graus se relacionam. Isso pode nos indicar, por Bhattacharhjee. Measurement and analysis of online social networks. Proceedings of the internatonal ACM conference SIGCOMM, pages 29- exemplo, que vértices altamente conectados tendem a se 42, 2007. conectar com vértices de baixa conectividade ou se os vértices [8] M. Gjoka, M. Kurant, C. T. Butts, and A. Markopoulou, “Unbiased se conectam com vértices de conectividade similares. Como sampling of facebook,” 2009. podemos perceber os vértices de nossa amostra tendem a se conectar com vértices menos conectados. Outros trabalhos já mostraram que os usuários da rede Orkut tendem a se conectar com usuários de conectividade semelhantes [7]. Portanto, atribuímos essa disparidade no comportamento a quantidade limitada de arestas que estamos trabalhando. É esperado que o resultado da Figura 2 fique mais próximo de uma linha horizontal. Como podemos ver, conforme aumenta o tamanho da rede mais próximo disso fica o