ブログではないです

ブログでなくはないです

Learning with Noise: Enhance Distantly Supervised Relation Extraction with Dynamic Transition Matrix [Luo+, ACL'17]

https://arxiv.org/pdf/1705.03995.pdf

概要

Relation Extractionと呼ばれる2つのエンティティ間の関係抽出タスクの論文。 具体的には(subj, rel, obj) の形式で表される知識ベースを仮定して,(subj, obj) を含む文(文の集合)からrelを当てるといった形式。 彼らのモデルではニューラルネットを用いてエンコードしたベクトルをsoftmaxに掛けて,R (= relの種類) 択の分類問題を解いている.

一方で,訓練データ中のどの文が (subj, obj)に対する関係relの根拠となっているかということをアノテーションすることは現実的に困難なため, この学習の際には(subj, obj)が出てきた文は全部relに関係しているとみなして学習する,いわゆるdistant supervisionによる学習が基本的なやり方となるため, あるサンプルが実際には全然relと関係ない文であった場合それは学習におけるノイズとなってしまうことが問題となる。

彼らの貢献は主に以下の3つ。
1. Curriculum Learning(訓練データのそれぞれに信頼度あるいは難しさを計算できる時に,信頼できる/簡単なものから学習していく)の導入
2. Sentence-level Modeling / Bag-level Modeling (文の集合) の比較に加えて,Bag-level Modelingにおけるaggregation (それぞれの文ベクトルからどう全体のベクトルを作るか)についてaverageとattentionの2種類の比較
3. Transition Matrixによるノイズモデリングの提案

以下の図がモデルの概要図。 入力をエンコードした後,関係ラベルの確率分布{ \displaystyle \bf p}を計算する部分と,タイトルにもあるDynamic translation matrix { \displaystyle \bf T} を計算する部分に分けられる.この{ \displaystyle \bf T}{ \displaystyle R * R}の正方行列の形を持ったある種の混同行列になっていて,各要素{ \displaystyle t_{ij}}は関係{ \displaystyle r_i}{ \displaystyle r_j} と間違える確率になっている。

f:id:jack_and_rozz:20180223164156p:plain:w400

この行列{ \displaystyle \bf T}と推定した確率分布{ \displaystyle \bf p}から新たな確率分布{ \displaystyle \bf o = T^{\mathrm T} \cdot p}を計算して,訓練時は{ \displaystyle \bf o }{ \displaystyle \bf p}を重み付けしたものを使い,テスト時の推定には{ \displaystyle \bf p}を用いる. これがどういうことかというと自分の理解では,{ \displaystyle \bf p}は真の確率分布をモデリングしているのに対し,それをノイズが含まれうる訓練データで直接最適化すると訓練データのノイズもそのまま学習されてしまう。それに対して,真の確率分布+ノイズである{ \displaystyle \bf o}をノイズ入りの訓練データで学習すると,結果的に真の確率分布{ \displaystyle \bf p}とノイズをモデリングした部分{ \displaystyle \bf T}に分かれて,結果的にモデルの推定の質が良くなる,ということをやりたいんだと思う.
ただ,実際の学習データは「必ずしも正しいとは限らないデータ(=~o)」だけで,「確実に正しいデータ (=~p)」も「何をどう間違えたかのデータ (=~T)」も無いので真の確率分布とノイズの部分の分離を促す力は単にネットワークを分けただけでは得られないんじゃないか?という気がするがそこはどう考えてるんだろう。自分が読み込めていないだけの可能性もあるかも・・・。*1

結果としては1. のCurriculum Learningによる寄与が大きく,2. はそこまで変わんないかなあ・・・?という印象。また3.はbag-levelではそこまで大きな効果がある感じではなかったが,sent-levelでは結構差があるように見える.sent-levelでは一度に1つしか見ない分,あるサンプルがノイズかどうかの分散が大きいから効果が大きいということなんだろうか?

*1:Culicullum Learningにおけるスコアが高いものだけをpの学習に使い,全部混ぜたやつをoに使うとかはどうなんだろう?