jojonki / arXivNotes

IssuesにNLP(自然言語処理)に関連するの論文を読んだまとめを書いています.雑です.🚧 マークは編集中の論文です(事実上放置のものも多いです).🍡 マークは概要のみ書いてます(早く見れる的な意味で団子).
https://github.com/jojonki/arXivNotes/issues
195 stars 8 forks source link

2019: 75 Languages, 1 Model: Parsing Universal Dependencies Universally #322

Open jojonki opened 5 years ago

jojonki commented 5 years ago

75 Languages, 1 Model: Parsing Universal Dependencies Universally Dan Kondratyuk, Milan Straka Accepted for publication at EMNLP 2019. 17 pages, 6 figures https://arxiv.org/abs/1904.02099 code: https://github.com/hyperparticle/udify

概要

75言語,124のUniversal Dependencies (UD)のツリーバンクの,品詞,形態的特徴,見出し語,依存ツリーを同時に正確に解くことのできるUDifyモデルの提案.104言語で鍛えられたマルチ言語BERTを利用し,各UDタスクに置いて簡単なsoftmax分類器をつけてfine-tuningするだけで,SOTAに匹敵あるいは超える性能を出した.UDifyは多言語学習で鍛えており,低リソース言語において効果は大きかった.またゼロショット学習も試しており,UDifyもBERTも学習されない状況においても強いUD結果が得られた.

イントロ

多言語による学習は,低リソース言語にうまみがあるし,モノ言語では得られない汎化性能を獲得できたりする.また,品詞やdependency treeといった構文情報を予測するようなタスクには,類似言語をペアで学習させることで性能を向上させることができるということが示されている.多言語モデルは,性能向上だけでなく,複数モデルを学習する必要がなくなるのでコスト的にもよい.

ただ多言語学習をスケールすることはむずかしく,学習データを十分に用意したり,かけ離れた言語の学習は難しい.ただそこでBERTを利用する.104言語のWikipediaで学習した多言語BERTでは,多くのクロスリンガルな構文情報を保持している.またUD treebankの言語とほぼ完璧に対応していることから,我々は,75言語のUD treebanksで実験する.

Universal Dependencies (UD)では,構文アノテーションが多様な言語で統一した形で付与されている.またアノテーション付きトーカナイズ済みの文が提供されており,LEMMAS(見出し語化),XPOS(treebank固有のPOSタグ),UPOS(UniversalなPOSタグ),UFEATS(形態的特徴),DEPS(依存エッジとラベル)のマルチタスク学習が行える.

我々は,UDがサポートされているいずれの言語に置いても,UDアノテーションを予測することができる反響し学習によるマルチタスク自己アテンションモデル,UDifyを提案する.これは下記のように行う.

  1. すべての文は学習済みの多言語BERTモデルに流し,エンコードしたベクトルを生成.そのベクトルをsoftmax分類器に入れて,マルチタスクで様々なUDタスクを解く.
  2. 入力マスク,ドロップアウトの増加,重み固定,discriminative fine-tuning, レイヤードロップアウトといった,かなり重い正則化を書けている
  3. 利用可能なすべての学習データを連結させ,UD全体でモデルの学習及びfine-tuningを行った

我々のモデルはCoNLL 2018の多言語からのUDパースタスクの商社である,UDPipe Futureと比較評価する.また多言語学習で一番うまみがあったものはなにか,ゼロショットでの評価(treebank学習セットなし).

多言語マルチタスク学習

UDifyのアーキテクチャ.

事前学習済み多言語BERT

104言語のWikipediaで鍛えられていて,ランダムマスクされた単語を予測することで鍛えられている.またサブワードも利用.

クロス言語学習の問題

Table 1に語彙サイズのリストを示す.UD treebankは160万近いトークンが含まれる.語彙が多いためにBERTのWwordpieceトーカナイザ(サブワード化)を利用し,すべての入力はサブワード化させた.UDの予測は単語単位であるため,サブワードに対しては,単語の最初のピースだけ予測し,残りは捨てるようにした.

Screen Shot 2019-11-23 at 7 31 31 PM

加えてXPOSアノテーションは言語間でユニバーサルでなく,treebank間でもそうである.なぜなら各treebankはXPOSのために異なるスキーマを採用しているためだ.そのため学習と評価においてXPOSは除いた.

UDを使ったマルチタスク学習

UDアノテーションの予測のために,UDPipe Future (Straka, 2018, 同じ著者ら)をベースにしたマルチタスク学習モデルを採用するが,すべての埋め込み,エンコーダー,プロジェクションレイヤーはBERTに置き換えた.最後の予測レイヤーは後ほど説明する.そして最後にsoftmaxを計算して学習.

UDアノテーションにおけるBERTのfine-tuning

BERTをUD予測に向けてFine-tuningするが,いくつか方法を試した.そして正規化が明らかにパフォーマンスに大きく寄与していることが分かった.

レイヤーアテンション

BERTの全レイヤーを使って,位置jのトークンの埋め込みを,各レイヤーiの重み付きわとして表現する.c,wは学習パラメタ.また特定のレイヤーに過学習しないように,w_iは確率0.1で-∞にセットされ,外のレイヤーから情報を取ろうと学習できる.cとwはUPOS, UFeats, Lemmas, Depsのタスク毎に学習

Screen Shot 2019-11-23 at 9 08 32 PM

ULMFiTによる転移学習

ULMFiT戦略は事前学習済み言語モデルのfine-tuningにいくつかの便利な戦略を定義している.本論でもこれを採用するが,細かい点の変更がある.

入力マスク

BERTの著者らは,fine-tuning時にランダムに単語をマスクするのを進めていないが,本モデルではoverfitを防ぐのに役立っていることが分かった.

実験

各treebankのすべてのテストセットでUDifyを評価.結果が多すぎるので目立った結果だけを本論に載せるが,すべての結果はAppendix Aに載せている.またモデルはOSSのUDPipe Futureモデルを再学習した.UDPipeはアーキ的に本モデルと似ているが,BERTは使っていない(元論文にはBERT活用評価が載っているらしい)

データセット

LINDATで利用できる,fullなUniversal Dependencies v2.3コーパスで実験したが,無料で使えないコーパス(日本語BCCWJ含む)は除いた(泣). 学習データはすべて連結され,シャッフルされた.各ミニバッチには複数の言語が含まれる可能性がでる. ハイパーパラメタはAppendixのTable 6参照.

構文の調査

Hewitt and Mannning (2019, #323 )はstructural probeという手法を提案し,BERTやELMoでエンコードした文脈化された単語埋め込みには,係り受け構造が表現されていることを示した. この手法では,文脈化された単語埋め込みの線形変換によって,埋め込み空間のグローバルなプロパティとして構文木が抽出されるか評価する.この手法は,BERTが生成する文脈化された埋め込みのレイヤーで,重み付き隣接行列を学習し,埋め込みベクトル間の2乗L2距離が,解析ツリーの単語間の距離をエンコードする線形変換を識別する.エッジは,重み付き行列の最小のスパニングツリーを計算することでデコードされる(エッジ距離の最小) // この辺はグラフ系の知識が足りずイメージできず..勉強しよう

Hwitt and Manningのパラメタを利用して,fine-tune前,後のBERTで学習し,dependency treeでのBERTのfine-tuningによって影響を受ける表現が,これらのツリー構造により密接に一致するかどうか評価する.

結果

メトリクスは,CoNLL 2018 shared taskの評価スクリプトを利用し,UPOS,UFeats,Lemma正解率,UAS,LAS (Unlabeled/Labeled Attachment Score)を算出.Table 2に大規模及び小規模な言語に関する結果を載せた.比較対象は,UDPipe Future,UDifyはfine-tuningの方法で3設定(Lang, UDify,UDify+Lang:特定ツリーバンク,全ツリーバンク,全ツリーバンクでfine-tuningし,その後に特定ツリーバンクで更にfine-tuning).フルの結果はA.4に.

Screen Shot 2019-11-24 at 11 55 02 AM

Table 3には,UDifyに適用する異なるアテンション戦略を比較している.全89のツリーバンクの平均スコアを表示

Screen Shot 2019-11-24 at 12 03 35 PM

Table 4には,ゼロショット学習による評価を載せる.(太字の言語はマルチ言語BERTに含まれている)

Screen Shot 2019-11-24 at 12 05 30 PM

Fig 2には,各タスクにおけるレイヤーアテンションwの重みを可視化した.

Screen Shot 2019-11-24 at 12 05 35 PM

Table 5には,structural probeによって出力された,構文木のUnlabeled Undirected Attachment Scores (UUAS)の,fine-tuning前後での結果の比較を載せている.

Screen Shot 2019-11-24 at 12 07 13 PM

ディスカッション

モデルパフォーマンス

Table 2に関して.

スラブ系言語について.

ゼロショット学習(Tale 4)について

アテンション(Table 3, Figure 2)について

BERTでの構文fine-tuningの影響(Table 5)

BERTのアテンション可視化

image

係り受け解析と多言語性をBERTに可能にしているファクター

Goldberg (2019)や他研究でも,BERTが構文タスクを解ける能力を有していることを示している.

// 論文では指摘はないが,NLP2019でも日本語で構文解析をBERTで全然解ける論文があったりする

また,Ahmad (2018)では,語順の変化に対しては,RNNよりもセルフアテンションのほうが頑健であると示した.これによりクロス言語でも語順が変わるので性能が上がったのではないか?と考える.

また,Wu and Dredze (2019) では,BERTは言語依存・非依存の情報を保持できると説明している.サブワードによる埋め込みが効果を成しているのかも

上記のエビデンスより,強い正則化と合わせてセルフアテンションと事前学習によって,長い依存性も解析できるようになったと言える.出力される係り受け解析の結果は,セルフアテンションの関係と相関していることも分かった.

関連研究

省略

結論

多言語マルチタスクUDを,多言語BERTで解くUDifyを提案,評価した.BERTの埋め込みはUDツリーバンクにおいても有用で,多くの言語で良い性能を示した.強い正則化とタスク固有のアテンションレイヤーを利用することで,fine-tuningの効果を高め,多言語学習を可能にした.また多言語モデルにより必要なモデルを減らせることができた.多言語モデルは,低リソース言語でもっとも効果を発揮したことが分かり,更に単言語でfine-tuningすることで更なる改善も見受けられた.これらすべての結果より,セルフアテンションのネットワークは,構文情報を記憶することができ,多言語による事前学習と組み合わせてパフォーマンスのデグレなく多言語にスケールさせることができた

次読んだほうが良い論文

参考

jojonki commented 5 years ago

Podcastでも解説しました. https://anchor.fm/lnlp-ninja/episodes/ep44-75-Languages--1-Model-Parsing-Universal-Dependencies-Universally-e95pjm