ブログではないです

ブログでなくはないです

In Neural Machine Translation, What Does Transfer Learning Transfer? (Aji+, ACL'20)

https://www.aclweb.org/anthology/2020.acl-main.688.pdf

タイトルの通り,機械翻訳における言語対間転移学習についての分析論文.想定している設定としては大規模データが存在する言語対 (e.g., En-> De) で訓練したモデル(parent) を小規模なデータしか無い言語対 (e.g., Id -> En) で再訓練する (child),という言語対間の転移学習.

主な実験内容としては
1. parentモデルとして有効な言語対はあるか?向きは関係あるか?
2. embeddingsとinner layers, どちらの転移が有効に働いているのか?
3. parentとchildで言語が異なる時,embeddingsはどう初期化するのが良いのか?
など.

結果としては

  1. 特にparentによる大きな差は確認できず.なんと向きもそんなに関係なく,(自分の理解では)Id->Enのparentとして De->Enを用いてもEn->Deを用いても変わらない,とのこと.直感的には前者のほうがtarget側の言語が一致している分,parentの時点でdecoderが英語の言語モデルとして訓練されているので有利な気がするのだが… 向きはともかくどの言語を選ぶかについては,言語そのものよりもどういうデータセットがparent側で用意出来るかに大きく左右されるので結論が出にくい話だろうとも思う.

  2. それぞれの転移をablation testして検証していた (転移しない場合ランダム初期化の後再学習).両方効いているが,inner layersの寄与が大きく,埋め込みだけ転移してもあまり効果が無いとのこと.

  3. parentとchildのモデルで初めから共通の語彙集合を作る joint vocabularyが一番良く,次点で表層が完全一致するsubwordだけ埋め込みを転移するtoken matchingが良いとの結果.そもそも言語対の異なる翻訳モデルをparentとして転移学習する感覚が自分としてはあまりなく,別の言語のembeddingsを(単語間で意味の一対一対応が辞書的に取れるような場合でも無い時に)他の言語の初期値として使ってそんなに嬉しいことあるのか?という感想だったが,色々初期化の方法が提案されていることからそういう設定もそれなりにメジャーなんだろうか. ただ,本文中でも触れられていたがjoint vocabularyはchildを先に決めた状態でparentを訓練しなければいけないので,childごとにparentの再訓練が必要というのがやはりあまり好みではない.

この研究では比較されていなかったが,自分なら大規模対訳コーパスが無い言語対で翻訳モデルを訓練するならまず教師なしNMT + 小規模対訳コーパスでfine-tuningを考えるのだけど,それと比べてどうなんだろう.大規模な単言語コーパスを前提としてるのかどうかでまた話が違うだろうけど.