Conquering Cross-source Failure for News Credibility: Learning Generalizable Representations beyond Content Embedding
https://gyazo.com/3facbc99302b5c7b5e7c89c23c348034
著者情報
台湾の国立清華大学
情報システム・応用系の教授
この教授のグループはEMNLPにも通していた
CARER: Contextualized Affect Representations for Emotion Recognition
どういう論文
ニュース記事のタイトルと本文を入力として、それが信頼できるソースからの記事かどうかを判定する問題
既存研究では学習セットにない未知の配信元に弱い
配信元によって単語の使い方に特徴があるため、「この文書はBBCっぽいから信頼できる、この文書は××っぽいから信頼できない」みたいなことが起きていることが考えられる。(過学習、結局メディア当てになっている)
本文に含まれる単語を利用するのではなく、構文的な部分を使ったり、単語をより一般化したような表現を使うことで、未知のソースに対しても強い仕組みを提案 (ここが新しい)
選んだ理由
情報が怪しいかどうかを判断する重要さを特に最近実感している
当社も多数の配信元からの記事を扱っているので、新しい配信元が増えつづけたときに対応できる記事の表現として使えるかもしれない (ただ、最後まで読んだうえで、カテゴリ分類には使えなさそうだし、配信元がわかっている状況なので、使えるかな…?となってしまった)
手法
1. 学習セットの全記事をもとにpattern embeddingという行列を作っておく
2. 入力記事からpattern embeddingを参照して入力行列を作る
狙いとしては「構文的な部分を使う」、「特徴的そうな単語は一般化する」
https://gyazo.com/ea5f25dd967d37eaaad9cd0d8da0d023
pattern embeddingを作る
学習セット中の全記事からグラフを作る
ノード・・・単語(ユニーク) (ピリオドなども含みます)
エッジ・・・単語同士が隣り合っている頻度
グラフを元に Connector Words と Topic Words を抽出 (計算はちょっと複雑)
CW・・・多くの種類のワードと隣り合っていたワード
TW・・・特徴的なワード
https://gyazo.com/f9bea3de61c87e3b579093031f5569a4
TWが特徴的なワードなので一般化したい
方法1: POSタグに変える Ex. fingerprints→NN
方法2: 先頭・語尾のn文字だけとる Ex. fingerprints→ *nts
2〜4文字でとっていく。例えば「*on」、「*ion」、「*tion」などでかぶるので、重複しなくなるようなアルゴリズムに従って分けていく
CW集合と一般化TW集合の要素が含まれるbigram, trigramを、学習セット全記事から検索
例: <could VB>, <he said>, <NN said>, <said JJ>・・・
これをpatternと呼ぶ
各patternについて、信頼度(このパターンが記事に入っていればどれだけ信頼できるか)・非信頼度を算出 (計算はちょっと複雑)
<could VB> a b
<he said> c d
<NN said> d e
<said JJ> f g
これがpattern embedding
1配信元抜きデータでそれぞれpattern embeddingを作り、平均化することで、より普遍的(=未知のソースに強い)なpattern embeddingを作る (計算はちょっと複雑)
入力記事からpattern embeddingを参照して入力行列を作る
pattern embeddingから、入力記事に含まれるpatternに対応する行を取り出して入力行列を作る
モデルは CNN→全結合→ReLU→全結合→softmax
lossは二値分類でよくあるクロスエントロピー
実験
データセット
table:データセット
データセット名 信頼できるソース 信頼できないソース 本実験で使った正例数 負例数
Fake or Real News NPR, New York Timesなど 手動で専門家が集めたリスト 2749 2862
Kaggle-JR BBC, Reutersなど Before It's News, Daily Buzz Liveなど 894 1426
NELA-GT-2018 10200 13200
※NELAについては、8つのサイト(シンクタンクのアンケート調査とか)から判断された40以上の指標をもとにソースごとに信頼/非信頼を判断している
※事前実験などでNELAが他の2つの多くをカバーしていることがわかったらしく、以下の実験ではNELAを使っている。
https://gyazo.com/1e8dc1452c66760e7fc97799a74490f9
NELA-GT-2018: A Large Multi-Labelled News Dataset for The Study of Misinformation in News Articles
評価指標
Accuracy
結果
https://gyazo.com/f40b473728722f974d69724871a6729e
既知ソースについてはBERTに敗北
未知ソースについてはPOSバージョンでもcharバージョンでもstate-of-the-artを上回る
BERT、XLNetが未知ソースについてもある程度強いことにも言及
ただし学習したテキストの容量が全く違う(BERT・・・13GB, XLNet・・・126GB, 提案手法・・・86MB)
議論・分析
とくに説明がいく信頼度高い/低いパターンの例を挙げる
https://gyazo.com/1052624db7e5d63391b7237eda731e7b
信頼度高い
引用系・穏やかな書き方・三人称
信頼度低い
釣り系(!!、??)、一人称・二人称
単語だけ信頼できそうなものに置き換えた小手先入力に対して強かった
https://gyazo.com/4511eb5c4606f88fb0e14151dd23ba95
本文中の単語をランダムに「信頼性のあるソースで使われるような単語」に置き換えた入力で実験
BERTは単語の特徴をよく見ているため誤分類が増えるが、提案手法では正しく分類できる。
(具体的な数値は提示されていなかった)
所感
一回パターンとその信頼度・非信頼度の情報を用意してしまえば、あとはルールベースで何とかならないのかな…と思った。その比較も少し見たかった。
ソース不明の野良情報に対して信頼性を予測するにはいいが、例えば同じ配信元からの記事をまとも記事と釣り記事に判別するといったことはできなそうなので、私たちの役に立つ機会はあまりなかったのかもしれない。