前置き
本記事は Nostrasia 逆アドベントカレンダー 9月30日分の記事として書きました。
Nostrasia 2024 の LT では、Nostr の フォロワーネットワークのスケールフリー性と、スモールワールド性について話をさせてもらいましたが、ここでは複雑ネットワークのもう一つの指標、クラスタリング係数について述べたいと思います。
方向つきグラフのクラスタリング係数
フォロワーネットワークという文脈において、「クラスター」を「自分のフォロワーのフォロワーが更に自分のフォロワーである」という状況としたいと思います。
(矢印の始点が矢印の終点をフォローしていると定義します)
図では 1 が自分、2,3,4,5が自分のフォロワーです。2 に着目したとき、3 は 2 のフォロワーになっています。この状況で1,2,3 の形作る三角形をクラスターと定義します。
このモチーフは必ずしも上記で一意に決まるわけではありませんが、定義の定性的解釈の自然さ、分かりやすさの観点から、ここではこの定義を採用したいと思います。
1, 2, 3, 4, 5 それぞれを中心にして、フォロワーとフォロワーのフォロワーがクラスターの関係を作るかどうかをすべて調べます。そして、クラスターの個数と、フォロワーのペアが作る三角形の総数の比をユーザーのクラスタリング係数と定義します。
$$ C_i = \frac{\sum_{(i;j,k)} g \left(i,j,k\right) }{n_i(n_i-1)} $$
$(i;j,k)$ は ユーザー $i$ のフォロワーペア $j$,$k$ の組み合わせを意味します。$g(i;j,k)$ は、この組み合わせでクラスターが成立すれば $1$、そうでなければ $0$ とします。
$n_i$ は $i$ のフォロワー数です。
ユーザーがお互いにフォローしていれば、クラスタリング係数は大きくなります。
そして、ネットワーク全体の平均クラスタリング係数を以下の様に定義します。
$$ C = \frac{1}{N}\sum_{i=1}^N{C_i} $$
ただし、ここでは最低でも二人以上のフォロワーが存在するユーザーに関して平均を取るものとします。
調査結果と比較
2024年8月1日から8月31日の期間で、アクティブユーザーのnpubをグローバルで収集し、そのnpub 間のフォロワーネットワークにて、平均クラスタリング係数を算出しました。
X/Twitterで同様な調査をした結果を、インターネット上で見つけられる範囲で調査し、それを並記しました。
Average Clustering Coefficient | |
---|---|
Nostr | 24.3% |
X/Twitter | 1.9% (*1) |
(*1) From Interest Clustering Coefficient: a Metric for Directed Networks like Twitter (PDF)
上記から、Nostr のフォロワーネットワークの平均クラスタリング係数は、X/Twitter の10倍程度あります。ここまで違っているとプログラムがミスっているかも…と考えてしまうのですが、LT で言及した「Nostrのユーザーは X/Twitter と比べるとユーザー間でフォローしあっている確率が高い」という結果とも符号しています。
以下頻度分布です。クラスタリング係数 0.2 から 0.4 の間に大多数のユーザーが属しているのが分かります。
こちらは、横軸をクラスタリング係数・縦軸フォロワー数で散布図としてプロットしたものです。
散布図の上限にものすごくきれいな境界が見えるのが気になります…。
ミスっていないかな…。これが何らかの法則からきているなら凄いことかもしれないんですけど…。
結論
Nostr のフォロワーネットワークのクラスタリング係数は、ツイッターよりも大分大きそうです。
理由として考えられるのは、Nostr は互いにフォローしあっている確率が高いことです。
Nostr はユーザーベースが小さく、互いに知り合いのような状況が多く、このように、クラスタリング係数が非常に大きくなっていると考えられます。
各ユーザーのクラスタリング係数とフォロワー数の散布図はちょっと不思議な形をしています。特に分布の上側に明確な境界が見えるのが気になります。かなり特徴的なので、何らかの理由があるか、集計がミスっているかのどちらかなのですが、解明には至っていません。