ELYZA Tech Blog

株式会社ELYZAの技術ブログです。

BERT以降の事前学習済みモデルのトレンドと主要モデルを紹介! Part 1 学習方法編

 はじめまして,インターン生の三澤遼です。本記事では,BERT以降の事前学習済みモデルを体系化し,主要なモデルについて解説します。TransformerやBERTについて事前知識があると理解しやすいと思います。

BERT以降のNLP分野の発展

 BERT以前の典型的な言語モデルには,特定のタスクを解くために大量のラベル付きデータが必要であるという問題がありました。その解決のため,近年は汎用的な言語能力の獲得を目的として,特定タスクにモデルを適応する前に大規模コーパスで学習をする事前学習が主流となっています。これによって,応用先のタスクについてのデータが少量であっても高性能なモデルを訓練することが可能になります。
 2018年に登場したBERTが事前学習モデルの代表例です。BERTの登場以降,その応用モデルが数々開発され,タスクによっては人間を超えるような性能が実現されました。深層学習が威力を発揮していた画像や音声分野を超えるようなブレイクスルー自然言語処理分野で起ころうとしていると言われています。
 これまでの事前学習モデル研究の方向性を分類したのが図1です。

f:id:elyza_ryomisawa:20210323173326p:plain
図1 事前学習モデルの分類
 本投稿では,図1の「性能の追求」について「学習方法改良」の観点から解説します。「計算量・計算コストの削減」,「適応範囲の拡大」については次回以降の投稿をチェックして下さい!

学習方法の改良について

 一般的に学習には事前学習下流タスク(応用先のタスク)での学習という2つの段階があり,それぞれの段階での学習を改善するための研究が行われています。学習方法や,それを組み込んだモデルについて解説していきます!
 ちなみに,先月の論文で,事前学習 (pre-training) 後,下流タスクに適応する (fine-tuning) 前に更に学習を行うpre-finetuningが提案されました。この論文の要約を弊社のTwitterで投稿したので是非チェックしてください!

事前学習

 BERTではMasked Language ModelingとNext Sentence Predictionによる事前学習が導入されました。まずはMasked Language ModelingをLanguage Modelingと比較しながら解説し,その後,これを改善または刷新した学習方法を解説していきます!Next Sentence Predictionは,Contrastive Learningのセクションで解説します。

Masked Language Modeling

 Masked Language Modelingは,従来使われていたLanguage Modeling(言語モデリング)の一方向性を解消するためにBERTで初めて導入されました。言語モデリングが,文字列の頭から次々に文字を予測していくのに対し,Masked Language Modelingでは,入力文字列のいくつかの単語をターゲットとしてマスクし,文字列を両方向(左から右,右から左の両方)から見てそれを予測します。いわゆる,穴埋め問題を解くということです。
 Language ModelingとMasked Language Modelingを例を用いて比較したのが表1です。Language Modelingは,一方向性があり時系列を遡って予測できないため,入力を2分割し末尾側をターゲットとして扱います(Thank you for invitingを入力としてme to your party last weekを予測します)。一方,Masked Language Modelingはテキスト中の任意の単語(表1ではforとinviting)をマスクすることができます

f:id:elyza_ryomisawa:20210224190027p:plain
表1 Language ModelingとMasked Language Modelingの比較
 本セクションでは,Masked Language Modelingを改善した方法で学習したモデルとそこから派生した方法 (Translation Language Modeling, Sequence-to-Sequence Masked Language Modeling) 及びそれらを用いたモデルを紹介します。Language Modelingを用いたモデルにはGPT-3があり,下流タスクでの学習についての解説で紹介します。

改良版Masked Language Modeling

RoBERTa (2019-07)

 RoBERTaは,BERTの事前学習方法を見直しました。特に,Masked Language Modelingにおいて,系列を入力するたびにマスクのパターンを変える動的マスキングを導入しました。BERTでは同じ入力には同一のマスクをする静的マスキングを利用していましたが,これではマスキングのバリエーションが減り過学習が起こるためです。
 また,BERTで導入されたNext Sentence Predictionを排除しました。この理由についてはNext Sentence Predictionのセクションで解説します。
 その他マイナーな変更も加えることにより,4タスクでSOTAを達成しました

Translation Language Modeling

 図2のように,原文(英語)と翻訳文(フランス語)のどちらもマスクをします。Translation Language Modelingは,英語でマスクを埋めるために,周辺語だけでなく翻訳文にも注意を払うことで原語と翻訳語の対応も学習させるタスクです。

f:id:elyza_ryomisawa:20201205165738j:plain
図2 Translation Language Modelingの図解(参考[3]より)

XLM (2019-01)

 XLMで初めてTranslation Language Modelingが導入されました。Translation Language ModelingをMasked Language Modelingと併用したXLMは,XNLIという多言語の推論タスクでSOTAの正解率を4.9%上回りました

Sequence-to-Sequence Masked Language Modeling

 一般的なMasked Language Modelingが,マスクに当てはまる文字列を,エンコーダーからベクトルとして出力し,そこから確率を計算して予測するのに対し,Sequence-to-Sequence Masked Language Modelingは,エンコーダーで出力されたベクトルを,デコーダーを用いて文字列へと変換し予測するタスクです。簡単に言うと,Masked Language Modelingではモデルの出力がベクトル,Sequence-to-Sequence Masked Language Modelingでは出力が文字列と言うことです。

T5 (2020-07)

 T5は,Sequence-to-Sequence Masked Language Modelingで事前学習するだけでなく,応用先のタスクにおいても入力と出力を文字列として統一しました。図3はその例を示しています。1つ目は,英語からドイツ語への翻訳タスク,2つ目のcolaはCorpus of Linguistic Acceptabilityの略で,テキストが文法的に正しいかを判別するタスク(のためのデータセット)です。3つ目のstsbはSemantic Textual Similarity Benchmarkの略であり,2文の類似度を評価するタスクで,4つ目は要約タスクです。いずれのタスクにおいても,入出力ともに文字列となっています。

f:id:elyza_ryomisawa:20201205102031j:plain
図3 Sequence-to-Sequenceのイメージ図 左が入力タスク,右が出力の解答でどちらも文字列(参考[4]より)
 このSequence-to-Sequenceの統一的なフレームワークを用いることで,提案されてきた様々な事前学習方法の有効性を包括的に評価しました
 その他,1兆単語で事前学習したことなどにより,ほとんどのタスクでSOTAを達成しました。言語理解能力を測るSuperGLUEというベンチマークで,去年の末までは人間を除いて1位でした。現在は,RoBERTaを改善したDeBERTaやT5の改良版が人間超えを達成しています。

 次の2つのセクションでは,Language ModelingやMasked Language Modelingの改良を目的として提案された,これらとは異なる事前学習方法 (Permuted Language Modeling, Denoising Auto Encoder) を解説していきます!

Permuted Language Modeling

 Permuted Language Modelingとは,入力文字列の単語を,文字列の頭からではなくランダムな順番で予測する方法のことです。図4の例では,予測する順番をThank, you, for, visiting, this, blogから,you, this, blog, visiting, for, Thankに替え,visiting以前に与えられたyou, this, blogに基づき,visitingを予測しています。

f:id:elyza_ryomisawa:20210223011904p:plain
図4 Language ModelingとPermuted Language Modelingの比較
 重要なのは,入力文字列自体は並び替えることなく,予測の順番を変えているということです。これは,各単語が元文字列中で何番目に出てきたかを同時に入力しているため可能です。 入力文字列を並び替えないのは,応用先のタスクにおいて単語が並び替えられた入力は見ないからです。
 入力を左から右にしか見れないLanguage Modelingとは違い,予測の順番をランダムにすることにより,文脈依存性の理解力が向上します。
 また,Masked Language Modelingの,マスクとして用いられる[MASK]が応用先のタスクにおいて現れないため事前学習とファインチューニングの間に解離が生じるという問題も解消します。
 つまり,Permuted Language ModelingはLanguage ModelingとMasked Language Modelingの課題を克服しました

XLNet (2020-01)

 XLNetは,Permuted Language Modelingを初めて導入し,QA・推論タスク・感情分析を含む20個のタスクでBERTを上回りました
 ちなみに,XLNetの論文では'Permutation' Language Modelingと書いてありましたが,'Masked' Language Modelingとの対応を考え,参考[1]に則りPermuted Language Modelingとしました。

Denoising Auto Encoder

 Denoising Auto Encoderとは,入力にノイズを加え元々の入力を復元するモデルです。事前学習においては,

  • 1単語ごとにマスク (token masking)

  • 入力文字列の順番入れ替え (sentence permutation)

  • 単語を一つ選んで(図5のC)先頭になるようにローテーション (document rotation)

  • 単語削除 (token deletion)

  • 0単語の場合も含め,連続する単語に単一マスクの使用 (text infilling)

といった手段で入力を改変し,元の入力を復元する方法が採られています。

f:id:elyza_ryomisawa:20201203150624j:plain
図5 Denoising Auto Encoderの図解(参考[7]より)

BART (2019-10)

 BARTは,Denoising Auto Encoderとして,順番入れ替え + 連続する単語に単一マスクによる入力系列の改変を採用しました。改変された入力をBERTのような双方向エンコーダーエンコードした後,それをGPTのような自己回帰デコーダーに通して元の入力系列を復元します。
 RoBERTaと同様なパフォーマンスを実現し,抽象的な対話・QA・翻訳タスクでSOTAを達成しました

Contrastive Learning

 本セクションは,Next Sentence Prediction及びそれを改善した方法についての解説です。
 Masked Language Modelingといったこれまでに紹介した事前学習方法では,モデルは1文を受け取って,その文中の単語間の関係や文全体を理解するタスクが課せられました。Contrastive Learningでは,モデルは2つの文を入力として受け取って比較し,それらに関係があるかどうかを理解する能力を身につけます

Next Sentence Prediction

 図6のように,訓練用コーパス(例 : Wikipedia)中から取り出した2文(文A,文Bとします)を入力とします。文Bは,それぞれ50%の確率で文Aに続く文か同コーパス内の別文書からの文になっていて,2文目が1文目に続く文かどうかを判別するタスクです。

f:id:elyza_ryomisawa:20210301165242p:plain
図6 Next Sentence Predictionの図解
 しかし,RoBERTaについての論文など様々な論文でNext Sentence Predictionを外すことによってむしろ性能が向上することが報告されています。その理由として,次に紹介するSentence Order Predictionを提案した論文では,2文目が別の文書からの文である場合,1文目と2文目のトピックが異なっており,簡単なトピック分類タスクになっていることが挙げられています。先述したように,テキスト間の関係性を理解する能力を身につけさせることが目的なので,これは望ましくないですね。

Sentence Order Prediction

 Next Sentence Predictionの代替として提案された,学習データから連続する2文を抽出し,文の順番が入れ替わっているかどうかを予測する方法です。

ALBERT (2020-02)

 Sentence Order PredictionはALBERTで初めて導入されました。このモデルでは,パラメーターを大幅に削減する方法も導入されていますが,具体的な方法は次回の投稿で解説します。他モデルよりもパラメーターが少ないにも拘らず,ほとんどのタスクでSOTAを達成しました

Replaced Token Detection

 Replaced Token Detectionとは,図7のように,入力テキストの一部の単語を別の単語で置換し,各単語が置換されているかどうかを文脈から予測する方法です。
 Masked Language Modelingは,入力単語数に比べれば非常に少ないマスクについてのタスクです。それに対し,Replaced Token Detectionは入力テキスト全体に対するタスクであるため,計算効率が上昇します

ELECTRA (2020-03)

 ELECTRAは,Replaced Token Detectionを用いて40万ステップで学習した場合,RoBERTaやXLNetとパラメーター数はほとんど同じで,計算量は1/4であるにも拘らず, SQuADという読解力を測るベンチマークにおいて同等の結果を達成しました

f:id:elyza_ryomisawa:20210224194512p:plain
図7 Replaced Token Detectionの例

下流タスクでの学習

In-context Learning

 In-context Learningとは,特定のタスクにおいてパラメーターを更新する(=個別タスクに適応する,fine-tuningするとも言います)ことなく,タスクをその説明や入出力例を見る中で学習することです。図8の例では,sequence #1で足し算,#2で文字並び替え,#3で英語からフランス語への翻訳といったタスクを学習しています。In-context Learningと,図8のようなouter loopでの学習(大規模コーパスを用いた事前学習)を組み合わせた学習はメタ学習と呼ばれています。

f:id:elyza_ryomisawa:20201203210539j:plain
図8 メタ学習の例(参考[10]より)

 特に,In-context Learningにおいて与えられる入力が0,1,または十分少ない場合をそれぞれZero-shot Learning,One-shot Learning,Few-shot Learningと呼び,これらは事前に言語知識を身につけておき,タスクの説明や例を見る中で学習するという点において,人間と似ています。更に,事前学習済みモデルであったとしても特定のタスクに適応するためにラベル付きデータが必要であり,アノテーションに多大なコストがかかるという問題も解消します

GPT-3 (2020-7)

 GPT-3は,膨大なパラメーターを有すとともに大規模なデータセットで学習することによって,Few-shot Learningであっても高性能を達成しました。パラメーター数は,BERT-BASEの約500倍である1750億であるため,計算コストは非常に高く学習には約4億9千万円かかり,1つのGPUを使った場合,355年かかるとされています(参考[11]より)。 たった64個のタスク例しか与えられない場合でも,例えばTriviaQAという読解力や問題解答力を測るベンチマークファインチューニングされたSOTAモデルを超えました
 また,GPT-3は,文字列の頭から次々に現れそうな文字を予測していくLanguage Modelingによって事前学習しているため,言語生成能力に長けています。タイトルやサブタイトルが与えられると記事の生成をすることも可能です。図9はGPT-3が生成した記事ですが,88%もの人がこれを人間が書いたと判断しました。

f:id:elyza_ryomisawa:20201205005013j:plain
図9 GPT-3による記事の生成例(参考[10]より)
 GPT-3は研究だけでなく,社会実装の観点でも注目されています。弊社のTwitterで,北米での社会実装例をまとめたブログを紹介しているので,チェックしてみてください!

まとめと今後

 本投稿では,BERT以降の研究の方向性を分類し,事前学習の方法に関して解説しました。
 紹介したGPT-3やT5などが高い言語能力を有する一方で,パラメーター数が膨大で実応用が困難であるという問題があります。そこで重要となるのがモデル圧縮というパラメーター削減の技術で,これは次回の「Part 2 計算量・計算コストの削減」で紹介します。
 是非,次回以降もご一読ください!

ELYZAでは仲間を募集しています!

 ELYZAでは、「未踏の領域で、あたりまえを創る」をミッションに掲げ、自然言語処理NLP)・リテールテックの2領域にフォーカスして、「研究開発」・「共同研究」・「サービス開発」の3つの活動を行っております。
 研究開発に興味がある方も、機械学習を活用したサービス開発に興味がある方も、是非お気軽にご連絡ください。

open.talentio.com

open.talentio.com

brain.elyza.ai

24houritpeople.com

参考

  1. Qiu, Xipeng, et al. "Pre-trained models for natural language processing: A survey." arXiv preprint arXiv:2003.08271 (2020).
  2. Liu, Yinhan, et al. "RoBERTa: A Robustly Optimized BERT Pretraining Approach." arXiv preprint arXiv:1907.11692 (2019).
  3. Lample, Guillaume, and Alexis Conneau. "Cross-lingual language model pretraining." arXiv preprint arXiv:1901.07291 (2019).
  4. Raffel, Colin, et al. "Exploring the limits of transfer learning with a unified text-to-text transformer." arXiv preprint arXiv:1910.10683 (2019).
  5. Yang, Zhilin, et al. "XLNet: Generalized Autoregressive Pretraining for Language Understanding." Advances in neural information processing systems. 2019.
  6. Paper Dissected: “XLNet: Generalized Autoregressive Pretraining for Language Understanding” Explained
  7. Lewis, Mike, et al. "BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension." arXiv preprint arXiv:1910.13461 (2019).
  8. Lan, Zhenzhong, et al. "ALBERT: A lite bert for self-supervised learning of language representations." arXiv preprint arXiv:1909.11942 (2019).
  9. Clark, Kevin, et al. "Electra: Pre-training text encoders as discriminators rather than generators." arXiv preprint arXiv:2003.10555 (2020).
  10. Brown, Tom B., et al. "Language models are few-shot learners." arXiv preprint arXiv:2005.14165 (2020).
  11. Jay Alammar, How GPT3 Works - Visualizations and Animations.