RoBERTa(論文の詳細① Introduction&Background)|言語処理へのDeepLearningの導入の研究トレンドを俯瞰する #14

f:id:lib-arts:20190818234338p:plain

言語処理へのDeepLearningの導入をご紹介するにあたって、#3〜#8においては、Transformer[2017]やBERT[2018]について、#9~#10ではXLNet[2019]について、#11~#12ではTransformer-XL[2019]について取り扱ってきました。

#13以降では2019年7月にリリースされたBERTベースでハイパーパラメータ(学習にあたってのlossやデータセット)のチューニングを行なった事前学習モデルであるRoBERTa[2019]について取り扱っていきます。

[1907.11692] RoBERTa: A Robustly Optimized BERT Pretraining Approach

#13では上記のAbstractをベースにRoBERTa[2019]の概要について確認しました。

#14ではRoBERTa[2019]の論文のIntroductionとBackgroundについて確認していきます。
以下目次になります。

1. Introduction(Section1)
2. Background(Section2)
3. まとめ

 

1. Introduction(Section1)
1節ではIntroductionについて取り扱います。Introductionはパラグラフリーディングをするとちょうど良いのでパラグラフ単位で読み進めていきます。

f:id:lib-arts:20190819214604p:plain

上記が第一パラグラフです。第一パラグラフの要約は下記になります。

要約:
ELMoやGPT、BERT、XLNetなどの学習手法は大きな成功をおさめたものの、どの方法が一番貢献している(contribute)かは現在進行形で検討されている。

第一パラグラフではこれまでの研究を紹介する導入の位置付けで論述が行われています。

f:id:lib-arts:20190819214653p:plain

第二パラグラフの要約は下記になります。

要約:
BERTを用いた事前学習における追加研究について紹介する。追加研究の中ではハイパーパラメータやトレーニングデータのサイズについての効果を入念に評価している。BERTが顕著に学習不足であることについて発見し、RoBERTaという名前で改善案を紹介する。RoBERTaはBERT以降の全てのパフォーマンスに並ぶか上回るかした。修正のアプローチはいたってシンプルで、『(1)より大きなモデル、バッチ、データを用いる、(2)NSPによる事前学習をなくす、(3)より長い文を用いて学習を行う、(4)事前学習時に用いるMASKのパターンを動的に変更する』の4つである。

BERTの改善案として、RoBERTaを提案しています。また、4つの修正のアプローチについても言及されており、こちらについてはSection4などに考察がまとまっています。

f:id:lib-arts:20190819214723p:plain

第三パラグラフの要約は下記になります。

要約:
学習データの調節にあたって手法の改善に伴って、GLUEとSQuADの双方に置いて結果の向上が見られた。GLUE leaderboardで88.5のスコアを出し、同時に4/9のGLUEタスクでSOTAの結果となった。当研究を総括的に見ると、BERTの学習にあたっての目的関数(objective)はXLNet(Yang et al., 2019)を用いた語順変更を伴うAutoRegressiveモデルに比類する結果となることを示した。

RoBERTaによってXLNetのような語順変更を伴うAutoRegressiveモデルに比類する結果を示したことが記述されています。XLNetの論文でBERTはAutoEncodingモデルとされており、どちらが良いかというのをまだ決めるのは早急で追加の研究が望まれると解釈して良いと思われます。ちなみに細かいですが、最初の文でimproveが重複しているのは違う表現の方が良いのではという印象でした(new training procedure etc)。

f:id:lib-arts:20190819215257p:plain

f:id:lib-arts:20190819215325p:plain

第四パラグラフの要約は下記になります。

要約:
総括すると当論文における貢献(contributions)は、(1)BERTの学習の全体設計と戦略について示せたこと、(2)CC-NEWSなど様々な新しい学習データを用いたこと、(3)MLM(Masked Language Model) の改善を(MASKの設定を動的にすることにより)行ったこと。

こちらについては第二パラグラフの内容を再度違う視点でまとめていると考えるのが良さそうです。基本的にはAbstractの詳細を記述している形のため重複がありますが、追加研究(Replication Study)なのでパラグラフ単位で簡単に取り扱っておきました。


2. Background(Section2)
2節はBackgroundについて確認して行きます。こちらも普段は飛ばすのですが、追加研究(Replication Study)のため各Sectionごとに確認していきます。
・冒頭部

f:id:lib-arts:20190820170455p:plain

上記が冒頭部の記述です。Section2の概観をしているので簡単に和訳します。

和訳:
このSectionでは、BERTにおける事前学習のアプローチの簡単な俯瞰を行い、後ろのSectionで実験的に試しているいくつかの学習における調整について紹介する。

Section2のBackgroundではBERTの学習にあたっての基本的な考え方と、調整にあたって出てくる概念の紹介を行うとされています。BERTの内容を改めて見返して俯瞰したものなので、実際のオリジナルと並行して確認しても良い内容だと思われます。


・Setup(Section2.1)

f:id:lib-arts:20190820170638p:plain

上記がSetup(Section2.1)の記述です。ここでは単語の系列(sequences of tokens)のモデリングを行うにあたってまず系列(Sequence)を定義しています。系列としては\mathbf{x}=(x_{1},x_{2},...,x_{N})\mathbf{y}=(y_{1},y_{2},...,y_{M})の二つが定義されています。ここで、途中のところで、[CLS],\mathbf{x},[SEP],\mathbf{y},[EOS]という記述がありますが、このような形で系列の連なりを立式しています。[CLS]はclassificationを表すトークン、[SEP]はseparateを表すトークン、[EOS]はend of sentenceを表すトークンです。NとMはそれぞれ系列\mathbf{x}と系列\mathbf{y}の長さを表しており、学習における系列の全体の最大の長さを表すTとの間にM+N<Tという関係があるとされています。
モデルは初めに大きなラベル付けされていないテキストコーパスによって事前学習され、次にラベル付けされたタスクによってファインチューニング(finetuning)されるとされています。

 

・Architecture(Section2.2)

f:id:lib-arts:20190820173322p:plain

上記がArchitecture(Section2.2)の記述です。ここではBERTに関してL層で、Aのself-attention headsを持ち、H次元の隠れ層を持つTransformerを用いたとのみ記述されています。詳細はBERTの論文などに記載があるので簡単な記述のみとされているようです。


・Training Objectives(Section2.3)
Section2.3のTraining ObjectivesについてはBERTの事前学習にあたっての二つの目的関数(誤差関数、loss)が紹介されています。それぞれMasked Language Model(MLM)とNext Sentence Prediction(NSP)の二つで、以下それぞれについて見ていきます。

f:id:lib-arts:20190820174053p:plain

f:id:lib-arts:20190820174116p:plain

上記がMasked Language Model(MLM)の記述になります。MLMでは入力データの一部を[MASK]というトークンに置き換え、その他の文の単語から[MASK]化されたトークンの予測ができるように学習させるというものです。補足ですが、この学習自体は[MASK]化するトークンはランダムに選ぶとすると人間が教師データ(labelの情報)を与えていないので、教師なし学習(Unsupervised Learning)と捉えることができます。これによりWikipediaのような巨大なコーパスを学習データとして用いることができます。
[MASK]の作成にあたっては、文を構成する単語(input tokens)の中から15%を選び、その中の80%を[MASK]トークンで置き換え、10%をそのまま変更しないでおき、10%をランダムで選択された単語で置換(replace)されます。この際に10%をランダムな単語で置換する意図としては、学習データによる偏りを減らすことで過学習(overfitting)を防ぐというのがあると思われます。
BERTのオリジナルの実装において[MASK]化やランダムの置換については学習の開始時に一度だけ行われ、学習の間中それが保存されます。けれども実際にはデータは複製されるので全ての学習する文に置いて[MASK]は常に一致するわけではないとされています。(これはDataAugmentationのことを指していると思われましたが要出典です)


・Optimization(Section2.4)

f:id:lib-arts:20190820175703p:plain
上記がOptimization(Section2.4)の記述です。Adamによる最適化のパラメータ設定や、学習率の設定、ドロップアウトの比率、ミニバッチのサイズ(B=256)、最大の文章のサイズ(T=512)についてまとめられています。最適化(Optimization)の設定については下記に著者実装があるので、詳細はこちらを確認すると良さそうです。

GitHub - pytorch/fairseq: Facebook AI Research Sequence-to-Sequence Toolkit written in Python.


・Data(Section2.5)

f:id:lib-arts:20190820175648p:plain

上記がData(Section2.5)の記述です。BERTのオリジナルにおいての学習データの構築についてまとめられています。BOOKCORPUSのデータに英語のWikipediaのデータを加えた16GBのデータを用いたとされています。それに対し、Section3.2でRoBERTaは160GBのデータを用いたとされています。

f:id:lib-arts:20190820180605p:plain

上記はTable4の比較で、データセットと各スコアの比較がRoBERTa、BERT(LARGE)、XLNet(LARGE)のそれぞれに対してまとめられています。(詳しくは後日記事でまとめます。)


3. まとめ
#14ではRoBERTaにおいてIntroductionとBackgroundについてまとめます。Replication Studyなので全体的にざっと見ていくことにより、他の論文での言及も整理できてなかなか有意義な印象です。
#15ではSection3のExperimental Setupについて取り扱います。