Mind the spectral gap


  • Mon 10 August 2026
  • misc

In this post we're going to do two things:

  1. Apply the same analysis we did for twitter to bluesky
  2. Explain what the spectral gap of a social network is and how that relates to the propensity for that network to drive people into bubbles

Bluesky

I ran the same t-SNE plot of domain co-occurrence on this bluesky dataset I found on huggingface. Is this a representative sample of bluesky? I have no idea, but it's what I have to with for now.

Here's the plot:

the plot

A notable difference with twitter is that it doesn't have a right-wing cluster, but it does have a cluster consisting just of Democratic office races and places where Democratic politicians ask for donations.

Here's the interactive version. Points are domain names. Hover over a point with your mouse to see what domain name it is.

Spectral gap

The spectral gap of the adjacency matrix of the follower graph of a social network is approximately equal to the mixing time of a random walk on that graph, and that mixing time tells you how prone users are to getting stuck in a bubble.

Twitter circa 2010, per this dataset, has a spectral gap of 27.

Bluesky circa 2025, per this dataset, has a spectral gap of about 69 (68.85 something).

Bluesky has a much higher spectral gap! That also shows up in the plot, where you see a lot more small, isolated isalnds.

Huh? What's a follower graph?

A graph (aka network) where the nodes (or vertices) are users and the edges are the people that user follows.

What's a random walk on a social network?

Imagine a new user that joins a social network. When they start they follow a random other user (maybe the user that introduced them to the network).

That user takes a series of steps, where at each step they follow a random person that someone they follow follows. That's almost the same as picking a random user from the Who To Follow list on twitter, for example.

For the markov chain afficonados, our state space is an indicator vector over users indicating the set of users the user currently follows, and our transition function is or-ing that with a draw from the set of users that the users the user follows follows.

What's a mixing time?

How many steps does that user have to take before you can no longer guess, based on where they started, who they follow now? In other words, how long does it take before they break out of the neighborhood they started in?

If a social network consists of insular bubbles, then it will be unlikely that someone will follow people outside of the bubble they started in, and the network will have a long mixing time.

If a social network doesn't consist of bubbles, then when someone joins the network they quickly branch out and it becomes impossible to guess who they're following, so it has a short mixing time.

Why the spectral gap and not just the mixing time?

Because the spectral gap is something we can directly compute. Just get your hands on the follower graph and run your favorite eigendecomposition (I used scipy.sparse.linalg.eigs).

I don't know of any way to directly get the mixing time short of monte carlo simulations.

How do you lower the spectral gap?

Get people to follow accounts outside their bubble! The more people do that, the higher the conductance, and the lower the mixing time.