未定の部屋

主にデータサイエンス関係の記事を書きます

BERT論文解読

こんにちは。
以前BERTを実務で使った際に論文を読んだのですが、その時のメモを公開しようと思います。
ググれば日本語の論文解説はいくらでも出てくるのでアレですが、備忘録的に残そうと思いブログに載せました。自然言語処理系の論文をちゃんと読むのが初めてだったので当時かなり苦労しながら解読した記憶があります。

内容

アブスト

  • BERT:Bidirectional Encoder Representations from Transformersの略
  • 直訳:双方向のトランスフォーマーによるエンコーダー表現
    文脈を前後両方から条件付けてラベルの無い文書を双方向的に事前学習する
  • 1層加えてファインチューニングするだけで、様々なタスクに対応したモデルを作ることができる
    大幅なモデルの変更が要らない
  • 11のタスクでSoTA(State-of-The-Art:最先端レベル)の結果を出した。

イントロ

  • 事前学習は自然言語処理のタスクに有効
    単語レベルのタスクだけでなく文章レベルにも有効
  • 事前学習にはfeature-basedとfine-tuningのタスクがある
    • feature-based:ELMoなどがそうで、タスク固有のアーキテクチャを使う
    • fine-tuning:OpenAIGPTなどがそうで、最小限のタスク固有パラメータを導入する/事前学習されたパラメータによる下流タスクの上に学習される
      →どちらも一方向の言語モデルの事前学習に使用される
  • 現状、事前学習の特にfine-tuningにおいて表現力が制限されている。
    一方向の学習にしか使わないのは参照するトークンが前だけであり、制限されてしまう

  • BERTはmasked language model(MLM)を用いることで一方向の制限を緩和

    • masked language model:ランダムにトークンをマスクし、元の単語を予測することを目的とする
      MLMは前後両方の文脈から表現できる
    • MLMに加え、next sentence predictionによるテキストぺアの表現も利用

  • 結果として、
    • 双方向のmasked language modelを使用している
    • ヘビーなタスク固有のアーキテクチャの使用を以前より少なくできた 
      →最初のfine-tuningベースのモデルで、トークンレベル・センテンスレベルのタスクで最先端のパフォーマンスを達成

自然言語処理の変遷についての内容

1.教師なしのfeature-basedアプローチ

  • word embeddingや単語表現といった手法は文単位やパラグラフ単位のembedding(埋め込み)のような、粗い粒度に使われるようになった。
    ※おそらく単方向の事前学習モデルが主語

  • ELMoとその前任のモデルは文脈依存の特徴を双方向の言語モデルから抽出した

    • 文脈を前後双方向の連結で表現
    • これをタスク固有のアーキテクチャと統合したことで、ELMoはSoTAになった。
  • LSTMsもELMoと類似したモデルで、feature-basedで浅い双方向性(not deeply bidirectional)という特徴を有する
    cf)BERTは深い双方向性

2.教師なしのfine-tuningアプローチ

  • 初期はラベルの無いテストから学習したword embedding
  • ラベルなしテストからの事前学習+教師ありのfine-tuningで文書のエンコードがされるようになった
  • OpenAI GPTがSoTAのモデルとなっていた(BERT以前)

3.教師ありデータからの転移学習

  • 自然言語推論や機械翻訳のような大きなデータセットを要する教師ありタスクから転移することで効果的な結果をもたらすワークが出現した

BERT

pre-trainingとfine-tuningからなる

  • pre-training:複数のpre-trainingタスクのもとラベルなしデータを用いて学習
  • fine-tuning:pre-trainingで作成されたパラメータを、下流タスクのラベル付きデータを用いてfine-tuning
  • 特徴:タスク間でのアーキテクチャに大きな差がなく、全てpre-trainingでのアーキテクチャをベースにしている

Model Architecture

  • 多層双方向Transformer Encoder

    • Transformerのベースとなった論文:
      Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N Gomez, Lukasz Kaiser, and Illia Polosukhin. 2017. Attention is all you need. In Advances in Neural Information Processing Systems, pages 6000–6010.

  • BERT_base:OpenAI GPTと同じモデルサイズだが、Transformerは双方向から解読できる

Input/Output Representations

論文Figure 1より

  • Input:ひとつのトークンで一文もしくはペアの文の両方を表現できる
    これにより、一文は任意のスパンのテキストと認識されてインプットされる(この1セットをシーケンスと呼んでるっぽい)
  • CLS:各シーケンスの最初のトーク
    final hidden vectorでCと表記(これ以外のトークンはTと表記)
  • SEP:シーケンスを分けるために使うトーク

  • SEPで分けた後、各トークンがAとBのどちらに属するかを示すlearned embeddingを追加する(上図のEに相当)

  • BERTのInputは各単語をトークン、セグメント、ポジションのembeddingで表現する(下図)

    論文Figure 2より

Pre-training BERT

二つのタスクからなる

1.Masked LM

  • BERTは双方向から学習するが、普通は双方向から学習するとモデルは自明にターゲットの単語を予測できてしまう
  • インプットしたトークンをランダムにマスキングして、マスキングされたトークンを予測するようにした(Masked LM; MLM)

    • マスクされたトークンに一致したfinal hedden vectorがアウトプットとして出される
    • 15%の単語がマスクされ、その単語だけを予測する
  • これだけだとマスクされたトークンがfine-tuning時に出現しないためpre-trainingとfine-tuningでミスマッチが起こるので、80%の確率でマスキング、10%の確率でランダムなトークンに、10%の確率でそのままトークンを使用するようにした。

2.Next Sentence Prediction(NSP)

  • 文脈を理解するモデルを作るために、単一の言語コーパスから生成できるNext Sentence Predictionタスクを事前学習

    • 50%の確率で隣接した2文、50%でランダムな2文になるように2文の組をコーパスから抽出
    • 最初にあるCのトークンが該当
  • 以前のNSPでは文章粒度のベクトルしか下流タスクに転送できなかったが、BERTは全てのパラメータを転送して、エンドタスクのモデルパラメータを初期化できる

3.Pre-training data

  • BooksCorpus (800M words)とEnglish Wikipedia (2,500M words)から学習
Fine-tuning BERT
  • TransformerのselfattentionメカニズムによってBERTは多くの下流タスクをモデル化できるため、fine-tuningが容易

    • BERTにタスク固有のインプットとアウトプットを流し込み、全パラメータをend-to-endでfinetuneする
  • 一般的な手法はテキストの組に対するエンコードとbidirectional cross attentionを別々に行うが、BERTは同時に行う

  • pre-trainingに比べるとfine-tuningは短時間で処理される

Experiments

GLUE
  • GLUE:The General Language Understanding Evaluation benchmark
    様々な自然言語理解のタスクのコレクション
  • GLUEのテストにおいて、BERT(BASEとLARGE)は全てのタスクにおいて他の手法を上回るスコアをたたき出した
    • BERTBASEとOpenAIGPTはモデルアーキテクチャにおいてはほぼ同一
    • LARGEの方がBASEよりもすべてのタスクで優れている(特に訓練データが少ない時に顕著)
SQuAD v1.1
  • SQuAD v1.1: The Stanford Question Answering Dataset
    10万件のQAペアデータ
    Question Answeringタスクにあたる
  • SQuAD+TriviaQAでfine-tuningしたBERTは全てのシステムのスコアを上回った(人間のテスト結果も上回った) TriviaQAを使用していなくても既存の手法より高いスコアとなった
SQuAD2.0
  • SQuAD1.1の拡張版(長い解答のデータを含めた/答えが存在しないという選択肢が追加されている)
  • こちらも過去のF1最高値を5.1ポイント更新した(78.0→83.1)
  • ここでは人間の方がスコアが高い
SWAG
  • SWAG:The Situations With Adversarial Generations dataset
    常識的な推論を評価する11.3万件の文の組
    • 与えられた文に対して最ももっともらしい選択肢を選ぶ
  • 正解率でEDIM+ELMoやOpenAI GPTを上回った

Ablation Studies

Effect of Pre-training Tasks
  • 2種類の事前学習モデルを評価することでBERTの深層双方向性の重要度を確認

    • No NSP:MLMを使用するがNSP(Next Sentence Model)は使用しないもの
    • LTR&No NSP:MLMではなくleft-context-only model(左から右のみのモデル)を利用し、No NSPであるモデル。
      LTR(Left To Right)はfine-tuningでも適用

  • 比較↓

    • BERTとNo NSPを比較することでNSPの重要性が、No NSPとLTR&No NSPを比較することで双方向性表現の重要性が分かる
    • BiLSTMを追加してもBERTの方が良いことが分かる
      論文Table 5より



  • LTRとRTLを別々に行って結合することもできるが、時間がかかる・非直感的・各層に二つのモデルのコンテキストが存在するので双方向性モデルより性能が劣るといった欠点がある(よくわからず)
Effect of Model Size
  • fine-tuningの正解率に対するモデルサイズの影響を調査

    • ハイパーパラメータや学習手順は変えずに、レイヤー数・隠れユニット・attention headsを変えて比較
  • 大きなモデル程正解率が上がる傾向

    • すでに大きなモデルでも改善の余地があることを示唆

論文Table 6より


  • モデルサイズを大きくすれば大きなスケールのタスクを改善できることは以前から言及されていたが、モデルサイズを大きくすることで小さなスケールのタスクに対しても改善が見込まれ、これは新たな発見と言えそう

  • モデルサイズの変更に関する仮説
    • 下流タスクを直接fine-tuningし、追加パラメータとしてごく少数の初期化されたパラメータを追加する場合であれば、データセットが少ない場合でもタスク固有のモデルは事前学習された表現の恩恵を受けられる
Feature-based Approach with BERT
  • Fine-tuning Approach:事前学習したモデルにシンプルな分類層を追加し、下流タスクで全パラメータの微調整を行うやり方

    • cf. Feature-based Approach:事前学習されたモデルから固定された特徴を抽出するやり方。下記の利点がある
    • すべてのタスクを簡単に表現できないので、タスク固有のモデルアーキテクチャを追加する必要がある
    • 学習データの高価な表現を一度事前計算し、その上でより安価なモデルで多くの実験を行えるという計算上の利点がある

  • これら二つのアプローチをそれぞれBERTに取り入れたときの結果を比較↓

    • fine-tuning>feature-basedとなった
    • BERTLARGEが最も性能良い
    • Feature-based Approach の中ではConcat Last Four Hidden(※)が最も性能が良く、fine-tuningと0.3ほどのF1値の差しかなかった
      ※事前に学習したTransformerの上位4つの隠れ層からトークン表現を連結する方法

  • BERTはfine-tuning・feature-basedのどちらのアプローチにも効果的と言える

    論文 Table 7より

Conclusion

言語モデルの転移学習による近年の実証的な改善は、教師なしの事前学習が多くの言語理解システムに不可欠な部分であることを示した。
特に、これら結果は低リソースのタスクでも深い一方向性のアーキテクチャの恩恵を受けることを可能にした。

この研究によって、深い双方向性のアーキテクチャにも一般化され、同じ事前学習済みモデルを用いて幅広い自然言語処理のタスクに対応できるようになった。

用語

  • タスク:自然言語処理の各ジャンルの問題のこと。質問応答や文書分類、翻訳など
  • named entity recognition:固有表現抽出
  • トークン:分割された単語
  • 分散表現:トークン同士の関係性をベクトルで定義すること
  • objective function:目的関数
  • Embedding:埋め込み。単語や文に対して固有のベクトルを与えることを指す
  • オートエンコーダ:NLの一つで入力されたデータを一度圧縮して重要な特徴量を残した後、再度元の次元に復元処理するアルゴリズム
  • コーパス:テキストや発話を大規模に集めてデータベース化した言語資料
  • シーケンス:単語データの並びのことで、いわゆる文章にあたる
  • エンコード:信号やデータを変換すること。符号化。 MLM:Masked Language Model;入力された単語のうち一部をマスキングし、文脈からマスキングされ単語を予測するようなモデル
  • bidirectional cross attention:隣接する文から学習する、みたいなことだと思っている
  • EM:Exact Match;予測解と実際の解が完全に一致している割合
  • F1:適合率と再現率の調和平均
  • Ablation Studies:モデルを構成する要素をあえて削除し、その要素がモデルの性能にどう貢献しているのかを評価すること

参考