RoBERTa: A Robustly Optimized BERT Pretraining Approach(2019)
August 27, 2023RoBERTaは、BERTのアーキテクチャを変えずに、事前学習の改善によって性能を向上をはかる。 BERTの事前学習がMasked Language ModelとNext Sentence Predictionの2タスクでパラメータを更新する一方で、RoBERTaはMasked Language Modelのみを採用する。 また、Byte Pair Encodingのサブワードの単位を文字からバイトに変更し、語彙集合数を50,000にまで増加した。 ミニバッチのサイズもまたBERTより大きい。
BERTの入力は、2つのトークンの系列\(x_1,\dots , x_N\)と\(y_1, \dots y_M\)を連結した系列である。 入力を構成する2つの系列はセグメントともいい、入力\([CLS], x_1,\dots , x_N , [SEP], y_1,\dots , y_M, [EOF]\)のなかで、デリミタ\([CLS], [SEP], [EOS]\)でセグメントの境界は区切られる。 入力の最大を制限するハイパーパラメタ\(T\)があり、\(M+N<T\)になるように入力の最大長は制限される。
Masked Language Modelは、マスクされたトークンを含む入力を受けとり、周囲のトークンを手がかりに、マスクされたトークンを推定するタスクである。 BERTは、前処理において、コーパスからマスクされた入力を生成する。 テキストを10通りのパターンでマスクすることで、1つのテキストから10通りの入力を生成する。 BERTの事前学習のエポック数は40であるから、各入力は10回重複してモデルに入力される。 RoBERTaは、おなじ入力が与えられないように、前処理ではなく訓練時にテキストを入力する直前に、確率的にマスクの位置を決め、モデルへの入力を生成する。
Next Sentence Predictionは、入力中の2つのセグメントが同じ文書の連続した位置から取り出されたかを判別する2値分類のタスクである。 RoBERTaは、Next Sentence Predictionを使わず、文書の連続する箇所から文を取り出し、セグメントとしてつなげた入力を生成する。
BERTのトークンは、Byte Pair Encodingによって生成される。 Byte Pair Encodingは、文書を記号列に分解し、その後、最も出現回数の高い隣接する記号をペアにするマージをくりかえす。 BERTは記号の単位に文字を採用し、その語彙数は30,000である。 一方、RoBERTaは、バイトを単位にし、語彙数を50,000に増やしている。