👁️

「Twitter上のデマらしき話題を自動検知し、同時に判断材料を提供するシステム」の構想案

2022/08/06に公開約2,900字

私は情報系の大学院に進み、「評判分析」など自然言語処理や機械学習を扱う研究室に配属され、研究テーマを決めることになった時、最初「Amazonレビューでどれが信用できるか」などを考えていたのですが、(東日本大震災でTwitter上のデマが大問題になる前)偽情報を自動検知するシステムを作れないかと考えそれを研究テーマにしました。
しかし、時間の問題などもあって完成には至らず、就職後も一部の研究は進めていましたが、時間的能力的に作るのが難しいと判断したのでここで構想案だけ書いておきます。プログラミングスキルや機械学習・AIの知識はあるのに研究テーマが見つからなくて困ってるという方は参考にしていただけると嬉しいです。

どうすれば「デマらしき話題」を判別できるのか

デマを検出、というのを直接やろうとすると以下のような手順を行わなければいけませんが、
1.文章が意味していることを理解する
2.その情報の真偽を確認できる信頼できる情報源を探し出し真偽を判断
1.は私が学生だった10年前はもちろん2022年現在でも難しいです(Siriなど一見人間の言葉を理解しているようなAIもありますが、実際には膨大なパターンをあらかじめ登録しておいてそれに合うものから応答しているに過ぎないらしいです)。さらに2.ともなると「AIには難しい」どころの話ではなく人間でもごく限られた人にしかできません。
私が考案したのは「デマ」そのものを分析するのではなく、それに対する「反応」を調べて「デマの可能性がる」と判別するシステムです。具体的には、「デマらしき話題」に含まれてる中心的な単語を抽出してそれを元に話題に反応しているツイートを取得し、「疑っているか/信じているか」、さらに「根拠を示しているか/いないか」を判別し、それを元にデマかどうかを判断できるようにします。

システムの概要

具体的なシステムの構成は以下のようになります。

Twitterでどのような話題が流れているかを検出

その話題に対して言及しているツイートを抽出

「信じているか/疑っているか」「根拠を示しているか/いないか」で分類

他の話題より「疑っているツイート」の割合が高い話題を「デマらしき話題」と判断し、Twitterなどで告知

同時にWebサイトなどで「信じている/疑っている」ツイート両方で「根拠を示している」ものを提示し判断材料を提供する

各段階でどのようなアルゴリズムを用いるかを解説していきます。ただし、使っているのはすべて10年以上前の私が修士課程時代だった頃の知識なので、現在はもっと良い手法が存在している可能性があります。

Twitterでどのような話題が流れているかを検出

「デマらしき話題」を検知するにはそもそも「どんな話題がTwitterに流れているか」を検出しなければいけません。これに関しては就職後も研究を続け以下の記事に解説を書いておきました。
Twitter上の話題を発見するアルゴリズム

その話題に対して言及しているツイートを抽出

これも上記の記事に解説を書いておきました。

「信じているか/疑っているか」「根拠を示しているか/いないか」で分類

「信じているか/疑っているか」に関しては、

  • ユーザが情報を信じている場合は「ひどい」「感動した」などの感情的表現が含まれることが多い
  • デマであると指摘しているツイートは「デマ」「ガセ」など直接的な言葉を使っているツイートが多い

というわかりやすい特徴があるのでTwitterスパムフィルターの実装で解説しているアルゴリズムを応用するだけでカンタンに作れるでしょう。
次に「根拠を示しているか/いないか」ですが、デマによって「株主は東京都です。都知事じゃありません」「現在ではザイールという国は存在しません」と使われる単語がまったく異なってくるので単語を元に分類するのは難しいです。しかし、根拠を示しているツイートは何らかの事実を提示するため、「〇〇は××のはず」「××じゃない」など特定の言い回しのパターンが好んで用いられます。そこで単語ではなく品詞(名詞、助詞など)のn-gram(n個の連なり)を特徴量として用います。例えば「東京都が株主」の場合は大きな分類の品詞の3-gramだと「名詞-助詞-名詞」、細かい分類の品詞の3-gramだと「固有名詞-格助詞-名詞」になります。自分が実験を行った時は「固有名詞_格助詞_自立動詞」などが根拠を示しているツイートに多く現れました。

他の話題より「疑っているツイート」の割合が高い話題を「デマらしき話題」と判断し、Twitterなどで告知

これに関してはいろいろな話題について「疑っているツイートの割合」を調べればデマの場合どのくらい割合が大きくなるか知れると思います。

同時にWebサイトなどで「信じている/疑っている」ツイート両方で「根拠を示している」ものを提示し判断材料を提供する

これは単純に上記までで分類したツイートを表示するだけなのでWebサービスを作れる能力があれば大丈夫だと思います。

解決すべき問題

上記記事にも書いたように単語単位では話題になってるかどうかを判別する手法はある程度開発できましたが、何らかの話題を「デマの可能性がある」と告知する場合「安倍元首相を撃ったのは在日」など「文」を提示する必要があり、その手法はまだ考案できてません。ただ現在は10年前と違い公式RTがさかんになってるので、デマを発信しているツイートの中でも特にRT数の多いものからそのまま文を取り出すといった手法が使える可能性があります。

なお、こっちの方が大きい問題かもしれませんが、Twitterのリアルタイムツイート取得にはStreaming APIというのを使いますが、これは公式ドキュメントによると2022年10月31日に廃止され、Volume streamsというのに置き換えられるということです。そしてどちらも全ツイートの1%しか取得できないため大きく話題になっている情報以外は拾えない可能性があります。
それ以上のツイートを取得したい場合有料になりますが、2022年7月現在提供しているのはNTTデータで全ツイートの10%を取得するだけでも月額70万円を払わなければいけません。

Discussion

ログインするとコメントできます