// you’re reading...

Immanence

Entropia informacional e um índice Twitter de reputação

Sejam $latex s_1 \cdots s_n$ os $latex n$ seguidores de uma pessoa no Twitter.

Agora, para cada uma desses seguidores, denote $latex m_i$ o número de pessoas que essa pessoa segue. O índice de reputação é definido como

$latex R = \sum_{i=1}^n \frac{\log_2 m_i}{m_i}$

Uma leitura cuidadosa da explicação do conceito de entropia informacional na Wikipedia justifica este índice.

O problema dos rankings é que não diferenciam entre ser assinado por grandes assinantes e ser assinado como um dos poucos feeds importantes. Quem é que rodava aquele bot-fazedor-de-rankings mesmo?

Related posts:

Discussion

18 comments for “Entropia informacional e um índice Twitter de reputação”

  1. “O problema dos rankings é que não diferenciam entre ser assinado por grandes assinantes e ser assinado como um dos poucos feeds importantes.”

    Perfeito.

    Posted by Nick Ellis | August 28, 2007, 9:25 pm
  2. Genial.

    Posted by opiumseed | August 28, 2007, 11:48 pm
  3. Mostrei essa fórmula para o pessoal aqui do trabalho. Pensávamos em como ter um algorítimo que calculasse a relevância de um funcionário a partir de um organograma. Não sei se vamos chegar a testar, mas os matemáticos daqui concordaram que é uma excelente saída.

    Posted by opiumseed | August 31, 2007, 2:36 pm
  4. O bot é meu, achei sensacional a idéia. Mas não entendi uma coisa: meu m1 é quantas pessoas me assinam ou quantas pessoas eu assino?

    Posted by Cristiano Dias | August 31, 2007, 4:20 pm
  5. É assim. Você tem n assinantes. Vamos numerá-los: i=1,2,…,n

    m(i) é quantas pessoas esse assinante seu assina, incluindo você.

    Esse é o número que entra na fórmula acima.

    Posted by Macx | August 31, 2007, 4:29 pm
  6. Eu sei que a API não dá isso direto, mas quando você crawleou a coisa toda você pode cruzar os dados facilmente.

    Eu já estava baixando aqui o módulo Python pra acessar a API do Twitter, mas não consigo instalar simplejson aqui no Windows do trabalho. Em casa, no meu Mac, acabarei escrevendo o meu próprio bot. Aliás, como é que você delimita quem faz parte da twitterosfera brasileira?

    Posted by Macx | August 31, 2007, 4:31 pm
  7. Rotina em Python para calcular o índice de reputação:

    import math
    def entropy(x): return (math.log(x)/(math.log(2)*x))
    def reputacao(xs): return (sum(map(entropy,xs)))

    onde xs é uma lista com o número de seguidores de cada pessoa que te segue.

    Agora não tem desculpa de notação matemática :P

    Posted by Macx | August 31, 2007, 4:45 pm
  8. Mas peraí… o m(i) não deveria ser o número de pessoas que *seguem* o i, em vez de quantas pessoas ele segue?

    Posted by Cristiano Dias | August 31, 2007, 4:53 pm
  9. Você continua com rankings na cabeça. Isto não é um PageRank, é uma medida do quanto a pessoa está ligada a redes sólidas. É um conceito diferente.

    Posted by Macx | August 31, 2007, 5:01 pm
  10. Eu quero pagerank. 8-)
    Estar na lista do Cory –> http://twitter.com/doctorow deveria contar muitos pontos. Ele lê pouca gente mas muita gente lê ele, fora o fato de que muita gente fodástica lê ele. (ignorando o fato de que ele não atualiza tem 3 meses…)

    Posted by Cristiano Dias | August 31, 2007, 5:03 pm
  11. Precisamente. Estar na lista do Cory conta muitos pontos.

    Vede:

    >>> reputacao([150,150,150,150,150])
    0.24096062301652937
    >>> reputacao([150,150,4])
    0.59638424920661171
    >>> reputacao([150,150,4,4,8])
    1.4713842492066118

    Posted by Macx | August 31, 2007, 5:06 pm
  12. O índice de reputação faz exatamente o que eu prometi. A coisa é que o Cory não vale mais por ser muito lido, mas por ler pouca gente. Estrelas não me importam, talvez porque várias pessoas com quem eu estudei viraram astros de TV e chegaram a sair na Playboy :P Mas, sério, no índice de reputação o que conta é a atenção que a pessoa te dispensa.

    Posted by Macx | August 31, 2007, 5:07 pm
  13. Cris, no caso que estávamos estudando aqui, dado um organograma empresarial bem complexo, que em si já contém uma hiearquia (rank) o número de seguidores Si é o número de funcionários sob o sua gerência e o Mi é quantos gerentes (pessoas hierarquicamente acima) cada pessoa tem.

    Desta forma, um cara que esteja abaixo hierarquicamente (um gerente e não um VP, por exemplo), mas que tem autonomia de decisão (aka, poucas ou nenhuma pessoa diretamente acima dele) tem, teoricamente, mais relevância do que um cara hierarquicamente (rank) acima, mas que tem pouca gente para administrar e deve satisfação para muita gente (estando diretamente abaixo de um grande grupo de pessoas).

    Repare que relevância, nesse caso, é relevância corporativa: poder e autonomia de decisão.

    Entendi alguma coisa errado?

    Posted by opiumseed | August 31, 2007, 5:17 pm
  14. Entendi… eu preferia uma coisa mais parecida com whuffie/pagerank, onde quem lê o cara conta pontos. Se alguém é lido por 3000 pessoas e lê você, você ganha muito ponto.

    Mas no fim-de-semana dou uma brincada com esse algoritmo.

    Posted by Cristiano Dias | August 31, 2007, 5:20 pm
  15. Pois é. Let a thousand bots flourish. ;)
    A minha questão é the attention economy — uma medida de quanta atenção uma pessoa recebe.

    O que eu quero na vida é ter alguns bons amigos que tenham uma parcela de atenção pra mim, não ser acompanhado por uma legião de fãs. O peso de estrelismo das pessoas não me interessa. Aliás, é por isso que não participo de Blogdays e similares. Além de que entropia informacional tem propriedades matemáticas importantes que se transferem diretamente para o índice de reputação.

    Qual é a chance de eu ter acesso ao código do seu robô?

    Posted by Macx | August 31, 2007, 5:53 pm
  16. (Se o que te interessa é um ranking melhorado, dê uma olhada no algoritmo do PageRank. Não tem uma fórmula fechada e você precisa aprender o que são autovetores e autovalores (em inglês, eigenvalues e eigenvectors ;)) mas é muito eficiente, como mostra a experiência do Google.)

    Posted by Macx | August 31, 2007, 5:57 pm
  17. Hmmm… vai ser complicado… O Twitter não informa que lê Fulano, então eu teria que crawlizar TODOS os usuários do Twitter pra ter a informação correta. E isso é um trabalho meio hercúleo.

    Mas pegando só os lusófonos já dá pra quebrar um galho.

    Posted by Cristiano Dias | August 31, 2007, 8:08 pm
  18. Pode não ser reputação no Twitter todo, mas é reputação numa rede. As pessoas podem se inscrever num site para serem crawleadas.

    Posted by Macx | September 1, 2007, 11:47 am

Post a comment

You must be logged in to post a comment.