This is a network map. You’ve probably seen something like this before. What’s quite interesting is that this is an undirected graph (that is, the links go both ways - if A knows B, B knows A, that sort of thing) but there’s some directed activity implied.
Groups on sites like Facebook and Bebo work by members recruiting other members, either actively (”join this group”) or passively (friends can see on their friend feed that other friends have joined up, and decide to get involved).
We’d expect to find that people have strong existing personal relationships within such groups.
We took one group (a green interest group) which has around 2,000 members. We selected this group because it is has a clear single-minded proposition,as well as a strong local element that means that people are more likely to know each other than on some of the more generalist boards.
There are more than 250K publicly available relationships inside and outside the group, and we looked at analyzing all of them.
It seems that there are a few highly connected people (people with between 395-400 friends) who sit at the centre of these things, and on whom the eventual success of the group depends. While they may be no more active than other users (and may even be less active), they are the hubs who link together the network.
In the maps you can clearly see three kinds of shape.
Long fingers show where users get users (usually one or two at a time). Fan shapes show one user who mobilizes many friends. These are clearly interesting to us. In the middle are “mares nests” where lots of people know each other.
This is a pretty straightforward Pareto-like distribution: 33% of the users are connected to 79% of the members, the remaining 66% only link to 22% of the users.
Here’s how we’re going about it.
1) Spider every member of a group, and their friends
This shows the members of a group (red) and all their publicly-visible friends. This is a much smaller group than the one in the graph above (these things grow exponentially, you understand)
Red dots are members, grey dots are their friends.
I’ve gone through and blurred out the individuals’ names. We probably shouldn’t have been collecting those anyway…
2) Look for relationships between members
Here we just use a little perl script to sort through the lines selecting only those relationships between two members. In essence we’re throwing away all the other relationships. Perl is good at this sort of thing. I found a trick over at the perlmonks site that shows you how to search an array much faster than just grepping (which took a while).
3) Drop the results into NetDraw
We’re using Analytech’s excellent/free network drawing application, NetDraw. You can tweak the Windows Metafile output in things like Illustrator.



hmm it’s a dynamic network: would b REALLY interesting if you had longitudinal (time-axis) data showing growth
also at first glance there’s a real lack of deep structure there… wonder how much the member-get-member is constrained/conditioned/confined by facebook’s notification algorithms (ie how much in kneejerk joining behavior from those who saw a friend join in their newsfeed, rather than because there was real communication between existing members and potential recruits) — again would be interesting to see how people join and drop out over time, correlated against reason for joining (real communication vs facebook collaborative filtering/notification)