Sansan Tech Blog

Sansanのものづくりを支えるメンバーの技術やデザイン、プロダクトマネジメントの情報を発信

【ネットワークの統計解析】第6回 論文紹介1「GCNを用いたフェイクニュースの検知」

f:id:kur0cky:20201023211747j:plain

こんにちは. Sansan DSOC 研究開発部の黒木裕鷹です.先月も,今月も,また服を買ってしまいました. 出かける先はコンビニぐらいしかないのですが,おしゃれをすると心が躍り,陳列商品も不思議とキラキラして見えますね.

さて,この連載では,自分の勉強・復習も兼ねて,ネットワークデータにまつわる統計解析を気の向くままに紹介しています. 前回の記事では,ネットワークデータに対する深層学習 (Graph Neural Network; GNN) を俯瞰し,直感的に全体像を把握するような導入をしました. 今回の記事では,番外編的に分析手法の紹介を少し離れ,グラフデータの分析を実際に応用する論文を1つ紹介したい思います.

buildersbox.corp-sansan.com

はじめに

本記事で紹介する論文のタイトルは,"Fake news detection on social media using geometric deep learning" (Monti et al., 2019) です(元論文はこちら). この論文では,SNS 上で拡散するフェイクニュースを検出するため,拡散の過程をグラフとして表現し,GCN を用いた予測を行う手法を提案しています. みなさまも良くご存じのことかと思いますが,SNS はその簡便さと即時性により,世界中の人々の主要な情報源になっています. 一方でその利便性とは裏腹に,キャッチーさを優先したチェックの甘い情報や,意図的に虚偽の情報んだ「フェイクニュース」の蔓延が問題になっています. アメリカ大統領選やイギリスのブレグジット前には多くのフェイクニュースが飛び交い,大きく影響していたことは記憶に新しいでしょう. 意図的に作られたフェイクニュースは,高度な情報リテラシーをもつユーザでも判断が困難な虚偽の情報を含んでいることがよくあります. このようなフェイクニュースを自動的に検出することができれば,訓練を受けたドメインの専門家でなくとも,ある程度確からしく情報を信じることができるでしょう.

この論文では,エキスパートでも判断の難しいコンテンツの内容ではなく,情報拡散の過程を積極的に利用したフェイクニュースの検出を試みています.

論文のポイント

論文の詳細に入っていく前に,キーになるポイントや主な貢献を次に箇条書きします.

  • Twitter 上でのニュースの拡散を,コンテンツ (URL) ごとにネットワークデータに落とし込む
  • 過去のファクトチェックに基づき,各ニュースに対して真偽のラベルを付与
  • ユーザのプロフィールやアクティビティ情報などを特徴量とし,シンプルな GCN で学習
  • ROC AUC で 0.9 を超える高い精度で検知
  • 対照実験やモデルの劣化など,様々な観点から実験を行い丁寧に考察

対象データ

ここでは,分析の対象となるニュース拡散のネットワークデータについて紹介します. まずは作成したいネットワークについて説明した後,データの作成手順に入ります. 作成手順は大きく「ニュースと Twitter データの収集」と「拡散過程のネットワーク作成」の二つに分けられます.

作成したいネットワーク

この論文では,1つの tweet もしくは retweet をノードと,ある (re)tweet から別の (re)tweet への情報拡散をエッジとみなし,拡散ネットワークを作成します. 拡散ネットワークはニュースのソース URL ごとに作成され,はじめにその URL に言及する少なくとも1つ以上の root tweet が存在します. ここで,1つの URL からは複数の root tweet が起こる可能性があることに注意が必要です. 別の root tweet からは別の拡散が生まれますが,この拡散の単位を cascade と呼んでいます. まとめると,拡散ネットワークは1つの URL に由来する,複数の root tweet を起点とした 複数の cascade により構成されるということです.

データ収集

このタスクに教師あり学習を適用する上で重要になるのは,十分大規模なラベル付きデータセットを作成することです. さらに,「フェイクニュース」という概念自体が非常に曖昧なもので,「何をもって真実とするか or 虚偽とするか」など,考える余地がたくさんあります.

この論文では,対象となるニュース群と正解ラベルを,過去のファクトチェックから得ています. 具体的には,Snopes, PolitiFact, Buzzfeed という3つのファクトチェック機関からそのアーカイブを取得しているようです. これらのアーカイブから記事のリスト全体と,非営利のジャーナリストが付与した真偽のラベルを取得します. この際,「部分的に誤り」などの曖昧なラベルを持つ物は除外されています. 次に,ファクトチェッカーがチェックに使用した関連URLを特定し,これらも学習データに使用します. 関連する URL のラベルとしては,主張が元の URL に一致する場合は元記事の真偽をそのまま継承し,否定する場合はその反対が付与されます. 関連 URL の主張が元の URL を支持するかどうかは人手でアノテーションされています. 最後に,取得した URL に言及する,24時間以内のすべての tweet とその retweet が取得されます.

ネットワークの作成

収集されたデータからのネットワーク作成は,基本的に Vosoughi et al. (2018) に則り,フォロー関係と tweet のタイムスタンプの両方を考慮して作成されています. 恥ずかしながら私はちゃんと読んだことがないのですが,Vosoughi et al. (2018) はフェイクニュースの研究で最も参照されているものの一つのようで,フェイクニュースが真実よりも早く拡散することを示しています.

準備のため,URL  u に言及する (re)tweet 集合を  T _ u = \{t _ u ^ 1, t _ u ^ 2, \dots, t _ u ^ {N _ u} \} とします. また, T _ u は時系列順に並んでいるとし,この (re)tweet をしたユーザ集合を  \{a _ u ^ 1, a _ u ^ 2, \dots, a _ u ^ {N _ u} \} とします. この論文では,Vosoughi et al. (2018) の方法に則り,次のルールで URL  u に起因する拡散グラフ  G _ u を作成しています.

  •  a _ u ^ n \{a _ u ^ 1, \dots, a _ u ^ {n - 1} \} のうち少なくとも1人をフォローしている場合, t _ u ^ n \{t _ u ^ 1, \dots, t _ u ^ {n - 1} \} のうちフォローしているかつ最も最近の tweet から拡散を受けたと推定し,エッジを張る.
  •  a _ u ^ n \{a _ u ^ 1, \dots, a _ u ^ {n - 1} \} のうち1人もフォローしていない場合, t _ u ^ n \{t _ u ^ 1, \dots, t _ u ^ {n - 1} \} のうち最も多くの次数をもつ tweet から拡散を受けたと推定し,エッジを張る.

結果として得られたデータの概要が以下になります.

  • データ期間:2013年5月 ~ 2018年1月
  • 拡散ネットワーク (URL) 数:1084
  • cascade 数:約15万
  • ノード数:約20万
  • エッジ数:約244万
  • 平均 cascade サイズ:2.79

ノードに付随する特徴量

GCN へ入力する,ノードに付随する特徴量の例(一部は意味を解読できませんでした)を箇条書きで示します. 特徴量は大きく4カテゴリあり,User profile, User activity, Network and spreading, Content です.

  • User profile
    • 位置情報,使用言語,プロフィール設定,自己紹介の分散表現,アカウント作成日,認証の有無
  • User acrivity
    • お気に入りの数,リストの数, etc
  • Network and spreading
    • フォロワーと友達の数,(re)tweet のタイムスタンプ,リプライの数,引用の数,etc
  • Content
    • tweet 内容の分散表現

モデル概要

この論文で学習に用いられたネットワークの概要を次図に引用します. GCN フィルタを2つ挟んだ後,mean pooling でそれまで保っていたグラフ構造からベクトルに集約していることが分かります. さらに,全結合層を2つ通して予測結果を出力する構造になっています. GCN フィルタについては前回記事をご覧ください.

f:id:kur0cky:20210324152443p:plain
ネットワーク概要図 (Monti et al., 2019)

その他の細かい設定は以下のようになっていました.

  • 活性化関数:SELU (Scaled Exponential Linear Unit)
  • 損失関数:ヒンジロス
    • 初期の実験で平均クロスエントロピーよりも優れていたため
  • 最適化:AMSGrad (Reddi et al., 2019)
  • 正則化:なし

実験・結果

この論文では,提案手法を評価するメインの実験に加え,より深い考察を行うための様々な実験が行われており,ここではこれらを順を追って紹介します.

提案手法の評価

提案手法それ自体に対しては,以下の2つの設定で実験が行われています. ネットワークのノードである tweet は元の URL を否定している場合もありますが,この点は考慮されていないようです.

  • URL-wise の予測タスク:ある1つの URL に起因する全ての cascade を学習し,その URL の真偽を予測するタスク
  • cascade-wise の予測タスク:ひとつの cascade から,それが起因する URL の真偽を予測するタスク

評価指標はどちらも ROC AUC であり,train / validation / test への分割も 3:1:1 で統一されています. 正例 (フェイクニュース) の割合も両タスクでほぼ変わらず,約17%です.

結果の ROC 曲線は下図のようになり,その AUC は URL-wise で92.7,cascade-wise で88.3です. ラベルを予測するのにひとつの cascade しか使えない cascade-wise の方が難しいものの,高い精度で予測が行え得ることがうかがえます.

f:id:kur0cky:20210326005020p:plain
ROC 曲線 (Monti et al., 2019)

ablation study

論文では,後ろ向きの特徴選択による ablation study も行われており,下図のような結果が示されています. ablation study とは,手法の中からある条件だけを抜くことで,その要素の重要さについて考察するような実験です. つまりここでは,精度に影響のない順に1カテゴリずつ特徴量を削除していることになります. 興味深いのは,URL-wise のタスクでは特徴量を削除すればするほど精度が下がるのに対し, cascade-wise のタスク(下段)では content カテゴリの特徴量を削除したときに精度が大幅に向上することです.

f:id:kur0cky:20210325171625p:plain
ablation study の結果 (Monti et al., 2019)

この結果と併せて,cascade の20%は上位15の URL (合計930のうちの約1.5%)に由来していることが触れられています. また,同じURLを引用しているツイートは一般的に似たような内容であることより,tweet 内容に由来する特徴量にはオーバーフィットしてしまうと考察されています. こういった点からも,内容に依存しない拡散過程からフェイクニュースを分類することには大きな意義がありそうです.

観測時間による精度の変化

データセットでは,URL に関連する最初の tweet から24時間以内の (re)tweet が収集されていますが,これを短くしたときにどのように精度が変化するかについても実験されています. その結果を下図に引用します. 図の上軸には,観測時間において URL または cascade が含む平均 tweet 数がが併せて示されています.

f:id:kur0cky:20210325171525p:plain
観測時間による精度の変化 (Monti et al., 2019)

図より,URL-wise では15時間後に,cascade ベースでは7時間後に精度が飽和していることがわかります. この結果の考察として,個々の cascade パターンがそこまで多くないこと,cascade, URL ともに精度が飽和する観測時間でカバー率が90%近くになることが挙げられています. SNS における情報拡散は急速に起こりますが,その収束もまた早いことは非常に重要そうです.

モデル劣化

過去に訓練されたモデルがどの程度まで新しい状況に一般化できるかを理解するため,URL-wise および cascade-wise で時間とともにどのように性能が劣化するかについても実験されています. この実験では,過去のデータに基づいて学習されたモデルを,新しいツイートに適用するという点で,実社会のシナリオを模倣するものです.

f:id:kur0cky:20210325171936p:plain
モデル劣化 (Monti et al., 2019)

結果の図より,URL-wise と比較して cascade-wise はより安定した動作を示し,260日後でさえ4%しか劣化していないことが分かります. この結果について,個々の cascade はより小さく単純なグラフで表現であるため,異なる学習サンプル間で再発するリッチな構造を特定する可能性が低くなると考察されています. そのため,一方では識別性が低く(したがって AUC も低くなる),他方では老化に対してよりロバストであるということです.

おわりに

今回の連載では番外編的に,ネットワーク分析の一例としてフェイクニュース検知に関する論文を紹介しました. データセットの総 URL 数が1084 と少ないものの,モデルと結果の考察が丁寧で非常に勉強になりました. 本当なら順番が逆かもしれませんが,Vosoughi et al. (2018) も読んでみたいと思います. 実際の分析例を知るのは楽しいですね. 楽しかったので次回記事も論文紹介にするかもしれないです.

そもそも,みんながフェイクニュースを拡散してしまうことを恐れ,慎重になることが大切ですよね.

引き続き,お身体にはどうぞお気を付けください. それではまた

参考文献

  • Monti, F., Frasca, F., Eynard, D., Mannion, D., & Bronstein, M. M. (2019). Fake news detection on social media using geometric deep learning. arXiv preprint arXiv:1902.06673.
  • Reddi, S. J., Kale, S., & Kumar, S. (2019). On the convergence of adam and beyond. arXiv preprint arXiv:1904.09237.
  • Vosoughi, S., Roy, D., & Aral, S. (2018). The spread of true and false news online. Science, 359(6380), 1146-1151.


buildersbox.corp-sansan.com

© Sansan, Inc.