Open jojonki opened 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を提案する.これは下記のように行う.
我々のモデルはCoNLL 2018の多言語からのUDパースタスクの商社である,UDPipe Futureと比較評価する.また多言語学習で一番うまみがあったものはなにか,ゼロショットでの評価(treebank学習セットなし).
UDifyのアーキテクチャ.
104言語のWikipediaで鍛えられていて,ランダムマスクされた単語を予測することで鍛えられている.またサブワードも利用.
Table 1に語彙サイズのリストを示す.UD treebankは160万近いトークンが含まれる.語彙が多いためにBERTのWwordpieceトーカナイザ(サブワード化)を利用し,すべての入力はサブワード化させた.UDの予測は単語単位であるため,サブワードに対しては,単語の最初のピースだけ予測し,残りは捨てるようにした.
加えてXPOSアノテーションは言語間でユニバーサルでなく,treebank間でもそうである.なぜなら各treebankはXPOSのために異なるスキーマを採用しているためだ.そのため学習と評価においてXPOSは除いた.
UDアノテーションの予測のために,UDPipe Future (Straka, 2018, 同じ著者ら)をベースにしたマルチタスク学習モデルを採用するが,すべての埋め込み,エンコーダー,プロジェクションレイヤーはBERTに置き換えた.最後の予測レイヤーは後ほど説明する.そして最後にsoftmaxを計算して学習.
UPOS 17種類のUniversal POS tagsを,単語単位で予測する. https://universaldependencies.org/u/pos/
UFeats UPOS予測と同じように,文字列を語彙の個別のトークンとしてある買う.これにより各形態的特徴を個別に予測するよりも高い評価精度が得られた. https://universaldependencies.org/u/feat/index.html
Lemmas Chrupala(2006)などがやっているように,見出し語化は編集操作(insertion/deletion)のコマンド列を系列データ問題として解く.(こんためのラベルデータは,Wagner-Fischerアルゴリズムは,単語Aから単語Bに変換する動的計画法) 参考:Simple Data-Driven Context-Sensitive Lemmatization
Deps Deep Biaffineパーサー(Dozat, 2016, 2017)を利用.これは文をBiLSTMでエンコードし,係り元と係り先のエンコードされたトークンをAffine変換し,最後にBiaffine変換と呼ばれる処理で,2単語間での係りやすさと,head単語の主辞のなりやすさを表現する.この操作により各単語ペア毎にスコアが得られるので,これらを入力として,Chu-Liu/Edmondsアルゴリズムを行うことで,合計スコアが最大となる木構造を得ることができる.本論では,Deep Biaffineの文エンコーダーをBiLSTMからBERTに置き換える.
BERTをUD予測に向けてFine-tuningするが,いくつか方法を試した.そして正規化が明らかにパフォーマンスに大きく寄与していることが分かった.
BERTの全レイヤーを使って,位置jのトークンの埋め込みを,各レイヤーiの重み付きわとして表現する.c,wは学習パラメタ.また特定のレイヤーに過学習しないように,w_iは確率0.1で-∞にセットされ,外のレイヤーから情報を取ろうと学習できる.cとwはUPOS, UFeats, Lemmas, Depsのタスク毎に学習
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に.
Table 3には,UDifyに適用する異なるアテンション戦略を比較している.全89のツリーバンクの平均スコアを表示
Table 4には,ゼロショット学習による評価を載せる.(太字の言語はマルチ言語BERTに含まれている)
Fig 2には,各タスクにおけるレイヤーアテンションwの重みを可視化した.
Table 5には,structural probeによって出力された,構文木のUnlabeled Undirected Attachment Scores (UUAS)の,fine-tuning前後での結果の比較を載せている.
Table 2に関して.
UDifyはSOTAと戦えるパフォーマンス
低リソースにおいてUDPipeより大きく優れている
UDifyはLemmasとUFeatsでわずかにUDPipeに劣っている(これはUDPipeが文字レベル埋め込みを使っているからだろう)
2,3の低リソース言語で大幅にベースラインを下回った.// cop_scriptorum等と書いてあるが,どこかわからん. これは学習データがアンバランスであることと予測されるが,UDify+Langによってこれらのパフォーマンスギャップはほとんど除去できる
UDifyは外のUDツリーバンクの利用で大きく性能を改善でき,低リソース言語ではモノ言語よりも改善される.
更にそのツリーバンクでfine-tuningすることで,ベースラインを下回っているツリーバンクに関しては更に改善できる
しかしUDify+Langは,既に強い結果の言語に対しては,すべての評価メトリクスで悪化した.これは単言語でなくマルチ言語でfine-tuningしたほうが性能が高いことを示している.
スラブ系言語について.
ゼロショット学習(Tale 4)について
アテンション(Table 3, Figure 2)について
Goldberg (2019)や他研究でも,BERTが構文タスクを解ける能力を有していることを示している.
// 論文では指摘はないが,NLP2019でも日本語で構文解析をBERTで全然解ける論文があったりする
また,Ahmad (2018)では,語順の変化に対しては,RNNよりもセルフアテンションのほうが頑健であると示した.これによりクロス言語でも語順が変わるので性能が上がったのではないか?と考える.
また,Wu and Dredze (2019) では,BERTは言語依存・非依存の情報を保持できると説明している.サブワードによる埋め込みが効果を成しているのかも
上記のエビデンスより,強い正則化と合わせてセルフアテンションと事前学習によって,長い依存性も解析できるようになったと言える.出力される係り受け解析の結果は,セルフアテンションの関係と相関していることも分かった.
省略
多言語マルチタスクUDを,多言語BERTで解くUDifyを提案,評価した.BERTの埋め込みはUDツリーバンクにおいても有用で,多くの言語で良い性能を示した.強い正則化とタスク固有のアテンションレイヤーを利用することで,fine-tuningの効果を高め,多言語学習を可能にした.また多言語モデルにより必要なモデルを減らせることができた.多言語モデルは,低リソース言語でもっとも効果を発揮したことが分かり,更に単言語でfine-tuningすることで更なる改善も見受けられた.これらすべての結果より,セルフアテンションのネットワークは,構文情報を記憶することができ,多言語による事前学習と組み合わせてパフォーマンスのデグレなく多言語にスケールさせることができた
Podcastでも解説しました. https://anchor.fm/lnlp-ninja/episodes/ep44-75-Languages--1-Model-Parsing-Universal-Dependencies-Universally-e95pjm
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を提案する.これは下記のように行う.
我々のモデルはCoNLL 2018の多言語からのUDパースタスクの商社である,UDPipe Futureと比較評価する.また多言語学習で一番うまみがあったものはなにか,ゼロショットでの評価(treebank学習セットなし).
多言語マルチタスク学習
UDifyのアーキテクチャ.
事前学習済み多言語BERT
104言語のWikipediaで鍛えられていて,ランダムマスクされた単語を予測することで鍛えられている.またサブワードも利用.
クロス言語学習の問題
Table 1に語彙サイズのリストを示す.UD treebankは160万近いトークンが含まれる.語彙が多いためにBERTのWwordpieceトーカナイザ(サブワード化)を利用し,すべての入力はサブワード化させた.UDの予測は単語単位であるため,サブワードに対しては,単語の最初のピースだけ予測し,残りは捨てるようにした.
加えてXPOSアノテーションは言語間でユニバーサルでなく,treebank間でもそうである.なぜなら各treebankはXPOSのために異なるスキーマを採用しているためだ.そのため学習と評価においてXPOSは除いた.
UDを使ったマルチタスク学習
UDアノテーションの予測のために,UDPipe Future (Straka, 2018, 同じ著者ら)をベースにしたマルチタスク学習モデルを採用するが,すべての埋め込み,エンコーダー,プロジェクションレイヤーはBERTに置き換えた.最後の予測レイヤーは後ほど説明する.そして最後にsoftmaxを計算して学習.
UPOS 17種類のUniversal POS tagsを,単語単位で予測する. https://universaldependencies.org/u/pos/
UFeats UPOS予測と同じように,文字列を語彙の個別のトークンとしてある買う.これにより各形態的特徴を個別に予測するよりも高い評価精度が得られた. https://universaldependencies.org/u/feat/index.html
Lemmas Chrupala(2006)などがやっているように,見出し語化は編集操作(insertion/deletion)のコマンド列を系列データ問題として解く.(こんためのラベルデータは,Wagner-Fischerアルゴリズムは,単語Aから単語Bに変換する動的計画法) 参考:Simple Data-Driven Context-Sensitive Lemmatization
Deps Deep Biaffineパーサー(Dozat, 2016, 2017)を利用.これは文をBiLSTMでエンコードし,係り元と係り先のエンコードされたトークンをAffine変換し,最後にBiaffine変換と呼ばれる処理で,2単語間での係りやすさと,head単語の主辞のなりやすさを表現する.この操作により各単語ペア毎にスコアが得られるので,これらを入力として,Chu-Liu/Edmondsアルゴリズムを行うことで,合計スコアが最大となる木構造を得ることができる.本論では,Deep Biaffineの文エンコーダーをBiLSTMからBERTに置き換える.
UDアノテーションにおけるBERTのfine-tuning
BERTをUD予測に向けてFine-tuningするが,いくつか方法を試した.そして正規化が明らかにパフォーマンスに大きく寄与していることが分かった.
レイヤーアテンション
BERTの全レイヤーを使って,位置jのトークンの埋め込みを,各レイヤーiの重み付きわとして表現する.c,wは学習パラメタ.また特定のレイヤーに過学習しないように,w_iは確率0.1で-∞にセットされ,外のレイヤーから情報を取ろうと学習できる.cとwはUPOS, UFeats, Lemmas, Depsのタスク毎に学習
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に.
Table 3には,UDifyに適用する異なるアテンション戦略を比較している.全89のツリーバンクの平均スコアを表示
Table 4には,ゼロショット学習による評価を載せる.(太字の言語はマルチ言語BERTに含まれている)
Fig 2には,各タスクにおけるレイヤーアテンションwの重みを可視化した.
Table 5には,structural probeによって出力された,構文木のUnlabeled Undirected Attachment Scores (UUAS)の,fine-tuning前後での結果の比較を載せている.
ディスカッション
モデルパフォーマンス
Table 2に関して.
UDifyはSOTAと戦えるパフォーマンス
低リソースにおいてUDPipeより大きく優れている
UDifyはLemmasとUFeatsでわずかにUDPipeに劣っている(これはUDPipeが文字レベル埋め込みを使っているからだろう)
2,3の低リソース言語で大幅にベースラインを下回った.// cop_scriptorum等と書いてあるが,どこかわからん. これは学習データがアンバランスであることと予測されるが,UDify+Langによってこれらのパフォーマンスギャップはほとんど除去できる
UDifyは外のUDツリーバンクの利用で大きく性能を改善でき,低リソース言語ではモノ言語よりも改善される.
更にそのツリーバンクでfine-tuningすることで,ベースラインを下回っているツリーバンクに関しては更に改善できる
しかしUDify+Langは,既に強い結果の言語に対しては,すべての評価メトリクスで悪化した.これは単言語でなくマルチ言語でfine-tuningしたほうが性能が高いことを示している.
スラブ系言語について.
ゼロショット学習(Tale 4)について
アテンション(Table 3, Figure 2)について
BERTでの構文fine-tuningの影響(Table 5)
BERTのアテンション可視化
係り受け解析と多言語性をBERTに可能にしているファクター
Goldberg (2019)や他研究でも,BERTが構文タスクを解ける能力を有していることを示している.
// 論文では指摘はないが,NLP2019でも日本語で構文解析をBERTで全然解ける論文があったりする
また,Ahmad (2018)では,語順の変化に対しては,RNNよりもセルフアテンションのほうが頑健であると示した.これによりクロス言語でも語順が変わるので性能が上がったのではないか?と考える.
また,Wu and Dredze (2019) では,BERTは言語依存・非依存の情報を保持できると説明している.サブワードによる埋め込みが効果を成しているのかも
上記のエビデンスより,強い正則化と合わせてセルフアテンションと事前学習によって,長い依存性も解析できるようになったと言える.出力される係り受け解析の結果は,セルフアテンションの関係と相関していることも分かった.
関連研究
省略
結論
多言語マルチタスクUDを,多言語BERTで解くUDifyを提案,評価した.BERTの埋め込みはUDツリーバンクにおいても有用で,多くの言語で良い性能を示した.強い正則化とタスク固有のアテンションレイヤーを利用することで,fine-tuningの効果を高め,多言語学習を可能にした.また多言語モデルにより必要なモデルを減らせることができた.多言語モデルは,低リソース言語でもっとも効果を発揮したことが分かり,更に単言語でfine-tuningすることで更なる改善も見受けられた.これらすべての結果より,セルフアテンションのネットワークは,構文情報を記憶することができ,多言語による事前学習と組み合わせてパフォーマンスのデグレなく多言語にスケールさせることができた
次読んだほうが良い論文
323 (Structural Probe)
参考