Skip to main content

Calculating a user"s importance or "Betweenness Centrality" from a user"s followers?


I want to know how I can find interesting relationships between users accounts such as the most connected, or most valuable users based on their connections to others.



Below I have the two tables I use. One has all the users, the other has the keys of the users they follow.




User
{
id,
name
}

Follows {
user_id -> user.id,
following_id -> user.id
}



What type of algorithms am I looking for?



Assuming unimportant people have little or no followers, how can I find the people in the center of the graph? I would assume they would be important because they have important people following them.



Update



As David and Steve point out, how close given nodes are, what nodes form sub communities, and which users are the most connected are all examples of useful data that can be pulled from this schema.



Since this "follower" design is used by many sites now, I've started a bounty in the hopes of getting some solid SQL or programming language implementations that might be useful to a wide variety of people.



It's worth noting that while the results of some algorithms are fascinating, others (such as finding related nodes) would have worth to the users of our sites as we can recommend things to them.


Source: Tips4all

Comments

  1. If you only concentrate on the links, try these popular centrality measures (assume G is the graph):


    Degree: Degree of node i is defined as ki/(N-1), where ki is the number of links to node i and N is the total number of nodes. Higher degree means important.
    Closeness: Closeness of node i is defined as (N-1)/(Σ_(j∈G) dij), where dij is the distance between node i and node j. This emphasizes on the distances of a node to all others nodes in the social network.
    Betweenness: Betweenness defined as (Σ_(j<k∈G) njk(i) / njk) / ((N-1)(N-2)), where njk denotes the number of shortest paths between nodes j and k, and njk(i) is the number of these paths running through node i. Betweenness of node i is higher means node i may be a good center that there are many connections between any other two nodes need to pass through node i.


    Above measures can be easily calculated by only the link information, and you can use one or combine more of these centrality measures to find out the important node(s) in the social network. Anyway, according to the definition of "important", you may need other different measures.

    ReplyDelete

Post a Comment

Popular posts from this blog

[韓日関係] 首相含む大幅な内閣改造の可能性…早ければ来月10日ごろ=韓国

div not scrolling properly with slimScroll plugin

I am using the slimScroll plugin for jQuery by Piotr Rochala Which is a great plugin for nice scrollbars on most browsers but I am stuck because I am using it for a chat box and whenever the user appends new text to the boxit does scroll using the .scrollTop() method however the plugin's scrollbar doesnt scroll with it and when the user wants to look though the chat history it will start scrolling from near the top. I have made a quick demo of my situation http://jsfiddle.net/DY9CT/2/ Does anyone know how to solve this problem?

Why does this javascript based printing cause Safari to refresh the page?

The page I am working on has a javascript function executed to print parts of the page. For some reason, printing in Safari, causes the window to somehow update. I say somehow, because it does not really refresh as in reload the page, but rather it starts the "rendering" of the page from start, i.e. scroll to top, flash animations start from 0, and so forth. The effect is reproduced by this fiddle: http://jsfiddle.net/fYmnB/ Clicking the print button and finishing or cancelling a print in Safari causes the screen to "go white" for a sec, which in my real website manifests itself as something "like" a reload. While running print button with, let's say, Firefox, just opens and closes the print dialogue without affecting the fiddle page in any way. Is there something with my way of calling the browsers print method that causes this, or how can it be explained - and preferably, avoided? P.S.: On my real site the same occurs with Chrome. In the ex