よろしい、ならば分析だ。(作者同士のネットワーク編その3)

 前回までのPreviously on『分析』"Analysis"は――


 百五十八神将との戦いに備え、英雄『草薙くさなぎタケル』は秘策を用意していた。彼らの弱点を分析するため、女神幼馴染みの『とう景子けいこ』から与えられた能力『Webスクレイピング』を使って、彼らの眷属85142人分のデータまで準備していたのだ!

 英雄タケルは、全体の傾向と百五十八神将の傾向が違っていることに気づき、攻撃の糸口を掴んだ。いよいよ、決戦の刻だ!


 ――――――――――――――――


 俺の名前は草薙タケル。アニメを見てたら、家族に「これおもしろいから絶対読め」と言われてアンソニー・ホロヴィッツの新作を無理矢理押しつけられた厨二病である。……タイトルは「メインテーマは殺人」か。べ、別に面白そうとか思ってないんだからねっ!後で読もう。


「さぁ、早くネットワークの説明をしなさいよ。この一日、気になって眠れなかったんだから」

「嘘つけ。十一時にはラインの反応なくなったくせに」


 少し大袈裟な物言いをしているは、幼なじみのとう景子けいこだ。もし尻尾がついていれば、ものすごい勢いでブンブン振ってそう。


「もう一回、図を見せてくれる?」

「分かった。アドレスはこれだ」



https://pbs.twimg.com/media/ERIheBiUUAI35yP?format=jpg&name=4096x4096


(ツイート本体:https://twitter.com/t_kusanagi/status/1230082456709038080)


(※データは二〇二〇年二月十八日に収集しました)



「凡例は前回紹介したから、省略する」

「はーい」

「では、お待たせしました。いよいよネットワークの見方について説明するぞ」

「待ってました!」

「まずは基本的な名称から押さえていこう。丸い点のことを『ノード』、ノードとノードを結んでいる線を『エッジ』と言う」

「ふむふむ」

「そして、ノードとエッジで構成されたネットワークのことを『グラフ』と言うんだ」


「……ちょっと待って、タケル君。何気に数学の授業が始まってない?」

「気のせいだよ」

「気のせいじゃないって! これってあれでしょ、大学で習う『グラフ理論』って奴じゃないの!?」

「うーん、ばれたか。でも、最近は高校でも教えるところがぼちぼち増えてきているらしい」

「え、そうなの」

「世の中、ネットワークだらけだからね。鉄道網とかSNSとか。まぁ、今回は必要最低限のことだけを紹介するから、信じてついてきて」

「……分かったわ」

「じゃ、復習だ」


 図1:無向グラフ

 ――――――――――――――――

    エッジ

  ○―――――○

 ノード1  ノード2

 ――――――――――――――――


「ね、簡単でしょ?」

「ば、バカ。これくらい分かるわよ」

「じゃぁ、少しレベルを上げよう。俺がアップした図には、エッジに矢印がついているのが分かるかな?」

「そう言えばついてるわね。これはどういう意味?」

「これは、エッジに向きが有ることを表している。これを、『有向ゆうこうエッジ』を言う」


 図2:有向グラフ

 ――――――――――――――――

   有向エッジ

  ○―――――>○

 ノード1   ノード2

 ――――――――――――――――


「そのまんまね」

「そして、有向エッジを持つようなグラフは『有向グラフ』と呼ぶぞ。ちなみに、図1で示したような向きの無いエッジを使ったグラフは『無向グラフ』言うけど、今回は全く関係ないので忘れてもらって構わない。


 今回のネットワークでは、矢印の向きはフォロー・フォロワー関係を表している。つまり、矢印の根元の人(ノード1)が、矢印の先端の人(ノード2)をフォローしていることを意味している。『ユーザーが矢印の向きに見に行っている』と考えると分かりやすい」

「なるほど。あれ、矢印が両方ついているエッジもあるわね」

「よく気付いたね。これはお互いがフォローしあっている相互フォローを表している」


 図3:有向グラフ(双方向エッジを含む)

 ――――――――――――――――

    双方向エッジ

  ○<――――――>○

 ノード1    ノード2

 ――――――――――――――――


「図3では、矢印の数は二個だけどエッジの数は一本として扱うぞ。さて、図2の有向エッジや図3の双方向エッジを数えることによって、『相互フォロー率』を計算できる」

「相互フォロー率?」

「ユーザーとユーザーが繋がっているとき、どれくらいの割合で相互にフォローし合っているかをパーセントで表したものだ。具体的には次の計算式を使う」


 相互フォロー率 = 双方向エッジ数(図3)÷ 全てのエッジ数(図2と図3の両方)×100


「このパーセントが高ければ高いほど、相互に繋がってる人たちが多いってことね」

「まさにその通りだ。活発な交流があることを示す一つの基準になるだろう」


「ところで、ノードの大きさに違いがあるんだけど、これはどういう意味?」

「良い質問だ。これは、そのノードに繋がっているエッジの数が多いほど、ノードの形を大きくしてあるんだ」

「ふーん。大きいノードの人はいっぱいフォローしたりフォローされたりしてるのね」

「視覚的に分かりやすいだろ? さて、グラフ理論的には、ノードに繋がっているエッジの数のことを『次数』と言う」


 図4:次数

 ――――――――――――――――

    有向    双方向

  ○――――>○<―――>○

 次数1   次数2   次数1

 ――――――――――――――――

(※正確には『出次数』と『入次数』があるが、今回の主題から外れるので説明は省略)


「おー、ノードに注目して、そのノードに繋がってるエッジの数を数えるだけね」

「そういうことだ」


「さて、ここまでの情報を整理しよう」


 ・ユーザーはノード

 ・ノード同士の繋がりは有向もしくは双方向エッジで表される

 ・相互フォロー率は双方向エッジを全部のエッジで割った値

 ・ノードに繋がっているエッジの総数が次数


「はーい、理解しました」

「よし。じゃぁ、自主企画参加者ネットワークのデータと85142人のネットワークのデータをそれぞれまとめたぞ。はい、どうぞ!」



 自主企画参加者ネットワーク

 ――――――――――――――――

 ノード数(ユーザー数):158

 エッジ数(図2と図3の両方):764

 双方向エッジ数(図3のみ):382

 相互フォロー率:56.8%

 平均次数:6.7261

 ――――――――――――――――



 85142人のネットワーク

 ――――――――――――――――

 ノード数(ユーザー数):85142

 エッジ数(図2と図3の両方):543301

 双方向エッジ数(図3のみ):291274

 相互フォロー率:53.6%

 平均次数:7.9862

 ――――――――――――――――



「ん? 平均次数?」

「全ノードの次数を計算して、その平均をとったものだよ」

「なるほど……って、あれ!? 相互フォロー率ほとんど変わってない。それどころか平均次数が下がってる!?」

「そうだね」

「そうだねって……あんまり驚いてないわね」

「うん。実はこうなるだろうと予想していた」

「どういうこと? 全然分からないわ」

「これは、ネットワークの『スケールフリー』性を表しているんだ」

「透けるフリル?」

「フリルってだいたい透けてる気がするけど……。おほん。スケールフリーって言うのは、ネットワークの規模スケールが変わっても、ネットワークの特徴がほとんど変わらないこと性質のことを言うんだ」

「ふむふむ」

「滅茶苦茶次数の高いノードがあるかと思えば、全然エッジが繋がってないノードもある。だから、ランダムにノードを取り除いたとしても、全体としての特徴はそんなに変わらないんだ」

「158人だろうが85142人だろうがネットワークの特徴にあんまり差が出ないって、なんか不思議ね」

「うん。実は、スケールフリーネットワークはありとあらゆる身近なネットワークに現れることが知られている。


 例えば、今回みたいなインターネット上の関係、電力ネットワーク、そして、新型コロナウィルスで世の中が大騒ぎになってるけど、伝染病の感染モデルもスケールフリーネットワークになることが知られているぞ」

「そうなんだ。全然知らなかった。あれ、でも平均次数が下がっているのはなんでだろう」

「これは、自主企画参加者ネットワークは読み専が全くいないことが影響していると思う。

 読み専って言うのは、自分で小説を一本も投稿していないユーザーとしたんだけど、85142人の中にはそういうユーザーが結構な割合でいるんだ。今回の自主企画参加者ネットワークにそういうユーザーは全くいないので、その分次数が下がったと思われる」

「ふーん、いろいろ分かるものねぇ」




「さて、どうだったかな? ケイコちゃん」

「うん、最後がちょっと難しかったけど、なんとかついていけたわ」

「それは良かった。前回と今回の結論をまとめると――


『自主企画参加者ネットワークは、全体のネットワークと比較すると参加者の代表ジャンルの分布は異なるけど、その繋がりは比較してもほとんど変わらない。ふっしぎー』


 ――かな」

「ほんと、不思議な性質よね。でも、ネットワークの性質を変えるまでには至らなかったけど、この自主企画で知り合えた人たちもたくさんいるんだから、企画主の永遠とわさんには感謝しなさいよ?」

「はい、改めて御礼申し上げます」


「そう言えば、この図にはどれが誰のノードか、名前が書いてないわね」

「そこなんだがな、最後まで名前を出すかどうか迷ったんだよ」

「出せばいいじゃない」

「確かに、名前を出した方がいろいろ考察できる。例えば、某双子はやっぱり近い位置にいるとかね。だけど、名前を出されたことによって不快な思いをする人がいるかもしれないと思い、ここは匿名化することに決めた」

「そうなの。そう決断したのなら文句は言わないわ」

「ありがとう」

「では、次回をお楽しみに。さようなら~!」

「って、まだ続くのかー!」



 ――――――――――――――――

 次回予告


『グラフ理論』という能力を手に入れ、意気揚々と百五十八神将とその眷属の分析を行ったら、まさかの特徴に違いなしという結果に英雄タケルはたじろぐ。それらしい弱点が見つからない。しかし、彼はまだ気付いていなかった。ネットワークに、『孤高の存在』がいることを……!


 次回、『合体を阻止せよ! ヒ・レンケツ、ジャック・レンケツ、キョー・レンケツの罠!』、『配置に意味あり? 百五十八神将のストラテジー!』の二本立てを、みんなで読もう!


(続く!)

  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る