「#検察庁法改正案に抗議します」ツイートにボットはいたのか?

Takamichi Saito
12 min readMay 31, 2020

--

はじめに

2020年5月8日、COVID-19でドタバタする中、Twitterにて、

#検察庁法改正案に抗議します

というハッシュタグを含むTweetが短時間で拡散し話題になりました。

短時間での拡散した現象をここでは仮に「バイラル」と呼ばせて頂きますが、今回の「#検察庁法改正案に抗議します」に伴うバイラルには「ボットはいたのか?」という意見も散見されました。

先日行った研究室での発表会(謎研究室「春課題」オンライン発表会の報告)で、研究室のメンバーが「機械学習を用いたTwitterボットの判別手法について」を調べていた経緯もありました。

今回のバイラルにおいて、「#検察庁法改正案に抗議します」がミーム(自己増殖する情報因子)であったともみなせそうです。

そこで、今回、我々の研究室の「SNSボット調査班」では、研究活動のエキシビションとして、「#検察庁法改正案に抗議します」をミーム(以降、ミームAという)としたバイラルに「ボットはいたのか?」を、Botometerというツールを用いて調査をしてみました。

免責事項:

  • 内容・結果に関して手順としては間違いはないと考えておりますが、内容・結果を保証するものではありません
  • 政治的な議論をしたい訳ではないので、そのように解釈できる文言があったとしても、それは政治的な議論ではありません。また、そのつもりもありません
  • 今回の調査は我々の研究活動(基礎勉強)の一環ではありますが、何かを主張したい訳でもございません

Botometerについて

Botometerは、機械学習の手法を用いて、「任意のアカウントがボットか否かを判定するツール」です。Botometerプロジェクトのメンバーによる論文[1]には、以下のような特徴が示されていました。

  • Botometerは2014年に公開(バージョン3は2018年公開)。毎日25万件を超えるリクエストを処理
  • Twitter APIによって1,000を超える特徴を抽出し、ランダムフォレスト分類器でスコアを算出
  • 特徴量は6つのカテゴリに分類される
  • Botometerは英語圏のアカウントを判別することを目的としているが、言語特徴を除いたデータで構築されたモデルによるスコアも提供
  • Web版ではスコア[0,5]を、API版では確率スコア[0,1]でボットらしさの程度(ここでは、その確率スコア[0,1]の値をボット率という)を数値化できる

また、Botometerツールが想定するボットの種類には以下のものがあります。

  • コンテンツを自動投稿するシンプルなボット
  • 人間のアカウントの情報を収集、そのアカウントになりすますボット
  • ボット同士で協調して人気を操作しようとするボット

実験の実施方法

Tweetなどデータの採取方法及び、ボット判定については、以下の通りです。

  • Twitter APIを通し自作プログラムで対象ミームを含むTweetを取得
  • 採取した項目は、「Tweetされた日付」、「ユーザID」、「(そのユーザの)フォロワー数」、「Tweet内容」、「(そのTweetへの)いいねの数」、「(そのTweetへの)リツイートの数」の6項目。ただし、ツールの入力として利用したのは「Tweetされた日付」、「ユーザID」
  • Botometerツールの言語特徴を除いたデータで構築されたモデルを利用
  • ボット判定の閾値は(API版を用いて)0.4とした(文献[2][3]と、研究室内での議論より)

サンプルデータ

ミームAを含むTweet(5月8日〜12日のもの)を、617,139件採取しました。横軸にTweet数,縦軸にその数のTweetをしたアカウントの数として、プロットした両対数グラフで示します(図1参照)。

図1 ミームAのTweet数のプロット

左上から直線になっておりスケールフリー性が確認されます。

比較対象として、ミームAのバイラルが発生した「同時期に発生したミーム」も調べてみることにしました。

比較対象として用意したのは、同時期に発売された商業製品GについてのTweetです。商業製品Gの製品名を含む某ハッシュタグ(以降、これをミームBという)を含むTweetで、こちらもバイラル現象が観測されたものです。

ミームBを含むTweet(5月11日〜18日のもの)を、104,303件採取してみました。こちらのケースの両対数グラフも示します(図2参照)。

図2 ミームBのTweet数のプロット

少しだけ曲がっているようにも見えますが、ミームBのケースもおおよそ左上から直線になっておりスケールフリー性が確認されます。

実験の結果

Botometerを使ってのミームAを含むTweetについての判定の結果です。

  • ミームAを含むTweet数:617,139
  • ミームAをTweet直後に削除されたアカウント、もしくは、鍵アカウントになっていたアカウント(以降、消滅アカウントという)数:13,600
  • Bot判定の対象アカウント数(ツールへの入力):603,539
  • (その内)ボット率が0.4以上のアカウントの数:147,777
  • [消滅アカウントを除いた場合]
    0.4以上のアカウントの割合:147777/603539=0.244851
  • [消滅アカウントを含めた場合]
    0.4以上のアカウントの割合:147777/617139=0.239455

実験の結果をグラフにしてみました。このグラフは、ミームAを含むTweetのうち、ボット率を横軸、縦軸にその数としています(図3参照)。

図3 ミームAを含むTweetのボット率

ボット率が0.1であるものが一番多く、ボット率が上がるにつれて、Tweet数が減っていくことが読み取れます。

今回は、ボット率が0.4以上の場合、そのアカウントはボットである可能性が高いとみなすこととしましたので、147,777アカウントと半分以上のアカウントがボットであった可能性があります。

我々が内部で確かめたところ、Botometerの判定では共有アカウントなどもボットと判定されることがあるので、同時期のバイラルとの比較をしてみます。

比較対象として、ミームBのケースも示します。

  • ミームBを含むTweet数:104,303
  • ミームBをTweet直後に削除されたアカウント、もしくは、鍵アカウントになっていたアカウント(以降、消滅アカウントという)数:3,910
  • Bot判定の対象アカウント数(ツールへの入力):100,393
  • (そのうち)ボット率が0.4以上のアカウントの数:48,405
  • [消滅アカウントを除いた場合]
    0.4以上のアカウントの割合:48405/100393=0.482155
  • [消滅アカウントを含めた場合]
    0.4以上のアカウントの割合:48405/104303=0.454080

ミームBのケースのグラフも示します(図4参照)。

図4 ミームBを含むTweetのボット率

おぉ!こ、これは・・・

こちらは、ミームBをTweetしているボットらしきアカウントが数多くいたことが確認されました。

実際にはミームBのケースは販売直後の商業製品であったこともあり、当該バイラルが、マーケティングキャンペーンによるものであったとしても不思議ではないでしょう。

ボット判定されたアカウントの分析

ボットと判定されたアカウントについて、さらに分析してみます。

バイラルがあった際、フォロワー数の多いアカウントが影響を及ぼしている可能性が指摘されております[4]。ここでは、ボットと判定されたアカウントのフォロワー数を確認します。

ボットと判定されたアカウントのうち、フォロワー数を縦軸としてフォロワーの多い順にアカウントを並べて、ミームA(図5)とミームB(図6)のそれぞれについて片対数グラフで示します。図5と図6は、縦軸の値の上限値は同じですが、横軸は上限値の桁が違っているのでご注意ください。

図5 ボットと判定されたアカウントのフォロワー数(ミームA)
図6 ボットと判定されたアカウントのフォロワー数(ミームB)

ミームAのケース(図5)では、ボットと判定されたアカウント147,777アカウントのうち、横軸82,423番目以降は、フォロワー0でした。65,354アカウント(ボット判定全体の44.2%、全体の10.5%)がフォロワー0のアカウントであることが確認されました。

ミームBのケース(図6)では、ボットと判定されたアカウント20,597アカウントのうち、横軸19,293番目以降は、フォロワー0でした。1,304アカウント(ボット判定全体の6.3%、全体の1.2%)がフォロワー0のアカウントであることが確認されました。

さらに、ボットと判定されたアカウントでフォロワー数が多い順でトップ20を、表1として示します。

表1 ボットと判定されたアカウントのフォロワー数のトップ20

ミームAのケースでは、ボットと判定されたアカウントのうち、フォロワー数が10万以上と抜き出たアカウントが11ありました。

これを受けて、改めて図5と図6を比較すると、ミームAのケースでは、フォロワー数が抜き出たアカウントが存在したことが確認できます。

まとめ

今回、ハッシュタグ「#検察庁法改正案に抗議します」を含むTweetを617,139件集め、Botometerツールを使ってボットの存否の可能性を確認しました。

その結果、ツールによる判定が信頼に足りるとする場合、ボットであると判定されたアカウントは、147,777アカウントで、「#検察庁法改正案に抗議します」をTweetした(採取した)アカウント全体の24%でした。同時期発売の商業製品GについてのTweetのケースでの48,405アカウント(全体の48.2%)と比較しても、少なくない数と言えそうです。

その他、「#検察庁法改正案に抗議します」をTweetしたアカウントについては、以下のことが確認されました。

  • バイラル発生後、削除されたアカウント、もしくは、鍵アカウントになっていたアカウントが13,600あったこと
  • ボットと疑われるアカウントのうち、「フォロワー数が0」がボット判定全体の44.2%、「#検察庁法改正案に抗議します」を含むTweetをしたアカウント全体の10.5%あったこと
  • ボットと疑われるアカウントのうち、フォロワー数が10万以上のアカウントが11あったこと

Tweet数の変化(2020年6月3日追記)

ミームAを含むTweetの採取期間(5月8日〜12日)における、3時間ごとのTweet数と「ボットと判定されたアカウント」によるTweet数を比較として示します。ブルー(左側)が「ミームAを含むTweetの全体」で、オレンジ(右側)が「ボットと判定されたアカウント」によるTweetとなります。

図7 3時間ごとのTweet数と「ボットと判定されたアカウント」によるTweet数の比較(ミームAのみ)

5月10日(日曜日)の午前中に「ミームAを含むTweetのピーク」が確認できます。

宣伝

  • 情報セキュリティ研究室ではメンバーを募集しています
  • 企業様からの委託研究も募集しております

2020/06/10 11:30 ver.1.5
2020/06/03 7:28 ver.1.4
2020/05/31 ver.1.3

ver.1.4 → ver.1.5:SNS分析班メンバークレジットを追加
ver.1.3 → ver.1.4:Tweet数の変化(2020年6月2日追記)を追加
ver.1.2 → ver.1.3:表現修正・宣伝を追加
ver.1.1 → ver.1.2:Tweetの採取時期の追記
ver.1.0 → ver.1.1:誤字修正

情報セキュリティ研究室・SNS分析班メンバー

齋藤孝道
菊田 翼
田畑 唯斗
嶋田

参考文献:

[1] Arming the public with artificial intelligence to counter social bots, https://arxiv.org/pdf/1901.00912.pdf

[2]Online Human-Bot Interactions: Detection, Estimation, and Characterization, https://arxiv.org/pdf/1703.03107.pdf

[3]Bots in the Twittersphere, https://www.pewresearch.org/internet/2018/04/09/bots-in-the-twittersphere/

[4] ネット炎上におけるユーザーの共振構造, https://www.jstage.jst.go.jp/article/pjsai/JSAI2019/0/JSAI2019_2E5J602/_pdf/-char/ja

--

--

Takamichi Saito
Takamichi Saito

Written by Takamichi Saito

明治大学理工学部、博士(工学)、明治大学サイバーセキュリティ研究所所長。専門は、ブラウザーフィンガープリント技術、サイバーアトリビューション技術、サイバーセキュリティ全般。人工知能技術の実践活用。著書:マスタリングTCP/IP情報セキュリティ編(第二版)、監訳:プロフェッショナルSSL/TLS