jojonki / arXivNotes

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

2019: ALBERT: A Lite BERT for Self-supervised Learning of Language Representations #348

Open jojonki opened 4 years ago

jojonki commented 4 years ago

ALBERT: A Lite BERT for Self-supervised Learning of Language Representations Zhenzhong Lan, Mingda Chen, Sebastian Goodman, Kevin Gimpel, Piyush Sharma, Radu Soricut https://arxiv.org/abs/1909.11942 code: https://github.com/google-research/google-research/tree/master/albert

概要

事前学習モデルで,モデルサイズを大きくするとパフォーマンスが向上する傾向にあるが,GPU/TPUメモリは高コストになり,さらに予期しないパフォーマンス低下を招くことがある.本論文では,メモリ消費量の削減のために2つのパラメタ削減方法を提案し,BERTの学習速度も向上させる(A Lite BERT, ALBERT).実験では,オリジナルのBERTと比べてモデルをスケールさせることができた.また文間の一貫性をモデリングすることにフォーカスしたself-supervisedな損失も提案.結果として,BERT-largeと比べて少ないパラメタで,GLUE, RACE, SQuADでSOTA.

イントロ

pretrainingのモデルが多く成果を上げている.また巨大なモデルを事前学習し,ダウンストリームのタスクに向けて蒸留したりする.しかし現在のSOTAモデルはパラメタ数が何億・何十億となっているので,メモリの制約が大きい.更に学習速度も問題となっている.またBERT-largeのようなモデルの隠れ層の大きさを純粋に大きくしていくと(2倍),性能が悪化していく

image

このような問題に対処するためにモデルの並列化や賢いメモリ管理法などがあるが,これはメモリ制約の問題にはよいが,パラメタのコミュニケーションのオーバーヘッドやモデルの悪化については言及していない.我々はこれらの問題のため,A Lite BERT (ALBERT)を提案.BERTよりも少ないパラメタ.

ALBERTでは2つのパラメタ削減テクニックを採用

  1. factorized embedding.巨大な語彙-埋め込みマトリックスを,2つのマトリックスに分解.
  2. レイヤー間でのパラメタ共有

これにより,BERT-largeと比べて18分の1のパラメタで1.7倍早く学習できる.またこのパラメタ削減は,学習を安定化させ一般化を促す正則化としても動作する.

またALBERTのパフォーマンス改善のため,文順序予測(SOP: Sentence-Order Prediction)のためのself-supervised損失を導入.SOPは文間の一貫性にフォーカスし,報告されている次文予測(NSP)の非効率性が報告されているため入れ替える.

関連研究

ALBERTの要素

モデルアーキテクチャ

ALBERTのアーキテクチャはBERTと似ているが,以下に示す内容でカスタムしていく.

Fig2にBERTとALBERTでの各レイヤーでの入力と出力の埋め込みのcosine 類似度を載せる.ALBERTでは,BERTよりも,レイヤーからのレイヤーの遷移がスムーズであると分かる.これはネットワークパラメタの安定化に効果がある. image

モデルのセットアップ

BERTとALBERTののパラメタ比較をTable 2に示す.ALBERTはかなり小さくなっている.例えばBERT-largeとALBERT-largeでは,18倍のパラメタの差が生じている. image

実験結果

ダウンストリームのタスクとして,GLUE,SQuAD,RACE (ReAding Comprehension from Examinations,英語の試験)を採用.

全体の結果(BERET vs ALBERT)

Table 3に示す

Factorized embedding parametrization

Table 4に埋め込みサイズEをALBERT-baseで色々変えてみたものを示す.またレイヤー間パラメタ共有も一緒に.

レイヤー間のパラメタ共有

ALBERTの埋め込みサイズEを768,128にして,様々なパラメタ共有を試した:all-shared, shared-attention, shared-FFN, not-shared (BERTスタイル)

Sentence Order Prediction (SOP)

追加の文間タスクに関して,None (XLNet, RoBERTAスタイル),NSPタスク(BERTスタイル),SOP(ALBERTスタイル)を目的関数にした場合,それぞれのタスクが解けるかをTable 6に示す.

ネットワークの深さと幅の効果

ネットワークの深さ(レイヤー数)と幅(隠れ層サイズ)がALBERTにどう影響を与えたか示した.レイヤー数を変えたものはTable 7,隠れ層サイズを変えたものをTable 8に示す.

Table 8には3-layerのALBERT-large設定で異なる隠れ層サイズ.

image

もし同じ時間で学習していたらどうなる

Table 3で示したとおり,ALBERTの学習は早い.また一般に,長い学習でパフォーマンスは上がる.そこでBERT-largeと同程度の時間で学習したALBERT-xxlargeの性能をTable 9に示す

幅の広い(隠れ層サイズ大)ALBERTは,より深い必要(レイヤー数)があるか?

ALBERT-large (H=1024)を,レイヤー12と24で実験したものをTable 10に示す.

追加の学習データとドロップアウトの効果

XLNet及びRoBERTaで使われた追加の学習データを利用してみた.

image image

NLUタスクの現在のSOTA

シングルモデルとアンサンブルモデルで比較.シングルモデルではTable 2でのALBERT-xxlargeで,MLMとSOPタスク,及びdropoutなし設定.Table 13にGLUE,Table 14にRACE,SQuADを示す.

image

ディスカッション

ALBERT-xxlargeはBERT-largeよりも少ないパラメタにもかかわらず良い結果を示した.次のステップとして,スパースアテンションやブロックアテンションといった手法を通してALBERTの学習及び推論時間の向上である.またSOPの有用性も示した,これにはだ捉えられていない表現手法があると考える.

コメント

参考

jojonki commented 4 years ago

Podcastでも解説しました https://anchor.fm/lnlp-ninja/episodes/ep47-ALBERT-A-Lite-BERT-for-Self-supervised-Learning-of-Language-Representations-ea4jv4